www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Функции активации в нейронных сетях

Дата публикации Dec 31, 2018

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

Введение

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

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

Основная концепция

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

Хорошим примером может служить попытка модели регрессии на наборе данных пациентов с диабетом. Цель состоит в том, чтобы предсказать, рискует ли человек заболеть диабетом, основываясь на его весе и росте. Некоторые веса тела указывают на больший риск диабета, если человек имеет более низкий рост по сравнению с более высоким человеком, у которого относительно лучший показатель здоровья. Конечно, есть и другие параметры, которые мы сейчас не рассматриваем. Мы говорим, что есть эффект взаимодействия между ростом и весом.

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

Линейная функция

Мы начнем с самой простой функции;линейная функция, Значениее (г)увеличивается пропорционально стоимостиZ, Входное значение представляет собой взвешенную сумму весов и смещений нейронов в слое. Линейная функция решает проблему двоичной пошаговой функции, в которой она сообщает только значения 0 и 1.

Рисунок 1:Выполнение линейной или идентификационной функции активации

Вывод функции не ограничен каким-либо диапазоном; то есть значениее (г)может пойти из этого, не обязательно проблема, поскольку мы можем перейти к следующему или последнему слою, взяв максимальное значение нейронов, которые сработали после com. Кроме того, функция линейной активации имеет ряд недостатков, таких как:

  • Мы видим, что производная функции является константой. Это означает, что происходит постоянный градиентный спуск, поскольку нет никакого отношения к значению z.
  • Наша модель на самом деле не обучается, так как она не улучшает термин «ошибка», что является смыслом нейронной сети.
  • Поскольку активация линейная, вложение в 2 или N количество скрытых слоев с одной и той же функцией не будет иметь реального эффекта. N слоев можно в основном сжать в один слой.

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

Сигмовидная функция (σ)

Функция Sigmoid принимает значение в качестве входного и выводит другое значение в диапазоне от 0 до 1. С ней нелинейно и легко работать при построении модели нейронной сети. Хорошей частью этой функции является то, что она непрерывно дифференцируется по различным значениямZи имеет фиксированный выходной диапазон.

Рис 2:Выполнение функции активации сигмоида

По наблюдению мы видим, что значениее (г)увеличивается, но очень медленно. Математическая причина в том, что какZ(по оси x) увеличивается, значение показателя e -z становится бесконечно малым, а значениее (г)стать равным 1 в какой-то момент. Другими словами, функция восприимчива к проблеме исчезающего градиента, которую мы обсуждали в предыдущей лекции. Проблема высокого уровня состоит в том, что модели, которые используют сигмовидную активацию наших медленных учеников и в фазе эксперимента, будут генерировать прогнозные значения, которые имеют более низкую точность.

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

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

Тан функция

Функция Tanh является модифицированной или увеличенной версией сигмовидной функции. То, что мы видели в Сигмоиде, было то, что ценностье (г)ограничен от 0 до 1; однако в случае Tanh значения ограничены от -1 до 1.

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

Рис 3:Выполнение функции активации Tanh

Последний бит о Tanh и Sigmoid, градиент или производная функции Tanh круче по сравнению с сигмовидной функцией, которую мы можем наблюдать на рисунке 4 ниже. Наш выбор использования Sigmoid или Tanh действительно зависит от требования градиента для постановки задачи.

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

Выпрямленная функция линейного блока (ReLU)

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

Рис 5:Выполнение функции активации ReLU

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

  • Функция ReLU имеет производную 0 от половины своего диапазона, которая охватывает все отрицательные числа. Для положительных входных данных производная равна 1. Итак, мы исправили «исчезающую» проблему градиента.
  • За один раз активируются только несколько нейронов, что делает сеть разреженной, что делает ее эффективной (мы увидим, что разреженность не всегда хорошая вещь)
  • Это вычислительно экономично по сравнению с Сигмоидом и Танхом.

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

  • Функция страдает от умирающей проблемы ReLU - для активаций, соответствующих значениям z <0, градиент будет равен 0, из-за чего веса не будут корректироваться во время спуска градиента при обратном распространении. Это означает, что такие нейроны перестают реагировать на изменения в ошибке / вводе, поэтому выходная сеть становится пассивной из-за дополнительной разреженности.
  • Лучше всего использовать его между входным и выходным слоями, более конкретно в скрытом

И последнее замечание о ReLU: существует способ противостоять умирающей проблеме ReLU с помощью модифицированной версии функции, называемой «Leaky» ReLU. Короче говоря, мы беремZ<0 значений, которые образуют линию y = 0 и преобразуют ее в не горизонтальную прямую линию, добавляя небольшой ненулевой постоянный градиент α (обычно α = 0,01). Итак, наша новая формулаZ<0 этоf (z) = αz,

Для получения дополнительной информации я приложил исследовательский документ для Leaky ReLU:https://arxiv.org/abs/1502.01852

Бонус: нелинейная функция активации куба

Существует одна интересная функция активации, которая применяется к тегам части речи (POS), которая работает лучше, чем все другие функции, упомянутые в статье. В работе Manning and Danqi Chen (2014) предложен новый способ изучения классификатора нейронной сети для использования в жадном анализаторе зависимостей на основе переходов для обработки естественного языка. Они вводят нелинейную функцию куба, обозначаемую z³, которая дополнительно уточняется в уравнении скрытого слоя ниже:

Рис 6:Функция активации куба, которая принимает вес слов, тегов и меток вместе с их смещением.

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

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

Рис 7:Производительность функции активации куба (z³)

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

Нелинейный куб> ReLU> Tanh> Сигмоид

Чтобы лучше понять, как работает модель, я приложил ссылку на статью Мэннинга ниже.

Быстрый и точный анализатор зависимостей с использованием нейронных сетей:
https://cs.stanford.edu/~danqi/papers/emnlp2014.pdf

Вывод

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

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


Распространяйте и делитесь знаниями. Если эта статья вызвала у вас интерес, дайте несколько хлопков, так как это всегда побуждает меня писать более информативное содержание. Следуйте за мной, чтобы узнать больше о науке и технологиях.Вот,
Я также доступен на
Linkedinи иногдачирикатьи прочее :)

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map