当前位置 博文首页 > hallobike的博客:网络优化、超参数选择、过拟合处理

    hallobike的博客:网络优化、超参数选择、过拟合处理

    作者:[db:作者] 时间:2021-09-14 22:00

    网络容量

    可以认为与网络中的可训练参数成正比
    网络中的神经单元数越多,层数越多,神经网络的拟合能力越强。但是训练速度、难度会变大,越容易产生过拟合。

    超参数: 在搭建神经网络中,需要我们自己选择(不是通过梯度下降算法去优化)的那些参数。比如中间层的神经元个数、学习速率。

    如何提高网络的拟合能力

    一种明显的做法就是增大网络容量:
    1、增加层 :大大提高网络的拟合能力。这也是深度学习的层数越来越深的原因。
    2、增加隐藏神经元个数:对于网络的提高并不明显。
    注意:单层的神经元个数也不能太少,太少的话,会造成信息瓶颈,使得模型欠拟合。

    # 在训练的时候同时验证测试集
    validation_data  = (test_image, test_onehot)
    # 在history的keys中就会有四个字段如loss,acc,val_loss, val_acc
    # 可以使用plt画出loss和acc曲线去分析。
    plt.plot(history.epoch, history.history.get('loss'), label='loss')
    plt.plot(history.epoch, history.history.get('val_loss'), label='val_loss')
    plt.legend()
    

    过拟合: 在训练集上得分很高,在测试集上得分比较低。
    欠拟合: 在训练集上得分比较低,在测试集上得分也比较低。

    使用Dropout抑制过拟合

    (1)取平均的作用;
    (2)减少了神经元之间复杂的共适应关系;
    (3)Dropout类似于性别在生物进化中的角色。

    参数选择原则

    理想的模型是刚好在欠拟合和过拟合的界线上,也就是正好拟合数据。
    首先开发一个过拟合模型:
    (1)添加更多的层;
    (2)让每一层隐藏单元数更多;
    (3)训练更多的轮次。
    然后抑制过拟合:最好办法增加训练数据
    (1)dropout
    (2)正则化
    (3)图像增强
    再次调节参数:
    学习速率;
    隐藏单元数;
    训练轮次。

    构建网络的总原则:
    1、增大网络容量;
    2、采取措施抑制过拟合;
    3、继续增大网络容量,直到过拟合。

    cs