学习率的秘密(二):临阵磨枪,不亮也光

教程发布 无标签
DeepFaceLab
DeepFaceLab DeepFaceLab 2019-12-17 12:17:57
用户等级:0级

小伙伴们以前在学校考试的时候,都知道一个应试技巧,就是在考试前把那些还没记住的内容再看一遍,发卷后先找有没有和这些内容有关的试题,趁着自己还没忘,先把这些题做了。如果运气好,真遇到了一两道大题,这种临阵磨枪的方法,真的能提高不少成绩呢。

在模型训练的过程中,也有一个临阵磨枪的训练方法。可以在训练的最后阶段,用很短的时间,将模型质量再提高一个台阶。这个方法就是减小模型的学习率。

小朋友们可能疑惑了,在我们上一篇文章说,提高学习率可以提高训练效率,那么减小学习率怎么也能提高学习效率?还真是这样,应该在不同的训练阶段选择合适的学习率,在训练初期可以加大学习率,但在最后阶段,应该减小学习率,帮助模型快速收敛。在模型训练的最后阶段,由于模型最优解的稳定性的问题,程序并不会直接接近最优解,而是会在最优解附近震荡。减小学习率相当于在震荡中加入一个阻尼,反而有利于模型更快的进入最优解。

我们建议在模型训练的最后阶段,逐步将学习率设置为1e-5以下。我们管这个过程叫做“攻丹”,意思是最后攻下“仙丹”。减小学习率后,并不需要再训练很长时间,在几十分钟内loss值会再降低10%~15%左右,之后就不会再有什么变化。我们知道模型的loss值在模型训练后期是很难下降的,100W的模型和200W的模型之间,可能也就只有10%到15%的提高。攻丹操作相当于直接把100W的模型升级为200W的模型。减小模型学习率还有一个好处,就是可以减小模型崩溃的概率。因为每一步学习都只做很小的调整,这样就很难出现极大的梯度。如果小伙伴们遇到了模型经常崩溃的情况,也可以适当减小学习率,防止模型崩溃。

原理:

在训练的最后阶段,模型中的参数并不会慢慢的接近能让loss最小的那个最优点,而是会在最优点附近震荡,打转。调小学习率相当于在训练过程中加入一个阻尼,减小震荡的幅度,让模型尽快进入一个局部最优点。

测试:

我们在一个已经训练了18W步的模型进行了“攻丹”操作。在攻丹前loss值为0.149,之后先将学习率降低为1e-5,训练15分钟后,再一次将学习率降低到1e-6,训练15分钟后,loss值为0.126,下降了大约15%。我们在预览窗口按l键放大loss历史曲线记录,也可以看到,loss值在最后面有一个明显的下降。


注意事项:

  1. 攻丹操作是一次性的,攻丹后应该直接做合成操作。不要再调大学习率训练,否则模型会重新震荡起来,loss反而会升高。
  2. 攻丹操作可以应用于任何模型中。
  3. 不推荐将“攻丹”操作用于 “母丹”。有两个原因,“母丹”是用来生成“子丹”的,而攻丹操作是用于合成前的最后优化。而另一个原因是:你那个“母”的,遇到“公”的,就不灵了。
楼主签名:
回帖
回复列表
  • 谁来换个猴哥的脸
    0 回复
  • sdssfdf
    2020-03-17 15:50:29
    1e-6是不是1x10的6次方的意思
    1 回复
  • dfcious
    2020-02-07 17:22:43
    这篇文章写得非常有意思,尤其是你那个“母”的,遇到“公”的,就不灵了,比喻的甚是有趣
    2 回复

版块列表

本站热帖
01 AI换脸第三步:DeepFaceLab使用教程(1.安装及分解视频) 15588
02 2GB显存畅玩 DeepFaceLab更新至2020.01.08 14991
03 AI换脸第三步:DeepFaceLab使用教程(2.训练及合成) 13882
04 P100真香:DeepFaceColab详细教程 8686
05 AI换脸第二步:选择合适的DeepFaceLab版本 8226
06 DeOldify – 一个强大的AI修复老照片(视频)项目 8067
07 一天学会AI换脸:DeepFaceLab 新手导航 8052
08 DeepFaceLab不同模型的参数含义 7243
09 极致的遮罩处理(一):DeepFaceLab手动遮罩编辑。 6872
10 图像无损放大工具 Topaz Gigapixel AI v4.4.4 破解版 6679
11 选择合适的模型 H64 -H128 -DF -SAE -SAEHD 6590
12 AI换脸第一步:给你的电脑安装适当的显卡驱动 6513
13 DeepFaceLab H256模型免费下载 6421
14 SAEHD不香吗?谈谈SAE与SAEHD 6258
15 DeepFaceLab更新至2019.12.29 5534
16 云盘版DeepFaceColab 在你的云盘训练模型 5451
17 发个模型,DeepFaceLab Quick96模型免费下载 5382
18 DeepFaceLab新手基础知识:训练期间如何更改参数值? 5357
19 合成必修课:7) convert 合成合成如何从“人皮面具”变成“真实脸部” 5260
20 不做无用功 Google Colab掉线自动重连“助手” 5233