tf.contrib.layers.l2_regularizer


import tensorflow as tf
import tensorflow.contrib as contrib

weight = tf.constant([[1.0, -2.0], [-3.0, 4.0]])
with tf.Session() as sess:
    # 輸出為(|1|+|-2|+|-3|+|4|)*0.5=5
    print(sess.run(contrib.layers.l1_regularizer(0.5)(weight)))
    # 輸出為(1²+(-2)²+(-3)²+4²)/2*0.5=7.5
    # TensorFlow會將L2的正則化損失值除以2使得求導得到的結果更加簡潔
    print(sess.run(contrib.layers.l2_regularizer(0.5)(weight)))
    # l1_regularizer+l2_regularizer
    print(sess.run(contrib.layers.l1_l2_regularizer(0.5, 0.5)(weight)))

規則化可以幫助防止過度配合,提高模型的適用性。(讓模型無法完美匹配所有的訓練項。)(使用規則來使用盡量少的變量去擬合數據)

規則化就是說給需要訓練的目標函數加上一些規則(限制),讓他們不要自我膨脹。

損失通常被添加到 tf.GraphKeys.REGULARIZATION_LOSSES

機器學習的 L1 和 L2 規范

其他規則化函數 Regularizers

  • tf.contrib.layers.apply_regularization

  • tf.contrib.layers.l1_regularizer

  • tf.contrib.layers.l2_regularizer

  • tf.contrib.layers.sum_regularizer


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM