Векторизирано доказателство без суми или индекси.
TLDR
Обратното разпространение е гръбнакът на дълбокото обучение. Въпреки че има много литература по този въпрос, малко са тези, които подробно обясняват откъде идват формулите на градиентите (∂загуба / ∂W), необходими за обратно разпространение. Дори когато обясняват, математиката има тенденция да става дълга и пълна с индекси навсякъде поради голямата размерност на проблема: имате индекс за броя на пробите, индекс за броя на слоевете и един за броя на невроните във всеки слой.
Така че всеки път, когато се подготвях за интервю за работа или просто исках да опресня нещата за машинно обучение, които научих в миналото, винаги ми беше трудно да напиша математиката зад обратното размножаване, без да гледам учебник. Въпреки че разбрах как работи, открих, че формулите са много неинтуитивни и понякога объркващи...
Така че идеята на тази статия е да демонстрира формули за обратно разпространение по елегантен начин, използвайки само векторизирано смятане: Така че без индекси i,j,k,…и никакво сумиране ∑! (Единственият индекс, който ще използваме, е да обозначим слоя.)
Въведение
Да предположим, че имаме следната архитектура на невронна мрежа (NN).
Нашата NN има два скрити слоя и един изходен слой от три класа. Ще използваме softmax активиране за всички слоеве.
Обучението на този модел означава минимизиране на нашата функция на загуба, която е кръстосаната ентропия (логаритмична загуба). Тъй като имаме 3 класа, загубата на регистрационен файл е: 𝜉(Y,X,W₁,W₂,W₃) = сума[Y○ log(X₃)]
С: „сума“ е сумата от всички елементи в една матрица, а „○“ е елементно произведение на две матрици с еднаква форма. „○“ се нарича още „продукт на Адамар“.
X₀е матрица n×3, като n е размерът на минипартида.
W₀е матрица 3×5. Той има теглата за прехода от слой 0 към 1.
X₁е матрица n×5. Той представлява трансформацията на данните на първия слой.
W₁е матрица 5×4. Той има теглата за прехода от слой 1 към 2.
X₂е матрица n×4. Той представлява трансформацията на данните на втория слой.
W₂е матрица 4×3. Той има теглата за прехода от слой 2 към 3.
X₃е матрица n×3. Той представлява трансформацията на данните на третия слой.
Yе матрица n×3, като 3 е броят на класовете.
По принцип целта на тази статия е да демонстрира следния диференциален израз: (★)
с 𝜹₂=Y- X₃
и 𝜹₁= (𝜹₂ .W₂ᐪ)○ X₂○ (1 - X₂)
и 𝜹₀ = (𝜹₁ .W₁ᐪ)○ X₁○ (1 - X₁).
и ○ като „продукт на Адамар“.
и :като „продукт на Фробениус“
Тази разлика е особено интересна, защото разкрива всички градиенти, необходими за актуализиране на теглата по време на обратното разпространение
Така във всяка стъпка Wᵢ се актуализира, както следва: [Wᵢ=Wᵢ+𝛼*Xᵢᐪ𝜹ᵢ]като 𝛼 е скоростта на обучение.
Ако се интересувате как да намерите (★), тогава тази статия е за вас!
Ключовите резултати се нуждаеха от доказателство
1. Връзката с мултиномиалната регресия
Всъщност, ако вземете последните два слоя на нашата мрежа, това е основно „мултиномиална логистична регресия“ с X₂ като входни данни и X₃ като изходни прогнози:
С 𝜎 е функцията softmax, можем да запишем X₃=𝜎(X₂W₂).
С Z₂=X₂W₂,ние може да пише X₃=𝜎(Z₂).
Така загубата може да бъде записана по следния начин: 𝜉=сума[Y○ log(𝜎( Z₂))]
Така че, ако се съгласим, че това наистина е проблем с „мултиномиална логистична регресия“, тогава имаме следните резултати:
За да бъде тази статия кратка, няма да се задълбочаваме в подробности как да изчислим тези градиенти. Но ако се интересувате от доказателството, уведомете ме и ще се опитам да напиша статия за това.
Друго интересно нещо, което трябва да забележите, е, че тъй като използваме softmax активиране за всички слоеве, можем да заключим:
2. Диференциращи функции на матрици
Тази част е доста важна, защото ще ни предостави елегантен начин да разкрием крайния израз (★).
f: Матрица -› Скалар
Нека разгледаме f като функция, която взема матрица и извежда скалар. Ако f е диференцируемо, тогава:
Така диференциалът на f се записва по следния начин:
като “:” е продуктът на Фробениус [ A:B =следа(AᐪB) ] .
f: Скаларно -› Скаларно, приложено елементарно върху матрица
Нека разгледаме f като проста функция, която приема скала и извежда скала. Сега нека обозначим с F функцията, която прилага f към всеки елемент в матрицата независимо. Ако f е диференцируемо, тогава:
Така диференциалът на f се записва по следния начин:
като „○“ е „продуктът на Адамар“, който видяхме по-рано.
3. Свойства на продуктите на Адамар и Фробениус
Нека A, B и C са три матрици с еднаква форма.
- Свойства на продукта Адамар:
Той има основно същите свойства като простото скаларно умножение, но за матрици.
Комутативно A○B = B○A
Асоциативен A○(B○C) = (A○B)○C = A○B ○C
Разпределение над добавяне A○ (B+C) = A○B + A○C
- Свойства на продукта Frobenius:
Разпределение над добавяне A:(B+C) = A:B + A:C
Следващото свойство е особено интересно и може просто да се докаже чрез замяна на оператора „:“ с формулата за проследяване.
Съвместни свойства на два продукта:
Ред на операциите:
“○” има по-висок приоритет от “:” и двете имат по-нисък приоритет от матричното умножение “.” т.е.: “. › “○” › “:”
Така, A:B○C.D = A:(B○(C.D))
Най-важното свойство между двата оператора е следното:
и може просто да се демонстрира чрез замяна на оператора „:“ с формулата за проследяване.
Доказателство за формули за обратно разпространение
1. Диференциране на загубата
Ако комбинираме 1.a и 2.a, имаме
Тъй като Z₂ е матрично умножение, то се различава, както следва:
По този начин
Вече имаме разликата на 𝜉 на W₂ и X₂с 4 реда за доказателство.
2. Разграничаване на скритите слоеве
Сега нека се върнем обратно към последния скрит слой.
Ако комбинираме 1.b и 2.b, получаваме:
Така 𝜹₂W₂ᐪ:dX₂ става
Сега имаме разликата на 𝜹₂W₂ᐪ:dX₂, с 6 реда за доказателство.
Връщането на това обратно в d𝜉 ни дава
Така че всъщност това е. Останалото е просто повтаряне на тази стъпка за останалите слоеве.
Като направим за 𝜹₁W₁ᐪ:dX₁същото, което направихме за𝜹₂W₂ᐪ:dX₂ получаваме:
3. Сглобяване на всичко
Накрая, като поставим всичко обратно в d𝜉, получаваме нашето крайно уравнение (★)
с 𝜹₂=Y— X₃
и 𝜹₁= (𝜹₂ .W₂ᐪ)○ G₁= (𝜹₂ .W₂ᐪ)○ X₂○ (1 - X₂)
и 𝜹₀= (𝜹₁ .W₁ᐪ)○ G₀= (𝜹₁ .W₁ᐪ)○ X₁○ (1 - X₁)
Тада! 🎉
Заключение
Лично аз намерих това доказателство за по-елегантно и по-лесно за възпроизвеждане от паметта, без да гледам в учебник. Надявам се, че и при вас е така и се надявам, че тази статия ви е харесала.