Градиент приличный для линейной регрессии (1-я неделя машинного обучения Нг Эндрю) - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь понять алгоритм градиентного спуска для линейной регрессии.

Вопрос в том, почему мы умножаем на x (1) в конце theta1 и не делаем этого в конце theta0?

Большое спасибо!

enter image description here

Ответы [ 3 ]

0 голосов
/ 07 января 2020

Короче говоря, из-за частной производной и применения правила цепочки.

Для тета 0, когда вы берете производную функции потерь (MSE) по отношению к тета 0 (или бета 0 / перехват), Ваша производная находится в форме, показанной справа от eq1.

imagine...
Y = Mx + C
M = Theta 1
C = Theta 0

Loss Function = (Y - (Mx + C))^2

The derivative is in the form of f(x) * f'(x) if that makes sense. f'(x) in Theta 0 is 1 (watch the video to understand the derivate). So

2(Y - (Mx + C)) *  derivative of with respect to C of (Y - (Mx + C))
= 2(Y - (Mx + C)) [disregard the 2 in front]


For Theta 1, when you take derivative of the loss function (MSE) with respect to Theta 1 (Or Beta 1 / slope ), your derivative is in the form shown the rightmost of eq1. In this case f'(x) is x, because.....

2(Y - (Mx + C)) *  derivative of with respect to M of (Y - (Mx + C))
= 2(Y - (Mx + C)) * (1*x) [because the only term that is left is dx(Mx)]

Вот видео, которое может помочь https://www.youtube.com/watch?v=sDv4f4s2SB8

0 голосов
/ 07 января 2020

Функция потерь для линейной регрессии задается как

J = {(HthetaX(i))-y}^2

И у нас есть градиент = Производная потерь. Поэтому

DJ/Dtheta = 2*(HthetaX(i))-y)*X(i). Теперь для theta0 X(i) ==1, следовательно

DJ/Dtheta for Theta0 = 2*(Htheta*X(i))-y)
0 голосов
/ 07 января 2020

Гипотеза theta0 + theta1*x. При дифференцировании по theta0 и theta1 вы получаете 1 и x соответственно. Таким образом, вы получаете x в обновлении для theta1, но не для theta0. Подробнее см. В этом документе cs229-notes1 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...