§ Зачем нужно

В искусственных нейронных сетях очень удобно использовать логистическую функцию (сигмоиду):
\sigma(x) = \frac{1}{1 + e^{-x}} = (1 + e^{-x})^{-1}
Почему так? Это все из-за того факта, что при дифференцировании получается та же самая начальная функция и не требуется дополнительно что-то вычислять, что сокращает процессорное время.

§ Вывод дифференцирования

Как можно заметить, (1 + e^{-x})^{-1} - сложная функция и потому ее надо дифференцировать по цепному правилу:
f'(g(x)) = f'(g(x))g'(x)
То есть, в качестве аргумента функции сначала выступает g(x) и берем ее производную, а потом умножаем на производную этого аргумента и так далее.
То есть, f(g(x)) = (g(x)^{-1})' g'(x) где g(x) = 1 + e^{-x} и потому g'(x) = -e^{-x} . Между прочим, у аргумента экспоненты тоже берем производную, и получается как раз тот самый минус перед ней.
Соберем все вместе:
f(g(x)) = -g(x)^{-2} (-e^{-x}) = (1 + e^{-x})^{-2} e^{-x} = \frac{e^{-x}}{(1 + e^{-x})^2}
Выглядит страшно. Но это еще не все. Сделаем такой очень хитрый трюк, в числитель добавим и тут же вычтем единицу:
\frac{e^{-x} + 1 - 1}{(1 + e^{-x})^2} = \frac{(1 + e^{-x}) - 1}{(1 + e^{-x})^2}
А теперь разделим вычитание:
\frac{(1 + e^{-x})}{(1 + e^{-x})^2} - \frac{1}{(1 + e^{-x})^2}
После того как сократили первое слагаемое, останется вот что:
\frac{1}{(1 + e^{-x})} - \frac{1}{(1 + e^{-x})^2} = \sigma(x) - \sigma^2(x) = \sigma(x)(1 - \sigma(x))

§ Итог

Вот и всё! Там где \sigma(x) - это замена той страшной формулы сигмоиды на символ. В последнем равенстве вынесли за скобки данную сигму и все получилось очень просто. Другими словами, производная от сигмоиды будет равна разности сигмоиды и ее квадрата:
\sigma'(x) = \sigma(x)(1 - \sigma(x))
3 фев, 2022
© 2007-2022 Суть в том, что Земфира закусывает имбирем