2016-09-12 6 views
2

私は機械学習に精通していますが、私は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) 

私の具体的な質問は以下のとおりです:

  1. 私は2つの行(コメントがあり、私はそれを正しくやっている場合、私は全体の損失にL2の損失を追加しているが、私はわかりませんreg 1およびとして)、L2の損失を計算するのはWです。 reg 1とマークされた行は、Tensorflow組み込み関数を使用します。これらの2つのL2実装は同等ですか?

  2. 正規化損失reg_lossを最終損失関数に正しく加えていますか?

+0

2は、私には罰金です。 – Julius

答えて

1

は、これら二つのL2の実装と同等ですか?

@fabrizioMが指摘したように、ほとんど、あなたがTensorFlowドキュメントでl2_lossへの導入のためのhereを見ることができます。

私は正規化損失reg_lossを最終損失関数に正しく追加していますか?

これまでのところは良い。)

関連する問題