一、优化器:利用损失函数的梯度,更新模型参数,使得损失变小
1.导数:函数再指定坐标轴上的变化率
2.方向导数:指定方向上的变化率
3.梯度的方向:方向导数最大的方向
4.梯度的模长:向量值
5.梯度下降:根据梯度的负方向使loss不断降低
二、pytorch中优化器——Optimizer
各种优化器都在optim包中,eg optim.SGD()
基本属性:defaults:优化器参数,(net.parameters(),学习率,momentum=0.9(动量,结合当前梯度与上一次更新信息,用于当前更新)控制记忆周期,通常设置为0.9这样会关注之前10次更新的数据)
普通梯度下降:
pytorch中更新公式为:
param_groups:管理的参数组(列表,元素为字典,最重要的一个元素为 key为params的元素)
state:参数的缓存,也是字典
_step_count:记录更新次数,学习率调整中使用
基本方法:zero_grad():清空所管理的参数的梯度(因为张量