【李宏毅机器学习】task05-网络设计的技巧

本文探讨了深度学习中遇到的局部最小值和鞍点问题,解释了如何通过泰勒展开判断临界点类型。针对鞍点,提出使用负特征值对应的特征向量作为梯度更新方向。对于局部最小值,建议通过升维策略来转化。此外,介绍了批次训练和动量方法在避免局部最小值中的作用,以及自动调整学习速率的策略,以提高训练效率和泛化能力。
摘要由CSDN通过智能技术生成

局部最值(Local Minimum)与鞍点(Saddle Point)

在训练过程中,不可避免的会有局部最小值和鞍点的问题。它们的梯度都为0,我们把这两种点统称为临界点(Critical Point)

img

那么如何分辨临界点呢

我们可以在 θ \theta θ附近找一点 θ ′ \theta^\prime θ,通过泰勒展开,在 θ ′ \theta ^ \prime θ点逼近 L ( θ ) L(\theta) L(θ)

L(θ)≈L(θ′)+(θ−θ′)Tg+0.5(θ−θ′)TH(θ−θ′)

梯度 g g g为0,那么

L(θ)≈L(θ′)+0.5(θ−θ′)TH(θ−θ′)

H H H为正定矩阵(所有特征值为正)时, θ ′ \theta ^ \prime θ为局部最小值

如果有正有负那么为鞍点。

处理鞍点

我们需要梯度朝向损失函数小的地方,所以使用负特征值对应特征向量 u u u作为梯度,那么 θ = θ ′ + u \theta=\theta ^ \prime+u θ=θ+u

img

处理局部最小值

  1. 局部最小值极少出现
  2. 可以通过升维转化为鞍点

批次(batch)和动量(Momentum)

批次:将数据分为多段,分批训练网络

批次优势:即使有一个段是局部最小值,其他部分不是,那么就不是局部最小值

批次大小

  1. 在并行计算情况下,大批次更快
  2. 小批次更加稳定,泛化率高

Momentum方法 m 1 = λ m 0 − η g 0 m_1 = \lambda m_0 - ηg_0 m1=λm0ηg0 θ = θ ′ + m 1 \theta = \theta^\prime + m_1 θ=θ+m1

自动调整学习速率

Loss一直在高位的原因可能是步子迈的太大在山谷间来回震荡。但步子迈得太小又会降低效率,于是我们需要自适应梯度。

如下图,下一步有梯度和学习率共同决定,随迭代次数逐渐增加,梯度会越来越小。(类似模拟退火)

当然为了防止陷入局部最小值,我们可以在学习率十分低时突然清零,跳出局部,看看最后收敛是否还在原来位置。

我们还增加了权值 α \alpha α,使梯度由当前梯度和历史梯度共同决定

img

Batch Normalization

归一化,略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值