цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Сигмоидальная функция активации: активация в многослойных нейронных сетях


Сигмоидальная функция активации: активация в многослойных нейронных сетях

Автор: Mike(admin) от 29-01-2020, 08:05

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


До сих пор в нашей серии статей мы использовали функцию скачкообразной активации.


Функция скачкообразной активации

Вычислительные узлы сети суммировали все взвешенные значения, доставленные предыдущим уровнем, а затем преобразовали эти суммы в один или ноль в соответствии со следующим выражением.


Функция скачкообразной активации

Однако вы, возможно, заметили, что на моих диаграммах представление функции активации не является единичным шагом. Это больше похоже на сглаженную, не совсем вертикальную версию шага.


Cигмоидная функция активации

Сглаженная версия более привлекательна, но это не та причина, по которой ее выбрали. Или, по крайней мере, это не единственная причина. Оказывается, единичный шаг не является хорошей функцией активации для многослойных персептронов. Давайте выясним, почему.


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


Шаг позволяет реализовать очень простые вычисления, которые происходят внутри узла (все, что вам нужно, это оператор if/else), но это преимущество становится бессмысленным в контексте градиентного спуска, поскольку шаг не дифференцируем – он не является непрерывной функцией, а наклон в точке, где выходной переход от нуля к единице равен бесконечности.


Если мы намереваемся обучить нейронную сеть с использованием градиентного спуска, нам нужна дифференцируемая функция активации. Поскольку единичный шаг согласуется с поведением включения/выключения биологических нейронов и теоретически эффективен (хотя и ограничен) в системах, состоящих из искусственных нейронов, имеет смысл рассмотреть функцию активации, которая похожа на единичный шаг, но без отсутствия дифференцируемости. Нам нужно рассмотреть логистическую сигмоидальную функцю.


Слово «сигмоид» относится к чему-то изогнутому в двух направлениях. Существуют различные сигмоидальные функции, и нас интересует только одна. Она называется логистической функцией, и ее математическое выражение довольно просто.


Сигмоидальная функция активации

Константа L определяет максимальное значение кривой (L = 1,5 (синий), L = 1 (оранжевый) и L = 0,5 (зеленый)), а константа k влияет на крутизну перехода. На графике ниже показаны примеры логистической функции для разных значений L, а на следующем графике показаны кривые для разных значений k (k = 1,5 (синий), k = 1 (оранжевый) и k = 0,5 (зеленый)).


Сигмоидальная функция активации

Сигмоидальная функция активации

Логистическая функция - не единственная функция активации, но она очень распространена и имеет несколько преимуществ:


  • Как упомянуто выше, логистическая активация является превосходным улучшение единичного шага, потому что общее поведение эквивалентно, но гладкость в переходной области гарантирует, что функция непрерывна и, следовательно, дифференцируема
  • Вычислительная нагрузка, безусловно, превышает нагрузку на единичного шага, но она все еще кажется вполне разумной – только одна экспоненциальная операция, одно сложение и одно деление
  • Мы можем легко настроить отношения ввода-вывода, настроив параметры L и k. Однако, нейронные сети обычно используют стандартную логистическую функцию, то есть с L = 1 и k = 1

Стандартная логистическая функция f(x) имеет следующую первую производную:


Стандартная логистическая функция

Однако, если вы уже рассчитали выход логистической функции для заданного входного значения, вам не нужно использовать выражение для производной, поскольку оказывается, что производная логистической функции связана с исходной логистической функцией так:


Производная логистической функции

Надеемся, что теперь у вас есть четкое представление о том, что такое логистическая сигмоидальная функция и почему мы используем ее для активации в многослойных персептронах. Логистическая функция, несомненно, эффективна для проектирования нейронных сетей. Однако с ростом сложности она становится менее желательной, так как количество скрытых слоев увеличивается из-за того, что называется проблемой исчезающего градиента. Возможно, мы рассмотрим проблему исчезающего градиента и другие более сложные вопросы в следующих статьях.




© digitrode.ru


Теги: нейронная сеть, искусственный интеллект, машинное обучение





Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий