问题标签 [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.
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 个编码的“单词”,所以我现在尝试分别计算每个单词的错误,但仍然没有用。错误发生在上面的第一行:
有什么想法可能在这里发生吗?错误似乎来自“范围”功能,只是无法弄清楚我做错了什么。
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 开始而不是更低?
非常感谢你们!
tensorflow - TensorFlow中logits这个词是什么意思?
在下面的 TensorFlow 函数中,我们必须在最后一层提供人工神经元的激活。我明白了。但我不明白为什么它被称为logits?这不是数学函数吗?
deep-learning - 需要帮助理解 SigmoidCrossEntropyLossLayer 的多标签损失的 Caffe 代码
我需要帮助来理解 Caffe 函数,SigmoidCrossEntropyLossLayer
它是逻辑激活的交叉熵误差。
基本上,具有 N 个独立目标的单个示例的交叉熵误差表示为:
其中t
是目标,0 或 1,x
是输出,由 索引i
。x
,当然要经过逻辑激活。
用于更快交叉熵计算的代数技巧将计算减少到:
您可以从此处的第 3 节验证这一点。
问题是,如何将上面的代码转换为下面的损失计算代码:
谢谢你。
为方便起见,将功能复制如下。
machine-learning - 什么是交叉熵?
我知道有很多关于什么是交叉熵的解释,但我仍然感到困惑。
它只是描述损失函数的一种方法吗?我们可以使用梯度下降算法使用损失函数找到最小值吗?
tensorflow - 如何根据 Tensorflow 中一个类中的元素数量来标准化我的损失函数?
在图像分割问题中,我们通常会得到一个背景标签,它支配掩码,而对象仅占据掩码中的一小块区域。因此,在训练期间,我观察到我的神经网络在分类背景标签方面做得很好,但在分类对象方面却很差。
我正在使用 Tensorflow 的 tf.nn.sparse_softmax_cross_entropy_with_logits 作为我丢失的函数。也许与这个问题有关,我的损失值也没有减少/收敛。
有人告诉我,也许我应该考虑在我的损失函数中添加一个权重因子,以便与其他非优势类相比,优势类的权重较小。任何人都可以分享一些见解吗?
cross-entropy - 什么是二元分类的最佳交叉熵误差
交叉熵误差是许多分类算法的标准损失函数。
我想知道二进制分类的最佳交叉熵误差是多少?
machine-learning - 交叉熵损失与准确率的关系
我正在训练一些关于图像分类任务的 CNN。在一个简单的版本中,这很好,但是当我使图像变得更加困难时,我现在遇到了这种现象(我让它整夜训练):
训练时,训练交叉熵损失下降。此外,在我的测试数据集上,交叉熵损失下降了。我正在进一步测量它的准确性,它的行为不同。一开始它是上涨的,只是再次下跌,然后它在0.1和0.3之间摇摆不定。我期待交叉熵损失和准确度有点相关 - 因为它们都是在相同的测试数据集上测量的。
有人可以向我解释一下吗?还是我的代码有错误?
非常感谢
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
方程的一部分的值被排除在外。我是否正确理解这一点?
我的最终目标是了解如何解释日志丢失的结果。