关于优化算法
首先看梯度下降算法关于训练集的分类:
batch梯度下降:更新一次梯度使用的是整个训练集
mini-batch梯度下降:更新一次梯度使用的是一个mini-batch,这是目前最常用的方法
随机梯度下降(SGD):训练每一个样本都要更新一次梯度
(但是在莫凡pytorch里面的 regression 和 classification 这两节里面,明明是对自己生成的100个样本点进行batch梯度下降,但他使用的优化器居然是torch.optim.SGD()???这也行。。。)
具体的优化算法:
最原始的就是我们最先接触的标准梯度下降法
然后发明了基于指数加权平均的动量优化算法
接着发明了类似的全方根算法RMSprop
最后就是结合了动量梯度下降和RMSprop的Adam算法
注:Adam优化器自带可以自己调节的学习率,这一点非常方便
(根据莫凡pytorch中的四个优化器算法的对比,Adam是最强的,DCASE异常检测baseline使用的也是Adam优化器,所以下次犹豫不决的时候直接Adam就完事了)