ПредишенСледващото

Част 2: първите методи за градиент.

Този текст е prololzheniem статии по методика на преподаване на многослойни невронни мрежи на пряко разпространение. Тук говорим за първите методи, за градиент на обучението класификатор.

1. Въведение.

В предишна статия, ние официално постави задачата да обучава класификатор $ з $ като минимизиране на загуба на функцията в космически мащаби. \ Започнете \ min_W E (H (X, W), С) \ етикет \ край

След това zaymomsya решение на този проблем.

2. градиент методи за обучение на първия ред

За решаване на проблема (\ лит), ще използваме методите градиент на оптимизация (първи ред). Наклонът на $ \ nabla E (W) $ в точка $ W $ е най-много се е увеличила съответно го сведе до минимум на функцията, трябва да се променят параметрите в посока, обратна на градиента. Този подход се нарича методът на най-стръмната произход. Общата схема на такова обучение е както следва.

  1. инициализира тегло $ W $ (малки случайни стойности)
  2. Ние изчисли грешка $ Е на (з (X, W), С) $
  3. ако резултатът е задоволителен след края на работния ден
  4. изчисли стойността загуба на градиент Fct: $ \ nabla Е (H (X, W), С) $
  5. Ние изчисляваме промяната в параметрите: $ \ Delta W = \ ета \ cdot \ nabla E $
  6. коригира параметрите: $ W: = W- \ Delta W $
  7. превключите претенция 2
параметър $ \ ета $ се нарича скоростта учене. той определя стойността на съответните етапи на процеса за оптимизиране и избор на отделна задача в най-простия случай, тя се задава като постоянно $ 0 \ LT \ ета \ LT $ 1.

Така следния проблем да бъде решен за осъществяване на обучение невронната мрежа е да се намери начин да се изчисли загубата на функция на градиент $ \ nabla Е (H (X, W), С) $.

3. Метод за обратно разпространение грешка.

За да реши проблема с оптимизация (\ лит) градиент метод произход, описано в предишния раздел, ние трябва да се намери начин да се изчисли загубата на функция на градиент $ \ nabla E $, което е вектор на частни производни. $$ \ nabla E (W) = \ наляво [\ Frac \ ldots \ Frac \ полето] $$ където $ к $ - общ брой мрежови тегла.

където $ E $ - загуба на функцията, $ w_ $ - поради теглото на невроните $ аз $ и $ к $, $ y_j $ - изход неврон брой $ к $, $ s_j $ - състояние на неврон $ к $ на.

Помислете за отношението на ($ \ изх $) поотделно.

$ \ Частично s_j / \ частично w_ $ - $ аз $ добив тата предишния неврон (неврона по отношение на $ й $) слой, тази част се определя изрично,

$ \ Частично y_j / \ частично s_j $ - стойност на производната на функцията за активиране на аргумента си за неврон $ й $ на тази част може просто да бъде изчислена,

$ \ Частичен E / \ частичен y_j $ - грешка неврон брой $ к $, тук има някои трудности. ценности грешки са определени изрично само за невроните на изходния слой, какво да кажем за скритите слоеве? Тук ще помогне на метода, който се нарича - метода на обратно разпространение.

Същността се състои в грешка последователно изчисляване на скрити слоеве използват стойности на грешката на изходния слой, т.е. стойности за грешка са разпределени по мрежата в обратна посока от изхода към входа.
Тук ние няма да даде извличането на формули, след като даде резултат - рекурсивно формула за изчисляване на стойността на $ \ частичен E / \ частичен у $.

за изходния слой $$ \ delta_i: = \ Frac $$ за скрит слой \ започне \ delta_i: = \ Frac \ cdot \ сума \ limits_j \ delta_j w_ \ етикет \ край където $ \ частично г / \ частично и $ - производно стойност активиране функцията на довод.

