Повний перелік функцій активації в нейронних мережах із плюсами / мінусами


94

Чи є довідники (документи), які містять вичерпний перелік функцій активації в нейронних мережах разом з їх плюсами / мінусами (і в ідеалі деякі вказівники на публікації, де вони були успішними чи не такими успішними)?


Я недостатньо знаю про ANN, але якщо функції активації істотно не відрізняються за формою, їх буде дуже важко розрізнити. Для обговорення аналогічної ситуації ви можете побачити мою відповідь тут: Різниця між logit і probit моделями .
gung

1
ні, це робить досить велику різницю.
Віліямі

en.wikipedia.org/wiki/Activation_function - хороший ресурс; ви можете використовувати багато інших, у тому числі sin(x), див. openreview.net/pdf?id=Sks3zF9eg .
Пьотр Мігдал

Відповіді:


143

Я почну тут складати список тих, про кого я дізнався до цих пір. Як сказав @marcodena, плюси і мінуси складніші, оскільки це, здебільшого, лише евристика, засвоєна на практиці, але я думаю, що принаймні є список того, що їм не зашкодить.

По-перше, я чітко визначу нотацію, щоб не було плутанини:

Позначення

Це позначення з книги Нілсена .

Нейронна мережа Feedforward - це багато шарів нейронів, з'єднаних між собою. Він займає вхід, тоді цей вхід "протікає" через мережу, і нейронна мережа повертає вихідний вектор.

Більш формально, виклик я ямайська активація (він же вихід) з J т ч нейрона в я т ч шарі, де - J є J т ч елементом вхідного вектора.аjijтгодiтгодаj1jтгод

Тоді ми можемо пов’язати вхід наступного шару з попереднім через наступне відношення:

аji=σ(к(шjкiакi-1)+бji)

де

  • - функція активації,σ
  • - вага віднейрону k t h ушарі ( i - 1 ) t h донейрона j t h ушарі i t h ,шjкiктгод(i-1)тгодjтгодiтгод
  • - зміщеннянейрона j t h ушарі i t h , ібjijтгодiтгод
  • являє значення активаціїнейрона j t h ушарі i t h .аjijтгодiтгод

Іноді ми пишемо щоб представляти k ( w i j ka i - 1 k ) + b i j , іншими словами, значення активації нейрона перед застосуванням функції активації.zjiк(шjкiакi-1)+бji

введіть тут опис зображення

Для більш коротких позначень ми можемо написати

аi=σ(шi×аi-1+бi)

Для того, щоб використовувати цю формулу для обчислення вихідного сигналу прямого зв'язку мережі для деяких вхідного , встановити 1 = I , то обчислити на 2 , 3 , ... , м , де т є число шарів.ЯRна1=Яа2,а3,,амм

Функції активації

(далі ми напишемо замість e x для читабельності)досвід(х)ех

Ідентичність

Також відома як функція лінійної активації.

аji=σ(zji)=zji

Ідентичність

Крок

