私は機械学習に精通していますが、私はTensorflowを大学のスライドを読んで自分で学習しています。以下では、1つのフィーチャだけで線形回帰の損失関数を設定します。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)
私の具体的な質問は以下のとおりです:
私は2つの行(コメントがあり、私はそれを正しくやっている場合、私は全体の損失にL2の損失を追加しているが、私はわかりません
reg 1
およびとして)、L2の損失を計算するのはW
です。reg 1
とマークされた行は、Tensorflow組み込み関数を使用します。これらの2つのL2実装は同等ですか?正規化損失
reg_loss
を最終損失関数に正しく加えていますか?
2は、私には罰金です。 – Julius