全文总结于哔哩大学的视频:李宏毅2020机器学习深度学习(完整版)国语
2020版课后作业范例和作业说明在github上:点击此处
李宏毅上传了2020版本的机器学习视频和吴恩达的CS229机器学习相比,中文版本的机器学习显得亲民了许多,李宏毅的机器学习是英文的ppt+中文讲解,非常有利于大家入门。吴恩达的CS229中偏向于传统机器学习(线性回归、逻辑回归、Naive Bayes、决策树、支持向量机等),李宏毅2020版本的机器学习中除了最前面的回归、分类,后面更多篇幅涉及卷积神经网络(CNN)、循环神经网络(RNN)、强化学习(RL)等深度学习的内容。
博客内容多为转载。结合哔哩大学的视频观看效果更佳。
文章目录
Deep is better
Fat+Short vs Thin+Tall
shallow vs deep
为什么deep learning不是简单的增加参数,来实现好的效果?
Modularization 模块化
做deep learning 实际上就是做模块化的过程
并不是在主函数里放入所有的东西,而是写了很多小的function,降低程序复杂度,使其变得简洁
长头发男生和短头发女生的数据都很少
将直接判断长头发男生还是短头发女生的问题,拆分为,先判断男孩女孩,再判断长头发短头发,这样就不会出现数据太少的问题(长/短头发,男女生的数量都很多)
深度模型就是特征提取模块+分类器模块
每个分类器去参考前面的基础分类器,把他们当作module模块,每个分类器都共用同样的模块。即,后面的分类器可以利用前面的分类器。
每一个neural相当于一个基础分类器,后一层的neural把前一层基础分类器的output当作input,以此类推,,,
在deep learning中,模块化是从数据中自动学到的。
做modularization的好处是把复杂模型变得简单,就算训练数据不多,也可以做好。
Deep Learning反而需要更少的数据!而不是需要更多的数据才可以深度学习。
如果有足够的数据,直接table lookup查表就好了,就不需要Machine Learning了。
而我们没有足够的数据,就无法查表,所以需要Deep Learning
Modularization - Image
Modularization - Speech
人类语言的分层化结构
Phoneme:音素
Tri-phone:三音素
同样的音素可能会有不同的发音
语音辨识的步骤
The first stage of speech recognition 的第一步
分类:输入声学特征,输出state
每隔一段时间取一个window,得到一系列的声学特征
第一步做的工作就是:决定每一个声学特征属于哪个state,仅此而已,还有其他很多步骤,在此不讨论。
Each state has a stationary distribution for acoustic features.(每个state对于声学特征有着平稳的分布)
对比Deep learning前后,语音辨识模型有什么不同。
要做的事情,在语音辨识第一阶段的任务就是分类,决定每个声学特征属于哪个state
传统方法:
中英文会有很多的tri-phone,每一个Phoneme 随着文本的不同,也要用不同的model,所以会遇到训练数据不够的情况。
有一些state会共用同样的model distribution,相当于不同的pointer指向了相同的address
深度学习出现后的方法
难得听懂的重点
- 比如100个神经元,1层的话只能表示网络能表示的情况的集合,就是function set。
- 而多层还可以表达“元素”间的位置关系(搭配关系)。
折叠空间
将空间做各种对折,就可以有复杂图案
一笔data可以发挥5笔data的作用
Deep Learning可以充分利用数据
hidden layer多的模型,在数据少的时候效果好
DeepLearning其他好处
不同的人说相同的话,经过多层hidden layer之后,就聚合在一起了
手写数字识别
还有更多使用deep learning的理由