Алгоритъмът за изчисляване на градиента на метода на загуба обратно разпространение е както следва.
  1. директно преминаване: изчисли състоянието на неврон $ S $ на всички слоеве на мрежата и на изхода
  2. изчисляване на стойностите на $ \ делта: = \ частично E / \ частично у $ за изходния слой
  3. назад пас последователно от края към началото на всички скрити слоеве изчисляват $ \ делта $ по формула ($ \ изх $)
  4. изчисляване за всеки слой на Е = \ частично E / \ частично W = Y \ cdot \ делта ^ T $ стойността градиент $ \ nabla,
    където $ у $ - вектор входен слой, $ \ делта $ - слой грешка вектор към изхода.
След това, ние разгледаме различните модификации на метода на най-стръмната спускане за невронна обучение и изпълнение на мрежата.

4. Метод съгласно градиент произход

Над, ние вече дадена схемата за градиент метод произход, представен тук, е неговата сложност; малко версия на този алгоритъм е в основата на алгоритмите, описани в следващите раздели.

Методът на най-стръмната спускане в "чиста" форма е "заби" в местните минимуми от $ E $ загуба на функцията, за да се справят с това, ние ще използваме няколко допълнения за този метод. Първата придобивка е използването на вече описаните по-горе мини-партида стратегия, а вторият е на така наречените "точки".

Методът на моменти може да се сравни поведението на тежката топка, която се търкаля по склона до най-близкия Низин състояние да се движи на известно разстояние нагоре по инерция, като по този начин да се измъкнем от местните минимуми. Формално, изглежда като добавка за промяна на мрежовите тегла. $$ \ Delta W_t: = \ ета \ cdot \ nabla E + \ ц \ cdot \ Delta W_ $$ където $ \ ета $ - учене фактор скорост
$ \ Nabla E $ - градиент на загуба на функцията,
$ \ Mu $ - миг коефициент,
$ \ Delta W_ $ - промяна на баланса в предишната итерация.

Друго подобрение е използването на метод за оптимизация за отстраняване на нередовностите. Узаконяване "наложи санкция" на прекомерен растеж на стойностите на теглата тя помага в борбата с преквалификация. Формално, тя изглежда като друга добавка за промяна на мрежовите тегла. $$ \ Delta W_t: = \ ета \ cdot \ ляво (\ nabla E + \ р \ cdot W_ \ вдясно) + \ ц \ cdot \ Delta W_ $$ където $ \ ета $ - учене фактор скорост
$ \ Nabla E $ - градиент на загуба на функцията,
$ \ Mu $ - миг коефициент,
$ \ Delta W_ $ - промяна на баланса в предишната итерация,
$ \ Rho $ - узаконяване фактор
$ W_ $ - стойности на теглата на предишната итерация.

Така че отиваме да се промени скоростта на курс обучение $ \ ета $ във всяка итерация $ т $, в зависимост от промяната в грешка $ E $ както следва.

$$ \ eta_t = \ ляво \ \ Алфа \ cdot \ eta_ , \ Делта Е \ GT 0 \\ \ р \ cdot \ eta_ , - \ край \ прав. $$ където $ \ eta_0 = 0.01 $ - първоначална стойност на скоростта на обучение,
$ \ Delta E = E_t - \ гама \ cdot E_ $ - грешка промяна
$ \ Alpha = 0.99 \ \ бета = 1.01, \ \ гама = 1.01 $ - константи

По този начин, с значително увеличение на грешка $ E $ параметър нарастване $ \ ета $ на, се намалява, в противен случай - Стъпка $ \ ета $ увеличава. Тази добавка може да увеличи скоростта на сходимост на алгоритъма.

