Читать книгу Основы глубокого обучения - Нихиль Будума - Страница 16
Глава 2. Обучение нейросетей с прямым распространением сигнала
Градиентный спуск с сигмоидными нейронами
ОглавлениеВ этом и следующем разделах мы будем говорить об обучении нейронов и нейросетей, использующих нелинейности. В качестве образца возьмем сигмоидный нейрон, а расчеты для других нелинейных нейронов оставим читателям как упражнение. Для простоты предположим, что нейроны не используют смещение, хотя наш анализ вполне можно распространить и на такой случай. Допустим, смещение – вес входа, на который всегда подается 1.
Напомним механизм, с помощью которого логистические нейроны вычисляют выходные значения на основе входных:
Нейрон определяет взвешенную сумму входящих значений – логит z. Затем он передает этот логит в нелинейную функцию для вычисления выходного значения y. К счастью для нас, эти функции имеют очень красивые производные, что значительно упрощает дело! Для обучения нужно вычислить градиент функции потерь по весам. Возьмем производную логита по входным значениям и весам:
Кроме того, как ни удивительно, производная выходного значения по логиту проста, если выразить ее через выходное значение:
Теперь можно использовать правило дифференцирования сложной функции, чтобы вычислить производную выходного значения по каждому из весов:
Объединяя полученные результаты, мы можем вычислить производную функции потерь по каждому весу:
Итоговое правило изменения весов будет выглядеть так:
Как вы видите, новое правило очень похоже на дельта-правило, за исключением дополнительных множителей для учета логистического компонента сигмоидного нейрона.