【原创】深度学习学习笔记(三)-神经网络训练过程(2)

5.参数更新

5.1 简表

概念寻找能使损失函数最小的参数矩阵w的过程
主体思路迭代优化
常见方法梯度下降,SGD,Momentum, NAG,AdaGrad,RMsprop,Adam…
如 torch下:
torch.optim.Adam

5.2 学习率

目的: 加快收敛速度
常用方法:
1)先用一个大的值,等损失不在下降再用一个小的值
2)为每一个参数使用不同的学习率
3)或使用二阶导数

5.3 小批量

过程:

  1. 先选择n个训练样本(n<N,N为整个训练集样本总数)
  2. 分别训练n个样本得到n个梯度
  3. 对n个样本加权平均求和作为这次小批量的下降梯度
  4. 重复上面直到周期完整数据集都输入网络

迭代:指一个周期中小批量的数目
小批量大小:超参数 可以是 32,64,128 (一般为2的幂)

5.4 寻优方法

5.4.1 SGD系列

  1. 批量梯度下降(Batch Gradient Descent)
  2. 随机梯度下降(Stochastic Gradient Descent)
  3. 以及小批量梯度下降(Mini-Batch Gradient Descent)
    N个样本,当小批量大小n
    n=N时为BGD
    n=1时为SGD
    n>1,n<N时为小批量

用当前位置的负梯度方向作为搜索方向
【原创】深度学习学习笔记(三)-神经网络训练过程(2)
w 梯度来自小批量
缺点:

  1. 可能是嘈杂的导致参数更新慢,且易收到局部最优点或者鞍点的干扰。
  2. 在梯度为0时,梯度详见会被卡住

5.4.2 Momentum(动量)

为随机梯度下降增加一个动量项
将梯度估计值加到原来速度上,沿着速度方向走而不是梯度方向
【原创】深度学习学习笔记(三)-神经网络训练过程(2) 【原创】深度学习学习笔记(三)-神经网络训练过程(2)
【原创】深度学习学习笔记(三)-神经网络训练过程(2)【原创】深度学习学习笔记(三)-神经网络训练过程(2)分别表示本次和上次参数更新的速度,E损失函数,【原创】深度学习学习笔记(三)-神经网络训练过程(2)为摩擦常数,通常设置为0.9,会使当前速度衰减。

5.4.3 NAG (Nesterov Acceleration Gradient)

动量计算前瞻梯度,并将其与速度混合
【原创】深度学习学习笔记(三)-神经网络训练过程(2)
可减少无用迭代,把梯度计算放在对参数施加当前速度之后

6. 批归一化 Batch Normalization

对每一批数据进行归一化处理,通常放在激活函数前
做法:让数据通过一个模块进行预处理,使其服从标准高斯分布,实现层面在全连接或卷积层与激活函数之间添加一个批归一化层,也叫BN层。
输入:小批量输入 【原创】深度学习学习笔记(三)-神经网络训练过程(2)
输出:BN层输出【原创】深度学习学习笔记(三)-神经网络训练过程(2)
【原创】深度学习学习笔记(三)-神经网络训练过程(2) — 均值
【原创】深度学习学习笔记(三)-神经网络训练过程(2) — 方差
【原创】深度学习学习笔记(三)-神经网络训练过程(2) — 归一化
【原创】深度学习学习笔记(三)-神经网络训练过程(2)
【原创】深度学习学习笔记(三)-神经网络训练过程(2)为避免除数为0使用的微小整数,【原创】深度学习学习笔记(三)-神经网络训练过程(2)尺度因子,【原创】深度学习学习笔记(三)-神经网络训练过程(2)平衡因子,训练自己学到
【原创】深度学习学习笔记(三)-神经网络训练过程(2)=【原创】深度学习学习笔记(三)-神经网络训练过程(2),且【原创】深度学习学习笔记(三)-神经网络训练过程(2)=【原创】深度学习学习笔记(三)-神经网络训练过程(2)时,BN层无效
BN层作用:
①增加了增个网络的梯度流
②支持更高的学习率,可以更快的训练网络
③减少算法对合理初始化的依赖性
④正则化作用

7. 正则化

不适定问题,指解不存在或解不唯一,或解的条件多,求解不适定问题方法
用一组与原不适定问题相邻近的适定问题的解去逼近原问题的解,这种方法叫正则化
过拟合:过于完美的训练数据反而不能有效的预测新样本
常用正则化方法
①为损失函数增加正则化惩罚项【原创】深度学习学习笔记(三)-神经网络训练过程(2)
②数据增强
③随机失活
④模型集成
⑤其他,弹性正则化,随机失联,最大范数约束等

7.1 惩罚项【原创】深度学习学习笔记(三)-神经网络训练过程(2)

【原创】深度学习学习笔记(三)-神经网络训练过程(2)
其中【原创】深度学习学习笔记(三)-神经网络训练过程(2):正则化强度
【原创】深度学习学习笔记(三)-神经网络训练过程(2)正则化,【原创】深度学习学习笔记(三)-神经网络训练过程(2)其中 W第l层中第k个参数
【原创】深度学习学习笔记(三)-神经网络训练过程(2)正则化,【原创】深度学习学习笔记(三)-神经网络训练过程(2)
【原创】深度学习学习笔记(三)-神经网络训练过程(2)会使得网络稀疏,W中一些参数为0
【原创】深度学习学习笔记(三)-神经网络训练过程(2)通过对所有参数平方来抑制大数值的参数,对大参数给予高惩罚,会使参数矩阵w取值更平均。

7.2 数据增强

水平翻转、随机选择图像、截图、颜色抖动、随机旋转、伸缩变换

7.3 随机失活

每次训练只有一部分发挥作用,减少了每次训练过程中涉及参数数目,降低了训练时的网络表达能力,只用于训练过程中

7.4 模型集成

分别训练几个独立的神经网络,在测试时平均所有神经网络的预测结果。可将准确率提升几个百分点
方法:
a. 训练过程中保持神经网络的多个快照集成
b. 不同的初始化集成
c. 训练过程中不同时间点的集成

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2022年5月23日
下一篇 2022年5月23日

相关推荐