過擬合
第一個模型簡單,第二個模型比較合理,第三個模型則過擬合了,容易導致,模型在訓練數據上表現良好,而在測試數據上的表現較差的情況。正則化特點
都是通過限制權限的大小。
L1:讓參數變得更稀疏,即使更多的參數變為0,類似特征提取。
L2:弱參數平方后變的更小,模型優化中幾乎可以忽略,比如0.0001的平方。
當然,根據需要可以結合L1和L2一起使用。
L1正則化公式如下:
L2正則化公式如下:
結合使用:
tensorflow代碼實戰:
#L1,L2demo
w = tf.constant([[1.0,2.],[-2.,4.]])
with tf.Session() as sess:
print(sess.run(tf.contrib.layers.l1_regularizer(0.5)(w)))
print(sess.run(tf.contrib.layers.l2_regularizer(0.5)(w)))
print(sess.run(tf.contrib.layers.l1_l2_regularizer(scale_l1=0.5,scale_l2=0.5)(w)))
out:
4.5
6.25
10.75
由demo可以看出,tensorflow 會將L2正則的值除以2.