Чому нелінійну функцію активації слід використовувати в нейронній мережі зворотного розповсюдження?


139

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

Після цього питання йде наступне : Що таке похідна функції активації, яка використовується для зворотного розповсюдження?


найкраща відповідь з усіх тут у штучному інтелекті
eusoubrasileiro

Відповіді:


167

Мета функції активації - ввести нелінійність в мережу

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

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

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

>>> in_vec = NP.random.rand(10)
>>> in_vec
  array([ 0.94,  0.61,  0.65,  0.  ,  0.77,  0.99,  0.35,  0.81,  0.46,  0.59])

>>> # common activation function, hyperbolic tangent
>>> out_vec = NP.tanh(in_vec)
>>> out_vec
 array([ 0.74,  0.54,  0.57,  0.  ,  0.65,  0.76,  0.34,  0.67,  0.43,  0.53])

Загальна функція активації, яка використовується в задній частині ( гіперболічна дотична ), оцінюється від -2 до 2:

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


15
Чому ми хочемо усунути лінійність?
corazza

17
Якщо дані, які ми хочемо моделювати, нелінійні, то нам потрібно враховувати це в нашій моделі.
дог

38
Відповідь в одному реченні: << незалежно від того, скільки шарів поводитиметься так само, як один перцептрон (адже лінійні функції, що додаються разом, дають вам лінійну функцію). >> . Приємно!
Автономний

12
Це трохи вводить в оману - як зазначалося в ескі, виправлені функції лінійної активації є надзвичайно успішними, і якщо наша мета - просто моделювати / наближати функції, усунення нелінійності на всіх кроках не обов'язково є правильною відповіддю. Маючи достатньо лінійних фрагментів, ви можете зблизити майже будь-яку нелінійну функцію з високим ступенем точності. Я знайшов , що це гарне пояснення того , чому випрямляється лінійні одиниці роботи: stats.stackexchange.com/questions/141960 / ...
Tegan

11
@tegan Випрямлені лінійні функції активації нелінійні. Я не впевнений, що ваш коментар стосується відповіді.
ендоліт

49

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

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

Функції активації не можуть бути лінійними, оскільки нейронні мережі з лінійною функцією активації ефективні лише в один шар глибоко, незалежно від того, наскільки складна їх архітектура. Введення в мережі зазвичай є лінійним перетворенням (вхід * вага), але реальний світ і проблеми нелінійні. Щоб зробити вхідні дані нелінійними, ми використовуємо нелінійне відображення під назвою функція активації. Функція активації - це функція прийняття рішення, яка визначає наявність певного нейронного ознаки. Він відображається між 0 і 1, де нуль означає відсутність функції, а один означає її наявність. На жаль, невеликі зміни, які відбуваються у вагах, не можуть відображатись у значеннях активації, оскільки вони можуть приймати лише 0 або 1. Тому нелінійні функції повинні бути безперервними та диференціюватися між цим діапазоном. Нейронна мережа повинна бути здатна приймати будь-який вхід від -інфініти до + нескінченного, але вона повинна бути в змозі відобразити його на вихід, який коливається між {0,1} або між {-1,1} в деяких випадках - таким чином потреба в функції активації. Нелінійність необхідна в функціях активації, оскільки її мета в нейромережі полягає у створенні нелінійної межі рішення за допомогою нелінійних комбінацій ваги та входів.


1
+ Одне, тоді можна зробити висновок, що нелінійна функція використовується для встановлення досконалої межі?
SIslam

1
Так, саме. За умови отримання лише 0 або 1 це може призвести до 0,4 або 0,78, що робить його безперервним у межах межі.
чиболе

3
Нейронна мережа повинна мати можливість приймати будь-який вхід від -інфінітію до + нескінченного, але вона повинна бути в змозі відобразити його на виході, що становить від {0,1} або між {-1,1} ... це нагадує мені що обмеження ReLU полягає в тому, що воно повинно використовуватися лише в межах прихованих шарів моделі нейронної мережі.
Хмара Чо

21

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

