美文网首页FastAI
FastAI04-训练时可能遇到的问题

FastAI04-训练时可能遇到的问题

作者: 科技老丁哥 | 来源:发表于2019-10-08 16:23 被阅读0次

    在实际项目中,经常会遇到各种各样的问题,其中有几个典型的训练问题,需要重点注意。

    1. 学习率太高

    学习率太高会出现非常大的valid_loss。eg:

    learn = create_cnn(data, models.resnet34, metrics=error_rate)
    learn.fit_one_cycle(1, max_lr=0.5)
    
    image.png

    出现了这种情况,我们别无他法,只能使用更小的lr,从新开始训练模型。

    2. 学习率太低

    学习率太低的一个重要特点是,train_loss下降的速度非常慢,很平缓,而且train_loss一直位于valid_loss上方,表明是一种欠拟合的状态。比如:

    learn = create_cnn(data, models.resnet34, metrics=error_rate)
    learn.fit_one_cycle(5, max_lr=1e-5)
    

    如果用图片展示,可以看到:


    所以这种情况,就是学习率太小导致的欠拟合状态,我们要10倍或100倍的提高lr,重新训练。

    3. epochs太少

    epochs太少就是模型训练得太少,还没有训练够,所以出现了train loss要比valid_loss还要大的情况。所以太少的epoch和太小的lr的结果是相似的,都是欠拟合状态。这时需要增加lr或增加epochs来训练。


    4. epochs太多

    epochs太多时,容易出现过拟合,过拟合的现象是,error_rate下降之后,开始上升了。这时的上升说明开始出现了过拟合,说明模型已经偏向于记住train set中的特点而不是学习到通用的特征。

    有的人认为:如果train loss比valid loss低,那就是过拟合,但其实这种说法并不完全正确,一般的,任何一个正确的训练模型的train loss都要比valid loss更低,所以这并不能说明出现了过拟合。

    所以过拟合的标志是:error_rate开始变得更糟糕,这时才表明出现了过拟合。

    下面的结果就是epochs太多导致的过拟合:

    epoch train_loss valid_loss error_rate time
    0 1.281925 1.141897 0.694323 00:07
    1 1.346654 1.129421 0.694323 00:03
    2 1.340803 1.107458 0.681223 00:03
    3 1.355779 1.085071 0.646288 00:03
    4 1.295381 1.050753 0.589520 00:03
    5 1.224308 1.000656 0.497817 00:03
    6 1.159185 0.938931 0.397380 00:03
    7 1.088768 0.867412 0.310044 00:03
    8 1.008123 0.788017 0.231441 00:03
    9 0.938289 0.708754 0.157205 00:03
    10 0.864608 0.634222 0.122271 00:03
    11 0.793969 0.566193 0.096070 00:03
    12 0.733825 0.508754 0.082969 00:03
    13 0.680985 0.458568 0.069869 00:03
    14 0.632074 0.418085 0.061135 00:03
    15 0.589376 0.385271 0.056769 00:03
    16 0.551403 0.356482 0.056769 00:03
    17 0.516843 0.330840 0.052402 00:03
    18 0.485706 0.311566 0.052402 00:03
    19 0.457809 0.295450 0.052402 00:03
    20 0.432226 0.281761 0.052402 00:03
    21 0.408979 0.269984 0.052402 00:03
    22 0.387673 0.259906 0.048035 00:03
    23 0.368162 0.251425 0.039301 00:03
    24 0.350114 0.245693 0.034934 00:03
    25 0.333477 0.238942 0.034934 00:03
    26 0.318159 0.232099 0.030568 00:03
    27 0.303887 0.226424 0.030568 00:03
    28 0.290654 0.222446 0.030568 00:03
    29 0.278258 0.218786 0.034934 00:03
    30 0.266660 0.215658 0.030568 00:03
    31 0.255738 0.214105 0.030568 00:03
    32 0.245596 0.209824 0.030568 00:03
    33 0.236173 0.205443 0.034934 00:03
    34 0.227359 0.204399 0.030568 00:03
    35 0.218893 0.202812 0.030568 00:03
    36 0.210922 0.202212 0.039301 00:03
    37 0.203402 0.201633 0.039301 00:03
    38 0.196221 0.201402 0.039301 00:03
    39 0.189409 0.201313 0.039301 00:03

    可以看到,error_rate从epoch 29之后就慢慢的出现了过拟合。

    相关文章

      网友评论

        本文标题:FastAI04-训练时可能遇到的问题

        本文链接:https://www.haomeiwen.com/subject/efgbpctx.html