Итак, использование будет таким.
output = model(input)
loss = loss_fn(y_prediction, y_actual)
Проблема в том, что в этом уравнении y = w * x + b производная от w и b различна.
- d/dw (ŷ - y)² = 2 * (w * x + b - y) * w.
- d/db (ŷ - y)² = 2 * (w * x + b - y) * 1.
def execute(self) -> int:
pass
class GradientDescent(Optimizer):
def execute(self, w: int, x: int, b: int, y: int) -> int:
# 1. d/db (ŷ - y)²
# d/db (w * x + b - y)²
# 2 * (w * x + b - y) * 1
# 2. d/dw (ŷ - y)²
# d/dw (w * x + b - y)²
# 2 * (w * x + b - y) * w
return 2 * (w * x + b - y) * w
Подробнее здесь: https://stackoverflow.com/questions/785 ... -optimizer