【李宏毅2020 ML/DL】P15 Why Deep-
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
已经有人记了笔记(很用心,强烈推荐):
https://github.com/Sakura-gh/ML-notes
本节对应笔记:https://sakura-gh.github.io/ML-notes/ML-notes-html/14_Why-Deep.html
本节内容综述
- 本节课承接 【李宏毅2020 ML/DL】P12 Brief Introduction of Deep Learning 内容,开始论述:为什么不是
“广度神经网络”
,而是“深度神经网络”
。 - 参数相同多,但是深的比胖的效果好,见[小细节](#Fat + Short v.s. Thin + Tall)。
- 深度神经网络的优势在于,其是“模块化(
Modularazation
)的”,具体举例见小细节 - 接着,李老师重点讲了Speech中的modularization(模块化)内容。见[小细节](#Speech Modularization)。
- Universality Theorem告诉我们,一层神经网络可以拟合所有函数,但是却没有告诉我们其效率。因此,这并不能说明只用1层就够了。李老师想说明:
深度学习不是用大数据无脑迭代出来的,把网络设计“深度”是有意义的。
- 对于有EE背景的同学,老师又举了
神经网络类比逻辑电路
的例子。见[小细节](#Logic Circuit) - 此外,还讲了
剪窗花
的例子:hidden layer好像将平面对折。老师还做了一个toy experiment来展示:即便数据量不够,深层神经网络也因为提取了特征,比浅层的“崩坏”更有“次序”。 - 此外,有了DL,我们还可以进行端到端学习(End-to-end Learning),不去管中间的东西。
- 比如,在Speech Recognition中,端到端的深度学习是一个非常好的例子。见[小细节](#Speech Recognition End-to-end Learning)
10.此外,还有影像等等例子。DL还有好处,比如针对复杂问题:Very similar input, different output
,Very different input, similar output
,也能自我“学习”解决。
小细节
Fat + Short v.s. Thin + Tall
Modularization
深度神经网络相当于“建了一个决策树,层层提取特征进行分类”。这就实现了Deep
到Modularization
。
对于图像,你可以看出其层层提取了特征。
Speech Modularization
language basics
语句是由音素phoneme
组成的,但是因为人类器官等的限制,其连读时,发音会受到前后因素的影响。
因此,我们要为同一因素准备不同的model,这叫做tri-phone
。
The first stage of speech recognition
这里以语音辨识第一步为例。
首先是,如何将声学特征acoustic feature
转换成state
,这是一个分类问题。
其过程是在声音信号wave form
上滑动时间窗(时间窗不会太大,通常250ms)。
这一步,过去在没有DL前,怎么做呢?
使用HMM-GMM
,即Gaussian Mixture Model
,为每个类建立一个高斯模型。但是这与模型太多了,因此提出Tied-state
,为近似的state
分享一个相同的模型。
但是,这样没有泛化,没有学习到人类发音固有的规律,规律如下图。
规律比如,人类语言里的元音,实际只受三件事影响:
- 舌头的前后位置
- 舌头的上下位置
- 嘴型
有了深度学习后,我们只使用一个DNN网络,所有的state都使用一个模型。 如下图。
这样确实存在泛化:拿一个hidden layer出来,然后把这个层的输出降为到2维以下,如下图。
可见,其确实起到了特征提取或者说区分不同类别的效果。
Logic Circuit
逻辑电路中,两层逻辑闸就可以做一切逻辑;但是,电脑不会只有两层,还是需要模块化。神经网络同理。
李老师想说明:深度学习不是用大数据无脑迭代出来的,把网络设计“深度”是有意义的。
Speech Recognition End-to-end Learning
传统的语音识别,要通过傅里叶变换等等操作(前五道绿色工序),其定制性非常强,而只有最后的GMM是由数据训练出来的。
后来有了DL,直接查看输入、输出就好,中间的绿色工序处理,不需要。