问题标签 [sgd]
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 中具有动量的 SGD
在 Caffe 中,SGD 求解器有一个动量参数(链接)。在 TensorFlow 中,我看到它tf.train.GradientDescentOptimizer
没有明确的动量参数。但是,我可以看到有tf.train.MomentumOptimizer
优化器。它是否相当于带有动量优化器的 Caffe SGD?
python - 模型使用 SGD 而不是 Adam 学习
我在这里查看了一个基本的 PyTorch MNIST 示例,并注意到当我将优化器从 SGD 更改为 Adam 时,模型没有收敛。具体来说,我将第 106 行从
至
我认为这对模型没有影响。使用 SGD 后,损失在大约四分之一纪元后迅速下降到低值。然而,对于 Adam,即使经过 10 个 epoch,损失也没有下降。我很好奇为什么会这样;在我看来,这些应该具有几乎相同的性能。
我在 Win10/Py3.6/PyTorch1.01/CUDA9 上运行了这个
为了节省你一点点代码挖掘,这里是超参数:
- lr=0.01
- 动量=0.5
- 批量大小=64
gradient-descent - 对数回归损失的梯度
我正在尝试为日志回归编写小批量梯度下降。
给定 numpy 矩阵X_batch
(形状(n_samples, n_features)
)和y_batch
(形状(n_samples,)
)。
天真的方法是写循环:
但似乎使用循环在速度方面是个坏主意。还有更好的方法吗?没有循环的纯numpy?以某种方式重写渐变表达式?
python - 我的 ANN 有时会忽略一个类,可能的解决方案
我的 ANN 有两个输入和 16 个输出,有时它会忽略一些类,即使我的数据集按类具有几乎相同数量的示例,正如您在这张图片中看到的那样:第 3 行第 4 列中的点被简单地忽略,它是即使我改变隐藏层、隐藏节点或训练示例的数量,也很常见。
我对网络进行了很多次训练,并且它随机工作,如下图所示:您可以在这里看到 16 个类中的每一个都被成功分类。
在这两种情况下,我都使用一个具有 32 个隐藏节点的隐藏层,10000 个训练示例,使用随机梯度下降和 k 折验证。我无法实现正则化,但这个问题看起来并没有过度拟合。
我只想知道是否有办法强制神经网络使用everyclass 进行分类,或者我的网络是否有问题。我试着用谷歌搜索它,但没有找到类似的东西。谢谢,如果需要任何其他信息,请询问。
machine-learning - 值错误:训练折叠中只有 2 个类/es,但整个数据集中有 1 个。具有不平衡折叠的决策函数不支持此功能
我正在学习机器学习并在#mnist 数据集上创建我的第一个模型。
有人可以帮我吗?我已经尝试了 Stratified Fold、kfold 和其他方法来解决这个问题。
Pandas 版本 '0.25.1',Python 版本 3.7,使用 Anaconda 发行版。
代码块的最后一行给出了错误:
python - SGD optimiser graph
I just wanted to ask a quick question. I understand that val_loss and train_loss is insufficient to tell if the model is overfitting. However, i wish to use it as a rough gauge by monitoring if the val_loss is increasing. As i use SGD optimiser, i seem to have 2 different trends based on the smoothing value. Which should i use? Blue is val_loss and Orange is train_loss.
From smoothing = 0.999, both seems to be decreasing but from smoothing = 0.927, val_loss seems to be increasing. Thank you for reading!
Also, when is a good time to decrease the learning rate? Is it directly before the model overfits?
java - NaN 通过矩阵分解
我使用 SGD 算法实现了矩阵分解,但是当我运行它时,我经常在预测矩阵中得到 NaN。当我在一个非常小的 (6 x 7) 矩阵上运行算法时,错误出现的次数很少。当我转移到电影镜头数据集时,每次运行算法时我都会在所有单元格中得到错误。错误仅在某些单元格中消失的唯一时间是当我将优化步骤(迭代次数)设置为 1 时。
相关方法如下:
是什么导致错误,因为我没有在算法中除以零?我该如何解决?
PS我正在使用通用矩阵库包
machine-learning - 在 epoch 结束时,CNN 训练损失有规律的峰值
我正在与 Adam 在 PyTorch 中训练 CNN,初始学习率为 1e-5。我的 epoch 中有 5039 个样本,batch size 为 1。我观察到,在一个 epoch 结束时,我有一个规律的训练损失峰值模式。这是训练损失的图:
从图中可以看到清晰的尖峰模式,这些尖峰恰好发生在时代结束时。我的时代包含 5039 个样本。有趣的是,尖刺不仅会击落,有时还会向上击落。
我不认为是:
如果没有对数据集进行洗牌,这些峰值可能会得到解释。但是,我在每个时期都对我的数据集进行洗牌。
当 epoch 的最终批次小于其他批次时会发生这种行为,这会导致不同程度的损失(为什么我的训练损失有规律的尖峰?)。但是,这不是我的情况,因为我的批量大小是 1。
一种潜在的技巧可能是在更新步骤之前应用渐变裁剪。但是,对我来说,这似乎不是处理这个问题的好方法。
- 您对这种峰值模式的原因有何看法?
- 有这样的模式有多糟糕?
probability - 使用 SGDclassifier 的 predict_proba 进行多类分类的多类分类置信度得分
我在 SGDClassifier 中使用逻辑回归来执行 ~10k 类别的多类分类。为了获得预测结果的置信度分数,我使用了 predict_proba 函数。但是对于正确和错误的预测,我得到的预测概率值为 0.00026091,0.00049697,0.00019632。
请提出标准化分数的方法,以便我可以通过过滤概率值来考虑结果
training-data - 了解 CNN 训练结果
我将不胜感激您对以下内容的解释:)
我训练了分类两个图像类的 CNN 网络。我使用了“SGD”优化器和“categorical_crossentropy”损失函数。
我的结果如下: - 训练损失 = 0.28 - 训练准确度 = 0.93 - 验证损失 = 0.38 - 验证准确度 = 0.82
所以很明显模型“过拟合”了一点(有人说有点过拟合有时很好)。
我的问题集中在验证损失和验证准确性上。
我的网络是 38% 不准确还是 82% 准确?我读过很多关于验证损失和验证准确性的文章,人们说:
“与准确性不同,损失不是百分比。它是训练或验证集中每个示例所犯错误的总和。
但我仍然不能直观地理解结果(38% 不准确或 82% 准确)。
非常感谢!:)
伊万