Бекпропагација

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу

Бекпропагација је метода која се користи у вештачким неуронским мрежама за израчунавање доприноса грешке сваког неурона након обраде серије података. То је посебан случај старије и општије технике која се назива аутоматско диференцирање. У контексту учења, бекпропагација се обично користи од стране алгоритма за оптимизацију градијента како би се прилагодила тежина неурона израчунавањем градијента функције губитка. Ова техника се понекад назива и повратно ширење грешака, јер се грешка израчунава на излазу и преноси натраг кроз мрежне слојеве.

Алгоритам за проширење уназад је поново откривен и еквивалент је аутоматском диференцирању у обрнутом режиму акумулације. Бекпропагација захтева познати излаз за сваку улазну вредност па се стога сматра да је то метод учења надгледањем (мада се такође користи у неким ненадгледаним мрежама као што су аутоенкодери). Бекпропагација је такође генерализација делта правила за вишеслојне мреже, омогућене коришћењем правила ланца за итеративно израчунавање нагиба за сваки слој. Она је уско повезана са Гаус-Њутн алгоритмом, и део је континуираног истраживања у нервној бекпропагацији. Бекпропагација се може користити у било ком оптимизатору заснованом на градијенту, као што је L-BFGS или скраћени Њутн. Такође се често користи за обучавање дубоких неуронских мрежа, појма који се користи за опис неуронских мрежа са више од једног скривеног слоја.[1]

Мотивација[уреди]

Циљ сваког алгоритма учења надгледања је проналажење функције која најбоље мапира скуп улаза на њихов тачан излаз. Пример би био класификациони задатак, где је улаз слика животиње, а тачан резултат је име животиње.

Мотивација за бекпропагацију је обучавање вишеслојне неуронске мреже тако да може научити одговарајућа представљања како би омогућила да сазна неко произвољно мапирање уноса за излаз.

Губитак функције[уреди]

Понекад се назива функција трошка или функција грешке (не сме се мешати са Гаусовом функцијом грешке), функција губитка је функција која мапира вредности једне или више променљивих као реалан број који интуитивно представља неки "трошак" повезан са тим вредностима. Функција губитка рачуна разлику између излаза мреже и очекиваног излаза, након што се случај рашири кроз мрежу.

Претпоставке[уреди]

Две претпоставке се морају направити о облику функције грешке.[2] Прва је да се може написати као просек преко функција грешке за индивидуалних примера обуке, . Разлог за ову претпоставку је да алгоритам бекпропагације израчунава градијент функције грешке за један пример тренинга, који треба генерализовати са укупном функцијом грешке. Друга претпоставка је да се може написати као функција излаза из неуронске мреже.

Нека су вектори у .

Посматрајмо функцију грешке која рачуна метрику између излаза.

Стандардан избор је:

квадрат Еуклидске метрике између вектора и вектора  :

Коефицијент се користи како би се скратио са 2 након диференцирања Функција грешке на основу примера се може записати као просечна вредност:
и као парцијални извод у односу на излаз функције


Алгоритам оптимизације понавља циклус од две фазе, ширење и ажурирање тежине. Када се улазни вектор појави на мрежи, он се прослеђује напред кроз мрежу, слој по слој, све док не достигне излазни слој. Излаз мреже се затим упоређује са жељеним излазом, користећи функцију губитка. Добијена вредност грешке се израчунава за сваки од неурона у излазном слоју. Вредности грешке се затим прослеђују из излаза назад кроз мрежу, све док сваки неурон не добије придружену вредност грешке која одражава њен допринос изворном излазу. Бекпропагација користи ове вредности грешке за израчунавање градијента функције губитка. У другој фази, овај градијент се напаја методом оптимизације, која заузврат то користи за ажурирање тежине, у покушају да минимизира функцију губитка.

Нека је неуронска мрежа са конекција, улаза и излаза.

означавају векторе у , векторе у и векторе у .

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

Неуронска мрежа одговара функцији која за дати вектор тежина мапира улаз и излаз.

Оптимизација као улазе узима секвенцу примера и као резултат даје секвенцу тежина почевши од неке тежине која се обично бира као произвољна.

Ове тежине се рачунају на следећи начин: Прво се рачуна користећи само за . Излаз алгоритма је који нам даје нову функцију . Рачуница је иста у сваком кораку, овде је описан случај за .

Рачунање из се завршава примењујући градијент нагиба на функцију како би се нашао локални минимум, почевши од .

Интуиција[уреди]

