相关疑难解决方法(0)

梯度下降似乎失败了

我实现了梯度下降算法以最小化成本函数,以获得用于确定图像是否具有良好质量的假设.我在Octave做到了.这个想法以某种方式基于Andrew Ng 的机器学习类的算法

因此,我有880个值"y",其中包含从0.5到12的值.我在"X"中有880个值,从50到300,可以预测图像的质量.

遗憾的是,算法似乎失败了,经过一些迭代后,theta的值非常小,theta0和theta1变为"NaN".而我的线性回归曲线有奇怪的价值......

这是梯度下降算法的代码:(theta = zeros(2, 1);,alpha = 0.01,iterations = 1500)

function [theta, J_history] = gradientDescent(X, y, theta, alpha, num_iters)

m = length(y); % number of training examples
J_history = zeros(num_iters, 1);

for iter = 1:num_iters


    tmp_j1=0;
for i=1:m, 
    tmp_j1 = tmp_j1+ ((theta (1,1) + theta (2,1)*X(i,2)) - y(i));
end

    tmp_j2=0;
for i=1:m, 
    tmp_j2 = tmp_j2+ (((theta (1,1) + theta (2,1)*X(i,2)) - y(i)) *X(i,2)); 
end

    tmp1= theta(1,1) - (alpha *  ((1/m) * tmp_j1))  
    tmp2= …
Run Code Online (Sandbox Code Playgroud)

machine-learning octave gradient-descent

26
推荐指数
3
解决办法
2万
查看次数