Справочная статья:captainbed.vip/1-3-4/,zhuanlan.zhihu.com/p/73214810,blog.CSDN.net/End of the World_Whether/art…
Функция активации / Краткое описание функции активации⭐️Зачем нужна функция активацииОбщие функции активацииСигмовидная функцияФормулы и образыпреимуществонедостатокТан функцияФормулы и образыпреимуществонедостатокФункция ReLuФормулы и образыпреимуществонедостатокдырявая функция reluФормулы и образыКак выбрать функцию активации?
Функция активации / Краткое описание функции активации
мы былиТри основные проблемы нейронной сетиФункция активации кратко упоминается в и приводится пример сигмоиды. В то время мы придумали только одно применение для функций активации:Отображение результата между 0 и 1 удобно для нас, чтобы предсказать вероятность. На самом деле это не основная цель функции активации, а функция активации гораздо больше, чем сигмоид.
Функция активации, как следует из названия, активирует нашу нейронную сеть!
⭐️Зачем нужна функция активации
Функция активацииИсточники нелинейности в нейронных сетях, если функция активации удалена, вся сеть будет иметь только линейные операции.Независимо от того, сколько слоев имеет нейронная сеть, композиция линейных операций по-прежнему линейна, и конечный эффект эквивалентен только однослойной линейной модели. . ?Высокоуровневые математические знания, функции высокого порядка можно применять к функциям низкого порядка, а сложные кривые можно аппроксимировать только функциями высокого порядка.
Суть нейронной сети заключается вПолучите функцию, тренируясь, чтобы соответствовать графику функции, и чем больше слоев нейронной сети, тем сложнее может быть кривая.Теоретически, пока количество слоев достаточно, можно подогнать любой сложный график кривой.
Общие функции активации
функция активации
Сигмовидная функция
Сигмовидную функцию также называют логистической функцией, потому что сигмоидальную функцию можно вывести из логистической регрессии (LR), а такжеФункция активации, заданная моделью логистической регрессии. сигмоид Для задач двоичной классификации характеристики его диапазона значений (0,1) можно просто использовать для прогнозирования вероятности, поэтому мы можем использовать сигмоид в выходном слое бинарной задачи и использовать другие функции активации в других слоях.
Диапазон значений функции sigmod находится между (0, 1), и выход сети может отображаться в этом диапазоне, что удобно для анализа.
Сигмовидная функция используется очень часто, но в последние годы ею пользуется все меньше и меньше людей. В основном из-за некоторых присущих ему недостатков.
Формулы и образы
преимущество
- Гладкая и легкая в выводе (как видно из изображения)
- Отлично подходит для задач бинарной классификации.
недостаток
- функция активацииБольшой объем расчета, что требует много времени для крупномасштабных глубоких сетей (и возведение в степень, и деление включены в прямое и обратное распространение).
- ⭐️ Вывод сигмоида ненулевой центр(при среднем 0,5),Это приведет к тому, что нейроны в последнем слое будут принимать ненулевой средний сигнал, выдаваемый предыдущим слоем, в качестве входных данных.По мере углубления сети исходное распределение данных будет меняться..
- Проблема исчезновения градиента глубоких сетей. Диапазон значений сигмовидной производной составляет [0, 0,25], что легко появляется из-за «цепной реакции» обратного распространения нейронной сети.Градиент исчезаетСлучай. Например, для 10-слойной сети согласно, ошибка 10-го слоя относительно параметров первого слоя сверткиГрадиент будет иметь очень маленькое значение, которое называется "исчезновение градиента". ⚠️Скорость обучения связана с частными производными: Проще говоря, градиентный спуск спускается путем вычитания производной.Если производная слишком мала, эффект не будет получен после большого количества разделенных слоев.Математический анализ
Тан функция
Можно сказать, что функция tanh является модернизированной версией сигмовидной функции, которая лучше, чем сигмовидная, во всех аспектах. Среднее значение сигмоиды равно 0,5, а среднее значение тангенса равно 0. Передавая эти выходные значения, близкие к 0, следующему слою нейронов, следующий слой нейронов будет работать более эффективно.
Формулы и образы
преимущество
- По сравнению с сигмовидной функцией диапазон значений tanh составляет (-1,1), что решает проблему нулевого среднего
недостаток
- Серьезная проблема трудоемкой операции возведения в степень все еще существует.
- Диапазон производной тангенса находится между (0,1), хотя он больше, чем (0,0,25) сигмоиды, но все же очень мал,Градиент исчезаетОтносительно облегчен, но не решен.
Функция ReLu
Relu (Recified Linear Unit), функция выпрямленного линейного блока. Форма этой функции относительно проста, но очень характерна и является одной из наиболее широко используемых функций активации.
Диапазон производных сигмоиды и тангенса приводит кГрадиент исчезаетпроблема, а производная relu всегда равна 1, что эффективно решает цепную реакциюГрадиент исчезаетПроблема, обратное распространение работает нормально.
Еще одна очень хорошая особенность relu заключается в том, что он выводит 0 для отрицательных значений (установка 0 для маскировки функции), что может активировать только некоторые нейроны одновременно, делая сеть очень разреженной, что может значительно повысить эффективность вычислений. Я думаю, что следующая фраза очень хороша:
Прежде чем описывать эту функцию, необходимо уточнить цель глубокого обучения: **Глубокое обучение заключается в поиске ключевой информации (ключевых функций) из сложных взаимосвязей данных на основе больших пакетов выборочных данных..Другими словами, это преобразование плотной матрицы в разреженную матрицу,Сохраняйте ключевую информацию из данных и удаляйте шум, такая модель обладает робастностью (robustness, Robust). ReLU устанавливает вывод x
Однако ReLU принудительно устанавливает для вывода части xмертвое состояние, поэтому при использовании сети ReLU скорость обучения не может быть слишком большой.
Формулы и образы
relu=max(0, x)
преимущество
- Видно, что производная ReLu является константой 1, что может эффективно решить проблему глубокой сети.Градиент исчезаетпроблема.
- По сравнению с Sigmoid и tanh, ReLU отказывается от сложных вычислений и повышает скорость работы.
- Отрицательные значения выводятся как 0,Не активирует все нейроны одновременно, сохраняя разреженность сети и повышая эффективность вычислений..
недостаток
- Хотя проблема градиентного спуска решена, она может возникнутьградиентный взрывРешение состоит в дальнейшем контроле весов, чтобы полные веса находились в диапазоне (0, 1).
- Слишком большая скорость обучения может привести к тому, что большинство нейроновмертвое состояние.
дырявая функция relu
Если в функцию relu вводится отрицательное значение, она должна выводить 0 для маскирования, что может привести кмертвое состояние, мы можем рассмотреть возможность замены 0 на ненулевое, но очень маленькое число (например, 0,01), что превращает градиент 0 в небольшой градиент, который является функцией relu с утечкой.
Формулы и образы
\begin{cases}x&x>0\ \lambda x&x\leqslant 0\end{cases}
Как выбрать функцию активации?
Для разных сценариев приложений и разных обучающих данных применимые функции активации различаются.Чтобы найти подходящую функцию активации, сначала попробуйте небольшое количество обучающих данных по крупицам, а затем попробуйте данные по одному. В настоящее время нет определенного метода решения этой проблемы, и большая его часть основана на опыте.
- Существуют некоторые общепринятые правила отбора. Вообще говоря, relu используется чаще всего, ноrelu используется только в скрытых слоях. Как показывает опыт, мы обычно можем начать с функции активации relu.Если relu не может решить проблему хорошо, попробуйте другие функции активации.
- Если вы используете ReLU, вы должны быть осторожны, чтобы установить скорость обучения, и будьте осторожны, чтобы в сети не было много «мертвых» нейронов.Если эту проблему решить нелегко, вы можете попробовать Leaky ReLU, PReLU или Maxout.
- tanh лучше сигмоида во всех отношениях (за исключением выходного слоя в приложениях двоичной классификации).
- Кроме того, глубокое обучение часто требует много времени для обработки больших объемов данных.Скорость сходимости моделиособенно важно. Поэтому, как правило, при обучении сетей глубокого обучения следует пытаться использовать данные с нулевым центром (что может быть достигнуто с помощью предварительной обработки данных) и выходные данные с нулевым центром. Поэтому постарайтесь выбрать функцию активации с центрированными нулем характеристиками, чтобы ускорить сходимость модели.
- Теоретически каждый слой может использовать свою функцию активации, но обычно этого не делается.