Post

类神经网络训练不起来怎么办

类神经网络训练不起来怎么办

书接上回,为什么Optimization会失败呢?

Local Minima 和 Saddle Point

截屏2026-04-09 22.18.24

微分为0的点统称为critical point,那么怎么知道一个点是局部最小值还是鞍点呢?

截屏2026-04-09 22.30.10

$L(\theta)$ around $\theta = \theta’$ can be approximated below:

\[L(\theta) \approx L(\theta') + (\theta - \theta')^T g + \frac{1}{2} (\theta - \theta')^T H (\theta - \theta')\]

Gradient $g$ is a vector:

\[g = \nabla L(\theta')\] \[g_i = \frac{\partial L(\theta')}{\partial \theta_i}\]

Hessian $H$ is a matrix:

\[H_{ij} = \frac{\partial^2}{\partial \theta_i \partial \theta_j} L(\theta')\]

在critical point:$(\theta - \theta’)^T g$ 为0,我们可以根据$\frac{1}{2} (\theta - \theta’)^T H (\theta - \theta’)$这一项判断函数在这里长什么样

截屏2026-04-09 22.39.20

方便起见,我们把$(\theta - \theta’)$用$v$表示,

如果对于任意的$v$,都有$v^THv>0$,说明在$\theta’$附近,有$L(\theta)>L(\theta’)$ — Local minima — H是positive definite = 所有特征值都是正数

如果对于任意的$v$,都有$v^THv<0$,说明在$\theta’$附近,有$L(\theta)<L(\theta’)$ — Local maxima — H是negative definite = 所有特征值都是负数

如果有时$v^THv>0$,有时$v^THv<0$ — Saddle point 鞍点 — 特征值有正有负

$H$也许可以告诉我们参数可以改进的方向!

在鞍点,假设$u$是$H$的特征向量,$\lambda$是$u$的特征值,那么:

\[u^THu=u^T(\lambda u)=\lambda\lVert u \rVert^2\]

代入二阶近似: \(L(\theta' + u) \approx L(\theta') + \frac{1}{2} u^T H u= L(\theta') + \frac{1}{2} \lambda \|u\|^2\)

说明,只要找出$\lambda<0$,让$\theta=\theta’+\epsilon u$,就可以让Loss变小

Error surface(误差曲面 / 损失曲面):是模型参数空间中的一个多维曲面,它描述了每组参数对应的 Loss 或 Error 值梯度下降就是沿着 error surface 下降的过程

截屏2026-04-09 23.32.49

在n维空间里的local minima,在n+1维(或者更高维度)会不会只是一个saddle point了呢?

Batch 和 Momentum

截屏2026-04-09 23.37.26

Shuffle:每一个epoch划分的batch都不一样

This post is licensed under CC BY 4.0 by the author.

Trending Tags