深度学习基础之-2.4梯度下降的三种形式(单变量,全批量,小批量)

单变量随机梯度下降(SDG(Stochastic Grident Descent))

正向计算过程:

Z n × 1 = W n × f ⋅ X f × 1 + B n × 1 Z^{n \times 1}=W^{n \times f} \cdot X^{f \times 1} + B^{n \times 1} Zn×1=Wn×fXf×1+Bn×1 A n × 1 = a ( Z ) A^{n \times 1}=a(Z) An×1=a(Z)

反向计算过程:

Δ Z n × 1 = J ′ ( W , B ) = A n × 1 − Y 1 × 1 \Delta Z^{n \times 1} = J'(W,B) = A^{n \times 1} - Y^{1 \times 1} ΔZn×1=J(W,B)=An×1Y1×1 W n × f = W n × f − η ⋅ ( Δ Z n × 1 ⋅ X T 1 × f ) W^{n \times f} = W^{n \times f} - \eta \cdot (\Delta Z^{n \times 1} \cdot X_T^{1 \times f}) Wn×f=Wn×fη(ΔZn×1XT1×f) B n × 1 = B n × 1 − η ⋅ Δ Z n × 1 B^{n \times 1} = B^{n \times 1} - \eta \cdot \Delta Z^{n \times 1} Bn×1=Bn×1ηΔZn×1

其中:

f = 特 征 值 数 , m = 样 本 数 , n = 神 经 元 数 , η = 步 长   A = 预 测 值 , Y = 标 签 值 , X = 输 入 值 , X T = X 的 转 置 f=特征值数,m=样本数,n=神经元数,\eta=步长 \ A=预测值,Y=标签值,X=输入值,X_T=X的转置 f=m=n=η= A=Y=X=XT=X

在这里插入图片描述

  • 训练样本:每次使用一个样本数据进行一次训练,更新一次梯度,重复以上过程。
  • 优点:训练开始时损失值下降很快,随机性大,找到最优解的可能性大。
  • 缺点:受单个样本的影响最大,损失函数值波动大,到后期徘徊不前,在最优解附近震荡。不能并行计算。
    在这里插入图片描述
    上图,迭代时,Loss值毛刺波动非常大,受样本差异影响。

在这里插入图片描述

上图,梯度下降时,开始收敛较快,到后期波动较大,找不到准确的方向。

全批量梯度下降(Batch Gradient Descent)

正向计算过程:

Z n × m = W n × f ⋅ X f × m + B n × 1 Z^{n \times m}=W^{n \times f} \cdot X^{f \times m} + B^{n \times 1} Zn×m=Wn×fXf×m+Bn×1 A n × m = a ( Z ) A^{n \times m}=a(Z) An×m=a(Z)

反向计算过程:

Δ Z n × m = J ′ ( W , B ) = A n × m − Y 1 × m \Delta Z^{n \times m} = J'(W,B) = A^{n \times m} - Y^{1 \times m} ΔZn×m=J(W,B)=An×mY1×m W n × f = W n × f − η ⋅ 1 m ( Δ Z n × m ⋅ X T m × f ) W^{n \times f} = W^{n \times f} - \eta \cdot \frac{1}{m} (\Delta Z^{n \times m} \cdot X_T^{m \times f}) Wn×f=Wn×fηm1(ΔZn×mXTm×f) (按列相加变成nx1) B n × 1 = B n × 1 − η ⋅ 1 m ∑ ( Δ Z n × m , a x i s = 1 ) B^{n \times 1} = B^{n \times 1} - \eta \cdot \frac{1}{m} \sum (\Delta Z^{n \times m}, axis=1) \tag{按列相加变成nx1} Bn×1=Bn×1ηm1(ΔZn×m,axis=1)(nx1)

其中:

f = 特 征 值 数 , m = 样 本 数 , n = 神 经 元 数 , η = 步 长   A = 预 测 值 , Y = 标 签 值 , X = 输 入 值 , X T = X 的 转 置 f=特征值数,m=样本数,n=神经元数,\eta=步长 \ A=预测值,Y=标签值,X=输入值,X_T=X的转置 f=m=n=η= A=Y=X=XT=X

