问题标签 [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.
java - 线性回归中的梯度下降
我正在尝试在java中实现线性回归。我的假设是 theta0 + theta1 * x[i]。我试图找出 theta0 和 theta1 的值,以使成本函数最小。我正在使用梯度下降来找出值 -
在里面
这是什么重复直到收敛?我知道这是局部最小值,但我应该在 while 循环中放入的确切代码是什么?
我对机器学习非常陌生,刚刚开始编写基本算法以获得更好的理解。任何帮助将不胜感激。
machine-learning - 特征缩放后重新缩放,线性回归
似乎是一个基本问题,但我需要在使用梯度下降实现线性回归时使用特征缩放(取每个特征值,减去均值,然后除以标准差)。完成后,我希望将权重和回归线重新调整为原始数据。我只使用一个功能,加上 y 截距项。在使用缩放数据获得权重后,我将如何更改权重,以便它们应用于原始的未缩放数据?
matlab - 我的随机梯度下降的实现是否正确?
我正在尝试开发随机梯度下降,但我不知道它是否 100% 正确。
- 我的随机梯度下降算法产生的成本有时与 FMINUC 或批量梯度下降产生的成本相差甚远。
- 虽然当我将学习率 alpha 设置为 0.2 时,批量梯度下降成本会收敛,但我不得不将学习率 alpha 设置为 0.0001,以便我的随机实现不会发散。这是正常的吗?
这是我使用 10,000 个元素和 num_iter = 100 或 500 的训练集获得的一些结果
逻辑回归的梯度下降实现
逻辑回归的随机梯度下降实现
作为参考,这是我的示例中使用的逻辑回归成本函数
arrays - 最速下降算法的问题
我正在尝试编写一个程序,使用最速下降算法最小化二维 400 原子系统的总能量。我的程序的总体思路如下:
- 获取原子坐标 (x, y)
- 随机选择一个原子
- 计算作用在该原子上的力的 x 和 y 分量
- 计算 x 和 y 位置的变化,dx 和 dy
- 生成新坐标(x+dx, y+dy)并更新数组
- 重复步骤 2-5,直到每个原子上的力变为 ~0
由于原子 210 上的初始力的大小很大,因此它是系统接近收敛的良好标志。我还没有修复代码,以便在力在某个容差范围内时停止迭代。话虽如此,我的代码在原子 210 上打印了力的 x 分量,以便我可以查看力是否趋于 0。
当我运行我的代码时,坐标数组似乎没有更新(上面的第 5 步)。我不确定是在这个网站还是物理网站上发布我的问题,但是,我相信我的问题涉及在 Fortran 77 中更新数组的一些技术性。如果这超出了本网站的范围,我很抱歉。我只是不知道该转向哪里。感谢大家提供的任何帮助。如果我的注释不清楚或者是否有人需要更多信息,请告诉我。这是代码。
matlab - Matlab中的逻辑回归梯度下降
这是代码
我遇到的问题是对数似然比首先降低,然后开始增加。这是梯度下降算法或代码的问题。
r - 在 R 中使用随机梯度下降编程逻辑回归
我正在尝试用 R 中的随机下降梯度对逻辑回归进行编程。例如,我遵循了 Andrew Ng 的示例,名为:“ex2data1.txt”。
关键是该算法可以正常工作,但θ估计并不完全符合我的预期。所以我试图改变整个算法来解决这个问题。然而,这对我来说几乎是不可能的。我无法检测到导致此问题的错误。因此,如果有人可以检查示例并告诉我为什么未正确计算 thetas,这将非常有用。对此,我真的非常感激。
关于编程,我没有使用R或矩阵计算中实现的任何函数。我只是在循环中使用加法和减法,因为我想在 hadoop 中使用代码,我不能使用矩阵微积分,甚至不能使用 R 中已经编程的函数,例如“sum”、“sqrt”等
随机梯度下降是:
和逻辑回归:
我的代码是:
我的θ
matlab - minFunc 包使用
我一直在使用 MATLAB fminunc 函数来解决我的优化问题。我想试试 minFunc 包:
http://www.di.ens.fr/~mschmidt/Software/minFunc.html
使用 fminunc 时,我定义了一个函数 funObj.m,它为我提供了目标值和任意点“x”处的梯度。它还接受几个外部输入,例如 {a,b,c},它们是矩阵。所以函数原型看起来像:
我想在 minFunc 包中使用相同的设置。从示例中,我认为这应该可行:
但是当我这样调用时,我得到一个错误:
为我的案例调用 minFunc 的正确方法是什么?
* *编辑:好的,这是我想与 minFunc 一起使用的示例函数。假设我想找到 a*(bx)^2 的最小值,其中 a,b 是标量参数,x 也是标量。MATLAB 目标函数将如下所示:
使用 fminunc(在 MATLAB 中)将其最小化的函数调用很简单:
这给了我 x = 10 的最小值。现在,我如何使用 minFunc 做同样的事情?
r - R 中需要 TRUE/FALSE 的缺失值
当我在没有注释的情况下运行以下代码时,gr.ascent(MMSE, 0.5, verbose=TRUE)
我收到此错误Error in b1 * x : 'b1' is missing
,但是当我评论该行时,我在使用这些参数测试 MMSE 时收到以下错误MMSE(2,1,farmland$farm,farmland$area)
。你知道我的问题出在哪里吗?
这是我的代码:
其中 FarmLand csv 数据如下:
这是 dput(farmland) 的结果:
machine-learning - 梯度下降的替代方案是什么?
梯度下降存在局部最小值问题。我们需要运行梯度下降指数时间来找到全局最小值。
谁能告诉我梯度下降的任何替代方案及其优缺点。
谢谢。
neural-network - Oscillation in neural network training
I've programmed a fully connected recurrent network (based on Williams and Zipser) in Octave, and I successfully trained it using BPTT to compute an XOR as a toy example. The learning process was relatively uneventful:
XOR training
So, I thought I'd try training the network to compute the XOR of the first two inputs, and the OR of the last two inputs. However, this failed to converge the first time I ran it; instead, the error just oscillated continually. I tried decreasing the learning rate, and turning off momentum entirely, but it didn't help. When I ran it again this morning, it did end up converging, but not without more oscillations in the process:
XOR/OR training
So, my question: could this indicate a problem with my gradient computation, or is this just something that happens when training recurrent networks?