Функция активации

Материал из testwiki
Перейти к навигации Перейти к поиску
Логистическая функция активации

В искусственных нейронных сетях функция активации нейрона определяет выходной сигнал, который определяется входным сигналом или набором входных сигналов. Стандартная компьютерная микросхема может рассматриваться как цифровая сеть функций активации, которые могут принимать значения «ON» (1) или «OFF» (0) в зависимости от входа. Это похоже на поведение линейного перцептрона в нейронных сетях. Однако только нелинейные функции активации позволяют таким сетям решать нетривиальные задачи с использованием малого числа узлов. В искусственных нейронных сетях эта функция также называется передаточной функцией.

Функции

В биологических нейронных сетях функция активации обычно является абстракцией, представляющей скорость возбуждения потенциала действия в клетке Шаблон:Sfn. В наиболее простой форме эта функция является двоичной — то есть нейрон либо возбуждается, либо нет. Функция выглядит как ϕ(vi)=U(vi), где Uступенчатая функция Хевисайда. В этом случае нужно использовать много нейронов для вычислений за пределами линейного разделения категорий.

Прямая с положительным угловым коэффициентом может быть использована для отражения увеличения скорости возбуждения по мере увеличения входного сигнала. Такая функция имела бы вид ϕ(vi)=μvi, где μнаклон прямой. Эта функция активации линейна, а потому имеет те же проблемы, что и двоичная функция. Кроме того, сети, построенные с использованием такой модели, имеют Шаблон:Не переведено 5, поскольку возбуждение приоритетных входов нейронов стремится к безграничному увеличению, так как эта функция не нормализуема.

Все проблемы, упомянутые выше, можно решить с помощью нормализуемой сигмоидной функции активации. Одна из реалистичных моделей остаётся в нулевом состоянии, пока не придёт входной сигнал, в этот момент скорость возбуждения сначала быстро возрастает, но постепенно достигает асимптоты в 100 % скорости возбуждения. Математически, это выглядит как ϕ(vi)=U(vi)th(vi), где гиперболический тангенс можно заменить любой сигмоидой. Такое поведение реально имеет место в биологическом нейроне, поскольку нейроны не могут физически возбуждаться быстрее некоторой определённой скорости. Эта модель, однако, имеет несколько проблем в вычислительных сетях, поскольку функция не дифференцируема, что нужно для вычисления обратной передачи ошибки обучения.

Последняя модель, которая используется в многослойных перцептронах — сигмоидная функция активации в форме гиперболического тангенса. Обычно используются два вида этой функции: ϕ(vi)=th(vi), образ которой нормализован к интервалу [-1, 1], и ϕ(vi)=(1+exp(vi))1, сдвинутая по вертикали для нормализации от 0 до 1. Последняя модель считается более биологически реалистичной, но имеет теоретические и экспериментальные трудности с вычислительными ошибками некоторых типов.

Альтернативные структуры

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

  • Гауссова: ϕ(vi)=exp(vici22σ2)
  • Мультиквадратичная (Шаблон:Lang-en): ϕ(vi)=vici2+a2
  • Обратная мультиквадратичная (Шаблон:Lang-en): ϕ(vi)=(vici2+a2)1/2

где ci является вектором, представляющим центр функции, а a и σ являются параметрами, влияющими на расходимость радиуса.

Методы опорных векторов (SVM) могут эффективно использовать класс функций активации, который включает как сигмоиды, так и РБФ. В этом случае вход преобразуется для отражения гиперплоскости границы решений основываясь на нескольких обучающих входных данных, называемых опорными векторами x. О функции активации для закрытого уровня этих машин говорят как о ядре скалярного произведения (Шаблон:Lang-en), K(vi,x)=ϕ(vi). Опорные вектора представляются как центры в РБФ с ядром, равным функции активации, но они принимают единственный вид в перцептроне

ϕ(vi)=th(β1+β0jvi,jxj),

где для сходимости β0 и β1 должны удовлетворять некоторым условиям. Эти машины могут принимать полиномиальные функции активации любого порядка

ϕ(vi)=(1+jvi,jxj)pШаблон:Sfn.

Функции активации бывают следующих типов:

  • Тождественная функция
  • Двоичная ступенчатая функция
  • Биполярная[1] ступенчатая функция
  • Cигмоидная функция
    • Двоичная cигмоидальная функция
    • Биполярная сигмоидная функция
  • Функция подъёма[2]

Сравнение функций активации

