Я какое-то время изучал науку о данных и темы ML, и меня всегда теряет интерес к одной точке, которая вызывает у меня большую путаницу.
В таких курсах, как курсы Эндрю Нга, определено, что ошибка между прогнозируемым значением и истинным значением, например Линейная регрессия выражается как:
ошибка = прогнозируемое значение - у
В некоторых других уроках / курсах ошибка представлена в виде:
error = y - предсказанное_значение
Также, например, в науке о данных Udacity Nanodegree, обновление весов градиентного спуска задается как:
error = y - предсказанное_значение
W_new = W + learn_rate * np.matmul (ошибка, X)
В то же время, в некоторых других книгах / курсах, та же процедура дается:
ошибка = прогнозируемое_значение - у
W_new = W - Learn_rate * np.matmul (ошибка, X)
Может ли кто-нибудь помочь мне с этими разными обозначениями?
Спасибо!
EDIT
После ответа @bottaio я получил следующее:
Первый случай:
# compute errors
y_pred = np.matmul(X, W) + b
error = y_pred - y
# compute steps
W_new = W - learn_rate * np.matmul(error, X)
b_new = b - learn_rate * error.sum()
return W_new, b_new
Второй случай:
# compute errors
y_pred = np.matmul(X, W) + b
error = y - y_pred
# compute steps
W_new = W + learn_rate * np.matmul(error, X)
b_new = b + learn_rate * error.sum()
return W_new, b_new
Запустив первый и второй кейсы, я получаю:
Третий случай:
# compute errors
y_pred = np.matmul(X, W) + b
error = y_pred - y
# compute steps
W_new = W + learn_rate * np.matmul(error, X)
b_new = b + learn_rate * error.sum()
return W_new, b_new
Запустив третий случай, я получаю:
Это именно та интуиция, которой я пытаюсь достичь.
Какова связь между использованием error = y - y_pred и необходимостью использовать пошаговое вычисление как положительное W_new = W + learn_rate * np.matmul (error, X) вместо W_new = W - learn_rate * np.matmul (ошибка, X) ?
Спасибо за поддержку !!!!!