问题标签 [cross-entropy]

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 回答
229 浏览

tensorflow - Tensorflow R0.12 softmax_cross_entropy_with_logits ASSERT 错误

我一直在努力让“softmax_cross_entropy_with_logits”作为我的成本函数的一部分来解决 147 类问题。我有使用“sigmoid_cross_entropy_with_logits”的代码,但想转移到 softmax。

我已经尝试了许多不同的尝试,通过从 3 级重塑到 2 级(没有帮助)来让代码工作,然后就卡住了。我已经通过 Notebook 尝试了一些玩具代码,而 softmax_cross .... 没有断言错误。还尝试将 float32 转换为 float64 (因为我的笔记本示例使用 64 位并且有效)但仍然断言错误。

这是玩具代码:

这是我的代码片段:(尺寸在下面打印错误)

我想要做的是每个结果都有 2 个编码的“单词”,所以我现在尝试分别计算每个单词的错误,但仍然没有用。错误发生在上面的第一行:

有什么想法可能在这里发生吗?错误似乎来自“范围”功能,只是无法弄清楚我做错了什么。

0 投票
1 回答
11973 浏览

tensorflow - Tensorflow - 损失开始很高并且不会减少

我开始用 tensorflow 编写神经网络,在我的每个示例项目中我似乎都面临一个问题。

我的损失总是从 50 或更高开始,并且不会减少,或者如果减少,它会非常缓慢,以至于在我的所有时期之后,我什至没有接近可接受的损失率。

它已经尝试过的事情(并且对结果没有太大影响)

  • 过拟合测试,但在下面的示例中,您可以看到我有 15000 个训练和 15000 个测试数据集以及类似 900 个神经元
  • 测试了不同的优化器和优化器值
  • 尝试通过使用测试数据作为训练数据来增加训练数据
  • 尝试增加和减少批大小

我根据https://youtu.be/vq2nnJ4g6N0的知识创建了网络

但是让我们看看我的一个测试项目

我有一个名字列表,想假设性别,所以我的原始数据如下所示:

为了将其输入网络,我将名称转换为 charCodes 数组(期望最大长度为 30),并将性别转换为位数组

我为输出层构建了具有 3 个隐藏层 [30,20]、[20,10]、[10,10] 和 [10,2] 的网络。所有隐藏层都有一个 ReLU 作为激活函数。输出层有一个softmax。

现在计算损失、准确率和训练操作:

我以 100 个批次训练网络

我得到以下结果:


我究竟做错了什么?

为什么它在我的项目中从 ~69 开始而不是更低?


非常感谢你们!

0 投票
10 回答
183058 浏览

tensorflow - TensorFlow中logits这个词是什么意思?

在下面的 TensorFlow 函数中,我们必须在最后一层提供人工神经元的激活。我明白了。但我不明白为什么它被称为logits?这不是数学函数吗?

0 投票
1 回答
5675 浏览

softmax - Softmax 的交叉熵是否适用于多标签分类?

正如这里提到的,交叉熵不是多标签分类的合适损失函数。我的问题是“这个事实也适用于使用 softmax 的交叉熵吗?”。如果是,如何与文档的这一部分匹配。

我应该提到我的问题范围在cntk。

0 投票
1 回答
508 浏览

deep-learning - 需要帮助理解 SigmoidCrossEntropyLossLayer 的多标签损失的 Caffe 代码

我需要帮助来理解 Caffe 函数,SigmoidCrossEntropyLossLayer它是逻辑激活的交叉熵误差。

基本上,具有 N 个独立目标的单个示例的交叉熵误差表示为:

其中t是目标,0 或 1,x是输出,由 索引ix,当然要经过逻辑激活。

用于更快交叉熵计算的代数技巧将计算减少到:

您可以从此处的第 3 节验证这一点。

问题是,如何将上面的代码转换为下面的损失计算代码:

谢谢你。

为方便起见,将功能复制如下。

0 投票
3 回答
59324 浏览

machine-learning - 什么是交叉熵?

我知道有很多关于什么是交叉熵的解释,但我仍然感到困惑。

它只是描述损失函数的一种方法吗?我们可以使用梯度下降算法使用损失函数找到最小值吗?

0 投票
0 回答
1202 浏览

tensorflow - 如何根据 Tensorflow 中一个类中的元素数量来标准化我的损失函数?

在图像分割问题中,我们通常会得到一个背景标签,它支配掩码,而对象仅占据掩码中的一小块区域。因此,在训练期间,我观察到我的神经网络在分类背景标签方面做得很好,但在分类对象方面却很差。

我正在使用 Tensorflow 的 tf.nn.sparse_softmax_cross_entropy_with_logits 作为我丢失的函数。也许与这个问题有关,我的损失值也没有减少/收敛。

有人告诉我,也许我应该考虑在我的损失函数中添加一个权重因子,以便与其他非优势类相比,优势类的权重较小。任何人都可以分享一些见解吗?

0 投票
0 回答
101 浏览

cross-entropy - 什么是二元分类的最佳交叉熵误差

交叉熵误差是许多分类算法的标准损失函数。

我想知道二进制分类的最佳交叉熵误差是多少?

0 投票
1 回答
138 浏览

machine-learning - 交叉熵损失与准确率的关系

我正在训练一些关于图像分类任务的 CNN。在一个简单的版本中,这很好,但是当我使图像变得更加困难时,我现在遇到了这种现象(我让它整夜训练):

训练时,训练交叉熵损失下降。此外,在我的测试数据集上,交叉熵损失下降了。我正在进一步测量它的准确性,它的行为不同。一开始它是上涨的,只是再次下跌,然后它在0.1和0.3之间摇摆不定。我期待交叉熵损失和准确度有点相关 - 因为它们都是在相同的测试数据集上测量的。

有人可以向我解释一下吗?还是我的代码有错误?

非常感谢

0 投票
1 回答
75 浏览

python - 二进制对数损失是否排除了基于 y 的方程的一部分?

假设对数损失方程为:

logLoss=−(1/N)*∑_{i=1}^N (yi(log(pi))+(1−yi)log(1−pi))

其中N是样本数,yi...yiN是因变量的实际值,pi...piN是逻辑回归的预测可能性

我如何看待它:

如果yi = 0那么第一部分yi(logpi) = 0

或者,如果yi = 1那么第二部分(1−yi)log(1−pi) = 0

所以现在,取决于y方程的一部分的值被排除在外。我是否正确理解这一点?

我的最终目标是了解如何解释日志丢失的结果。