Ще се съберат всички заедно, нашият алгоритъм добиват следната форма.
  1. инициализира тегло $ W $ (малки случайни стойности)
  2. инициализира с нули промените първоначалната стойност на тежести $ \ Delta W $
  3. Ние изчисляваме грешка $ Е (ч (X, W), C, W) $ и неговата промяна $ \ Delta E $ на тестовата серия
  4. ако резултатът е задоволителен след това да извърши окончателната теста и края на работния ден
  5. Избираме произволно подмножество на $ (X, C) _L $ на тренировъчната
  6. Ние се изчисли стойността на загубата на функция на градиент $ \ nabla E $ от избрания подгрупата
  7. Ние изчисляване на промяната в параметрите: $ \ Delta W: = \ ета \ cdot (\ nabla Е + \ р \ cdot W) + \ ц \ cdot \ Delta W $
  8. коригира параметрите: $ W: = W- \ Delta W $
  9. Ние коригира обучение курс $ \ ета $
  10. отидете в т.3
След това, ние изгради реализация и да видим как тя работи.

5. Метод quickProp

В този раздел ще разгледа изменение е описано в предишния раздел, метод на градиент произход, който се нарича quickProp. От основата на метода се характеризира с това, че параметърът е време $ \ МУ $ и коефициент курс обучение $ \ ета $ на се определя индивидуално за всеки параметър. Промяна на параметрите е описан със следната връзка. $$ \ Delta W: = \ ета \ cdot (\ nabla Е + \ р \ cdot W) + \ ц \ cdot \ Delta W $$ където $ \ р $ - коефициент узаконяване.

Параметър курс обучение се изчислява по следния начин. $$ \ ета = \ ляво \ \ eta_0 , (\ Delta W = 0) \ LOR (- \ Delta W \ cdot S \ GT 0) 0 \\ , - \ край \ прав. $$ където $ \ eta_0 \ в (0.01 0.6.) $ - константа, $ S = \ nabla Е + \ р W $

параметъра дата, както следва. $$ \ ц = \ ляво \ \ mu_ , (\ Beta \ GT \ mu_) \ LOR (\ у \ LT 0) \\ \ бета , - \ край \ прав. $$ където $ \ mu_ = 1,75 $ - константа
$ S = \ nabla Е + \ р W $,
$ \ Бета = S (T) / (S (т-1) - S (т)) $
$ \ Gamma = S \ cdot (- \ Delta W) \ cdot \ бета $

След това, ние изгради реализация и да видим как тя работи.

6. Метод rProp

В този раздел ние считаме модификация, описана в предишния раздел, метод градиент спускане, който се нарича rProp (еластичен обратно разпространение). Ако не се използват rProp моменти и узаконяване, се използва една проста стратегия на пълно работно партида. Ключовата роля на параметър курс обучение $ \ ета $, той се изчислява за всяко тегло индивидуално. $$ \ ета (т) = \ ляво \ минути (\ eta_, а \ cdot \ ета (т-1)) , S \ GT 0 \\ макс (\ eta_, б \ cdot \ ета (т-1)) , S \ LT 0 \\ \ ета (т-1) , S = 0 \ край \ прав. $$ където $ S = \ nabla Е (т-1) \ cdot \ nabla Е (т) $ - продукт на стойностите на градиента в този и предишния етап,
$ \ Eta_ = 50 \ \ \ eta_ = 10 ^ \, \ а = 1.2 \, \ б = 0,5 $ - константи

Промяна на параметри, както следва.

$$ \ Delta W_t: = \ ета \ cdot \ наляво (знак (\ nabla E) + \ р \ cdot W_ \ дясно) + \ ц \ cdot \ Delta W_ $$ където $$ подпише (х) = \ ляво \ -1 , х \ LT 0 \\ 0 , х = 0 \\ 1 , х \ GT 0 \ край \ полето. $$

7. Метод съгласно конюгатни градиенти

В този раздел разглеждаме метода на конюгатни градиенти (конюгат градиент). Особеността на този метод - специална селекция от посоката на изменение на параметрите. Той се избира по такъв начин, че ще бъде перпендикулярна на предишната посока. Пълна промяна на тежести е както следва. $$ \ Delta W: = \ ета \ cdot (р + \ р \ cdot W) + \ ц \ cdot \ Delta W $$ където $ \ ета $ - съотношение скорост живот,
$ P $ - посока на промяна на параметрите,
$ \ Mu $ - миг коефициент,
$ \ Delta W $ - промяната в теглата на предходната итерация,
$ \ Rho $ - узаконяване фактор
$ W $ - стойности на теглата на предишната итерация.

