梯度下降法数学理解

1、数学梯度下降法

目标:求函数 f(x)=x2的最小值。
我们知道最小值在 x=0 处,但梯度下降法不需要知道这个,它会自己找到。

步骤

  1. 初始位置:随便取 x=4

  2. 学习率(步长):η=0.1

  3. 梯度:f′(x)=2x。梯度的反方向就是 −2x

  4. 更新公式:xnew=x−η⋅f′(x)=x−0.1×(2x)=x−0.2x=0.8x

迭代过程

  • 第0步:x=4

  • 第1步:x=0.8×4=3.2

  • 第2步:x=0.8×3.2=2.56

  • 第3步:x=0.8×2.56=2.048

  • 第4步:x=1.638

  • 第5步:x=1.310

  • 第6步:x=1.048

  • 第7步:x=0.838

  • 第8步:x=0.671

  • ……

  • 第n步:x 逐渐逼近 0

结论:梯度下降法每次沿着“负梯度方向”更新 x,使函数值 f(x)=x2不断下降,最终收敛到最小值点 x=0。

2、神经网络中使用梯度下降法

整个过程可以拆成 4 步:

1. 定义损失函数

假设一个神经网络做分类任务,最后一层输出预测值 y^,真实标签是 y。
定义一个损失函数 LL(比如交叉熵损失或均方误差),用来衡量预测与真实之间的差距。
目标:找到网络中的所有权重 W 和偏置 b,使 LL最小。

2. 前向传播(Forward)

输入一个 batch 的样本,数据从输入层依次经过各层(线性变换 + 激活函数),一直传到输出层,得到预测值 y^​。
同时,每一层的中间结果(激活值、加权和)需要保存下来,供后面反向传播使用。

实际训练中的循环

整个流程是迭代的:

Repeat:

  1. 随机取一个 mini-batch 的数据

  2. 前向传播计算损失

  3. 反向传播计算每个参数的梯度

  4. 用梯度下降(或其变体,如SGD、Adam)更新参数,Until 损失收敛或达到指定迭代次数

总结:

模型先随机给定w值和b值,然后让模型能得到一个预测值,然后用1/2(y*-y)*(y*-y),得到损失。

然后连用链式求导法,逐渐反推出w值和b值。不断地训练模型,不断地更新w和b,直到损失趋于平稳,把模型放到验证集上去验证模型的泛化能力。然后判断是否需要减小或者增大学习率来再次对模型进行训练。

3、损失曲线看模型训练结果

现象可能原因是否正常
损失下降过早平坦(如第 2 个 epoch 就平坦,且最终损失值仍然很高)学习率过小、模型欠拟合(容量不足)、特征预处理不当不正常,需要调整
平坦后突然再次下降(阶梯状)优化器跳出局部极小值(如 SGD with momentum)正常,但需关注是否收敛
平坦后持续轻微上升过拟合(验证集上更明显)、学习率过大导致震荡不正常,需正则化或降低学习率
损失平坦但验证损失远高于训练损失过拟合不正常

参考链接:

梯度下降法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值