《MATLAB Deep Learning》Ch1 & Ch2 学习笔记
我是目录
前言
《MATLAB Deep Learning》,Phil Kim. 这本书实在太适合入门了,作者用平实易懂的语言由浅入深地介绍了深度学习的各个方面。书中并没有太多的公式,配套代码也很简洁。不过,若是想进一步深究背后的数学原理,还得参考其他书籍、文献。
Ch1 - Machine Learning
关于人工智能、机器学习和深度学习的关系,一句话概括就是:“Deep Learning is a kind of Machine Learning, and Machine Learning is a kind of Artificial Intelligence.”
机器学习能解决规则和逻辑推理(如早期的专家系统)解决不了的问题,Machine Learning has been created to solve the problems for which analytical models are hardly available.
机器学习面临的挑战:训练数据与真实数据之间的差异,过拟合 Over-fitting.
过拟合应对方案,为了提高泛化 Generalization 能力:在训练集中留出验证集 Validation,交叉验证 Cross-validation,正则化(这章好像还没讲到)。
机器学习还有三个细分领域:Supervised learning, Unsupervised learning and Reinforcement learning.
分类问题与回归问题:The only difference is the type of correct outputs—classification employs classes, while the regression requires values.
Ch2 - Neural Network
计算机将信息存储在内存单元中的特定位置,而人脑记忆信息靠的是更改神经元之间的联系(方式),人工神经网络的设计 “模拟” 了大脑的这个过程。
神经网络的发展:single-layer neural network, shallow neural network(含隐藏层), deep neural network.
注意,当隐藏层的**函数是线性函数(如 )时,隐藏层的作用就失效了,这相当于直接从输入层到输出层的线性变换。
delta 法则
考虑损失函数 ,**函数 ,, 。其中是样例真实值,是估计值,是估计误差。那么,
由于要向损失减小的方向更新梯度,上述结果取其相反数。可以看出 delta 法则实际上是**函数为 时的特例,更为一般的形式为如下:
SGD, Batch, and Mini Batch
随机梯度下降 SGD 即对每一个样例都计算一次梯度,而 Batch 使用所有的训练数据但只更新一次梯度,Mini Batch 是它们二者的折中。
SGD 的收敛速度更快,而 Batch 更加稳定,Mini Batch 结合了二者的优点。
Ch3 - Training of Multi-Layer Neural Network
由于单层神经网络不能解决非线性问题(如 XOR 问题),由此引发多层神经网络的思考。考虑到篇幅过长,这篇博客到此为止。待续…