问题标签 [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.
matlab - Matlab中使用随机梯度下降的矩阵分解
我必须将Matrix
R[m n] 分解为两个低秩矩阵(U[K m] 和 V[K*n]),我这样做是为了通过 U 和 V 预测 R 的缺失值。
问题是,对于分解R ,我不能使用Matlab
分解方法,所以我必须研究目标函数,以最小化sum-of-squared-errors
提高分解精度:
详细信息如下所示:
我在这篇文章中的问题是如何在使用随机梯度下降法将 R 分解为 U 和 V 矩阵中最小化函数 F。Matlab
谢谢你的帮助!
matlab - Matlab 中梯度下降的错误结果
我正在学习 Matlab 课程,并且我已经完成了梯度下降实现,但它给出了不正确的结果。
编码:
这是重要的部分。我认为公式的实现是正确的,即使它没有优化。公式为:
那么问题可能出在哪里?
编辑:代码更新
编辑(2):修复它,工作代码。
明白了,这是 +Dan 的提示,我会接受他的回答,仍然把代码放在这里给任何卡住的人 :),干杯。
matlab - matlab中的多变量梯度下降
我在 matlab 中对多个变量进行梯度下降,并且代码没有得到我使用正常 eq 得到的预期 thetas。即:theta = 1.0e+05 * 3.4041 1.1063 -0.0665 我已经实施了。
使用 GDM,我得到的结果是:theta = 1.0e+05 * 2.6618 -2.6718 -0.5954 我不明白为什么会这样,也许有人可以帮助我并告诉我代码中的错误在哪里。
代码:
谢谢。
编辑:数据。
完整数据集。
python - 用芹菜进行适当的异步随机梯度下降
我必须使用芹菜来并行化随机梯度下降算法,尽管这可能不是用芹菜做的更好选择,这仍然是我的问题=)
该算法看起来像这样,其中 datas 是样本矩阵:
梯度是作为任务分配的函数。假设我有 10 个工人,首先,我用 10 个前小批量创建 10 个任务梯度。
当有人完成时,我希望用下一个小批量创建一个新任务(它是否改变迭代并返回到第一个小批量并不重要)和当前版本的 x_current(如果不是没关系最后一个版本)。
此外,我必须得到结果并使用返回的 delta 更新 x_current。所有增量都必须在 x_current 上“按顺序”应用(但顺序无关紧要),并且与任务创建异步。
我的问题是,用芹菜做最优雅的方法是什么?谢谢 :)
python - 梯度下降的Python实现(机器学习)
我曾尝试在 python 中实现梯度下降,但无论 lambda 和 alpha 值如何,成本 J 似乎都在增加,我无法弄清楚这里的问题是什么。如果有人可以帮助我解决这个问题,那就太好了。输入是具有相同维度的矩阵 Y 和 R。Y 是电影 x 用户的矩阵,R 只是表示用户是否对电影评分。
machine-learning - 为什么要将神经网络的权重初始化为随机数?
我正在尝试从头开始构建神经网络。在所有 AI 文献中,一致认为权重应该初始化为随机数,以便网络更快地收敛。
但是为什么神经网络的初始权重会被初始化为随机数呢?
我在某处读到,这样做是为了“打破对称性”,这使得神经网络学习得更快。打破对称性如何让它学得更快?
将权重初始化为 0 不是更好的主意吗?这样权重就能够更快地找到它们的值(无论是正值还是负值)?
除了希望它们在初始化时接近最佳值之外,在随机化权重背后是否还有其他一些基本理念?
matlab - 牛顿梯度下降线性回归
我正在尝试在 MatLab 中实现一个函数,该函数使用牛顿法计算最佳线性回归。然而,我陷入了困境。我不知道如何找到二阶导数。所以我无法实现它。这是我的代码。
谢谢你的帮助。
编辑::
我用一些纸和笔解决了这个问题。您所需要的只是一些微积分和矩阵运算。我找到了二阶导数,它现在正在工作。我正在为感兴趣的人分享我的工作代码。
matlab - 梯度下降码的向量化
我正在 Matlab 上实现批量梯度下降。我的更新步骤有问题theta
。
theta
是两个分量(两行)的向量。
X
是一个包含m
行(训练样本数)和n=2
列(特征数)的矩阵。Y 是m
行向量。
在更新步骤中,我需要将每个设置theta(i)
为
这可以通过for
循环来完成,但我不知道如何对其进行矢量化(因为这个X(:,i)
术语)。
有什么建议吗?
java - Java implementation of fminunc in octave
I am trying to find a java version of octave's fminunc
(function minimization unconstrained) library in Java. The goal is to use it for logistic regression.
Currently, I am using a home-brewed version of gradiant descent for cost minimization and I would like to be able to use an already existing library to do that (in Java) for me. This is related to my effort of porting octave code that we have from the Coursera Machine Learning course to Java.
machine-learning - RISO 的 L-BFGS 不工作
我正在测试 RISO 的 L-BFGS 库的实现,以实现 Java 中逻辑回归的函数最小化。这是我正在使用的课程的链接。
为了测试这个库,我试图最小化这个函数:
该库需要我实现的目标和梯度函数,如下所示:
使用目标函数和梯度的这种实现运行代码会给我以下异常:
我没有更改默认值的公差。我究竟做错了什么?