Те ж саме стосується випадку, коли всі нейрони мають афінну активаційну функцію (тобто функцію активації на формі f(x) = a*x + c, де aі cє константами, що є узагальненням лінійних функцій активації), що просто призведе до афінної трансформації від входу до виходу , що теж не дуже хвилює.

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

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


1
Функції вищого порядку можна наблизити до лінійних функцій активації, використовуючи кілька прихованих шарів. Теорема універсального наближення характерна для MLP з лише одним прихованим шаром.
eski

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

4
@eski Ні, ви не можете наближати функції вищого порядку лише за допомогою лінійних функцій активації, ви можете моделювати лише лінійні (або афіні, якщо у вас є додатковий постійний вузол у кожному, крім останнього шару) функцій та перетворень, незалежно від того, скільки шарів ви мати.
HelloGoodbye

Чи правильно сказати, що головна мета функції активації - дозволити нейронній мережі виробляти нелінійну межу рішення?
stackoverflowuser2010

@ stackoverflowuser2010 Це був би один із способів поглянути на це. Але до функції активації є більше, ніж так. У статті Вікіпедії про функції активації перераховано декілька функцій активації, всі (крім однієї) з яких є нелінійними, і порівнює різні якості, які може мати функція активації.
HelloGoodbye

9

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

y = h2 * W3 + b3 
  = (h1 * W2 + b2) * W3 + b3
  = h1 * W2 * W3 + b2 * W3 + b3 
  = (x * W1 + b1) * W2 * W3 + b2 * W3 + b3 
  = x * W1 * W2 * W3 + b1 * W2 * W3 + b2 * W3 + b3 
  = x * W' + b'

Ми можемо зробити останній крок, тому що комбінацію декількох лінійних перетворень можна замінити одним перетворенням, а комбінація кількох термінів зміщення - це лише одне зміщення. Результат такий же, навіть якщо ми додамо деяку лінійну активацію.

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


5

"Ця стаття використовує теорему Стоун-Вейерштрасса і косинусну сквашуру Галанта і Уайта, щоб встановити, що стандартні багатошарові мережеві архітектури подачі з використанням атриторізуючих функцій сквошингу можуть наближати практично будь-яку цікаву до будь-якої бажаної ступеня точності, за умови достатньої кількості прихованих одиниці доступні. " ( Hornik et al., 1989, Нейронні мережі )

Функція сквошінгу - це, наприклад, нелінійна активаційна функція, яка відображається на [0,1], як функція активації сигмоїдів.


3

Бувають випадки, коли суто лінійна мережа може дати корисні результати. Скажімо, у нас є мережа з трьох шарів з формами (3,2,3). Обмеживши середній шар лише двома вимірами, ми отримуємо результат, який є "площиною найкращого вмісту" в первісному тривимірному просторі.

Але існують більш прості способи знайти лінійні перетворення такої форми, як NMF, PCA тощо. Однак це випадок, коли багатошарова мережа НЕ веде себе так само, як одношаровий перцептрон.


2

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

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

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


2

Тут є кілька хороших відповідей. Добре буде вказати на книгу "Розпізнавання візерунків та машинне навчання" Крістофера М. Бішопа. Це книга, на яку варто звернутися, щоб отримати більш глибоке розуміння декількох концепцій, пов'язаних з МЛ. Уривок зі сторінки 229 (розділ 5.1):

Якщо функції активації всіх прихованих одиниць у мережі приймаються лінійними, то для будь-якої такої мережі ми завжди можемо знайти еквівалентну мережу без прихованих одиниць. Це випливає з того, що склад послідовних лінійних перетворень сам по собі є лінійним перетворенням. Однак якщо кількість прихованих одиниць менша або кількості вхідних чи вихідних одиниць, то перетворення, які може генерувати мережа, не є найбільш загальними можливими лінійними перетвореннями від входів до виходів, оскільки інформація втрачається при зменшенні розмірності на приховані одиниці. У Розділі 12.4.2 ми показуємо, що мережі лінійних одиниць дають початок аналізу основних компонентів. Однак загалом інтерес до багатошарових мереж лінійних одиниць мало.


