没有矩阵转置的Vectorise梯度下降

时间:2019-02-04 16:02:00

标签: machine-learning octave

我已使用矩阵转置以矢量形式在梯度下降下方进行逻辑回归,并且工作正常

%grad(1) = (1/m)*X(:,1)'*(h-y);
%grad(2:end) = (1/m)*(X(:,2:end)'*(h-y)) + (lambda/m)*theta(2:end);

但是当我尝试不使用矩阵转置而使用它时,仅当我将+ (lambda/m)*theta(2:end)添加到grad(2:end)时,它才会给出矩阵运算错误

%grad(1) = (1/m)*sum((h-y).*X(:,1));
%grad(2:end) = ((1/m)*sum((h-y).*X(:,2:end))) + (lambda/m)*theta(2:end);

1 个答案:

答案 0 :(得分:0)

实际上,我现在知道应该是

grad(2:end)=(1 / m)* sum((hy)。* X(:,2:end))'+(lambda / m)* theta(2:end);