Да би се схватило математичко извођење алгоритма бекпропагације, пожељно је да се прво развију неке интуиције о односу између стварног излаза неурона и тачног излаза за одређени пример. Размотримо једноставну неуронску мрежу са две улазне јединице, једном излазном јединицом и без скривених јединица. Сваки неурон користи линеарни излаз, што је пондерисана сума његовог уноса.

У почетку, пре тренинга, тежине ће бити подешене насумично. Затим неурон учи на примерима, који се у овом случају састоје од скупа тројки где су и улази у мрежу и t је исправан излаз (излаз који мрежа треба на крају да произведе за дате улазе). Иницијална мрежа, за дате и ће израчунати излаз у који се вероватно разликује од t (дате случајне тежине) . Уобичајена метода за мерење неслагања између очекиваног излаза t и стварног излаза y је квадратна мера грешке:

где је E неслагање или грешка.

Као пример, размотрите мрежу у једном случају: , тако да улаз и улаз буду 1 и 1 и тачан излаз, t буде 0. Сада, ако је стварни излаз y исцртан на хоризонталној оси заједно са грешком E на вертикалној оси, резултат је парабола. Минимум параболе одговара излазу y који минимизује грешку E. На једном примеру, минимум такође дотиче хоризонталну осу, што значи да ће грешка бити нула и да мрежа може произвести излаз y који тачно одговара очекиваном излазу t. Самим тим, проблем мапирања улаза на излазе може се свести на проблем оптимизације проналаска функције која ће дати минималну грешку.

Међутим, излаз неурона зависи од пондерисане суме свих инпута: где су тежине на везу од улазних јединица до излазне јединице. Стога, грешка такође зависи од долазних тежина неурону, што је на крају оно што треба променити у мрежи како би се омогућило учење. Ако је свака тежина исцртана на засебној хоризонталној оси и грешка на вертикалној оси, резултат је параболичка посуда. За неурон са k тежина, исти график би захтевао елиптички параболоид са димензијом.


Инерција[уреди]

Користећи променљиви инерцијски израз (Моментум) , градијент и последња промена се могу пондерисати тако да подешавање тежине додатно зависи од претходне промене. Ако је Моментум једнак 0, промена зависи искључиво од градијента, док вредност 1 зависи само од последње промене.

Слично као лопта која се спушта низ планину, чија тренутна брзина се одређује не само тренутним нагибом планине, већ и сопственом инерцијом, може се додати инерција:

где је

промена у тежини у вези између неурона и неурона у времену
стопа учења
грешка сигнала неурона ј
излаз неурона што је и улаз за тренутни неурон (неурон )
утицај инерције Ово одговара промени тежине у претходној тачки времена

Инерција зависи од тренутне промене тежине из тренутног градијента функције грешке (нагиб планине, прва сума), као и од промене тежине у претходној тачки времена (инерција, друга сума).

Уз инерцију, избегавају се такође и проблеми заглављивања (у стрмим равницама и равним платоима). Будући да, на пример, градијент функције грешке постаје врло мали у равним платоима, инерција би одмах довела до "успоравања" градијента. Ово успоравање је одложено додавањем инерције тако да се равни плато може прећи што брже.

Начини учења[уреди]

Доступна су два начина учења: стохастични и серијски. У стохастичком учењу, сваки улаз ствара прилагођавање тежине. У серијском учењу тежине се прилагођавају на основу серије улаза, акумулирајући грешке над том серијом. Стохастично учење уводи "буку" у процес градације, користећи локални градијент израчунат из једне тачке податка; ово смањује шансе да се мрежа заглави у локалним минимумима. Међутим, серијско учење обично даје брже и стабилније резултате, пошто се свака промена врши у правцу просечне грешке серије. Општи избор компромиса је коришћење "мини-серија", што значи мале серије и са узорцима у свакој серији изабраним стохастички из целог скупа података.


Ограничења[уреди]

Не постоји гаранција да ће бекпропагација наћи глобални минимум функције грешке, већ само локални минимум. За овај проблем који настаје због неконвексности функције грешке у неуронским мрежама, се дуго сматрало да представља велики недостатак, али је Јан ЛеЦун показао да у многим практичним проблемима ово није озбиљан недостатак.[3]

Историја[уреди]

Према различитим изворима[4][5][6][7] , основе непрекидне бекпропагације су извели у контексту теорије контроле Хенри Џ. Кели 1960. године[8] и Артур Е. Брајсон 1961.[9] Користили су принципе динамичког програмирања. Године 1962. Стјуарт Дрејфус[10] је објавио једноставнији алат заснован само на правилу ланца. Брајсон и Хо су то описали као вишестепену динамичку системску оптимизацију 1969.[11][12]

Линаинма је 1970. објавио општу методу за аутоматско диференцирање (АД) дискретних повезаних мрежа угњеждених диференцијабилних функција.[13] Ово одговара бекпропагацији, која је ефикасна и за ретке мреже.