1

Як я пам’ятаю, сигмоподібні функції використовуються тому, що їх похідну, яка вписується в алгоритм ВР, легко обчислити, щось таке, як f (x) (1-f (x)). Я не пам'ятаю точно математики. Насправді можна використовувати будь-яку функцію з похідними.


7
Як я пам'ятаю, функція все ще хоче монотонно зростати. Отже, не будь-яка функція.
Новак

1

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


0

Дозвольте пояснити це якомога простіше:

Нейрові мережі використовуються для правильного розпізнавання образів? І пошук візерунків - дуже нелінійна техніка.

Припустимо, для аргументу ми використовуємо лінійну функцію активації y = wX + b для кожного окремого нейрона і встановлюємо щось на зразок, якщо y> 0 -> class 1 else class 0.

Тепер ми можемо обчислити свою втрату, використовуючи квадратну втрату помилок, і назад розповсюджуємо її так, що модель добре вчиться, правильно?

НЕПРАВИЛО.

  • Для останнього прихованого шару оновлене значення буде w {l} = w {l} - (альфа) * ​​X.

  • Для другого останнього прихованого шару оновлене значення буде w {l-1} = w {l-1} - (альфа) * ​​w {l} * X.

  • Для останнього першого прихованого шару оновленим значенням буде w {i} = w {i} - (альфа) * ​​w {l} ... * w {i + 1} * X.

Це призводить до того, що ми множимо всі вагові матриці разом, а отже, і виникаємо можливості: A) w {i} ледь змінюється через зникаючий градієнт B) w {i} різко і неточно змінюється через вибух градієнта С) w {i} змінюється добре достатньо, щоб дати нам хороший результат

У випадку, коли C трапляється, це означає, що наша проблема класифікації / прогнозування, швидше за все, була простим лінійним / логістичним регресором і ніколи не вимагала нейронної мережі!

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


-3

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

Докладніше див. Тут: https://www.academia.edu/7826776/Mathematical_Intuition_for_Performance_of_Rectified_Linear_Unit_in_Deep_Neural_Networks


Редагувати:

Було обговорено питання про те, чи можна випрямлену лінійну активаційну функцію назвати лінійною функцією.

Так, це технічно нелінійна функція, оскільки вона не є лінійною в точці x = 0, однак, все-таки правильно сказати, що вона лінійна у всіх інших точках, тому я не думаю, що це так корисно для нитпика,

Я міг би обрати функцію ідентичності, і все одно це буде правдою, але я вибрав ReLU як приклад через недавню популярність.


8
Випрямлена функція лінійного активації також нелінійна (незважаючи на свою назву). Це просто лінійно для позитивних значень
Plankalkül

4
Ви технічно правильні, це не лінійно для всього домену, зокрема при x = 0 (це фактично лінійно для x <0, оскільки f (x) = 0 - лінійна функція). Він також не диференційований, тому градієнтна функція також не є повністю обчислюваною, але на практиці ці технічні характеристики легко подолати.
eski

4
Він не тільки технічно коректний, він також правий на практиці (чи щось подібне). Саме нелінійність ReLU робить їх корисними. Якби вони були лінійними, вони мали б функцію активації у формі f(x) = a*x(тому що це єдиний тип лінійної функції активації, яка існує), що є марною функцією активації (якщо ви не поєднуєте її з нелінійними функціями активації) ).
HelloGoodbye

10
Випрямлена лінійна одиниця (ReLU) не є лінійною, і це не просто "незначна деталь", яку люди занижують, це важлива важлива причина, чому це корисно для початку. Нейронна мережа з матрицею ідентичності або звичайною лінійною одиницею, що використовується як функція активації, не зможе моделювати нелінійні функції. Тільки тому, що він лінійний вище 0, не означає, що це практично лінійна функція. Протікаючий ReLU також "лінійний" нижче 0, але він все ще не є лінійною функцією і, безумовно, не може бути просто замінений функцією ідентичності. Нелінійність є, безумовно, вимогою.
Ессам Аль-Мансурі

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