Допустим есть сеть 4 входных нейрона и 1 на выход. Веса w1=0.2 w2=0.5 w3=0.1 w4=0.9
Функция потерь среднеквадратическая, предположим равна 0.5 далее мы плюсуем ( параметр который указывается вручную а=0.1 умножаем на сумму квадратов всех весов. То есть L2=(0.2^2+0.5^2+0.1^2+0.9^2)*a
L2=0.111+функция потерь(0.5)=0.611
Далее обновляем веса new_w1=w1*(L2*w1+градиент)/batch_size и т.д.
Правильно ли я понял формулу? И правильно ли обновляю вес?
После нескольких эпох все веса становятся нулями, подскажите пожалуйста что делаю не так?
Потери будут выглядеть так:
Потери = Значение функции среднекв. ошибки + L1 * a + L2 * b , где a, b - гиперпараметры, которые будут указывать, насколько сильно мы будем штрафовать модель за большие веса.
Дальше просто от этого берем градиент от полученного выражения и меняем веса.