过拟合
第一个模型简单,第二个模型比较合理,第三个模型则过拟合了,容易导致,模型在训练数据上表现良好,而在测试数据上的表现较差的情况。正则化特点
都是通过限制权限的大小。
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.