美文网首页
tensorflow 解决过拟合问题

tensorflow 解决过拟合问题

作者: 一心一意弄算法 | 来源:发表于2018-11-09 14:33 被阅读12次

    过拟合

    第一个模型简单,第二个模型比较合理,第三个模型则过拟合了,容易导致,模型在训练数据上表现良好,而在测试数据上的表现较差的情况。

    正则化特点

    都是通过限制权限的大小。
    L1:让参数变得更稀疏,即使更多的参数变为0,类似特征提取。
    L2:弱参数平方后变的更小,模型优化中几乎可以忽略,比如0.0001的平方。
    当然,根据需要可以结合L1和L2一起使用。

    L1正则化公式如下:
    R(w) = ||w||_1=\sum_i|w_i|
    L2正则化公式如下:
    R(w) = ||w||_2^2=\sum_i|w_i^2|
    结合使用:
    R(w) = ||w||_2^2=\sum_i\alpha|w_i|+\beta|w_i^2|
    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.

    相关文章

      网友评论

          本文标题:tensorflow 解决过拟合问题

          本文链接:https://www.haomeiwen.com/subject/fbhvxqtx.html