Године 1973. Дрејфус је користио бекпропагацију како би прилагодио параметре контролора пропорционално грешки градијената[14]. Године 1974. Вербос је поменуо могућност примене овог принципа на вештачке неуронске мреже[15], а 1982. године је Линаинма применио АД метод на неуралне мреже на начин који се данас користи.[7][16]

Године 1986. Румелхарт, Хинтон и Вилијамс су експериментално показали да ова метода може генерисати корисна интерна представљања долазних података у скривеним слојевима неуронских мрежа[17][18]. Године 1993, Ван је био први који је победио на такмичењу за признавање међународних узорака кроз бекпропагацију.[19]

Током 2000-их година за њу је опало интересовање, али се вратило у 2010-им, јер је коришћена од стране јефтиних, моћних рачунарских система заснованих на ГПУ-у.


Погледајте такође[уреди]

Референце[уреди]

  1. ^ „Deep Networks: Overview - Ufldl”. ufldl.stanford.edu (на језику: енглески). Приступљено 04. 8. 2017. 
  2. ^ A., Nielsen, Michael (01. 1. 2015). „Neural Networks and Deep Learning”. 
  3. ^ LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey (2015). „Deep learning”. Nature. 521: 436—444. PMID 26017442. doi:10.1038/nature14539. 
  4. ^ Stuart Dreyfus (1990). Artificial Neural Networks, Back Propagation and the Kelley-Bryson Gradient Procedure. J. Guidance, Control and Dynamics, 1990.
  5. ^ Mizutani, Eiji; Dreyfus, Stuart; Nishio, Kenichi (July). „On derivation of MLP backpropagation from the Kelley-Bryson optimal-control gradient formula and its application.” (PDF). Proceedings of the IEEE International Joint Conference on Neural Networks.  Проверите вредност парамет(а)ра за датум: |date=, |year= / |date= mismatch (помоћ)
  6. ^ Schmidhuber, Jürgen (2015). „Deep learning in neural networks: An overview”. Neural Networks. 61: 85—117. doi:10.1016/j.neunet.2014.09.003. 
  7. 7,0 7,1 Schmidhuber, Jürgen (2015). „Deep Learning”. Scholarpedia. 10 (11): 32832. doi:10.4249/scholarpedia.32832. 
  8. ^ Kelley, Henry J. (1960). „Gradient theory of optimal flight paths”. Ars Journal. 30 (10): 947—954. doi:10.2514/8.5282. 
  9. ^ Arthur E. Bryson (1961, April). A gradient method for optimizing multi-stage allocation processes. In Proceedings of the Harvard Univ. Symposium on digital computers and their applications.
  10. ^ Dreyfus, Stuart. „The numerical solution of variational problems”. Journal of Mathematical Analysis and Applications. 5 (1): 30—45. doi:10.1016/0022-247x(62)90004-5. 
  11. ^ Russell; Norvig, Peter. Artificial Intelligence A Modern Approach. стр. 578. »The most popular method for learning in multilayer networks is called Back-propagation.« 
  12. ^ Bryson, A. E.; Yu-Chi, Ho (01. 1. 1975). Applied Optimal Control: Optimization, Estimation and Control. CRC Press. ISBN 978-0-89116-228-5. 
  13. ^ Linnainmaa, Seppo (1976). „Taylor expansion of the accumulated rounding error”. BIT Numerical Mathematics. 16 (2): 146—160. doi:10.1007/bf01931367. 
  14. ^ Dreyfus, Stuart (1973). „The computational solution of optimal control problems with time lag”. IEEE Transactions on Automatic Control. 18 (4): 383—385. doi:10.1109/tac.1973.1100330. 
  15. ^ Werbos, Paul John (1975). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. Harvard University. 
  16. ^ Werbos, Paul (1982). „Applications of advances in nonlinear sensitivity analysis”. System modeling and optimization (PDF). Springer. стр. 762—770. 
  17. ^ Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (08. 10. 1986). „Learning representations by back-propagating errors”. Nature. 323 (6088): 533—536. doi:10.1038/323533a0. 
  18. ^ Alpaydin, Ethem (2010). 4j9GAQAAIAAJ Introduction to Machine Learning Проверите вредност параметра |url= (помоћ). MIT Press. ISBN 978-0-262-01243-0. 
  19. ^ Wan, Eric A. (1993). „Time series prediction by using a connectionist network with internal delay lines” (PDF). SANTA FE INSTITUTE STUDIES IN THE SCIENCES OF COMPLEXITY-PROCEEDINGS. стр. 195—195.