首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow -添加L2正则化损失简单示例

Tensorflow -添加L2正则化损失简单示例
EN

Stack Overflow用户
提问于 2016-09-12 23:50:45
回答 2查看 2.6K关注 0票数 2

我对机器学习很熟悉,但我正在通过读一些大学幻灯片来自学Tensorflow。下面,我建立了线性回归的损失函数,只有一个特征。我在总损失中添加了一个L2损失,但我不确定是否正确:

代码语言:javascript
复制
# 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正确地添加到最终损失函数中?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-13 02:19:39

这两个L2实现是否等效?

几乎,正如@fabrizioM所指出的,您可以看到这里介绍TensorFlow文档中的l2_loss。

是否将正则化损失reg_loss正确地添加到最终损失函数中?

到目前为止还不错:)

票数 1
EN

Stack Overflow用户

发布于 2016-09-13 01:34:44

差不多了

根据L2Loss操作代码

代码语言:javascript
复制
output.device(d) = (input.square() * static_cast<T>(0.5)).sum();

它也乘以0.5 (换句话说,它除以2)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39460338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档