7. 神经网络参数优化器
神经网络是基于连接的人工智能,当网络结构固定后,不同参数的选取对模型的表达力影响很大,更新模型参数的过程,仿佛在叫一个孩子理解世界,达到学龄的孩子,脑神经元的结构,规模是相似的,他们都具备了学习的潜力,但是不同的引导方法,会让孩子具备不同的能力,达到不同的高度。
优化器就是引导神经网络更新参数的工具。
- 几个符号的含义
待优化的参数w ,损失函数loss,学习率lr,每次迭代的一个batch(每个batch通常包括2n组数据 ),t表示当前batch迭代的总次数。
- 更新参数分为四步完成
计算t时刻损失函数关于当前参数的梯度
- 让loss对当前的每个w求偏导数
计算t时刻一阶动量mt和二阶动量Vt
一阶动量:与梯度相关的函数
二阶动量:与梯度平方相关的函数
不同的优化器实质上只是定义了不同的一阶动量和二阶动量公式
计算t时刻下降梯度:
- 学习率乘以一阶动量除以二阶动量开根号
计算t+1时刻参数:
- 当前参数减去当前下降梯度
- 五种常用的神经网络参数优化器
-
SGD
- 一阶动量定义为梯度,二阶动量恒等于一
-
SGDM(在SGD基础上增加一阶动量)
- mt 表示各时刻梯度方向的指数滑动平均值
-
Adagrad(在·SGD基础上增加二阶动量)
- 二阶动量是从开始到现在 ,梯度平方的累计和
-
RMSProp(在SGD基础上增加二阶动量)
- 二阶动量是各时刻梯度平方的指数滑动平均
-
Adam(同时引入了SGDM的一阶动量和RMSProp的二阶动量)