Преобразование градиентного спуска с регуляризацией L2 в код - PullRequest
0 голосов
/ 21 сентября 2018

Я застрял при написании этой строки кода - это действительно простая строка кода, которая запутывает меня.

Я должен написать функцию градиентного спуска с параметрами-весами, X, y, train_len (определяется как количество строк в X), alpha, learning_rate и num_iter.

Первая производная функции потерь по весу находится здесь. Я пытался написать кодкак это:

for i in range(0, n_iter):

  weights = weights - learning_rate * (np.multiply(-2, np.dot(X.transpose(), y - np.dot(X, weights))) + np.multiply(2*alpha, weights))

return weights

К сожалению, я получаю Nan, когда пытаюсь использовать функцию градиентного спуска.

1 Ответ

0 голосов
/ 22 сентября 2018
for i in range(0, n_iter):
  first_derivative = -2 * np.dot(X.T, y - np.dot(X, weights)) + 2 * alpha * weights
  weights = weights - (learning_rate / train_len) * first_derivative
return weights

Оказывается, я забыл разделить на количество обучающих примеров.

...