凭什么要用余弦退火,不用正弦退火

先说结论:

余弦退火功能:让学习率像余弦波一样平滑地先缓降、再快降,最后在谷底温柔触底。

为什么?

先看看公式

看着烦,不看了,核心就是:f(t)

来看看对t求导,其他的不用管 得到一个sin(t / T *Π)* 【一个数】(别管他,不重要,反正你硬要算还是这个数,要学会像电脑一样节省计算资源,当然你钻牛角尖当我没说,或着说,不对不对,我就告诉你,这是关于t的函数,其他视作常数)

那么t 在 0 处(开始)t在 1处(结束)都是 0 这时候的学习率不会变动

看到这里感到蒙?你求导有啥用?导数 0 又有啥用?

还记得导数定义公式吧

条件有限,网上随便找的,你先把x看成t也就是说 ,在h -->0 下

导数值f'(x) * 变化量 h = f(x + h) - f(x) [实际学习率的变化量]

导数为 0,实际 学习率的变化量为 0 也就是说学习率开始结束都不变

但 你 t 在 > 0呢? 他是不是就大了一点 当他t 到 T/2时,也就是变化中期,这个变化巨快 等到你模型快训练完的时候 基本上学习率也固定了

现在你回头看看那部分

但如果把cos换成sin会发生什么事情,相信你也能推断出来了

sinx --》cosx

他在开始和结束 的值都为 1 也就是说 学习率这时候变化巨快 开始还行 但模型训练到最后,你还变那么快 ,这不胡闹嘛!