ML学习笔记:Why Deep Learning?
2019-10-31 本文已影响0人
answerLDA
Deeper is better?
毫无疑问,参越多,效果越好。
但是在比较两种不同的架构时,却不一样。
为什么参数增加了效果反而差?
Modularization
因为架构越深,相当于模块化越多。
考虑一个问题,笼统的解决方法:
但是把问题慢慢细分,解决效果会更好。
image.png
训练的时候共用一个Model,可以在少量数据得到好的结果。
层次性的模块化:使用前一层的输出作为本层的输入的模块来建立本层的分类器。因为我们的数据比较少,需要在每一层中好好利用上一层的数据,这样才能在少量数据的情况下得到好的结果。
模块化用于图像方面。
Modularization - Speech
每个人发音方式不同,所以要用不同的model去模拟不同的phoneme,又称tri-phone。
如何做语音辨识?
第一步:每隔一个时间点取一个window,获取其特征,判断它属于哪个state。然后用state转成phoneme.......
first step
如何判断window内容属于哪个state?传统方法是使用GMM来判断分类。
由于state过多,后面会导致tri-phone过多。所以某些state公用一个distribution,又称Tied-state。
这样做的效率是很低的。下图显示人类发音时的所有母音。母音只受三种因素影响:舌头前后位置,舌头上下位置,嘴型。例如,从a-e-i-u-o的发音顺序,嘴型是从low-high-front-back的改变。所以不同的phoneme之间是有关系的。
DeepLearning的做法:
所有的state都公用一个DNN,这样比较有效率。
image.png
为什么可以用DeepLearning效率比较高?下图可以看到降维显示输出,相同的发音是聚合在一起的,跟图示的位置大致一致。
在以前的理论中:任何模块都可以只用一层hidden layer,只要你的hidden layer够宽。但是可行性≠有效性。
Analogy
只要两层的逻辑电路,就可以表示任何的布尔函数。但是使用多层的电路会更加有效率,而且使用的参数更少。
例子:一个判断1的个数为奇数或者偶数的电路。使用多层结构,只需要三个逻辑门就可以解决。
More Analogy
More Analogy - Experiment
下面例子显示,更深的层,使用更少的数据时,效果相对更好。
End-to-end Learning
端对端学习,只说明输入和输出,不要求中间的做法。
传统的语音识别的方法:
使用DeepLearning的语音识别方法:
End-to-end Learning - Image Recognition
Complex Task …
很多东西看起来很像但是不一样;有的看起来很不一样但是他们是一样。这就是DeepLearning能解决的。
MFCC在分析语音识别时,不同的人说同一句话是很不一样的;但是在DNN里面,经过多层的训练,不同的人说同一句话可以很相似。
MNIST
To learn more …
http://research.microsoft.com/apps/video/default.aspx?id=
232373&r=1
- Deep Learning: Theoretical Motivations (Yoshua Bengio)
http://videolectures.net/deeplearning2015_bengio_theoretical_motivations/ - Connections between physics and deep learning
https://www.youtube.com/watch?v=5MdSE-N0bxs - Why Deep Learning Works: Perspectives from Theoretical Chemistry
https://www.youtube.com/watch?v=kIbKHIPbxiU
胶片来自于台湾大学李宏毅教授的《机器学习课程》,侵删!