Некоторые желательные свойства функций активации:

  • Нелинейность – Если функция активации нелинейна, можно доказать, что двухуровневая нейронная сеть будет универсальным аппроксиматором функции Шаблон:Sfn. Тождественная функция активации не удовлетворяет этому свойству. Если несколько уровней используют тождественную функцию активации, вся сеть эквивалентна одноуровневой модели.
  • Непрерывная дифференцируемость – Это свойство желательно (RELU не является непрерывно дифференцируемой и имеет некоторые проблемы с оптимизацией, основанной на градиентном спуске, но остаётся допустимой возможностью) для обеспечения методов оптимизации на основе градиентного спуска. Двоичная ступенчатая функция активации не дифференцируема в точке 0 и её производная равна 0 во всех других точках, так что методы градиентного спуска не дают никакого успеха для неёШаблон:Sfn.
  • Область значений – Если множество значений функции активации ограничено, методы обучения на основе градиента более стабильны, поскольку представления эталонов существенно влияют лишь на ограниченный набор весов связей. Если область значений бесконечна, обучение, как правило, более эффективно, поскольку представления эталонов существенно влияют на большинство весов. В последнем случае обычно необходим меньший темп обучения.
  • Монотонность – Если функция активации монотонна, поверхность ошибок, ассоциированная с одноуровневой моделью, гарантированно будет выпуклой Шаблон:Sfn.
  • Гладкие функции с монотонной производной – Показано, что в некоторых случаях они обеспечивают более высокую степень общности.
  • Аппроксимирует тождественную функцию около начала координат – Если функции активации имеют это свойство, нейронная сеть будет обучаться эффективно, если её веса инициализированы малыми случайными значениями. Если функция активации не аппроксимирует тождество около начала координат, нужно быть осторожным при инициализации весов[3]. В таблице ниже функции активации, у которых f(0)=0, f(0)=1 и f непрерывна в точке 0, помечены как имеющие это свойство.

Следующая таблица сравнивает свойства некоторых функций активации, которые являются функциями одной свёртки Шаблон:Mvar от предыдущего уровня или уровней:

