Что такое функция активации и как ее применять?

Нейронные сети состоят из трех слоев, которые описаны ниже:

Входной слой

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

Скрытый слой

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

Выходной слой

Объединяет и конкретно производит выходной результат сложных вычислений из предыдущих слоев.

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

Примените к данным какую-то нелинейную функцию, чтобы входные данные не отображались непосредственно на выходной слой.

Выпрямленный линейный блок (ReLu)

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

Функция ReLu возвращает 0, если она получает любой отрицательный ввод, но для любого положительного значения x она возвращает это значение. Таким образом, это можно записать как f (x) = max (0, x).

ReLu был впервые представлен Абьеном Фредом М. Агарапом в его статье Глубокое обучение с использованием выпрямленных линейных единиц (ReLU) », где автор описывает его как:

Введенная функция активации имеет сильную биологическую и математическую основу. В 2011 году было продемонстрировано дальнейшее улучшение обучения глубоких нейронных сетей. Он работает по пороговым значениям в 0, то есть f (x) = max (0, x). Проще говоря, он выводит 0, когда x ‹0, и наоборот, он выводит линейную функцию, когда x ≥ 0 ( Источник ).

Есть несколько заметных преимуществ использования ReLu в нейронных сетях:

  1. Напомним еще раз, что f (x) = max (0, x). Это означает, что при x ›0 вероятность исчезновения градиента уменьшается. Для обеспечения более быстрого обучения предпочтительнее более постоянный градиент.
  2. В некоторых случаях ReLu демонстрирует более быструю конвергенцию. Реализованное обучение ReLu сходится в шесть раз быстрее, чтобы достичь потери 25% ошибок обучения, чем другие функции активации, описанные в этой статье.

Софтмакс

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

Допустим, у вас есть прогноз со значением (0,04, 0,96), где класс A равен 0,04, а класс B равен 0,96. Очевидно, что сеть уверена в том, что предсказание соответствует классу A.

Но как насчет (0,75, 0,85)? Мы могли бы сказать, что существует более высокая «вероятность» того, что предсказание класса B могло быть правильным. Следовательно, указанные выше не являются вероятностями, и функция Softmax обеспечивает именно это. Функция Softmax определяется как:

Принимает на вход вектор действительных чисел A и нормализует его в массив распределения вероятностей, состоящий из вероятностей A, пропорциональных экспонентам входных элементов вектора. Это распределение вероятностей составляет до 1

def softmax(x):                   # x is the input vector
    e_x = np.exp(x)               # Taking the exponential of x
    return e_x / e_x.sum()        # Returns the probability vector

В математической записи это получается как:

В нейронной сети Softmax используется в качестве активации для последнего уровня классификационной сети. Это потому, что результаты представлены в виде вероятностного распределения. Например, в последнем слое после таких вероятностей, как [0,05, 0,23, 0,12, 0,60], класс с наивысшей вероятностью (0,60) называется окончательным предсказанием модели.

Гиперболический тангенс (Тан)

Функция активации tanh служит одной важной цели - она ​​сильно подталкивает отрицательные входы к отрицательным выходам, которые находятся в пределах (-1, 1). Разница между tanh и sigmoid заключается в том, что сигмоидальная функция не очень хорошо обрабатывает отрицательные входные данные. В нейронной сети градиенты обновляются во время процесса распространения с прямой связью.

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

В этой статье автор объяснил, что функция tanh обеспечивает лучшую производительность обучения для многослойных сетей. А также тот факт, что диапазон составляет от (-1, 1), а не (0, 1), делает его предпочтительным для большинства глубоких нейронных сетей. Поскольку среднее значение функции tanh близко к 0, это означает, что диапазон также больше, что приводит к большей производной, вызывая более быструю сходимость производительности до глобального минимума, значительно сокращая время обучения и сложность. Функции Tanh обычно используются в рекуррентных нейронных сетях и моделях распознавания речи.

Если мне удалось удержать ваше внимание на этом моменте, оставьте комментарий, если у вас есть какой-либо совет для этой серии, поскольку это значительно расширит мои знания и улучшит мой стиль письма. Прем Кумар - самоотверженный ученик, увлеченный повседневными данными, которые вращают нас. Пожалуйста, свяжитесь со мной в LinkedIn, упомянув эту историю, если вы хотите рассказать об этом и о будущих событиях, которые ждут вас.