Назад к вопросам
JuniorТеорияЧасто
Что выведет эта программа?
import numpy as np
x = np.array([1.0, 2.0, 3.0])
y = np.array([2.0, 4.0, 6.0])
w, b, lr = 0.0, 0.0, 0.1
dw = 2 * ((w * x + b - y) * x).mean()
db = 2 * (w * x + b - y).mean()
w = w - lr * dw
b = b - lr * db
print(round(w, 2), round(b, 2))1.87 0.8
- Ждать
-1.87 -0.8:w - lr * dwделает шаг против градиента; приw = b = 0все прогнозы ниже целей, поэтомуdwиdbотрицательны и оба параметра растут. - Ждать
18.67 8.0: шаг — это градиент, умноженный наlr, поэтому градиенты-18.67и-8.0уменьшаются в десять раз, прежде чем их вычитают.
- Что произойдёт с
wза много шагов, если задать здесь скорость обученияlrравной 1.0? - Почему в начальной точке
w = 0,b = 0оба градиента отрицательны?