5.类神经网络训练不起来怎么办(二):Batch、Momentum

类神经网络训练不起来怎么办(二)

Batch

每个Batch更新一次参数,所有Batch遍历一次叫做Epoch

Small Batch v.s. Large Batch

  1. Batch size=N

    所有资料看过一遍更新参数

  2. Batch size=1

    每一个资料更新一次参数

  • 大的Batch size不一定比小的更新参数的时间长

​ Parallel computing:Gpu的并行运算(有极限)

  • 小的Batch size需要更长的遍历一次epoch

    需要更久的时间遍历所有数据

大的Batch size在Training data得到不好的结果

​ Optimization issue: 大的Batch容易卡在critical point

5.类神经网络训练不起来怎么办(二):Batch、Momentum_第1张图片

Batch size是一个超参数需要我们自己决定

Momentum

不止考虑梯度的反方向,同时考虑前一步怎么走的

第一次:

  1. 选择 θ 0 \theta_0 θ0开始

  2. 前一次移动 m 0 = 0 m^0=0 m0=0

  3. 计算梯度 g 0 g^0 g0

  4. 移动 m 1 = λ m 0 − η g 0 , θ 1 = θ 0 + m 1 m^1=\lambda m^0-\eta g^0,\theta^1=\theta^0+m^1 m1=λm0ηg0,θ1=θ0+m1

第二次开始:

  1. 计算梯度 g 1 g^1 g1

  2. 移动 m 2 = λ m 1 − η g 1 , θ 2 = θ 1 + m 2 m^2=\lambda m^1-\eta g^1,\theta^2=\theta^1+m^2 m2=λm1ηg1,θ2=θ1+m2

    5.类神经网络训练不起来怎么办(二):Batch、Momentum_第2张图片

你可能感兴趣的:(李宏毅机器(深度)学习笔记,神经网络,batch,深度学习)