Название График Уравнение Производная (по x) Область значений Порядок гладкости Монотонная Монотонная производная Аппроксимирует тождественную
функцию около начала координат
Тождественная f(x)=x f(x)=1 (,) C Шаблон:Да Шаблон:Да Шаблон:Да
Единичная ступенька f(x)={0x<01x0 f(x)={0x0?x=0 {0,1} C1 Шаблон:Да Шаблон:Нет Шаблон:Нет
Логистическая (сигмоида или Гладкая ступенька) f(x)=σ(x)=11+exШаблон:Ref f(x)=f(x)(1f(x)) (0,1) C Шаблон:Да Шаблон:Нет Шаблон:Нет
th f(x)=th(x)=(exex)(ex+ex) f(x)=1f(x)2 (1,1) C Шаблон:Да Шаблон:Нет Шаблон:Да
arctg f(x)=tg1(x) f(x)=1x2+1 (π2,π2) C Шаблон:Да Шаблон:Нет Шаблон:Да
Softsign[4]Шаблон:Sfn f(x)=x1+|x| f(x)=1(1+|x|)2 (1,1) C1 Шаблон:Да Шаблон:Нет Шаблон:Да
Обратный квадратный корень (Шаблон:Lang-en, ISRU)[5] f(x)=x1+αx2 f(x)=(11+αx2)3 (1α,1α) C Шаблон:Да Шаблон:Нет Шаблон:Да
Шаблон:Не переведено 5 (или Полулинейный элемент)

(Шаблон:Lang-en, ReLU) [6]Шаблон:Sfn

f(x)={0x<0xx0 f(x)={0x<01x0 [0,) C0 Шаблон:Да Шаблон:Да Шаблон:Нет
Линейный выпрямитель с «утечкой» (Шаблон:Lang-en, Leaky ReLU)Шаблон:Sfn f(x)={0,01xx<0xx0 f(x)={0,01x<01x0 (,) C0 Шаблон:Да Шаблон:Да Шаблон:Нет
Параметрический линейный выпрямитель (Шаблон:Lang-en, PReLU)Шаблон:Sfn f(α,x)={αxx<0xx0 f(α,x)={αx<01x0 (,)Шаблон:Ref C0 Да,
когда α0
Шаблон:Да Да,
когда α=1
Рандомизированный линейный выпрямитель с «утечкой» (Шаблон:Lang-en, RReLU)Шаблон:Sfn f(α,x)={αxx<0xx0Шаблон:Ref f(α,x)={αx<01x0 (,) C0 Шаблон:Да Шаблон:Да Шаблон:Нет
Экспоненциальная линейная функция (Шаблон:Lang-en, ELU)[7] f(α,x)={α(ex1)x<0xx0 f(α,x)={f(α,x)+αx<01x0 (α,) {C1α=1C0α1 Да,
когда α0
Да,
когда 0α1
Да,
когда α=1
Масштабированная экспоненциальная линейная функция (Шаблон:Lang-en, SELU)Шаблон:Sfn f(α,x)=λ{α(ex1)x<0xx0

с λ=1,0507 и α=1,67326

f(α,x)=λ{α(ex)x<01x0 (λα,) C0 Шаблон:Да Шаблон:Нет Шаблон:Нет
Линейный S-выпрямитель (Шаблон:Lang-en, SReLU)[8] ftl,al,tr,ar(x)={tl+al(xtl)xtlxtl<x<trtr+ar(xtr)xtr
tl,al,tr,ar являются параметрами.
f'tl,al,tr,ar(x)={alxtl1tl<x<trarxtr (,) C0 Шаблон:Нет Шаблон:Нет Шаблон:Нет
Обратный квадратный линейный корень (Шаблон:Lang-en, ISRLU)[5] f(x)={x1+αx2x<0xx0 f(x)={(11+αx2)3x<01x0 (1α,) C2 Шаблон:Да Шаблон:Да Шаблон:Да
Адаптивная кусочно-линейная функция (Шаблон:Lang-en, APL)[9] f(x)=max(0,x)+s=1Saismax(0,x+bis) f(x)=H(x)s=1SaisH(x+bis)Шаблон:Ref (,) C0 Шаблон:Нет Шаблон:Нет Шаблон:Нет
SoftPlus[10] f(x)=ln(1+ex) f(x)=11+ex (0,) C Шаблон:Да Шаблон:Да Шаблон:Нет
Выгнутая тождественная функция (Шаблон:Lang-en) f(x)=x2+112+x f(x)=x2x2+1+1 (,) C Шаблон:Да Шаблон:Да Шаблон:Да
Cигмоидно-взвешенная линейная функция (Шаблон:Lang-en, SiLU)Шаблон:Sfn f(x)=xσ(x)Шаблон:Ref f(x)=f(x)+σ(x)(1f(x))Шаблон:Ref [0,28,) C Шаблон:Нет Шаблон:Нет Шаблон:Нет
SoftExponentialШаблон:Sfn f(α,x)={ln(1α(x+α))αα<0xα=0eαx1α+αα>0 f(α,x)={11α(α+x)α<0eαxα0 (,) C Шаблон:Да Шаблон:Да Да,
когда α=0
СинусоидаШаблон:Sfn f(x)=sin(x) f(x)=cos(x) [1,1] C Шаблон:Нет Шаблон:Нет Шаблон:Да
Sinc f(x)={1x=0sin(x)xx0 f(x)={0x=0cos(x)xsin(x)x2x0 [0,217234,1] C Шаблон:Нет Шаблон:Нет Шаблон:Нет
Гауссова f(x)=ex2 f(x)=2xex2 (0,1] C Шаблон:Нет Шаблон:Нет Шаблон:Нет
Шаблон:NoteЗдесь, Шаблон:Mvar является ступенчатой функцией Хевисайда.
Шаблон:NoteШаблон:Mvar является стохастической переменной, берущейся из равномерного распределения в момент обучения, значение которой фиксируется равным математическому ожиданию распределения в момент тестирования.
Шаблон:NoteШаблон:NoteШаблон:NoteЗдесь σ является логистической функцией.

Следующая таблица перечисляет функции активации, которые не являются функциями от одной свёртки Шаблон:Mvar от предыдущего уровня или уровней:

Название Уравнение Производные Область значений Степень гладкости
Softmax fi(x)=exij=1Jexj    для Шаблон:Mvar = 1, …, Шаблон:Mvar fi(x)xj=fi(x)(δijfj(x))Шаблон:Ref (0,1) C
MaxoutШаблон:Sfn f(x)=maxixi fxj={1j=argmaxixi0jargmaxixi (,) C0

Шаблон:Note Здесь δij обозначает символ Кронекера.

См. также

Примечания

Шаблон:Примечания

Литература

Шаблон:Refbegin

Шаблон:Refend Шаблон:Машинное обучение Шаблон:Rq

  1. Биполярная – принимающая значение -1 до начала координат и 1 после, в отличие от двоичной ступенчатой функции, которая принимает до начала координат значения 0.)
  2. Функция подъёма принимает значение 0 до начала координат и линейна после.
  3. Шаблон:Cite arxiv
  4. Шаблон:Cite web
  5. 5,0 5,1 Шаблон:Cite arxiv
  6. По аналогии с диодом – пропускает ток (не меняя его) в одну сторону, и не пропускает в другую.
  7. Шаблон:Cite arxiv
  8. Шаблон:Cite arxiv
  9. Шаблон:Cite arxiv
  10. Шаблон:Cite web