在这里插入图片描述

  • 训练样本:每次使用全部数据集进行一次训练,更新一次梯度,重复以上过程。
  • 优点:受单个样本的影响最小,一次计算全体样本速度快,损失函数值没有波动,到达最优点平稳。方便并行计算。
  • 缺点:数据量较大时不能实现(内存限制),训练过程变慢初始值不同,可能导致获得局部最优解,并非全局最优解。
    在这里插入图片描述
    上图,迭代时,Loss值没有毛刺波动。

在这里插入图片描述

上图,梯度下降时,直接了当达到最佳点。

小批量梯度下降(Mini-Batch Gradient Descent)

正向计算过程:

Z n × k = W n × f ⋅ X f × k + B n × 1 Z^{n \times k}=W^{n \times f} \cdot X^{f \times k} + B^{n \times 1} Zn×k=Wn×fXf×k+Bn×1

A n × k = a ( Z ) A^{n \times k}=a(Z) An×k=a(Z)

反向计算过程:

Δ Z n × k = J ′ ( W , B ) = A n × k − Y 1 × k \Delta Z^{n \times k} = J'(W,B) = A^{n \times k} - Y^{1 \times k} ΔZn×k=J(W,B)=An×kY1×k W n × f = W n × f − η ⋅ 1 k ( Δ Z n × k ⋅ X T k × f ) W^{n \times f} = W^{n \times f} - \eta \cdot \frac{1}{k} (\Delta Z^{n \times k} \cdot X_T^{k \times f}) Wn×f=Wn×fηk1(ΔZn×kXTk×f) (按列相加变成N x 1) B n × 1 = B n × 1 − η ⋅ 1 k ∑ ( Δ Z n × k , a x i s = 1 ) B^{n \times 1} = B^{n \times 1} - \eta \cdot \frac{1}{k} \sum (\Delta Z^{n \times k}, axis=1) \tag{按列相加变成N x 1} Bn×1=Bn×1ηk1(ΔZn×k,axis=1)(N x 1)

其中:

f = 特 征 值 数 , k = 批 样 本 数 , n = 神 经 元 数 , η = 步 长   A = 预 测 值 , Y = 标 签 值 , X = 输 入 值 , X T = X 的 转 置 f=特征值数,k=批样本数,n=神经元数,\eta=步长 \ A=预测值,Y=标签值,X=输入值,X_T=X的转置 f=k=n=η= A=Y=X=XT=X

结合了前两种的优点,又避免了前两者的缺点。

在这里插入图片描述

  • 训练样本:选择一**小部分样本进行训练,**更新一次梯度,然后再选取另外一小部分样本进行训练,再更新一次梯度/
  • 优点:不受单样本噪声影响,训练速度较快。
  • 缺点:batch size的数值选择很关键,会影响训练结果。

一些概念:

  • Batch Size:批大小,一次训练的样本数量。
  • Iteration:迭代,一次正向+一次反向。
  • Epoch:所有样本被使用了一次,叫做一个Epoch。

假设一共有样本1000个,batch size=20,则一个Epoch中,需要1000/20=50次Iteration才能训练完所有样本

在这里插入图片描述

上图,迭代时,Loss值毛刺波动较小。
在这里插入图片描述

上图,梯度下降时,在接近中心时有小波动。图太小看不清楚,可以用matplot工具放大局部来观察。和全批量的图比较,靠近中心的线比较粗,说明有微小波动,而全批量是一根单直线。

小批量的大小通常由以下几个因素决定

  • 更大的批量会计算更精确的梯度,但是回报却是小于线性
  • 极小批量通常难以充分利用多核架构。这决定了最小批量的数值,低于这个值的小批量处理不会减少计算时间
  • 如果批量处理中的所有样本可以并行地处理,那么内存消耗和批量大小成正比。对于多硬件设施,这是批量大小的限制因素。
  • 某些硬件上使用特点大小的数组时,运行时间会更少,尤其是GPU,通常使用2的幂数作为批量大小可以更快,如32 ~ 256,大模型时尝试用16
  • 可能是由于小批量在学习过程中加入了噪声,会带来一些正则化的效果。泛化误差通常在批量大小为1时最好。因为梯度估计的高方差,小批量使用较小的学习率,以保持稳定性,但是降低学习率会使迭代次数增加

在实际工程中,我们通常使用小批量梯度下降形式。

https://github.com/microsoft/ai-edu/blob/master/B-教学案例与实践/B6-神经网络基本原理简明教程/04.4-梯度下降的三种形式.md

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值