问题引入

过拟合是经典的问题,无论是在机器学习还是深度学习中都会用到用到,而且也容易会被面试到,那么深度学习中的防止过拟合的方法主要有哪些呢?

深度学习有哪些防止过拟合的方法?_java

问题解答

1.early stop(及早停止)
在训练过程中,每经过一个epoch,就在验证集上进行测试,当测试结果经过几轮不再提高时,就停止训练

2.data expending(扩大训练数据)
过拟合是因为模型学习到了训练集的独有特性,用更多的数据使得模型不能学习到独有的特性,而只能学习到普遍特性的话,过拟合的现象会缓解

3.加入正则约束
在代价函数中加入一项正则项,例如L1正则约束
深度学习有哪些防止过拟合的方法?_java_02

4.Droup Out

以一定的概率使某些神经元停止工作,可以从ensemble的角度来看,顺便问下为啥Droup Out效果就是好呢?可以看这里

5.BatchNorm

BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布;若对神经网络每一层做归一化,会使每一层输出为标准正太分布,会使神经网络完全学习不到特征

参考:

https://blog.csdn.net/w326639619/article/details/53072140

https://blog.csdn.net/hjimce/article/details/50866313

https://blog.csdn.net/seasermy/article/details/53760670

https://www.cnblogs.com/jie-dcai/p/5822333.html

喜欢就关注一下啦~~~


深度学习有哪些防止过拟合的方法?_java_03