神经网络参数 ----优化器

  • 神经网络参数优化器

不同参数选取对网络影响比较大,在网络结构已经固定的情况下。

神经网络优化的过程,就好比 培养一个孩子。
它们都有学习的潜力,但是不同的引导方法,会让孩子向不同方向发展,达到不同的高度。

优化器 就是 引导神经网络更新参数的工具。

五种常用的神经网络优化器

相关概念

待优化参数 w
损失函数loss
学习率 lr
batch 将多少个数据打包
当前batch的迭代次数

更新过程分为4步:

第一步:
计算t时刻,损失函数关于当前参数的梯度

在这里插入图片描述
就是loss函数,对每一个参数进行求偏导数。

第二步:
计算t时刻,一阶动量mt
和二阶动量 Vt

一阶动量: 与梯度相关的函数。
二阶动量:与梯度平方相关的函数。

不同的优化器,实质上,就是 不同的 一阶动量 和 二阶动量的组合。

第三步:
计算 一塔
即 学习率 x 一阶动量/ 根号下的二阶动量
神经网络参数 ----优化器_第1张图片

第四步:
计算t+1时刻的参数
当前参数— 一塔

神经网络参数 ----优化器_第2张图片

最常用的优化器

SGD 随机梯度下降

一阶动量 定义为梯度
二阶动量 恒等于1

神经网络参数 ----优化器_第3张图片
单层网络就两行
在这里插入图片描述

SGDM

在SGD的基础上增加了一阶动量

一阶动量: 多了一个Mt-1的参数
代表上一个时刻的一阶动量
这里的贝塔尔是超参数,往往设置为0.9
上一阶段的一阶动量占大头。

二阶动量:仍然恒等于一。

神经网络参数 ----优化器_第4张图片
神经网络参数 ----优化器_第5张图片

一阶动量 很大程度上 由 上一时刻的一阶动量所决定。

Adagrad

在SGD基础上 增加二阶动量
神经网络参数 ----优化器_第6张图片
一阶动量: 当前时刻的梯度
二阶动量:梯度平方的累计和

零时刻的 w 和 b的二阶动量 初始值都为0.
当前的二阶动量 v_w,v_b 等于 当前梯度评分的累计和
神经网络参数 ----优化器_第7张图片

RMSProp

二阶动量:使用指数滑动平均数来进行计算。
表示 过去一段时间的平均值。
神经网络参数 ----优化器_第8张图片
代码更新部分:
神经网络参数 ----优化器_第9张图片

Adam

同时引入 SGDM的一阶动量 和 RMSProp的二阶动量
并且 增加了 两个 修正项
把修正后的一阶动量 和 二阶动量 带入 参数更新公式,实现参数自更新。

神经网络参数 ----优化器_第10张图片

代码部分:
神经网络参数 ----优化器_第11张图片

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