Tensorflow – 添加L2正则化损失的简单示例

我对机器学习比较熟悉,但我在通过阅读一些大学的幻灯片自学Tensorflow。下面我正在为只有一个特征的线性回归设置损失函数。我正在向总损失中添加L2损失,但我不能确定我是否做得正确:

# 正则化
reg_strength = 0.01
# 创建损失函数。
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
# 设置优化器。
opt_operation = tf.train.GradientDescentOptimizer(0.001).minimize(loss)

我的具体问题是:

  1. 我有两行代码(注释为reg 1reg 2)计算权重W的L2损失。标记为reg 1的那行使用了Tensorflow内置函数。这两种L2实现是否等价?

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


回答:

这两种L2实现是否等价?

几乎是的,正如@fabrizioM指出的,你可以在这里查看TensorFlow文档中关于l2_loss的介绍。

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

到目前为止,一切顺利 : )

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注