深度神经网络优化与循环神经网络详解
1. 梯度下降算法的局限性与挑战
在神经网络学习,尤其是深度学习中,我们常常希望优化大量的参数,这使得代价函数的自变量处于高维空间。在这种情况下,算法只有在函数 $J$ 严格凸的情况下,才能保证收敛到全局解。若不满足这一条件,甚至无法保证找到局部极小值。
高维空间会导致鞍点大量出现,而鞍点周围往往是高误差平台,这对寻找极小值是非常不利的。此外,学习率的选择对算法的效率至关重要。学习率必须足够小,以确保算法收敛,但又不能太小,否则会显著减慢收敛过程。经典的线搜索算法可用于仔细迭代地选择步长,从而改善结果。
2. 随机梯度下降(SGD)
传统的梯度下降算法在深度学习中存在问题,因为在高维环境下,损失函数通常是非凸且非光滑的,这使得收敛性无法满足,并且向局部极小值的收敛速度可能极慢。
随机梯度下降算法是解决这些问题的有效方法。它是梯度下降算法的随机近似,旨在最小化一个可表示为可微函数之和的目标函数(例如在图像处理中,每张图像对应一个函数)。该算法通过随机选择数据批次(即整个数据集的子集)进行迭代,每次最小化的目标函数近似于“全局”目标函数。其公式如下:
[
\theta_{t + 1} \leftarrow \theta_t - \eta \frac{1}{B_s} \sum_{i = 1}^{B_s} \nabla_{\theta} J_i^t(\theta_t, x_i^t, y_i^t)
]
其中,$B_s$ 是批次大小,$B_t = (x_i^t, y_i^t) {i \in [|1, B_s|]}$ 是与步骤 $t$ 相关的数据批次,$x_i^t$ 和 $y_
超级会员免费看
订阅专栏 解锁全文
9万+

被折叠的 条评论
为什么被折叠?



