过拟合的处理方法

避免过拟合的方法

early stopping :在发生拟合之前提前结束训练,理论上可行,但点不好把握
数据集扩增:让模型见到更多的情况,最好的满足全样本,实际情况下不好弄
正则化:通过引入范数的概念,增强模型的泛化能里,包括L1、L2
dropout:一种模型方法,每次训练是会舍弃一些节点来增强泛化能力

1.正则化

正则化

正则化,就是在计算损失值的过程中,在损失的后面在加上一项,使得到的误差得到干扰,使模型无法与样本完全拟合,从而达到防止过拟合的结果
干扰项的特性:

  1. 当欠拟合时,对模型的影响越小越好
  2. 过拟合时,对模型的影响越大越好

引入两个范数
L1:所有学习参数w的绝对值和
L2:所有学习参数w的平方和然后求平方根

TensorFlow中的用法

L2有相应的函数:tf.nn.l2_loss(t)
L1需要自己写:tf.reduce_sum(tf.abs(w))

2.通过增大数据集改善过拟合

3.dropout—训练过程中丢弃部分神经元

dropout原理

数据集中总会有一些异常的数据对最终的结果产生影响,丢弃这些数据会效果更好

TensorFlow中的用法

tf.nn.dropout(x,keep_prod)
x指的是模型节点
keep_prod:指的是保持率,如果为1表示全部学习

你可能感兴趣的:(python,python)