正则化缓解过拟合

版权声明:转载注明出处 https://blog.csdn.net/J0Han/article/details/82935944

正则化缓解过拟合

正则化在损失函数中引入模型复杂度指标,利用给w参数加权值,弱化了训练数据的噪声(一般不正则化b)

loss = loss(y与y_) + REGULARIZER * loss(w)
  • loss(y与y_)指的是模型中所有参数的损失函数,如:交叉熵,均方误差
  • REGULARIZER指的是参数w在总loss中所占的比例,即正则化的权重
  • loss(w)中的w就是需要正则化的参数

loss(w)有两种计算方法:

  1. loss(w) = tf.contrib.layers.l1_regularizer(REGULARIZER)(w) 是L1正则化计算
    l o s s L 1 = i w i loss_{L1}=\sum_{i}|wi|

  2. loss(w) = tf.contrib.layers.l2_regularizer(REGULARIZER)(w) 是L2正则化计算

l o s s L 1 = i w i 2 loss_{L1}=\sum_{i}|wi^2|

tf.add_to_collection('losses', tf.contrib.layers.l2_regularizer(regularizer)(w)) 

这段代码是指把计算好的所有w正则化的参数加在losses集合中

loss = cem + tf.add_n(tf.get_collection('losses'))

这段代码指的是把losses里的所有值相加再加上交叉熵构成了总损失函数loss

猜你喜欢

转载自blog.csdn.net/J0Han/article/details/82935944