Я кодирую градиентный спуск в матлабе. Для двух функций я могу перейти на шаг обновления:
temp0 = theta(1,1) - (alpha/m)*sum((X*theta-y).*X(:,1)); temp1 = theta(2,1) - (alpha/m)*sum((X*theta-y).*X(:,2)); theta(1,1) = temp0; theta(2,1) = temp1;
Однако я хочу векторизовать этот код и использовать его для любого количества функций. Для части векторизации это было указано мне, что то, что я пытаюсь сделать, это умножение матрицы
theta = theta - (alpha/m) * (X' * (X*theta-y));
Это хорошо видно, но когда я попытался, я понял, что он не работает для градиентного спуска, потому что параметры не обновляются одновременно.
Затем, как я могу векторизовать этот код и убедиться, что параметры и обновлены в одно и то же время?