Выбор функции активации для задачи

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

Основные функции активации, используемые в ConvNetJS: ReLU, Sigmoid, Tanh, Softmax, Leaky ReLU. Каждая имеет свои особенности, преимущества и ограничения.


ReLU (Rectified Linear Unit)

Формула: [ f(x) = (0, x)]

Ключевые характеристики:

  • Простая и вычислительно эффективная функция.
  • Обеспечивает разреженность активаций, так как отрицательные значения обнуляются.
  • Ускоряет обучение за счёт отсутствия насыщения на положительных значениях.

Преимущества для ConvNetJS:

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

Недостатки:

  • Возможность “умирающих нейронов” — нейроны, которые всегда дают ноль и не обновляют веса.
  • Не симметрична относительно нуля, что может замедлять обучение в некоторых случаях.

Применение:

layer_defs.push({type:'fc', num_neurons:100, activation:'relu'});

Sigmoid

Формула: [ f(x) = ]

Ключевые характеристики:

  • Выход ограничен диапазоном [0,1], что удобно для вероятностных интерпретаций.
  • Насыщается при больших по модулю входах, что ведёт к затухающему градиенту.

Преимущества:

  • Полезна для моделей с бинарной классификацией.
  • Хорошо интерпретируемая в probabilistic loss.

Недостатки:

  • Малая эффективность в глубоких сетях.
  • Склонность к переполнению экспоненты при больших входных значениях.

Применение:

layer_defs.push({type:'fc', num_neurons:50, activation:'sigmoid'});

Tanh (Hyperbolic Tangent)

Формула: [ f(x) = (x) = ]

Ключевые характеристики:

  • Диапазон выхода [-1, 1], что делает распределение активаций центрированным вокруг нуля.
  • Меньше проблем с градиентным затуханием по сравнению с Sigmoid.

Преимущества:

  • Полезна для скрытых слоёв, где важно центрирование данных.
  • Часто показывает лучшие результаты в средних по глубине сетях.

Недостатки:

  • Также подвержена проблеме затухающего градиента при больших значениях.
  • Вычислительно дороже ReLU.

Применение:

layer_defs.push({type:'fc', num_neurons:100, activation:'tanh'});

Softmax

Формула: [ f(x_i) = ]

Ключевые характеристики:

  • Преобразует вектор выходов слоя в вероятностное распределение.
  • Используется только на выходном слое для многоклассовой классификации.

Преимущества:

  • Позволяет интерпретировать выход как вероятности классов.
  • Сочетается с кросс-энтропийной функцией потерь.

Недостатки:

  • Не применима в скрытых слоях.
  • Чувствительна к числовой стабильности при больших значениях входов.

Применение:

layer_defs.push({type:'softmax', num_classes:10});

Leaky ReLU

Формула: [ f(x) = ]

Ключевые характеристики:

  • Модификация ReLU, предотвращающая “умирание нейронов”.
  • α обычно задается небольшим числом, например 0.01.

Преимущества:

  • Сохраняет все свойства ReLU, но улучшает обучение при больших отрицательных входах.
  • Часто используется в генеративных сетях и глубоких архитектурах.

Применение:

layer_defs.push({type:'fc', num_neurons:128, activation:'leakyrelu'});

Выбор функции активации по типу задачи

  • Классификация бинарная: Sigmoid на выходе; ReLU или Tanh в скрытых слоях.
  • Классификация многоклассовая: Softmax на выходе; ReLU или Leaky ReLU в скрытых слоях.
  • Регрессия: Обычно линейная функция на выходе; ReLU или Tanh в скрытых слоях.
  • Глубокие сверточные сети: ReLU или Leaky ReLU в скрытых слоях для ускорения обучения и предотвращения затухания градиента.

Принципиальные моменты:

  • Внутренние слои выигрывают от функций с ненасыщающимся градиентом (ReLU, Leaky ReLU).
  • Выходные слои должны соответствовать задаче (Softmax для вероятностей, линейная для регрессии).
  • Центрирование активаций (Tanh) может ускорять сходимость для некоторых архитектур.

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