深度学习中,一般如何防止过拟合?

方式一

使用传统的L1、L2正则化来防止过拟合;

  • 由于正则化可以限制权重W的大小,从某种意义上可以降低模型复杂度,可以具有更好泛化能力。另外,奥卡剃姆刀原理也说明模型复杂度越小越好
  • 正则化可以认为是一个惩罚项,只有当每次更新获得更大的收益时,才会选择更新;这样有利于减少噪声的影响。
  • 方式二

    使用dropout层来防止过拟合。

    将输入的tensor中的每个元素按照一定的概率置为0,如果不置为0,则按照一定一定的比例进行缩放,目的是为了保证和不变;keep_prob=0.2表示将80%的元素置为0剩下的20% 元素除以0.2;


    深度学习中,一般如何防止过拟合?


    方式三

    batchNormalize防止过拟合。

    对输入的一批样本按照维度进行归一化,归一化之后的数据往往分布在坐标轴的原点附近,拟合得到的参数会比较小,所以可以防止过拟合;


    深度学习中,一般如何防止过拟合?


    方式四

    LayerNormalize防止过拟合

    与batchNormalize类似,同样是对数据进行归一化,只不过是按照行的维度进行归一化。


    深度学习中,一般如何防止过拟合?


    方式五

    简化神经网络,比如:减少神经网络层数、减少每一层神经元个数等;

    方式六

    降低学习率,减少迭代次数等防止过拟合

    方式七

    终极方案:增加数据量


    关于神经网络防止过拟合你还有其他的方法吗?欢迎留言交流


    分享到:


    相關文章: