Tôi đã thực sự đấu tranh chống lại điều này trong 2 tháng nay. Điều gì tạo nên sự khác biệt này?Triển khai phần gốc Gradient trong quãng tám
hypotheses= X * theta
temp=(hypotheses-y)'
temp=X(:,1) * temp
temp=temp * (1/m)
temp=temp * alpha
theta(1)=theta(1)-temp
hypotheses= X * theta
temp=(hypotheses-y)'
temp=temp * (1/m)
temp=temp * alpha
theta(2)=theta(2)-temp
theta(1) = theta(1) - alpha * (1/m) * ((X * theta) - y)' * X(:, 1);
theta(2) = theta(2) - alpha * (1/m) * ((X * theta) - y)' * X(:, 2);
Tác phẩm thứ hai hoạt động. Tôi chỉ không chắc chắn tại sao .. Tôi đấu tranh để hiểu sự cần thiết cho ma trận nghịch đảo.
Tôi không nghĩ rằng đây là một thực hiện đúng gradient descent. Bạn cần phải cập nhật. Cả hai thetas của bạn cùng một lúc là chính xác. 'tmpTheta1 = theta (1) - alpha * (1/m) * ((X * theta) - y) '* X (:, 1); tmpTheta2 = theta (2) - alpha * (1/m) * ((X * theta) - y) '* X (:, 2);' 'theta (1) = tmpTheta1;' 'theta (2) = tmpTheta2; ' –