问题标签 [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.
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 中实现了所有这些,所以在那里轻松实现的奖励积分:)
tensorflow - TensorFlow 中的 L_0 正则化
我想在 TensorFlow 中对 NN 使用 L_0 正则化,这意味着对将考虑的所有输入特征中的特征数量进行正则化。这样做的最好方法是什么?谢谢
python - 比较不同损失函数的偏差图
我正在使用GradientBoostingRegressor
来自 Scikit-Learn 的,并想比较不同损失函数的偏差图。假设我想比较最小二乘损失和最小绝对偏差 (LAD) 损失。我认为有必要对 LAD 损失求平方(或取 LS 损失的平方根),否则它们会损失不同的功率。但是在查看源代码中的 Huber loss 时,并没有考虑到这一点。对我来说,将平方损失视为线性损失似乎很奇怪。
有人对此有想法吗?
python-3.x - 如何解决 Keras NN 中由大量特征引起的“nan loss”?
我正在使用 Keras 训练神经网络,但在添加更多功能时会出现 nan 损失。我尝试了其他讨论中提到的以下解决方案:降低学习率,不同的优化器,添加 epsilon=1e-08 / clipnorm=1。优化器的参数。然而,这并没有解决它。
数据集很小,有 1000 个元素。我使用不同的功能集。使用 25 个功能时没有问题并且性能良好。但是当使用所有 53 个功能时,我只得到 nan 损失。(当单独使用功能集时,也没有问题,所以我认为问题不在于功能集本身,而在于它们的高数量)。网络如下。有什么建议可以解决这个问题吗?
cluster-analysis - 基于自动编码器的无监督聚类
我正在尝试使用编码器对数据集进行聚类,由于我是该领域的新手,所以我不知道该怎么做。我的主要问题是如何定义损失函数,因为数据集没有标记并且知道我所看到的从参考书目中,他们将所需输出和预测输出之间的距离定义为损失函数。我的问题是,因为我没有所需的输出,我应该如何实现这个?
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_true
和y_pred
. 那么如何输入真实sequence_lengths
的损失函数和掩码呢?
此外,我_weighted_masked_objective(fn)
在\keras\engine\training.py
. 它的定义是
为目标函数添加对掩蔽和样本加权的支持。
但似乎该功能只能接受fn(y_true, y_pred)
. 有没有办法使用这个功能来解决我的问题?
具体来说,我修改了Yu-Yang的例子。
Keras 和 TensorFlow 中的输出对比如下:
如上所示,在某些类型的图层之后会禁用遮罩。那么当这些层被添加时,如何在 Keras 中掩盖损失函数呢?
python - Keras:自定义目标函数,将导数放在哪里
我正在尝试对我的修道院的损失函数进行一些修改,并且我对实施方面有一些疑问。
我已经知道如何在 Keras 中创建自定义损失函数,以及如何调用它。但是我仍然不清楚在哪里包含函数的导数。
假设我的新损失函数是:
损失 = 交叉熵 + f(x)
其中 f(x) = x**2。
我应该在哪里包含 f'(x)=2x 以便在反向支持步骤中使用它?Keras 会自动执行此操作吗?还是我应该在某些部分明确定义?
感谢您对此的任何提示,因为我不知道该怎么做。
川。
python - 有人可以帮我正确推导出损失函数吗?
我正在尝试修改http://cs231n.github.io/neural-networks-case-study/#together中的示例,为数字目标变量制作神经网络,因此它将是一个具有回归的神经网络。我肯定在推导部分做错了,因为我的损失函数在疯狂增长。这是代码:
代码输出:
迭代0:损失5786.021888
迭代1:损失24248543152533318464172949461134213120.000000
迭代2:损失388137710832824223006297769344993376570435619092
machine-learning - 张量流中的 batch_loss 和 total_loss=tf.get_total_loss()
当我在im2txt中阅读 im2txt 源代码时遇到问题。
有batch_loss
和total_loss
:batch_loss
为每批数据计算,并tf.Graphkeys.LOSSES
通过tf.add_loss(batch_loss)
调用添加。total_loss
得到了,它平均了 中的tf.losses.get_total_loss()
所有损失 tf.Graphkeys.LOSSES
。
问题:为什么total_loss会更新参数?我被这个问题困惑了很多天。