在 Backward 的时候我们会得到梯度 ,优化器(Optimizer)的作用就是用它来更新权重矩阵 。
最传统的 Optimizer 就是 SGD ,表达式是:
其中 是学习率。
目前用的最常见的 Optimizer 是 Adam,相比于 SGD ,它考虑了多次梯度的平滑效应,使得变化更加均匀:
可以看出不再是 直接更新权重矩阵了,而是新引入了一个 ,而它的表达式是:
那么 又是怎么得出呢?依靠的是两个迭代维护的状态变量:
AdamW 是 Adam 的一个变体,思路是接近的。
DeepSeek 的 V4 采用了 Muon 优化器,它的思路是在 AdamW 的基础上,补上了一个正则化(通过 SVD 将 除掉)的处理。只能用于二维的权重矩阵,据说有更好的训练稳定性和收敛性(Convergence)。