矢量化 运行 八度无限循环
vectorization running in infinite loop in octave
我正在尝试计算
其中 h(x) = X*theta, theta is nx1 matrix and X is an mxn and y is also m x 1
矩阵。 alpha,m,theta(j) and x(j)(i)
是标量值。我正在尝试通过以下方式对其进行矢量化
theta0 =(X*theta - y)
theta1 = (X*theta - y).*X(:,2)
theta0 = sum(theta0);
theta1 = sum(theta1);
theta0 = theta(1) - theta0*alpha/m;
theta1 = theta(2) - theta1*alpha/m;
theta = [theta0;theta1];
其中 num_iter=1500
和 m=length(y)
但是我的代码进入了无限循环。我的等效循环解决方案如下
theta0 =0;
theta1= 0;
for i = 1:m,
theta0 = theta0 + (sum(X(i,:)*theta) - y(i));
theta1 = theta1 + (sum(X(i,:)*theta) - y(i))*X(i,2);
end
theta(1) = theta(1) - theta0*alpha/m;
theta(2) = theta(2) - theta1*alpha/m;
请告诉我哪里错了
公式可以向量化的形式写成:
theta = theta - alpha/m * ((X*theta - y).' *X).';
我正在尝试计算 h(x) = X*theta, theta is nx1 matrix and X is an mxn and y is also m x 1
矩阵。 alpha,m,theta(j) and x(j)(i)
是标量值。我正在尝试通过以下方式对其进行矢量化
theta0 =(X*theta - y)
theta1 = (X*theta - y).*X(:,2)
theta0 = sum(theta0);
theta1 = sum(theta1);
theta0 = theta(1) - theta0*alpha/m;
theta1 = theta(2) - theta1*alpha/m;
theta = [theta0;theta1];
其中 num_iter=1500
和 m=length(y)
但是我的代码进入了无限循环。我的等效循环解决方案如下
theta0 =0;
theta1= 0;
for i = 1:m,
theta0 = theta0 + (sum(X(i,:)*theta) - y(i));
theta1 = theta1 + (sum(X(i,:)*theta) - y(i))*X(i,2);
end
theta(1) = theta(1) - theta0*alpha/m;
theta(2) = theta(2) - theta1*alpha/m;
请告诉我哪里错了
公式可以向量化的形式写成:
theta = theta - alpha/m * ((X*theta - y).' *X).';