TensorFlow从1到2 - 1 - 深度神经网络

上一主题《TensorFlow从0到1》介绍人工神经网络的基本概念与其TensorFlow实现,主要基于浅层网络架构,即只包含一个隐藏层的全连接(FC,Full Connected)网络。

新主题《TensorFlow从1到2》将探索近5年来取得巨大成功的深度神经网络(Deep Neural Networks,DNN),它已成为机器学习中一个独立的子领域——深度学习(Deep Learning)

本篇将解释“深度”的含义,并引出在纵向扩展神经网络时遇到的障碍。

DNN

神秘黑盒

神经网络是一个“黑盒”(Black Box)。不仅外行人看它如此,即便是对亲手构建并训练它的工程师而言,亦是如此。

它的神秘,并不在于打不开、看不到,而是学习过程不可控,识别原理不可解释。

当预设了它的架构,完成初始化后,剩下的就是喂数据给它即可。至于网络中数以万计的权重和偏置该如何调整,将止步何处,整个动态优化的过程人类完全插不上手。

最终网络训练收敛,惊艳的输出超越人类的判断。若此时立即打开黑盒,打印出网络中所有的参数和中间结果,会怎样?呈现在我们眼前的无非是一堆调整的恰到好处的数字,可它们究竟意味着什么概念和逻辑,就像密码一样不得而知。

理解隐藏层

机器学习的逻辑形式看上去晦涩难懂,但是并没有妨碍它成功的应用在诸多领域。所幸研究者在关注如何进一步提升网络性能的同时,并没有忘记尚未“解码”机器学习的秘密这件事,通过积极的尝试已经获得了很多启发性的理解。

神经网络从输入“裸数据”开始,经历层层前馈(Feedforward),在输出层获得一个高度抽象、人为定义的类别概念,这中间的每一隐藏层其实都是不同层次的概念表示,离输入层越近的抽象程度越低,反之离输出层越近的抽象程度越高。

以一个识别汽车图片的网络为例,来模拟这种理解,如下图所示。

网络中有两个隐藏层。第一个隐藏层,接收图像像素数据,输出表示形状的概念。第二个隐藏层,接收上一层输出的几何形状信息,输出表示汽车零部件的概念。最后到网络的输出层,进行最终的判断——是否可以分类为汽车。

概念层次

这是对网络隐藏层一种理想的解释。实际情况中,不同的数据和分类目的,会训练出不同的网络,而每一层所对应的意义也会出乎意料。基于这种启发,研究者已经发展出逐层的可视化分析手段,来帮助人类理解机器学习的机理。

“深度”的定义

2006年,Hinton发表《基于深度置信网络的快速学习方法》,深度神经网络和深度学习开始被重新关注。

从形式上,包含两层或更多隐藏层的网络即可称为深度神经网络

Goodfellow的《Deep Learning》从概念层次的角度诠释了深度学习:

“(本书所围绕的)这个方案让计算机从经验中学习,并根据层次化的概念体系来理解世界,其中每个概念通过与之关联的更简单的概念来定义。

从经验获取知识,可以避免由人类形式化的制定一切计算机所需要的知识。

运用层次化的概念,计算机可以通过较简单的概念构建复杂的概念。如果我们能绘制一个图形来表示概念是如何建立在其他概念之上,那这个图形将会很深,具有很多的层。基于这个原因,我们称这种方法为AI深度学习。”

理解机器视角下的层次化概念意义深远,一旦可以充分解释,人类就可以向机器请教,从而照亮思维的盲区。遭遇过Master(即AlphaGo)的柯洁,在正式对战AlphaGo之前,就领悟到了这一点:

“人类数千年的实战演练进化,计算机却告诉我们人类全都是错的。我觉得,甚至没有一个人沾到围棋真理的边。但是我想说,从现在开始,我们棋手将会结合计算机,迈进全新的领域达到全新的境界。”

棋士柯洁

为什么不是宽度?

根据万能近似定理(universal approximation theorem),在一个隐藏层的情况下,只要够宽(wide)——神经元数量足够多,则能以任意精度逼近任意的函数。

