Использования векторизованных версий градиента, как описана в: gradient descent seems to failГрадиентный спуск не обновляется тета значений
theta = theta - (alpha/m * (X * theta-y)' * X)';
Значение теты не обновляется, так что все, что начальное значением теты это значение, которые установлены после того, как работаю градиентный спуск:
example1:
m = 1
X = [1]
y = [0]
theta = 2
theta = theta - (alpha/m .* (X .* theta-y)' * X)'
theta =
2.0000
example2:
m = 1
X = [1;1;1]
y = [1;0;1]
theta = [1;2;3]
theta = theta - (alpha/m .* (X .* theta-y)' * X)'
theta =
1.0000
2.0000
3.0000
theta = theta - (alpha/m * (X * theta-y)' * X)';
Правильная векторная реализация градиентного спуска?