коефициент курс обучение $ \ ета $ В, избран на всяка итерация, чрез решаване на проблема с оптимизация. $$ \ min_ \ ета E (\ Delta W (\ ета)) $$

параметър посока промяна е избран както следва. $$ р = \ nabla Е + \ р \ cdot р $$ първоначалната посока е избран $ p_0: = \ nabla E $.

Ключовият момент е да се изчисли коефициентът на свързване $ \ бета $. Това е възможно да се изчисли най-малко два различни начина. Първият метод - формула Fletcher-Reeves. $$ \ бета = \ Frac ^ Т \ cdot g_>; $$ Вторият начин - с формула Polak-Ribiere. $$ \ бета = \ Frac)> ^ Т \ cdot g_>; $$ където $ г = \ nabla E $ - градиент от загуба на функция на този и предходната итерация.

За да се компенсира натрупаната метода на изчисление грешка включва възстановяване на двойна посока т.е. ($ \ Beta: = 0 $, $ р: = \ nabla E $) на всеки $ N $ цикли, където $ п $ е избран в зависимост от броя на параметрите W.

8. Метод NAG (ускорено Градиент Нестеров е)

В този раздел ще разгледа изменение на метода на градиент спускане НХГ, тук градиента се изчислява по отношение на стойността на промяната на времето на баланса. $$ \ Delta W_t: = \ ета \ cdot \ наляво (\ nabla Е (W_ + \ ц \ cdot \ Delta W_) + \ р \ cdot W_ \ дясно) + \ ц \ cdot \ Delta W_ $$ където $ \ ета $ - фактор курс обучение
$ \ Nabla E $ - градиент на загуба на функцията,
$ \ Mu $ - миг коефициент,
$ \ Delta W_ $ - промяна на баланса в предишната итерация,
$ \ Rho $ - узаконяване фактор
$ W_ $ - стойности на теглата на предишната итерация.

(I.Sutskever, J.Martens, G.Dahl, G.Hinton На значението на инициализация и инерция в дълбока обучение)

9. Метод AdaGrad (Adaptive градиент)

метод AdaGrad взема предвид историята на стойностите на градиент, както следва. $$ g_t: = \ Фрак<\nabla E_t><\sqrt<\sum\limits_^t \nabla E_i^2>> $$ $$ \ Delta W_t: = \ ета \ cdot \ наляво (g_t + \ р \ cdot W_ \ вдясно) + \ ц \ cdot \ Delta W_ $$ където $ \ ета $ - учене фактор скорост
$ \ Nabla E $ - градиент на загуба на функцията,
$ \ Mu $ - миг коефициент,
$ \ Delta W_ $ - промяна на баланса в предишната итерация,
$ \ Rho $ - узаконяване фактор
$ W_ $ - стойности на теглата на предишната итерация.

(J.Duchi, E.Hazan, Y.Singer, Адаптивни Subgradient Методи за онлайн обучение и стохастична оптимизация)

10. Метод AdaDelta

метод AdaDelta взема предвид историята на стойностите на градиента и историята на промяна на тежести, както следва. $$ S_t: = \ а \ cdot s_ + (1- \ алфа) \ cdot \ nabla E_t ^ 2 \; \ S_0: = 0 $$ $$ D_t: = \ р \ cdot D_ + (1- \ бета) \ cdot \ Delta W_ ^ 2 \; \ D_0: = 0 $$ $$ g_t: = \ Frac<\sqrt><\sqrt> \ Cdot \ nabla E_t $$ $$ \ Delta W_t: = \ ета \ cdot \ наляво (g_t + \ р \ cdot W_ \ дясно) + \ ц \ cdot \ Delta W_ $$ където $ \ ета $ - съотношение скорост обучение
$ \ Nabla E $ - градиент на загуба на функцията,
$ \ Mu $ - миг коефициент,
$ \ Delta W_ $ - промяна на баланса в предишната итерация,
$ \ Rho $ - узаконяване фактор
$ W_ $ - стойности на теглата в предишната итерация,
$ \ Alpha = \ бета = 0,9 $

