较大weight decay值能导致每次更新时的梯度取值范围扩大。若weight decay设置过低,其正则化作用将减弱,对模型性能产生不利影响。结合Transformer架构与较大weight decay值能优化网络参数,有助于提升模型性能。大weight decay值通过扩大梯度更新幅度,促使模型更快收敛至更优解,避免过拟合现象,从而在训练过...
2. 余弦衰减(Cosine Decay)
在代码中也做了一些注释用于对应之前给出的Adam简化版公式,方便理解。可以看出update += self.weight_decay_rate * param这一句是Adam中没有的,也就是Adam中绿色的部分对应的代码,weightdecay这一步是是发生在Adam中需要被更新的参数update计算之后,并且在乘以学习率learning_rate之前,这和图片中的伪代码的计算顺序...
我的经验是具有Transformer结构的网络,配合更大的weight decay,效果更好。我没有分析过梯度更新时的数值...
其中decay_rate和eps都是超参数,每一步的变量cache的值都不同,所以可以看做自适应得对学习率进行调整。 还有一些其他效果较好的优化器,由于这些前置知识已经足够理解Adam了,所以在此不做过多介绍。 Adam Adam可以看做动量法和RMSprop的结合 # Adam m = beta1*m + (1-beta1)*dx ...
我自己跑下来也的确是这个样子。实测AdamWlr0.001 + wd0.009 在我这个小数据集里第30个epoch就超过...
我觉得可能跟norm更少有关,我也注意到如果采用transformer的norm方式,训练集loss会下降很快但是验证集...
我自己跑下来也的确是这个样子。实测AdamW lr0.001 + wd0.009 在我这个小数据集里第30个epoch就...