аji=σ(zji)={0якщо zji<01якщо zji>0

Крок

Частково лінійний

Виберіть кілька та x max , що є нашим "діапазоном". Все менше, ніж цей діапазон, буде 0, і все більше, ніж цей діапазон, буде 1. Все інше є лінійно-інтерпольованим між. Формально:ххвхмакс

аji=σ(zji)={0якщо zji<ххвмzji+бякщо ххвzjiхмакс1якщо zji>хмакс

Де

м=1хмакс-ххв

і

б=-мххв=1-мхмакс

Частково лінійний

Сигмоїдний

аji=σ(zji)=11+досвід(-zji)

Сигмоїдний

Додатковий журнал-журнал

аji=σ(zji)=1-досвід(-досвід(zji))

Додатковий журнал-журнал

Біполярний

аji=σ(zji)={-1якщо zji<0   1якщо zji>0

Біполярний

Біполярна сигмоїда

аji=σ(zji)=1-досвід(-zji)1+досвід(-zji)
Біполярна сигмоїда

Тан

аji=σ(zji)=тан(zji)

Тан

Лекун Тан

Див. Ефективна підтримка .

аji=σ(zji)=1.7159тан(23zji)

Лекун Тан

Масштаб:

LeCun's Tanh Scaled

Жорсткий Тан

аji=σ(zji)=макс(-1,хв(1,zji))

Жорсткий Тан

Абсолютний

аji=σ(zji)= ∣zji

Абсолютний

Випрямляч

Також відомий як Випрямлений лінійний блок (ReLU), Макс або Функція пандуса .

аji=σ(zji)=макс(0,zji)

Випрямляч

Модифікації ReLU

Це деякі функції активації, з якими я грав, які, мабуть, мають дуже гарну продуктивність для MNIST з загадкових причин.

аji=σ(zji)=макс(0,zji)+cos(zji)

ReLU cos

Масштаб:

ReLU cos масштабується

аji=σ(zji)=макс(0,zji)+гріх(zji)

Гріх ReLU

Масштаб:

ReLU гріх масштабував

Гладкий випрямляч

Також відомий як гладкий випрямлений лінійний блок, гладкий макс або м'який плюс

аji=σ(zji)=журнал(1+досвід(zji))

Гладкий випрямляч

Логіт

аji=σ(zji)=журнал(zji(1-zji))

Логіт

Масштаб:

Логіт масштабований

Пробіт

аji=σ(zji)=2ерф-1(2zji-1)

ерф

Як варіант, він може бути виражений як

аji=σ(zji)=ϕ(zji)

ϕ

Пробіт

Масштаб:

Пробіт масштабується

Косинус

Дивіться випадкові мийки для кухні .

аji=σ(zji)=cos(zji)

Косинус

Softmax

аji=досвід(zji)кдосвід(zкi)

Це трохи дивно, оскільки вихід одного нейрона залежить від інших нейронів у цьому шарі. Це також стає важко обчислити, як zjiдосвід(zji)zji0

журнал(аji)

журнал(аji)=журнал(досвід(zji)кдосвід(zкi))

журнал(аji)=zji-журнал(кдосвід(zкi))

Тут нам потрібно використовувати трюк log-sum-exp :

Скажімо, ми проводимо обчислення:

журнал(е2+е9+е11+е-7+е-2+е5)

Спочатку спочатку відсортуємо наші експоненти за величиною:

журнал(е11+е9+е5+е2+е-2+е-7)

е11е-11е-11

журнал(е-11е-11(е11+е9+е5+е2+е-2+е-7))

журнал(1е-11(е0+е-2+е-6+е-9+е-13+е-18))

журнал(е11(е0+е-2+е-6+е-9+е-13+е-18))

журнал(е11)+журнал(е0+е-2+е-6+е-9+е-13+е-18)

11+журнал(е0+е-2+е-6+е-9+е-13+е-18)

Потім ми можемо обчислити вираз праворуч і взяти журнал його. Це добре робити, тому що ця сума дуже малажурнал(е11)е-110

м=макс(z1i,z2i,z3i,...)

журнал(кдосвід(zкi))=м+журнал(кдосвід(zкi-м))

Наша функція softmax стає:

аji=досвід(журнал(аji))=досвід(zji-м-журнал(кдосвід(zкi-м)))

Похідною функції softmax також в якості додаткового сигналу є:

гσ(zji)гzji=σ'(zji)=σ(zji)(1-σ(zji))

Maxout

zаji

н

аji=макск[1,н]сjкi

де

сjкi=аi-1шjкi+бjкi

WiiгоWiWjiji-1

WiWjijWjкiкji-1

бiбjiji

бiiбjiбjкiкjго

шjiбjiшjкiаi-1i-1бjкi

Мережі радіальної основи

Функціональні мережі радіальної основи - це модифікація нейронних мереж Feedforward, де замість цього використовується

аji=σ(к(шjкiакi-1)+бji)

шjкiкмкjкiσjкi

ρσjкiаjizjкi

zjкi=(аi-1-мкjкi=(аi-1-мкjкi)2

мкjкiгомкjкiσjкi

zjкi=(аi-1-мкjкi)ТΣjкi(аi-1-мкjкi)

Σjкi

Σjкi=діагностувати(σjкi)

Σjкiσjкiаi-1мкjкi

Вони справді просто говорять про те, що відстань махаланобіса визначається як

zjкi=(аi-1-мкjкi)2σjкi

σjкiгоσjкiσjкi

ΣjкiΣjкi=діагностувати(σjкi)

аji

аji=кшjкiρ(zjкi)

У цих мережах вони вирішують множитися на ваги після застосування функції активації з причин.

мкjкiσjкiаji

Також дивіться тут .

Функції радіальної основи функції активації мережі

Гаусса

ρ(zjкi)=досвід(-12(zjкi)2)

Гаусса

Багатоквадратичний

(х,у)(zji,0)(х,у)

ρ(zjкi)=(zjкi-х)2+у2

Це з Вікіпедії . Це не обмежено і може мати будь-яке позитивне значення, хоча мені цікаво, чи є спосіб його нормалізувати.

у=0х

Багатоквадратичний

Зворотний багатоквадратичний

Те саме, що квадратичне, крім перевернутого:

ρ(zjкi)=1(zjкi-х)2+у2

Зворотний багатоквадратичний

* Графіка із графіків intmath за допомогою SVG .


11
Ласкаво просимо в CV. +6 це казково інформативно. Сподіваюся, ми побачимо більше подібного в майбутньому.
gung

1
журнал(1+досвід(х))

Гаразд, я думаю, що я додав Logit, Probit та Complementar log-log, однак я не розумію ці теми, тому я, можливо, неправильно зрозумів їх письмову форму. Це правильно?
Філліїда

3
Це був би цікавий документ із приємним списком посилань. Наприклад, arxiv.org/abs/1505.03654 . Не соромтеся зв’язатися зі мною, якщо ви вирішили написати документ і хочете отримати інші посилання.
Хунафу

9
хтось повинен оновити це за допомогою Elu, Leaky ReLU, PReLU та RReLU.
Віліямі

24

Один такий список, хоча і не дуже вичерпний: http://cs231n.github.io/neural-networks-1/

Поширені функції активації

Кожна функція активації (або нелінійність ) приймає єдине число і виконує на ньому певну фіксовану математичну операцію. Є кілька функцій активації, з якими ви можете зіткнутися на практиці:

введіть тут опис зображеннявведіть тут опис зображення

Зліва: Сигмоїдна нелінійність стискає реальні числа в межах між [0,1] Праворуч: Тон нелінійності стискає реальні числа до [-1,1].

σ(х)=1/(1+е-х)і зображено на зображенні вгорі зліва. Як уже згадувалося в попередньому розділі, воно приймає дійсне значення і «розбиває» його в діапазоні від 0 до 1. Зокрема, великі негативні числа стають 0, а великі додатні числа - 1. Сигмоїдна функція часто бачила використання оскільки він має приємну інтерпретацію як швидкість стрільби нейрона: від взагалі не випалу (0) до повністю насиченого випалу при передбачуваній максимальній частоті (1). На практиці сигмоїдна нелінійність останнім часом не вийшла з ладу і її рідко застосовують. У нього є два основних недоліки:

  • Сигмоїди насичують і вбивають градієнти . Дуже небажаною властивістю сигмоїдного нейрона є те, що коли активація нейрона насичується в будь-якому хвості 0 або 1, градієнт у цих областях майже дорівнює нулю. Нагадаємо, що під час зворотного розповсюдження цей (локальний) градієнт буде помножений на градієнт виходу цього ворота для всієї мети. Тому, якщо локальний градієнт дуже малий, він ефективно "вб'є" градієнт, і майже жоден сигнал не буде надходити через нейрон до його ваги та рекурсивно до його даних. Крім того, потрібно бути особливо обережними при ініціалізації ваг сигмоїдних нейронів для запобігання насичення. Наприклад, якщо початкові ваги занадто великі, то більшість нейронів стане насиченим, і мережа ледве навчиться.
  • х>0f=шТх+бшf). Це може ввести небажану динаміку зигзагоподібних змін у оновленнях градієнта для ваг. Однак зауважте, що як тільки ці градієнти будуть додані через групу даних, остаточне оновлення для ваг може мати різні знаки, що дещо пом'якшує цю проблему. Отже, це незручність, але воно має менш серйозні наслідки порівняно з насиченою проблемою активації, описаною вище.

тан(х)=2σ(2х)-1

введіть тут опис зображеннявведіть тут опис зображення

Зліва: функція активації лінійного випрямленого випрямлення (ReLU), яка дорівнює нулю, коли х <0, а потім лінійна з нахилом 1, коли х> 0. Праворуч: Діаграма від Крижевського та ін. (pdf) документ, що вказує на 6-кратне покращення конвергенції з блоком ReLU порівняно з блоком tanh.

f(х)=макс(0,х)

  • (+) Встановлено, що він значно прискорюється (наприклад, коефіцієнт 6 у Крижевського та ін. ) Конвергенцію стохастичного градієнтного спуску порівняно з сигмоїдними / танг-функціями. Стверджується, що це пов’язано з його лінійною, ненасичуючою формою.
  • (+) Порівняно з танг / сигмоїдними нейронами, які передбачають дорогі операції (експоненти тощо), ReLU може бути реалізований шляхом простого встановлення порогу матриці активацій у нуль.
  • (-) На жаль, підрозділи ReLU можуть бути тендітними під час тренувань і можуть "померти". Наприклад, великий градієнт, що протікає через нейрон ReLU, може призвести до оновлення ваг таким чином, що нейрон ніколи більше не активується в будь-якій точці даних. Якщо це станеться, то градієнт, що протікає через одиницю, назавжди буде нульовим з цієї точки. Тобто підрозділи ReLU можуть безповоротно загинути під час навчання, оскільки вони можуть вибити з колектора даних. Наприклад, ви можете виявити, що до 40% вашої мережі можуть бути "мертвими" (тобто нейрони, які ніколи не активуються протягом усього навчального набору даних), якщо рівень навчання встановлений занадто високим. При правильному встановленні рівня навчання це рідше є проблемою.

f(х)=1(х<0)(αх)+1(х> =0)(х)αє невеликою постійною. Деякі люди повідомляють про успіх у цій формі функції активації, але результати не завжди узгоджуються. Нахил в негативній області також можна перетворити на параметр кожного нейрона, як це спостерігається в нейронах PReLU, введеному в Delving Deep в випрямлячі , від Kaiming He et al., 2015. Однак, послідовність користі для завдань в даний час незрозумілий.

введіть тут опис зображення

f(шТх+б)макс(ш1Тх+б1,ш2Тх+б2). Зауважте, що і ReLU, і Leaky ReLU є особливим випадком такої форми (наприклад, для ReLU ми маємош1,б1=0). Таким чином, нейрон Maxout користується всіма перевагами блоку ReLU (лінійний режим роботи, без насичення) і не має своїх недоліків (відмирає ReLU). Однак, на відміну від нейронів ReLU, він подвоює кількість параметрів для кожного окремого нейрона, що призводить до високої загальної кількості параметрів.

На цьому завершується наше обговорення найбільш поширених типів нейронів та їх функцій активації. Як останній коментар, в одній мережі дуже рідко змішувати та співставляти різні типи нейронів, хоча принципової проблеми з цим не існує.

TLDR : " Який тип нейронів я повинен використовувати? " Використовуйте нелінійність ReLU, будьте уважні зі швидкістю навчання та, можливо, стежте за часткою "мертвих" одиниць у мережі. Якщо це стосується вас, спробуйте Leaky ReLU або Maxout. Ніколи не використовуйте сигмоподібні. Спробуйте tanh, але очікуйте, що він буде працювати гірше, ніж ReLU / Maxout.


Ліцензія:


Ліцензія MIT (MIT)

Copyright (c) 2015 Андрій Карпаті

Дозвіл надається безкоштовно будь-якій особі, яка отримує копію цього програмного забезпечення та пов'язаних з ним файлів документації ("Програмне забезпечення"), здійснювати обробку в Програмному забезпеченні без обмежень, включаючи без обмеження права на використання, копіювання, модифікацію, об'єднання , публікувати, поширювати, субліцензувати та / або продавати копії Програмного забезпечення та дозволити особам, яким надається Програмне забезпечення, робити це за умови дотримання наступних умов:

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

ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ надається "ЯК Є Є", БЕЗ ГАРАНТІЇ БУДЬ-ЯКОГО РОЗУМУ, ЕКСПРЕССУ АБО НЕ ВПРАВЛЕНО, Включаючи НЕ ОБМЕЖЕНІ ГАРАНТІЯМИ ПРОДАЖНОСТІ, ФІТНІСНОСТІ ДЛЯ ЧАСНОГО МЕТА І НЕФІНФОРМУВАННЯ. НІ В ЯКІ НЕ БУДУТЬСЯ АВТОРИ АБО ВЛАСНИКИ ПРАВИЛЬНОГО ПРАВА НЕ БУТЬ ВІДПОВІДАЛЬНІ за будь-яку вимогу, збитки чи іншу відповідальність, навіть якщо це відбувається у договорі, ТОРТІ АБО ІНШИМИ, НЕ ВІДПОВІДАЮТЬСЯ, АБО ІЗ ЗВ'ЯЗКУ ПРО ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ АБО ВИКОРИСТОВУЄТЬСЯ ІЛИ ВИКОРИСТАННЯ ДЛЯ ДІЛЬНОСТІ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ. *

Інші посилання:


10

Я не думаю, що існує список із плюсами та мінусами. Функції активації сильно залежать від додатків, і вони також залежать від архітектури вашої нейронної мережі ( ось, наприклад, ви бачите застосування двох функцій softmax, подібних сигмоподібним).

Ви можете знайти деякі дослідження щодо загальної поведінки функцій, але я думаю, у вас ніколи не буде визначеного та остаточного списку (про що ви питаєте ...).

Я ще студент, тому вказую те, що знаю досі:

  • тут ви знайдете кілька думок про поведінку танху та сигмоїдів із зворотним розповсюдженням. Тан є більш родовими, але сигмоїди ... (завжди буде "але")
  • У глибоких розріджених випрямних нейронних мережах Glorot Xavier та ін вони заявляють, що випрямлячі пристрої є більш біологічно правдоподібними, і вони працюють краще, ніж інші (сигмоїд / танг)

Це "правильна" відповідь. Можна скласти список, але плюси і мінуси повністю залежать від даних. Насправді, функції активації навчання набагато розумніші в теорії. Причиною, що на цьому недостатньо зосереджено дослідження, є те, що сигмоїда "просто працює". Зрештою, ваш єдиний виграш - це швидкість конвергенції, яка часто не є важливою
runDOSrun

4

Тільки задля повноти на чудову відповідь Даніелі, є й інші парадигми, де одна випадково «крутить колесо» на вагах та / або типу активацій: машини з рідким станом , екстремальні навчальні машини та мережі ехо-стану .

Один із способів думати про ці архітектури: резервуар - це якесь ядро, як у SVM, або один великий прихований шар у простому FFNN, де дані проектуються в деякий гіперпростір. Фактичного навчання немає, резервуар відновлюється до тих пір, поки не буде досягнуто задовольняючого рішення.

Також дивіться цю приємну відповідь .


2

Статтю про останні функції активації можна знайти в

" Функції активації: порівняння тенденцій практики та досліджень для глибокого навчання " Чігозі Енініни Нванкпа, Вініфреда Ійома, Ентоні Гачагана та Стівена Маршалла

Глибокі нейронні мережі успішно використовуються в різних областях, що розвиваються, для вирішення складних проблем реального світу з можливо більш глибокими навчальними архітектурами (DL), що розробляються на сьогодні. Для досягнення цих найсучасніших виступів архітектури DL використовують функції активації (AF) для виконання різноманітних обчислень між прихованими шарами та вихідними шарами будь-якої заданої архітектури DL. У цьому документі представлено опис існуючих АФ, які використовуються в програмах для глибокого навчання, та висвітлено останні тенденції використання функцій активації для програм глибокого навчання. Новизною цього документу є те, що він збирає більшість AF, використовуваних у DL, та окреслює сучасні тенденції у застосуванні та використанні цих функцій у практичних розгортаннях на основі сучасних результатів досліджень. Ця компіляція допоможе у прийнятті ефективних рішень у виборі найбільш підходящої та відповідної функції активації для будь-якої програми, готової до розгортання. Цей документ є своєчасним, оскільки більшість науково-дослідних робіт щодо ФП висвітлює подібні роботи та результати, в той час як цей документ буде першим, який зібрав тенденції застосування програм АФ на практиці проти результатів досліджень з літератури, знайдених на сьогодні в глибокому навчанні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.