Содержание статьи
Функции активации
Softmax #
Альтернативой логистической функции активации является гиперболический тангенс ( Tanh ). Он так же, как и логистическая функция, имеет S -образный график, а значения функции нормализованы. Но они принадлежат диапазону от −1 до 1, и изменение состояния нейрона осуществляется в 2 раза быстрее. График функции также асимметричен, но в отличие от логистической функции центр асимметрии находится в центре координат.
Что касается использования сигмоидной функции, то ее преимущество над другими — в нормализации выходного значения. Иногда, это бывает крайне необходимо. К примеру, когда итоговое значение слоя должно представлять вероятность случайной величины. Кроме того, эту функцию удобно применять при решении задачи классификации, благодаря свойству «прижимания» к асимптотам.
В параметрах функция принимает указатель на вектор или матрицу (в зависимости от источника данных) для записи результатов и тип используемой функции активации. Стоит отметить, что спектр функций активации в векторных/матричных операциях MQL5 гораздо шире описанных выше. Их полный список приводится в таблице.
При глубоком обучении иногда можно столкнуться с ситуацией, когда набор данных имеет ограниченный размер. Но чтобы получить лучшие результаты обобщение модели, необходимо иметь больше данных, в том числе и различные их вариации. То есть необходимо увеличить размер исходного набора искусственным образом, и это можно сделать с помощью аугментации данных.
Тем не менее, использование ReLU также не лишено недостатков. Когда взвешенная сумма входов меньше нуля, производная функции равна нулю. В таком случае нейрон не обучается и не передает градиент ошибки на предшествующие слои нейронной сети. В процессе обучения существует вероятность получить такой набор весовых коэффициентов, при котором нейрон будет деактивирован на протяжение всего цикла обучения. Такой эффект получил название «мертвых нейронов».
В октябре 2017 года команда исследователей из Google Brain провела работу по автоматическому поиску функций активации. Результаты этой работы были представлены в статье Searching for Activation Functions. В статье приведены результаты тестирования целого ряда функций в сравнении с ReLU. Наилучшие показатели были достигнуты в нейросетях с функцией активации Swish. Только замена ReLU на Swish (без переобучения) позволила улучшить показатели нейронных сетей.
Линейная функции активации
Реализовать данную функцию в виде программного кода MQL5 довольно легко. Константа theta определяет уровень, при достижении которого нейрон будет активирован. При вызове функции активации в параметрах передадим предварительно посчитанную взвешенную сумму исходных данных. Внутри функции сравним полученное в параметрах значение с уровнем активации theta и вернем значение активации нейрона.
Логистическая функция активации, наверное, самая распространенная S -образная функция. Значения функции находятся в диапазоне от 0 до 1, они асимметричны относительно точки [0, 0.5]. График функции напоминает пороговую функцию, но с плавным переходом между состояниями.
Наверное, одной из самых сложных задач, которая становится перед архитектором нейронной сети, является выбор функции активации нейронов. Ведь именно функция активации создает нелинейность в нейронной сети. Во многом от выбора функции активации зависит процесс обучения нейронной сети и финальный результат в целом.
Функция гиперболического тангенса (англ. hyperbolic tangent) имеет вид: [math]tanh(z) = \dfrac2> — 1[/math] . Эта функция является скорректированной сигмоидной функцей [math]tanh(z) = 2 \cdot sigma(2z) — 1[/math] , то есть она сохраняет те же преимущества и недостатки, но уже для диапазона значений [math](-1; 1)[/math] .
Следует отметить, что вычисление взвешенной суммы входов нейрона является линейной функцией. Применение линейной функции активации дает линейную функцию всего нейрона и нейронной сети. Данное свойство не позволяет использовать линейную функцию активации для решения нелинейных задач.
Обратный дропаут (англ. inverted dropout) отличается от обычного тем, что умножение на коэффициент происходит на этапе обучения, причем этот коэффициент равен обратной вероятности того, что нейрон останется в сети: [math]\dfrac1[/math] . А на этапе тестирования выходное значение нейрона остается таким же, как и в методе обратного распространения ошибки.