我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
已经有人记了笔记(很用心,强烈推荐):
https://github.com/Sakura-gh/ML-notes
本节对应笔记:https://sakura-gh.github.io/ML-notes/ML-notes-html/8_Deep-Learning.html
本节内容综述
- 开头,发现 Deep Learning 的应用呈指数级增长;
- 关于 Deep Learning 的历史:沉浮,好几次,具体可见https://sakura-gh.github.io/ML-notes/ML-notes-html/8_Deep-Learning.html。大概趋势可见[小细节](#Ups and downs of Deep Learning)。
- Deep Learning 与 Machine Learning 同,也是三个步骤,但在 Deep Learning 的 define function 中,用的是 neural network 。
-
Deep = Many hidden layers,但没有明确定义。 - 神经网络的前向传播可以看成
矩阵运算,可见 [小细节](#Matrix Operation)。 - Output Layer 中,我们往往会加一个 softmax 。
-
隐藏层的设计是很重要的。然而,需要尝试与经验。但是,有可能自动地设计结构,比如Evolutionary Artificial Neural Networks。此外,还有些其他网络结构,比如卷积神经网络,不仅仅只有全连接。 - “函数”(神经网络结构)设计结束后,下一步是定义 Loss Function ;使用 Gradient Descent 来寻找最优参数。
- 在现在这个时代,已经有了大量反向传播框架供人调用,帮助我们计算微分。因为已经有了这些成熟的工具,“75%的Deep Learning专家不会手动计算微分”。
- 此外,目前面临一个小问题:参数越多,模型越精准;且单层神经网络已经被证明可以拟合绝大部分函数,那么为什么要
Deep呢?为什么不Fat呢?将在以后的课程中解答。
小细节
Ups and downs of Deep Learning
Matrix Operation
因此,可以将参数整理成多个矩阵。
这样的好处是,写成矩阵运算可以用GPU加速。