簡體   English   中英

Tensorflow-添加L2正則化損失的簡單示例

[英]Tensorflow - adding L2 regularization loss simple example

我熟悉機器學習,但是我正在閱讀大學的一些幻燈片,從而獨自學習Tensorflow。 下面,我僅使用一項功能設置線性回歸的損失函數。 我正在將L2損失添加到總損失中,但是我不確定自己是否做得正確:

# Regularization
reg_strength = 0.01

# Create the loss function.
with tf.variable_scope("linear-regression"):
    W    = tf.get_variable("W", shape=(1, 1), initializer=tf.contrib.layers.xavier_initializer())
    b    = tf.get_variable("b", shape=(1,), initializer=tf.constant_initializer(0.0))
    yhat = tf.matmul(X, W) + b

    error_loss = tf.reduce_sum(((y - yhat)**2)/number_of_examples)
    #reg_loss   = reg_strength * tf.nn.l2_loss(W)   # reg 1
    reg_loss   = reg_strength * tf.reduce_sum(W**2) # reg 2
    loss       = error_loss + reg_loss

# Set up the optimizer.
opt_operation = tf.train.GradientDescentOptimizer(0.001).minimize(loss)

我的具體問題是:

  1. 我有兩條線(分別稱為reg 1reg 2 )來計算重量W的L2損失。 標記為reg 1的行使用Tensorflow內置函數。 這兩個L2實現是否等效?

  2. 我是否將正則化損失reg_loss正確添加到最終損失函數中?

幾乎

根據L2Loss操作碼

output.device(d) = (input.square() * static_cast<T>(0.5)).sum();

它也乘以0.5(或除以2 )。

這兩個L2實現是否等效?

就像@fabrizioM指出的那樣,幾乎可以在這里看到TensorFlow文檔中l2_loss的介紹。

我是否將正則化損失reg_loss正確添加到最終損失函數中?

到現在為止還挺好 : )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM