文章目录
我认为苹果书是最好的深度学习原理教材
第三章开篇讲的就是为什么深度学习模型会优化失败,这个问题其它在我们训练深度学习模型的过程中是非常常见的一种现象:明明使用了更加深层的结构,但它的表现与之前一样,有时甚至不如先前的结果。那么为什么会出现这种现象呢?
首先进行解释的就是鞍点与临界点,这两种点的共同特征是该点处损失函数的一阶导数为零。它们之间的不同之处在于损失函数的多阶偏导。我们使用Tayler 级数展开损失函数,可以得到公式(以下分析仅基于该公式)
L
(
θ
)
≈
L
(
θ
′
)
+
(
θ
−
θ
′
)
T
g
+
1
2
(
θ
−
θ
′
)
T
H
(
θ
−
θ
′
)
(3.1)
{\color{#891010} \begin{array}{l} L(\boldsymbol{\theta}) \approx L\left(\boldsymbol{\theta}^{\prime}\right)+\left(\boldsymbol{\theta}-\boldsymbol{\theta}^{\prime}\right)^{\mathrm{T}} \boldsymbol{g}+\frac{1}{2}\left(\boldsymbol{\theta}-\boldsymbol{\theta}^{\prime}\right)^{\mathrm{T}} \boldsymbol{H}\left(\boldsymbol{\theta}-\boldsymbol{\theta}^{\prime}\right) \text { (3.1) } \end{array} }
L(θ)≈L(θ′)+(θ−θ′)Tg+21(θ−θ′)TH(θ−θ′) (3.1)
当处于鞍点与临界点时,公式中的第一项 L ( θ ′ ) L\left(\boldsymbol{\theta}^{\prime}\right) L(θ′) 为0。经过处理后,最后一项中的矩阵 H H H如果特征值全为正,或是全为负时,该点即为极大/小值点。而如果该点的特征值即有正,又有负时,则该点为临界点。但是在实际情况中,我们并不是通过计算矩阵 H H H的特征值来判断该点是否处于极大值或是极小值的(计算矩阵 H H H的过程非常的消耗计算资源)。由于在训练深度学习的过程中,我们输入数据的维度是非常高的(也即是特征数量非常的多),在计算的过程中我们遇到的大部分值都不是极大/小值,而是鞍点。
这也就是该书的一个照影:仅通过单个公式就能将深度学习中遇到的复杂数理情况解释明白。
同时需要注意到的是,在学习交流会中,大部分同学都是想着去深入理解深度学习模型内容的原理,但是我的需求就是从应用入手,了解深度学习模型内容特点与原理。虽说是提到了原理,但是并不会去死磕具体的是如何实现的。总体上就是了解使用到了哪些公式,这些公式有什么作用,我们能够从这些公式里得到什么结论。能够将上面的内容全部理解了就可以了。因为我想大部分人的需求就是学会使用深度学习模型就可以了,深度学习模型的构建还是交给哪些特殊的少数人就可以了。
在公式的过程中,再复习了一下代数上的知识:如何计算矩阵的特征值与特征向量(一年不看数学,就把大部分知识全还回去了)