alterna ai
ALTERNA AI / ГЛАВА 07 · 03

07.3 Гладкая функция и насыщение

На предыдущей странице: граница между решениями.

Функция может сжимать большой диапазон входов в ограниченный диапазон выходов. Но на краях небольшое изменение входа почти перестаёт влиять на ответ.

Он собирает вклады входов, добавляет смещение и применяет нелинейное правило. Все части этого расчёта уже доступны школьной арифметике.

Гладкость не исключает насыщения

Sigmoid переводит z в (0,1), tanh — в (−1,1). Производные выражаются через уже вычисленный результат:

σ(z)=11+e−z,σ′(z)=σ(z)(1−σ(z)),tanh⁡′(z)=1−tanh⁡2(z).\sigma(z)=\frac1{1+e^{-z}},\quad \sigma'(z)=\sigma(z)(1-\sigma(z)),\quad \tanh'(z)=1-\tanh^2(z).

При z=0 значения sigmoid и её производной равны .5 и .25; для tanh это 0 и 1. При большом |z| обе функции насыщаются, а локальная производная стремится к нулю. Много небольших множителей вдоль цепочки может существенно ослабить gradient. Это следствие chain rule, а не «усталость нейронов». N02.

Эксперимент. Сравните активации при одинаковых x,w,b. Увеличьте модуль z через вес: shape не меняется, но sensitivity может резко уменьшиться. На графике отдельно показаны значение функции и её производная.

Для устойчивого sigmoid при z≥0 используем 1/(1+exp(−z)), а при z<0 — exp(z)/(1+exp(z)). Так не требуется экспонента большого положительного числа. При сильном насыщении floating-point всё равно может округлить p до 0 или 1; BCE поэтому лучше вычислять через logit.

Граница. Sigmoid как скрытая активация и связка sigmoid+BCE на выходе имеют разные производные относительно общей ошибки. Уверенно неверный logit не обязан получать почти нулевой gradient объединённой loss. Значения tanh не являются распределением вероятностей.

from math import exp,tanh
s=1/(1+exp(0))
assert s==.5 and s*(1-s)==.25
assert tanh(0)==0 and 1-tanh(0)**2==1

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

σ′=σ(1−σ); это не полная derivative любого loss.

Нелинейные правила преобразования. Как этот вопрос продолжает полученный результат?

Python-примеры главы 07 Академическая база →