问题标签 [gradient-descent]
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.
machine-learning - 具有梯度下降误差的逻辑回归
我正在尝试使用梯度下降实现逻辑回归,
我得到了迭代次数的成本函数 j_theta,幸运的是,当根据迭代次数绘制 j_theta 时,我的 j_theta 正在减少。
我使用的数据集如下:
我设法使用梯度下降为逻辑回归编写的代码是:
如果您查看 x1 与 x2 的图表,图表将如下所示,
运行代码后,我创建了一个决策边界。决策线的形状似乎还可以,但有点偏移。带有决策边界的 x1 与 x2 的关系图如下所示:
![在此处输入图像描述][2]
请告诉我我哪里错了......
谢谢:)
新图表::::
machine-learning - 具有梯度下降的逻辑回归导致不同数据集的不同结果
我正在尝试使用梯度下降和两个数据集进行逻辑回归,每个数据集我得到不同的结果。
数据集 1 输入
数据集2输入-
y =
数据集 1 和数据集 2 的区别只是值的范围。当我为这两个数据集运行我的通用代码时,我的代码为数据集 1 提供了所需的输出,但为数据集 2 提供了非常奇怪的想法。
我的代码如下:
请找到每个数据集的图表,如下所示:
对于数据集 1:
对于数据集2:
如您所见,数据集一给了我正确的答案。
话虽如此,我相信 datsaet2 的数据范围很广,可能是 10-100,因此为了对其进行规范化,我对 dataset2 使用了特征缩放并得到了图表。形成的决策线是正确的,但略低于预期的位置,请自己查看。
具有特征缩放的 Dataset2 输入:
下面给出了在我之前的代码中添加特征缩放后得到的图表
正如你所看到的,如果决策线有点高,那么我就会得到完美的输出..
请帮助我理解这个场景,为什么即使特征缩放也无济于事。或者如果我的代码有错误,或者我遗漏了什么。
machine-learning - 神经网络小批量梯度下降
我正在使用多层神经网络。我打算做小批量梯度下降。假设我有 100 个超过 100 万个数据点的小批量。我不明白我必须更新整个网络的权重的部分。当我对这 100 个样本进行前向传递时,我将这 100 个样本的所有错误相加。除了这个我还能做什么?我是否也必须并排计算隐藏层错误?什么时候计算?
python - Theano 教程中的说明
我正在阅读Theano 文档主页上提供的本教程
我不确定梯度下降部分给出的代码。
我对 for 循环有疑问。
如果将“ param_update ”变量初始化为零。
然后在剩下的两行中更新它的值。
为什么我们需要它?
我想我在这里弄错了。你们能帮帮我吗!
machine-learning - 使用梯度下降的 SVM - 公式
在使用梯度下降进行线性 SVM(支持向量机)时,我遇到了一些困难。
我使用的公式如下所示。
其中第一个方程是成本函数,第二个方程是每个特征的 theta 值。
c是对拟合参数(Regularization parameter)的控制
alpha 决定斜率收敛的速率。
不知何故,当我为我的数据集运行上述公式时,我的 j(theta) 不断增加,它永远不会减少。我通过更改 c 和 alpha 的值尝试了所有可能的情况。
如果公式中可能有任何错误,如果有人能指出,我会很高兴。
这是我正在使用的八度代码:
谢谢
multithreading - Matlab中的双线程处理
我有一个使用 Matlab 运行的大规模梯度下降优化问题。代码有两部分:
- 触发每次更新参数向量的迭代的顺序更新部分。
- 一个验证错误计算部分,每 10 次左右的迭代触发一次,它使用触发它的相应迭代结束时的参数值。
我现在运行的方式是依次执行 (1) 和 (2)。但是(2)需要很多时间,而且它不是我日常工作的核心部分——我只是为了检查进度并绘制模型的错误。是否可以在 Matlab 中以与 (1) 并行的方式运行 (2) ?请注意,(1) 不能并行运行,因为它执行顺序更新。所以一个简单的“parfor”用法不是一个解决方案,除非有一个非常聪明的方法来做到这一点。
numpy - 向量化梯度下降 Numpy
我在 Numpy 中实现了这个梯度下降:
虽然代码的其他部分在这里完全矢量化,但仍有一个 for 循环在我看来是不可能消除的;特别要求在每一步更新 theta 我不知道如何对其进行矢量化或以更有效的方式编写它。
感谢您的帮助
matlab - 在从初始猜测重新分配所有权重之前,Logistic 回归的梯度下降停止
我正在尝试在 MATLAB 中实现逻辑回归分类,并坚持使用梯度下降计算正确的权重。
我正在使用随机方法,因此我为每个特征单独更新权重向量中的每个权重,然后移动到下一个样本并再次执行。
我正在使用更新方程
theta_j := theta_j - alpha * (y_i - h_theta(x_i)) * x_ij
当最后一个权重向量与当前权重向量之间的差异小于 0.00005 时,我会中断。我计算两个向量之间的“差”,方法是从另一个向量中减去一个,然后取它们差向量的点积的平方根。
问题是它似乎只在四次更新后就停止了更新,所以我的 8 行权重向量中只有前四个被更新了。无论我的学习率 alpha 是多少,都会发生这种情况。
这是我的实现:
我也尝试过使用全局方法而不是随机方法,但它仍然会导致非常大的权重值。
这是我的 evaluateSigmoid 函数
这是我正在使用的数据集。最后一列被过滤掉,第一列根据是否满足阈值变为1或0(低于22为0,高于为1)。
machine-learning - 使用矢量化的梯度下降八度代码未正确更新成本函数
我已经使用矢量化实现了以下梯度下降代码,但似乎成本函数没有正确递减。相反,成本函数随着每次迭代而增加。
假设 theta 为 n+1 向量,y 为 am 向量,X 为设计矩阵 m*(n+1)
计算成本函数为:
python - 具有随机输入实现的梯度下降
我正在尝试在数据集上实现梯度下降。尽管我尝试了一切,但我无法让它发挥作用。所以,我创建了一个测试用例。我正在对随机数据尝试我的代码并尝试调试。
更具体地说,我正在做的是生成 0-1 之间的随机向量和这些向量的随机标签。并尝试过度拟合训练数据。
然而,我的权重向量在每次迭代中变得越来越大。然后,我有无穷大。所以,我实际上并没有学到任何东西。这是我的代码:
我正在使用 LMS 进行损失函数。因此,在所有迭代中,我的更新如下,
其中 w^i 是第 i 个权重向量,R 是 stepSize,E(w^i) 是损失函数。
这是我的损失函数。(LMS)
这是我推导损失函数的方法,
,
现在,我的问题是:
- 在这种使用梯度下降的随机场景中,我应该期待好的结果吗?(理论界限是多少?)
- 如果是,我的实现中的错误是什么?
PS:我尝试了其他几个maxIterations
参数stepSize
。还是行不通。PS2:这是我可以在这里提出问题的最佳方式。对不起,如果问题太具体。但这让我发疯了。我真的很想学习这个问题。