我对机器学习很熟悉,但我正在通过读一些大学幻灯片来自学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)我的具体问题是:
reg 1和reg 2)来计算体重W的L2损失。标记为reg 1的行使用Tensorflow内置函数。这两个L2实现是否等效?reg_loss正确地添加到最终损失函数中?发布于 2016-09-13 02:19:39
这两个L2实现是否等效?
几乎,正如@fabrizioM所指出的,您可以看到这里介绍TensorFlow文档中的l2_loss。
是否将正则化损失reg_loss正确地添加到最终损失函数中?
到目前为止还不错:)
发布于 2016-09-13 01:34:44
https://stackoverflow.com/questions/39460338
复制相似问题