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


21

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

y^=11+exp(wTxi)

Чим цей «сигмоїдний» Перцепцепрон відрізняється від логістичної регресії тоді?

Я б сказав , що одношаровий персептрон сигмовидної еквівалентно логістичної регресії в тому сенсі , що обидва використовують у = 1y^=11+exp(wTxi) у правилі оновлення. Крім, як зворотнийsign(y^=11+exp(wTxi))в передбаченні. Однак у багатошарових перцептронах функція активації сигмоїдів використовується для повернення ймовірності, а не сигналу вимкнення на відміну від логістичної регресії та одношарового персептрона.

Я думаю, що використання терміна "Perceptron" може бути дещо неоднозначним, тому дозвольте навести деякий фон, який базується на моєму теперішньому розумінні щодо одношарових перцептронів:

Класичне правило перцептрона

По-перше, класичний перцептрон Ф. Розенблатта, де у нас є ступінчаста функція:

Δwd=η(yiyi^)xidyi,yi^{1,1}

оновити ваги

wk:=wk+Δwk(k{1,...,d})

Так що у розраховується якy^

y^=sign(wTxi)=sign(w0+w1xi1+...+wdxid)


Спуск градієнта

За допомогою градієнтного спуску ми оптимізуємо (мінімізуємо) функцію витрат

J(w)=i12(yiyi^)2yi,yi^R

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

Тут ми робимо крок у негативному напрямку градієнта, коли оновлюємо ваги

Δwk=ηJwk=ηi(yiyi^)(xik)=ηi(yiyi^)xik

Але тут ми маємо у = ш Т х я замість у = знак ( ш Т х I )y^=wTxiy^=sign(wTxi)

wk:=wk+Δwk(k{1,...,d})

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


Функція активації сигмоїдів

Тепер ось моє питання:

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

у^=11+досвід(-шТхi)

Чим цей «сигмоїдний» Перцепцепрон відрізняється від логістичної регресії тоді?


4
Дивовижно, саме це питання дозволило мені сконцентрувати моє машинне навчання та основи нейромережі!
varun

Відповіді:


4

За допомогою градієнтного спуску ми оптимізуємо (мінімізуємо) функцію витрат

J(w)=i12(yiyi^)2yi,yi^R

Якщо ви мінімізуєте середню помилку в квадраті, то вона відрізняється від логістичної регресії. Логістична регресія зазвичай пов’язана з перехресною втратою ентропії, ось сторінка вступу з бібліотеки scikit-learn .


(Я вважаю, що багатошарові перцептрони - це те саме, що називається нейронними мережами.)

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


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

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


2

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

Ось одношаровий NN

гJ(ш,б)гωкj=гJ(ш,б)гzкгzкгωкj

гJ(ш,б)гzк=(ак-ук)(ак(1-ак))

гzкгωкj=хк

J(ш,б)=12(ук-ак)2

ак=сiгм(zк)=сiгм(Wкjхк+бк)

якщо функція активації була базовою ступеневою функцією (поріг), похідною від J wrt zк було б не диференційованим.

тут посилання, яке пояснює це загалом.

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


3
Це не відповідає на запитання.
Ніл G

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

@SebastianRaschka Вони однакові. Що змушує вас думати, що вони різні? Я здійснив спуск градієнта, тому що побачив помилку в оцінці вашого схилу по градієнту. Ви припускалиу=WТХколи ти їхав ним. Ось чому ви знайшли однакове виведення для оновлення Perceptron і Gradient.
yasin.yazici

1
"Що змушує вас думати, що вони різні?" - номенклатура, тому мені було цікаво, чи є ще щось; Мені просто цікаво, чому у нас є два різні терміни для однієї і тієї ж речі. Btw. Я не бачу жодної помилки в градієнтному спуску в своєму питанні.у=шjТхjiправильно. І я також не знайшов однакового виведення між "правилом перцептрона" та "оновленням градієнта". Перший робиться в режимі он-лайн навчання (зразок за зразком), останній робиться в пакетному режимі, а також ми мінімізуємо суму помилок у квадраті замість використання покрокової функції.

Я думаю, що може спричинити плутанину в тому, що ви розрізняєте крок "класифікація" та "навчання". Крок класифікації завжди є пороговим (-1 або 1, або 0 і 1, якщо вам подобається). Однак оновлення відрізняється, в класичному перцептроні оновлення здійснюється черезη(у-сiгн(шТхi))х whereas in let's say stochastic gradient descent it is η(ywTxi)xi

2

Intuitively, I think of a multilayer perceptron as computing a nonlinear transformation on my input features, and then feeding these transformed variables into a logistic regression.

The multinomial (that is, N > 2 possible labels) case may make this more clear. In traditional logistic regression, for a given data point, you want to compute a "score", βiX, for each class, i. And the way you convert these to probabilities is just by taking the score for the given class over the sum of scores for all classes, βiXjβjX. Таким чином, клас з великою оцінкою має більшу частку від комбінованого бала і тому більша ймовірність. Якщо ви змушені передбачити окремий клас, ви вибираєте клас з найбільшою ймовірністю (який також є найбільшим балом).

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

A multilayer perceptron is like a graduate student with way too much time on her hands. Through the gradient descent training and sigmoid activations, it's going to compute arbitrary nonlinear combinations of your original input variables. In the final layer of the perceptron, these variables effectively become the X in the above equation, and your gradient descent also computes an associated final βi. The MLP framework is just an abstraction of this.

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