什么是过拟合
过拟合是指在模型参数拟合过程中的问题,由于训练包含抽样误差。训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。
过拟合的原因
1.数据量少
2.使用模型比较复杂
正则化缓解过拟合代码实现
正则化在损失函数中引入模型复杂度指标,利用给W加权值,弱化了训练数据的噪声(一般不正则化b)
loss(w) = tf.contirb.layers.l1_regularizer(REGULARIZER)(w)
loss(w) = tf.contirb.layers.l2_regularizer(REGULARIZER)(w)
tf.add_to_collection("losses",tf.contrib.layers.l2_regularizer(regularizer)(w))
loss = cem+tf.add_n(tf.get_collection("losses"))
解决过拟合问题
1.增加训练数据量
2.选择合适的模型
3.正则化(L1、L2)
4.Bagging
5.Boosting
6.Dropout
7.贝叶斯方法