凭什么要用余弦退火,不用正弦退火
先说结论:
余弦退火功能:让学习率像余弦波一样平滑地先缓降、再快降,最后在谷底温柔触底。
为什么?
先看看公式
看着烦,不看了,核心就是: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