吴恩达深度学习课程要点和概念记录一(神经网络及其优化)

时间:2025-03-31 07:00:25
  • 梯度消失和梯度爆炸:W取值大于1或者小于1,在深度过高时,其计算的值要么趋于无穷大,要么趋于0.
  • 选择合适的W初始值。前一层神经元越多(即下一层输入数据的特征越多,每个神经元权重分量越多),为了确保下一层神经元计算的Z值不要太大,选择w越小。
    [文章](/red_stone1/article/details/78208851])有讲解
  • 梯度检查:可以采用导数的定义查看梯度计算是否正确
  • batch梯度下降:在整个训练集上进行训练,每次进行一次梯度下降
  • mini-batch 梯度下降:将训练集进行划分成若干等份,每份子集进行一次梯度下降。
    适用于训练集过大的情况。
  • Epoch:在训练集上完整地训练一次被称为一次epoch
  • SGD:每次针对一个测试实例进行梯度下降
  • 不同训练场景下,cost函数变化:Batch 平稳下降,mini-batch震荡下降
  • 怎样减小震荡下降的幅度? 在梯度下降基础上,引入新的优化算法
  • 动量梯度下降算法:基于指数加权平均,使W、b变化尽可能平滑
  • RMSprop:也是使W,b并尽可能平滑,每次梯度下降时 d w d_w dw要除以 S w \sqrt{S_{w}} Sw
    S w = β S d w + ( 1 − β ) d w 2 S_{w} = \beta S_{dw} + (1-\beta)d_w^2 Sw=βSdw+(1β)dw2
  • Adam优化算法:动量梯度下降与RMSprop结合
  • 学习率递减:随着epoch增加, α \alpha α逐渐减小
  • 局部最小值问题鞍点
  • 随机化选择超参数进行Tuning:尝试更多的超参数组合,避免网格化超参数tuning
    不同种类超参数的重要性不同,对于每个超参数都要尽量尝试更多的取值,并在tuning过程中逐步缩小范围
  • linear scale vs log scale 进行超参数取值
  • Batch Normalization:在神经网络每一层,对 Z Z Z进行标准化处理后,通过两个可以训练的参数 γ \gamma γ β \beta β来*设置 Z Z Z的方差和均值。
    从原论文中有以下公式: