ML From Hung Yi Lee --- Why Deep ? #8
Why Deep Learning
深度越深就一定好吗?
- 并不意外,越深的model拟合效果越来越好
Fat + short vs This + Tall
- 长高会很有帮助,但是长宽不见得那么有帮助。
- 联想到隐藏层的作用,是帮助我们线性变换的,越深的model也许会变换的方向越来越多,而且每一个神经元都代表着一个subfunction,而这个subfunction可以给多个subsubfunction来使用,这样一个function的利用率就提高了。
Modularization(模组化)
- 上述的例子,长头发的男生的例子很少,但是我们可以把这个问题模组化,先判断是男生还是女生,然后在判断是长头发还是短头发,然后就把二者的结论结合起来输出结果,而不是说一上来就直接丢一堆数据去判断结果。因为长头发的男生的数据是很少的,模型构建出来的效果然也可能不那么优秀。
- Deep Learning 的每一层其实就是一个个module的感觉
Modularization - Speech
- 语音识别方向
- 对于人类语言,实际上是由一个个phoneme组成的,而不同的音之间会用连读,那么我们就使用Tri-phone 对语气进行拟合,而每一个phoneme又可以由不同的state所组成
- 使用模块化去把每一个声音特征获取,然后输出state,然后再拟合再一起,得到文字的音读,然后使用language model区分同音不同字的区块
- 在做语音识别的第一步就是使用Acoustic feature 输出 state
- 不同的语言的state一般不太相同,而且数量很多。
- 最古老的版本就是对每一个state都有自己的Gaussian Distribution
- 但是这就是刻意把这些发音当成互相独立的音了,实际上这些音之间的联系非常密切
- 现在用于语音识别的Deep Learning model ------DNN
- 输入一个acoustic feature, 然后输出每一个state的概率,条件概率,
- 所有的输出都必须经过同一个DNN,然后输出结果state,所以我们说这些语音之间的联系是比较好的,比较符合人类的发音原理。
- 这些layer先把人类的发音方式摸索出来,然后在通过这些发音规则的基础上,在往后的layer之间把不同的音具体划分出来。
- 这就是为什么模块化,或者说deep会有用。
Analogy
两层逻辑闸可以描述任意的boolean function, 但是使用多层会显得更加的聪明,使用比较少的逻辑闸就能够拟合,而如果使用两层会显得复杂很多。
More Analogy
剪窗花,先叠然后再剪会效率高很多。
使用deep learning 可以让数据的使用更加有效
- 可以让模型崩坏的慢些
End to end Learning
生产线模式
- 使用古圣先贤的知识完成特征的提取,但是如果说我们使用deep learning,我们会发现deep learning 可以自动学到大部分的特性,让机器自己去学习。
- 但是!!!古圣先贤的总结出来的特征提取的方法也还是很重要的。
- 简化训练时间
Complex Task
相似的东西可能是完全不同的东西
- 不同人的同一句话的语音差距很大,但是当层数增加之后,逐渐机器就知道了如何划分这些数据。
- 手写数字识别中深度增加,自然而然的不同的数字划分越来越好了。