Я почну тут складати список тих, про кого я дізнався до цих пір. Як сказав @marcodena, плюси і мінуси складніші, оскільки це, здебільшого, лише евристика, засвоєна на практиці, але я думаю, що принаймні є список того, що їм не зашкодить.
По-перше, я чітко визначу нотацію, щоб не було плутанини:
Позначення
Це позначення з книги Нілсена .
Нейронна мережа Feedforward - це багато шарів нейронів, з'єднаних між собою. Він займає вхід, тоді цей вхід "протікає" через мережу, і нейронна мережа повертає вихідний вектор.
Більш формально, виклик я ямайська активація (він же вихід) з J т ч нейрона в я т ч шарі, де - J є J т ч елементом вхідного вектора.aijjthitha1jjth
Тоді ми можемо пов’язати вхід наступного шару з попереднім через наступне відношення:
аij= σ( ∑к( шij k⋅ аi - 1к) + bij)
де
- - функція активації,σ
- - вага віднейрону k t h ушарі ( i - 1 ) t h донейрона j t h ушарі i t h ,шij kкт год( i - 1 )т годjт годiт год
- - зміщеннянейрона j t h ушарі i t h , ібijjт годiт год
- являє значення активаціїнейрона j t h ушарі i t h .аijjт годiт год
Іноді ми пишемо щоб представляти ∑ k ( w i j k ⋅ a i - 1 k ) + b i j , іншими словами, значення активації нейрона перед застосуванням функції активації.zij∑к( шij k⋅ аi - 1к) + bij
Для більш коротких позначень ми можемо написати
аi= σ( шi× ai - 1+ bi)
Для того, щоб використовувати цю формулу для обчислення вихідного сигналу прямого зв'язку мережі для деяких вхідного , встановити 1 = I , то обчислити на 2 , 3 , ... , м , де т є число шарів.Я∈ Rна1= Яа2, а3, … , Амм
Функції активації
(далі ми напишемо замість e x для читабельності)досвід( х )ех
Ідентичність
Також відома як функція лінійної активації.
аij= σ( zij) = zij
Крок
аij= σ( zij) = { 01якщо zij< 0якщо zij> 0
Частково лінійний
Виберіть кілька та x max , що є нашим "діапазоном". Все менше, ніж цей діапазон, буде 0, і все більше, ніж цей діапазон, буде 1. Все інше є лінійно-інтерпольованим між. Формально:ххвхмакс
аij= σ( zij) = ⎧⎩⎨⎪⎪⎪⎪0м зij+ b1якщо zij< ххвякщо ххв≤ zij≤ xмаксякщо zij> хмакс
Де
m = 1хмакс- ххв
і
b = - m xхв= 1 - m xмакс
Сигмоїдний
аij= σ( zij) = 11 + експ( - zij)
Додатковий журнал-журнал
аij= σ( zij) = 1 - досл( -експ( zij) )
Біполярний
аij= σ( zij) = { - 1 1якщо zij< 0якщо zij> 0
Біполярна сигмоїда
аij= σ( zij) = 1 - досл( - zij)1 + експ( - zij)
Тан
аij= σ( zij) = тань( zij)
Лекун Тан
Див. Ефективна підтримка .
аij= σ( zij) = 1.7159 TANH( 23zij)
Масштаб:
Жорсткий Тан
аij= σ( zij) = макс( -1,хв(1,zij) )
Абсолютний
аij= σ( zij) = ∣ zij∣
Випрямляч
Також відомий як Випрямлений лінійний блок (ReLU), Макс або Функція пандуса .
аij= σ( zij) = max ( 0 , zij)
Модифікації ReLU
Це деякі функції активації, з якими я грав, які, мабуть, мають дуже гарну продуктивність для MNIST з загадкових причин.
аij= σ( zij) = max ( 0 , zij) + cos( zij)
Масштаб:
аij= σ( zij) = max ( 0 , zij) + гріх( zij)
Масштаб:
Гладкий випрямляч
Також відомий як гладкий випрямлений лінійний блок, гладкий макс або м'який плюс
аij= σ( zij) = журнал( 1 + розд( zij) )
Логіт
аij= σ( zij) = журнал( zij( 1 - zij))
Масштаб:
Пробіт
аij= σ( zij) = 2-√ерф- 1( 2 zij- 1 )
ерф
Як варіант, він може бути виражений як
аij= σ( zij) = ϕ ( zij)
ϕ
Масштаб:
Косинус
Дивіться випадкові мийки для кухні .
аij= σ( zij) = cos( zij)
Softmax
аij= Досвід( zij)∑кдосвід( ziк)
Це трохи дивно, оскільки вихід одного нейрона залежить від інших нейронів у цьому шарі. Це також стає важко обчислити, як zijдосвід( zij)zij0
журнал( aij)
журнал( aij) = журнал⎛⎝⎜досвід( zij)∑кдосвід( ziк)⎞⎠⎟
журнал( aij) = zij- журнал( ∑кдосвід( ziк) )
Тут нам потрібно використовувати трюк 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)е- 11≤ 0
m = max ( zi1, zi2, zi3, . . . )
журнал( ∑кдосвід( ziк) ) = m + журнал( ∑кдосвід( ziк- м ) )
Наша функція softmax стає:
аij= Досвід( журнал( aij) ) = Досвід( zij- m - журнал( ∑кдосвід( ziк- м ) ) )
Похідною функції softmax також в якості додаткового сигналу є:
гσ( zij)гzij= σ'( zij) = σ( zij) ( 1 - σ( zij) )
Maxout
zаij
н
аij= максk ∈ [ 1 , n ]сij k
де
сij k= аi - 1∙ шij k+ bij k
∙
WiiгоWiWijji - 1
WiWijjWij kкji - 1
бiбijji
бiiбijбij kкjго
шijбijшij kаi - 1i - 1бij k
Мережі радіальної основи
Функціональні мережі радіальної основи - це модифікація нейронних мереж Feedforward, де замість цього використовується
аij= σ( ∑к( шij k⋅ аi - 1к) + bij)
шij kкмкij kσij k
ρσij kаijzij k
zij k= ∥ ( аi - 1- мкij k∥-----------√= ∑ℓ( ai - 1ℓ- мкij k ℓ)2-------------√
мкij k ℓℓгомкij kσij k
zij k= ( аi - 1- мкij k)ТΣij k( ai - 1- мкij k)----------------------√
Σij k
Σij k= diag ( σij k)
Σij kσij kаi - 1мкij k
Вони справді просто говорять про те, що відстань махаланобіса визначається як
zij k= ∑ℓ( ai - 1ℓ- мкij k ℓ)2σij k ℓ--------------⎷
σij k ℓℓгоσij kσij k ℓ
Σij kΣij k= diag ( σij k)
аij
аij= ∑кшij kρ ( zij k)
У цих мережах вони вирішують множитися на ваги після застосування функції активації з причин.
мкij kσij kаij
Також дивіться тут .
Функції радіальної основи функції активації мережі
Гаусса
ρ ( zij k) = Досвід( -12( zij k)2)
Багатоквадратичний
( х , у)( zij, 0 )( х , у)
ρ ( zij k) = ( zij k- х )2+ у2------------√
Це з Вікіпедії . Це не обмежено і може мати будь-яке позитивне значення, хоча мені цікаво, чи є спосіб його нормалізувати.
у= 0х
Зворотний багатоквадратичний
Те саме, що квадратичне, крім перевернутого:
ρ ( zij k) = 1( zij k- х )2+ у2------------√
* Графіка із графіків intmath за допомогою SVG .