Проверь backward
Числа правильной формы ещё не означают, что backward верен. Напишите численную проверку одного веса.
Оформите функцию:
def numeric_gradient(x, w, b, y, index, h=1e-5):
...
Она должна изменить только w[index] и вычислить центральную разность:
\(g_{num}=\dfrac{L(w_i+h)-L(w_i-h)}{2h}\).
Функция потерь и нейрон те же, что в предыдущей задаче: линейная часть → ReLU → квадрат ошибки.
Входные данные
n
x1 x2 ... xn
w1 w2 ... wn
b y
index
index нумеруется с нуля. Используйте h = 1e-5.
Выходные данные
Выведите численный градиент с 6 знаками после точки.
Тесты не содержат точек излома ReLU в интервале [w[index]-h, w[index]+h].
| № | Входные данные | Выходные данные |
|
1
|
3
1 2 3
0.5 -0.25 1
0.5 2
0
|
3.000000
|
|
2
|
3
1 2 3
0.5 -0.25 1
0.5 2
2
|
9.000000
|