Вивівши градієнт одношарової нейронної мережі wrt своїх входів, що таке оператор у ланцюговому правилі?


9

Проблема:

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

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

Визначте деякі позначення

r=xW1+b1

h=σ(r) , - сигмоїдна функціяσ

θ=hW2+b2 ,

y^=S(θ) , - функція softmaxS

J(y^)=iylogy^i , справжній ярлик "гарячий вектор"y

Тоді за правилом ланцюга,

Jx=Jθθhhrrx

Індивідуальні градієнти:

Jθ=(y^y)
θh=h[hW2+b2]=W2T
hr=h(1h)
rx=x[xW1+b1]=W1T

Тепер ми повинні з'єднати визначення разом. У одно змінній це легко, ми просто множимо все разом. У векторах я не впевнений, чи використовувати мультиплікаційне множення чи матричне множення.

Jx=(y^y)W2T[h(1h)]W1T

Де - множинне множення векторів, а - матричне множення. Ця комбінація операцій - це єдиний спосіб, по якому я міг би з'єднати їх разом, щоб отримати векторний розмірний розмір , який я знаю, що .1DxJx

Моє запитання: який принциповий спосіб я зрозуміти, який оператор використовувати? Мене конкретно бентежить потреба в елементі між і .W2Th

Дякую!


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

як ти dervie dJ / dTheta
raaj

Відповіді:


4

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

Фактична операція не є поелементний множення , але замість стандартного множення матриць градієнта з якобіаном , завжди .

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

У математиці у нас є деякі нелінійність , втрата та вхід до нелінійності (це може бути будь-який тензор). Вихід нелінійності має той самий вимір ---, як говорить @Logan, функція активації визначається як елементна.sLxRn×1s(x)Rn×1

Ми хочемо

xL=(s(x)x)Ts(x)L

Де - якобійський з . Розширюючи цей якобійський, отримуємо s(x)xs

[s(x1)x1s(x1)xns(xn)x1s(xn)xn]

Ми бачимо, що він скрізь дорівнює нулю, крім діагоналі. Ми можемо зробити вектор усіх його діагональних елементів

Diag(s(x)x)

А потім скористайтеся оператором, що відповідає елементу.

xL=(s(x)x)Ts(x)L=Diag(s(x)x)s(x)L

0

Щоразу, коли пропорційна функції активації, операції стають елементарними. Зокрема, використовуючи ваш приклад, - похідна зворотного розповсюдження, а - похідна активації, а їхній продукт - елементний продукт, . Це тому, що функції активації визначені як елементні операції в нейронній мережі.δ2=(y^y)W2Ta=h(1h)δ2a

Дивіться слайди лекцій cs224d, сторінка 30, це також може допомогти.

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