李宏毅机器学习2016 第十讲 为什么是“深度”学习
视频链接:李宏毅机器学习(2016)_演讲•公开课_科技_bilibili_哔哩哔哩
课程资源:Hung-yi Lee
课程相关PPT已经打包命名好了:链接:https://pan.baidu.com/s/1c3Jyh6S 密码:77u5
我的第九讲笔记:李宏毅机器学习2016 第九讲 卷积神经网络
Why Deep Learning?
本章讲述了为什么要是深度学习,是选择“高瘦”型的深网络,而不是“矮胖”型的宽网络。
1.矮胖还是高瘦?
我们知道在神经单元足够多、参数够多的情况下,只需要一个隐藏层,就可以表示任意的函数。既然如果为什么不选择用这种宽网络,而是选择深度网络呢?
在对比不同网络形状的效果时,要注意保证两个网络的参数数量基本一致,这样才有比较的意义。
由上图可以看出,在5*2K和1*3772这两个网络参数基本相等的情况下,前者的性能明显优于后者,并且宽的网络在尺寸不断增大时,性能提升的也不明显。
2.模块化
怎么解释说要选择深的网络而不是胖的网络呢?模块化的思想可能会帮助我们理解。
我们在编写程序时,通常不会将所有的代码都写在一个主方法中,而是会将其写成不同的函数,然后进行调用,这样可以实现共享,比如说某些步骤都需要调用排序函数,这样做可以减少函数的复杂度。
在深度学习中,也是如此。
比如说我们有一个分类任务,要分类出长发女人、长发男人、短发女人、短发男人这四个类别。显然长发男人的数量会更少。此时通过模块化首先有一层分类器是用于分类出男人还是女人,是长发还是短发,再接着一层就可以共享利用上一层的结果,分类出长发女人、长发男人、短发女人、短发男人,即使长发男人样本数据少。
其实正是因为没有足够的数据,才让机器去学习,去举一反三。
此外,在图像分类中,也有明显的模块化思想。
首先是一些基本的分类器,接着是用基本分类器识别纹理等特征,下层分类器又可以用其识别出图像中某些具体的模块。
3.普遍性理论
正如我们之前所言,只含有一个隐藏层的网络也可表示任意的函数。
但是深度的网络结构是更高效的。
4.端到端的学习
深度学习之前需要做大量的手工操作,各种手动提取特征,特征工程是及其耗时很困难的。
而端到端的学习可以使得机器自动的学习特征。
在图像识别领域,以前需要各种手工设计特征,只有最后一步才是自动学习而得。
而深度学习是端到端的学习。
5.一些复杂任务
举例MNIST手写汉字的识别,我们可以通过观看不同隐藏层的输出,能够看出深度网络是有效地。
在第一个隐藏层,很多不同类别的样本都混杂在一起,难以分来,在第二个隐藏层效果更好了,但是还是有些难以分开(7,9和2,8,0确实在某些方面有点相像),在第三个隐藏层可以明显的看出都被完整的分开了。这也就说明了深度网络是更有效的。
6.总结
本章从模块化的思想、类比电路剪纸等各个层面进行讲解了选择深度网络的原因。