- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试运行梯度下降,但在使用完全相同的数据时无法获得与内置 fminunc Octave 音程相同的结果
我的代码是
%for 5000 iterations
for iter = 1:5000
%%Calculate the cost and the new gradient
[cost, grad] = costFunction(initial_theta, X, y);
%%Gradient = Old Gradient - (Learning Rate * New Gradient)
initial_theta = initial_theta - (alpha * grad);
end
当给定示例(X,y)和参数(theta)时,costFunction计算成本和梯度。
内置 Octave 音程函数 fminunc 也调用 costFunction 并使用相同的数据以更少的迭代找到更好的答案。
鉴于 Octave 使用相同的成本函数,我假设成本函数是正确的。
我尝试降低学习率,以防遇到局部最小值并增加迭代次数,成本停止下降,所以我认为它似乎已经找到了最小值,但最终的 theta 仍然有一个更大的值成本而且远不那么准确
即使 fminunc 使用更好的算法,梯度下降最终是否可以通过足够的迭代和较小的学习率找到相同的答案?
或者谁能看看我是否做错了什么?
感谢您提供的所有帮助。
最佳答案
你的评论是错误的,但算法很好。
梯度下降很容易陷入数值问题,那么我建议进行特征归一化。
此外,如果您不确定自己的学习率,请尝试动态调整它。像这样的东西:
best_cost = Inf;
best_theta = initial_theta;
alpha = 1;
for iter = 1:500
[cost, grad] = costFunction(best_theta, X_reg, y);
if (cost < best_cost)
best_theta = best_theta - alpha * grad;
best_cost = cost;
else
alpha = alpha * 0.99
end
end
此外请记住,不同的答案可以给出相同的决策边界。例如,对于假设 h(x) = x(0) + theta(1) * x(1) + theta(2) * x(2) 这些答案给出了相同的边界:
theta = [5, 10, 10];
theta = [10, 20, 20];
关于machine-learning - 梯度下降与 fminunc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12554656/
我正在尝试在 Octave 中使用 fminunc 实现仅具有一个特征的线性回归。 这是我的代码。 x = load('/home/battousai/Downloads/ex2Data/ex2x.d
我正在尝试运行梯度下降,但在使用完全相同的数据时无法获得与内置 fminunc Octave 音程相同的结果 我的代码是 %for 5000 iterations for iter = 1:5000
我正在尝试使用 fminunc 函数进行凸优化。但是,在我的例子中,我正在考虑 logx 的梯度。设我的目标函数为 F,则梯度为 dF/dx = (dF/dlogx) * (1/x) = > dF/d
我正在 MATLAB 中执行逻辑回归,对文本数据进行 L2 正则化。我的程序适用于小型数据集。对于更大的集合,它会无限运行。 我看到了可能重复的问题 ( matlab fminunc not quit
f = @(w) sum(log(1 + exp(-t .* (phis * w'))))/size(phis, 1) + coef * w*w'; options = optimset('Displ
python 中的 fminunc 函数(来自 octave/matlab)是否有替代方法?我有一个二元分类器的成本函数。现在我想运行梯度下降来获得 theta 的最小值。 octave/matlab
我正在构建一个算法,该算法使用 BFGS 方法来查找 Octave 中二进制数据集的逻辑回归中的参数。 现在,我正在努力解决一些我认为是过度拟合问题的问题。我对多个数据集运行该算法,它实际上收敛到与
我在使用 Mac 版本的 Matlab_R2016a 练习机器学习类(class)逻辑回归编码时遇到了问题。 首先,这是我的 costFunction 代码,它可以很好地返回成本和梯度: functi
我正在尝试使用 Octave 中的 fminunc() 函数来实现正则化 Logistic 回归算法,以最小化成本函数。正如一般建议,我想将成本函数绘制为 fminunc() 函数迭代的函数。函数调用
我一直在努力完成 Andrew Ng 的机器学习类(class),我现在正在学习逻辑回归部分。我试图在不使用 MATLAB 函数 fminunc 的情况下发现参数并计算成本。但是,我并没有得出其他使用
为了计算最佳 theta,例如在逻辑回归中,我必须创建一个 costFunction(要最小化的函数),然后将其传递给 fminunc 以获得最佳 theta。此外,如果可以计算 costFuncti
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
我经常使用 fminunc 来解决逻辑回归问题。我在网上读到 Andrew Ng使用 fmincg 而不是 fminunc,参数相同。结果不同,通常 fmincg 更准确,但不会太多。 (我正在将 f
我正在尝试使用 fminunc 运行线性回归来优化我的参数。然而,虽然代码永远不会失败,但 fminunc 函数似乎只运行一次并且没有收敛。 fminunc 函数返回的退出标志是 -3,根据文档,这意
我将我的代码从 Octave 传递给 julia,在这种情况下是逻辑回归。梯度函数除了初始 theta 之外,还需要 X 与我的特征和 Y 与寻求值。 在 Octave 作品中function [J,
fminunc 正在返回“用户目标函数返回复数;当“iter-detailed”打开时,尝试一个新点...”。我知道这是因为我的成本函数,由于某种原因它返回一个复杂的组件(准确地说它返回 J = Na
我是一名优秀的程序员,十分优秀!