问题标签 [loss-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
266 浏览

reinforcement-learning - 在强化学习中实现损失函数 (MSVE)

我正在尝试为奥赛罗建立一个时间差异学习代理。虽然我的其余实现似乎按预期运行,但我想知道用于训练我的网络的损失函数。在 Sutton 的《Reinforcement learning: An Introduction》一书中,Mean Squared Value Error(MSVE)被呈现为标准损失函数。它基本上是 Mean Square Error 乘以 on policy 分布。(Sum over all states s ( onPolicyDistribution(s ) * [V(s) - V'(s,w)]² ) )

我现在的问题是:当我的策略是学习价值函数的电子贪心函数时,我如何在策略分布上获得这个?如果我只使用 MSELoss 代替,它甚至有必要吗?有什么问题?

我在 pytorch 中实现了所有这些,所以在那里轻松实现的奖励积分:)

0 投票
0 回答
36 浏览

tensorflow - TensorFlow 中的 L_0 正则化

我想在 TensorFlow 中对 NN 使用 L_0 正则化,这意味着对将考虑的所有输入特征中的特征数量进行正则化。这样做的最好方法是什么?谢谢

0 投票
0 回答
111 浏览

python - 比较不同损失函数的偏差图

我正在使用GradientBoostingRegressor来自 Scikit-Learn 的,并想比较不同损失函数的偏差图。假设我想比较最小二乘损失和最小绝对偏差 (LAD) 损失。我认为有必要对 LAD 损失求平方(或取 LS 损失的平方根),否则它们会损失不同的功率。但是在查看源代码中的 Huber loss 时,并没有考虑到这一点。对我来说,将平方损失视为线性损失似乎很奇怪。

有人对此有想法吗?

0 投票
0 回答
2743 浏览

python-3.x - 如何解决 Keras NN 中由大量特征引起的“nan loss”?

我正在使用 Keras 训练神经网络,但在添加更多功能时会出现 nan 损失。我尝试了其他讨论中提到的以下解决方案:降低学习率,不同的优化器,添加 epsilon=1e-08 / clipnorm=1。优化器的参数。然而,这并没有解决它。

数据集很小,有 1000 个元素。我使用不同的功能集。使用 25 个功能时没有问题并且性能良好。但是当使用所有 53 个功能时,我只得到 nan 损失。(当单独使用功能集时,也没有问题,所以我认为问题不在于功能集本身,而在于它们的高数量)。网络如下。有什么建议可以解决这个问题吗?

0 投票
1 回答
581 浏览

deep-learning - 改进 GAN 中的损失实现

最近在看论文Improved Techniques for Training GANs,作者对loss的定义如下: 在此处输入图像描述 然后我查看了文章的代码,loss定义对应的代码是:

我认识到这l_lab是用于标记数据的分类损失,因此应该将其最小化,并且l_unl是关于未标记数据的l_gen损失,以及生成图像的损失。我的困惑是为什么鉴别器应该最小化l_unland l_gen,这是代码0.5*T.mean(T.nnet.softplus(l_unl)) + 0.5*T.mean(T.nnet.softplus(l_gen))告诉我们的。提前致谢。

0 投票
1 回答
821 浏览

cluster-analysis - 基于自动编码器的无监督聚类

我正在尝试使用编码器对数据集进行聚类,由于我是该领域的新手,所以我不知道该怎么做。我的主要问题是如何定义损失函数,因为数据集没有标记并且知道我所看到的从参考书目中,他们将所需输出和预测输出之间的距离定义为损失函数。我的问题是,因为我没有所需的输出,我应该如何实现这个?

0 投票
3 回答
22976 浏览

keras - 如何使用 TensorFlow 后端屏蔽 Keras 中的损失函数?

我正在尝试使用 Keras 的 LSTM 和 TensorFlow 后端来实现序列到序列的任务。输入是长度可变的英语句子。为了构建一个具有 2-D shape 的数据集[batch_number, max_sentence_length],我EOF在行尾添加并用足够的占位符填充每个句子,例如#. 然后将句子中的每个字符转换为 one-hot 向量,从而使数据集具有 3-D 形状[batch_number, max_sentence_length, character_number]。在 LSTM 编码器和解码器层之后,计算输出和目标之间的 softmax 交叉熵。

为了消除模型训练中的填充效应,可以对输入和损失函数使用掩码。Keras 中的掩码输入可以使用layers.core.Masking. 在 TensorFlow 中,可以按如下方式对损失函数进行掩码:TensorFlow 中的自定义掩码损失函数

但是,我没有找到在 Keras 中实现它的方法,因为 Keras 中用户定义的损失函数只接受参数y_truey_pred. 那么如何输入真实sequence_lengths的损失函数和掩码呢?

此外,我_weighted_masked_objective(fn)\keras\engine\training.py. 它的定义是

为目标函数添加对掩蔽和样本加权的支持。

但似乎该功能只能接受fn(y_true, y_pred). 有没有办法使用这个功能来解决我的问题?

具体来说,我修改了Yu-Yang的例子。

Keras 和 TensorFlow 中的输出对比如下:

在此处输入图像描述

如上所示,在某些类型的图层之后会禁用遮罩。那么当这些层被添加时,如何在 Keras 中掩盖损失函数呢?

0 投票
1 回答
178 浏览

python - Keras:自定义目标函数,将导数放在哪里

我正在尝试对我的修道院的损失函数进行一些修改,并且我对实施方面有一些疑问。

我已经知道如何在 Keras 中创建自定义损失函数,以及如何调用它。但是我仍然不清楚在哪里包含函数的导数。

假设我的新损失函数是:

损失 = 交叉熵 + f(x)

其中 f(x) = x**2。

我应该在哪里包含 f'(x)=2x 以便在反向支持步骤中使用它?Keras 会自动执行此操作吗?还是我应该在某些部分明确定义?

感谢您对此的任何提示,因为我不知道该怎么做。

川。

0 投票
1 回答
786 浏览

python - 有人可以帮我正确推导出损失函数吗?

我正在尝试修改http://cs231n.github.io/neural-networks-case-study/#together中的示例,为数字目标变量制作神经网络,因此它将是一个具有回归的神经网络。我肯定在推导部分做错了,因为我的损失函数在疯狂增长。这是代码:

代码输出:

迭代0:损失5786.021888

迭代1:损失24248543152533318464172949461134213120.000000

迭代2:损失388137710832824223006297769344993376570435619092

0 投票
1 回答
1566 浏览

machine-learning - 张量流中的 batch_loss 和 total_loss=tf.get_total_loss()

当我在im2txt中阅读 im2txt 源代码时遇到问题。

batch_losstotal_loss:batch_loss为每批数据计算,并tf.Graphkeys.LOSSES通过tf.add_loss(batch_loss)调用添加。total_loss得到了,它平均了 中的tf.losses.get_total_loss()所有损失 tf.Graphkeys.LOSSES

问题:为什么total_loss会更新参数?我被这个问题困惑了很多天。