(M.Zeiler Adadelta: метод адаптивна скорост обучение)

11. Метод Адам

метод Адам превръща градиент, както следва. $$ S_t: = \ а \ cdot s_ + (1- \ алфа) \ cdot \ nabla E_t ^ 2 \; \ S_0: = 0 $$ $$ D_t: = \ р \ cdot D_ + (1- \ бета) \ cdot \ nabla E_t \; \ D_0: = 0 $$ $$ g_t: = \ Frac \ Cdot \ SQRT<\frac> $$ $$ \ Delta W_t: = \ ета \ cdot \ наляво (g_t + \ р \ cdot W_ \ вдясно) + \ ц \ cdot \ Delta W_ $$ където $ \ ета $ - учене фактор скорост
$ \ Nabla E $ - градиент на загуба на функцията,
$ \ Mu $ - миг коефициент,
$ \ Delta W_ $ - промяна на баланса в предишната итерация,
$ \ Rho $ - узаконяване фактор
$ W_ $ - стойности на теглата в предишната итерация,
$ \ Алфа = 0.999, \ \ бета = 0,9 $

(Diederik P. Kingma Джими Lei Ba Адам: метод за оптимизация стохастичен)

12. Изпълнение.

В този раздел, ние представяме на прилагането на методите, описани по-горе. Ние ще ги тества на няколко набора от данни - три набора от точки (в два класа) и набор от снимки с цифрите от 0 до 9 за признаване. Всеки набор точка, преди да започне процедурата по подготовка на случаен принцип разделена на три части: обучение, контрол и изпитване.

12.1 Първият набор.

Освен това, резултатите за различните методи на преподаване.

градиент метод произход. ще използва невронна мрежа с три слоя на обработка: входния неврон слой 2, първото третиране легло 20 неврони на TANH активиране на втората обработка слой 20 неврони с сигмоидна активиране експоненциални, третият слой - 2 неврон (броят на класове) с Softmax активиране. Образование взе 2500 периоди, резултатите са представени по-долу.


Фиг. Story част промени една грешка


Фиг. Story Част 2 грешки промяна


Фиг. Резултати от изпитването

Методът на конюгат градиент. Ние ще използва невронна мрежа с три слоя на обработка: входния неврон слой 2, първото лечение коритото 30 чрез активиране на невроните с експоненциална сигмоидна, второто легло лечение 30 неврони до активиране ReLU, третият слой - 2 неврон (броят на класове) с Softmax активиране. Образование взе 100 епохи, резултатите са представени по-долу.


Фиг. Story част промени една грешка


Фиг. Story Част 2 грешки промяна


Фиг. Резултати от изпитването

метод quickProp. ще използва ще използва невронна мрежа с три слоя на обработка: входния неврон слой 2, първото третиране легло 20 неврони на TANH активиране, втората обработка слой 20 неврони на TANH активиране, трети слой - 2 неврон (броят на класове) с експоненциална активиране сигмоидна. Образование взе 3000 периоди, резултатите са представени по-долу.


Фиг. Story част промени една грешка


Фиг. Story Част 2 грешки промяна


Фиг. Резултати от изпитването

метод rProp. Ние ще използва невронна мрежа с три слоя на обработка: входния неврон слой 2, първото третиране легло 20 неврони на TANH активиране, втората обработка слой 20 неврони на TANH активиране, трети слой - 2 неврон (броят на класове) с експоненциална активиране сигмоидна. Образование взе 350 епохи, резултатите са представени по-долу.


Фиг. Story част промени една грешка


Фиг. Story Част 2 грешки промяна


Фиг. Резултати от изпитването

Подкрепете проекта - споделете линка, благодаря!