问题标签 [hinge-loss]

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 投票
0 回答
88 浏览

deep-learning - 在 CIFAR 数据集上具有铰链损失的 Densenet

我正在尝试在 CIFAR 100 数据集上使用带密集网络的铰链损失。学习收敛到某个点,然后就没有学习了。准确率远低于具有 CrossEntropy 损失函数的 Densenet。我尝试了不同的学习率和权重衰减。

关于为什么我无法正确训练带有铰链损失的 Densenet 的任何想法?我可以毫无问题地使用 Resnet 的铰链损失。

0 投票
1 回答
244 浏览

python - 将此损失函数方程转换为python代码

请检查此链接的方程式并将其转换为简单 keras 模型的 python 损失函数。

将其转换为 Python 的 KERAS 所需的损失方程的公式图片或图像链接

其中图中方程的max部分或曲线选择部分为铰链损失,yi表示每个样本的标签,φ(x)表示特征表示,b是偏差,k是训练样本的总数, w 是要学习的分类器。

为了便于检查,示例方程为 -

实际上我可以在图片中找到方程的最大部分或曲线部分,但我找不到 1/2 * || w ||^ 2 部分。

您也检查此链接以寻求帮助-

类似链接

在这里,我附上了一些示例代码来清除我的问题的概念:

作为提及,您必须找到的是 - 1/2 * || w || ^ 2 . 我可以在链接的图片中找到方程式剩余部分或其他部分的python代码。铰链损失部分可以很容易地使用这个等式计算 -

如果您需要进一步的帮助,请评论以获取详细信息。

0 投票
1 回答
707 浏览

tensorflow - 损失函数中带 SVM 的最后一层 CNN

你好吗?我正在尝试使用 sklearn.svm 在 keras 成本函数中实现 SVM。但是,我总是遇到错误。我相信问题是将 y_true 和 y_pred 张量转换为要在 sklearn.svm 中使用的 numpy 数组。然后我需要将预测结果转换为张量以用于 keras 的成本函数(categorical_hinge)。

有谁能够帮我?

0 投票
0 回答
1564 浏览

pytorch - CUDA 错误 59:触发了设备端断言

我使用 Pytorch 收到上述错误,并带有以下断言:

我已经看到了这个问题的其他解决方案,这些解决方案描述了由于标签不是来自 (0, num_classes-1) 等原因。但是,我已经确保在我的情况下,并且在计算铰链损失时出现错误,如下所示:

最初训练时一切正常,但是在训练某些时期后,计算铰链损失时出现 CUDA 运行时错误。

完整的错误跟踪:

0 投票
0 回答
205 浏览

python - 查询 LSTM 模型的损失函数(二元分类)

我正在构建一个 LSTM 模型来对价格走势进行二元分类。

我的训练数据是我模拟的数据,它是一个 2,000 行 * 3,780 列的价格变动数据框。我有一个单独的标签文件,将价格变动分类为 1 或 2(由于内存)。

根据我的阅读,似乎有两个损失函数最适合二元分类:

  1. 二元交叉熵
  2. 铰链损失

我在 google colab 中实现了两个独立的 LSTM 模型,它们按预期运行。

我对这两个模型都有相同的代码,只是损失函数从前者的平方铰链损失变为后者的二元交叉熵。

我的问题是决定哪个是更好的模型,因为模型输出给出了相互冲突的输出。

铰链损耗输出:

训练输出:

  1. 损失从 0.3 开始,然后到 0.20,并且在剩余的 98 个 epoch 中几乎保持不变。
  2. MSE 确实从 2.8 到最后的 1.68 的时期略有下降。平均 MSE = 1.72。
  3. 每个时代的准确度都是 0.00(我不明白)。

验证输出:

  1. 验证损失从 0.0117 开始,到最后达到 9.8264e-06。
  2. 验证 MSE 从 2.4 开始,到 1.54 结束。平均验证 MSE = 1.31。
  3. 每个时期的验证准确度都是 0.00(我还是不明白)。

二元交叉熵损失输出:

训练输出:

  1. 损失从 8.3095 开始,然后到 3.83,并且在剩余的 97 个时期几乎保持不变。
  2. MSE 确实从 2.8 到最后的 1.68 的时期略有下降。平均 MSE = 1.69。
  3. 准确度从 0.00 开始,到最后增加到大约 0.8。

验证输出:

  1. 验证损失从 -0.82 开始,到最后达到 -.89。
  2. 验证 MSE 从 1.56 开始,到 1.53 结束。平均验证 MSE = 1.30。
  3. 验证准确度从 0.00 开始,到最后增加到大约 0.997。

所以,我现在有一个问题:

为什么 SHL 模型的准确率是 0.00?我的模型有错误吗?

我的代码保存在这里: https ://nbviewer.jupyter.org/github/Ianfm94/Financial_Analysis/blob/master/LSTM_Workings/LSTM_Model.ipynb

训练数据*和标签数据保存在以下位置: https ://github.com/Ianfm94/Financial_Analysis/tree/master/LSTM_Workings

*由于 Github 将文件大小限制为 25 mb,因此此处的训练数据被分成两个单独的文件。

任何帮助将不胜感激。

谢谢。

0 投票
0 回答
81 浏览

python - 使用铰链损失的 Mnist 数据集的鲁棒机器学习

我正在训练 Mnist.csv 使用 python 随机库添加高斯噪声的鲁棒性,但是我将如何决定要添加到数据集中的噪声的平均值和标准。我使用具有 785 (28 28 1) 列的标准化数据并训练雾,亮度和步伐。