然而,该定理并不能指出网络具体要多“宽”,也不能保证训练算法能够学得这个函数。对于逼近一个复杂的函数,有可能需要隐藏层宽到不可实现,也有可能训练产生记忆效果而无法有效的泛化。

研究表明,深度比宽度在以下两方面更加有优势:

  • 深层网络表示的函数可能需要浅层网络指数级的神经元数量才能表示;
  • 深层的网络能够更好的泛化;

多多益善?

基于以上对深度的理解,我们似乎获得了一个简单易行的绝佳方案:增加隐藏层!

可往往事与愿违。

以MNIST识别为例,使用在上一主题中构建好的全连接网络进行训练,测试结果如下表所示:

隐层数量

每隐层神经元数

迭代次数

识别精度

代码

1

隐层x1

100

30

95.25%

tf_2-1_1_hidden_layers.py

2

隐层x2

100

30

95.87%

tf_2-1_2_hidden_layers.py

3

隐层x3

100

30

96.3%

tf_2-1_3_hidden_layers.py

4

隐层x4

100

60

96.08%

tf_2-1_4_hidden_layers.py

随着隐藏层数量的增加,识别精度增长并不显著,当隐藏层数量增加到4层时,收敛不仅需要更多的迭代次数,识别精度反而开始下降了。

可说好的“深度”呢?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

推荐 | 机器学习中的这12条经验,希望对你有所帮助

华盛顿大学 Pedro Domingos 教授的“A Few Useful Things to Know about Machine Learning”这篇论文...

1150
来自专栏机器之心

人人都能读懂的无监督学习:什么是聚类和降维?

选自Medium 作者:Vishal Maini 机器之心编译 参与:Panda 机器学习已经成为了改变时代的大事,一时间似乎人人都应该懂一点机器学习。但机器学...

31610
来自专栏CDA数据分析师

提问 | 如何利用一批去年的数据,来预测未来三年的数据?

文 | 邹日佳 来自知乎 1、这批去年的数据是按月份的,本身肯定会有波动,但相对稳定。 2、预测未来三年的数据是需要具体到月份。恩 3、请问有什么统计方法可以做...

2139
来自专栏IT派

深度学习调参入门之小技巧

导语:按照惯例,主推文只能推送内容相关的东西,但是今天同日推文里有一个很有趣的文章,大家有兴趣的不妨移步去一探究竟! AI科技评论按:作者杨军,从事大规模机器学...

2923
来自专栏专知

强化学习:Policy-based方法 Part 1

【导读】在前面两篇文章中,我们完成了基于值的(value-based)强化学习算法,可以在给定的环境下选择相应动作,并根据最高的Q-value来确定下一步的动作...

1286
来自专栏AI科技评论

学界 | 腾讯 AI Lab 详解16篇 ICML 2018 入选论文

7月10日至15日,第 35 届国际机器学习会议(ICML 2018)将在瑞典斯德哥尔摩举行。ICML是机器学习领域最顶级的学术会议,今年共收到2473篇投递论...

1573
来自专栏PPV课数据科学社区

人人都能读懂的无监督学习:什么是聚类和降维?

可以说机器学习已经成为了改变时代的大事,一时间似乎人人都应该懂一点机器学习。但机器学习涉及到的数学知识和编程能力往往让没有相关经验的人望而却步。YupTechn...

2894
来自专栏机器人网

学懂 12 个宝贵经验,更深入了解机器学习

华盛顿大学 Pedro Domingos 教授的“A Few Useful Things to Know about Machine Learning”这篇论文...

2705
来自专栏机器学习算法与Python学习

推荐 | 掌握这12条经验,对理解机器学习至关重要

华盛顿大学 Pedro Domingos 教授的“A Few Useful Things to Know about Machine Learning”这篇论文...

1310
来自专栏腾讯技术工程官方号的专栏

ICML 2018 | 腾讯AI Lab详解16篇入选论文

10.7K2

扫码关注云+社区

领取腾讯云代金券