Бекпропагација
From Wikipedia, the free encyclopedia
Remove ads
Бекпропагација је метода која се користи у вештачким неуронским мрежама за израчунавање доприноса грешке сваког неурона након обраде серије података. То је посебан случај старије и општије технике која се назива аутоматско диференцирање. У контексту учења, бекпропагација се обично користи од стране алгоритма за оптимизацију градијента како би се прилагодила тежина неурона израчунавањем градијента функције губитка. Ова техника се понекад назива и повратно ширење грешака, јер се грешка израчунава на излазу и преноси натраг кроз мрежне слојеве.
Алгоритам за проширење уназад је поново откривен и еквивалент је аутоматском диференцирању у обрнутом режиму акумулације. Бекпропагација захтева познати излаз за сваку улазну вредност па се стога сматра да је то метод учења надгледањем (мада се такође користи у неким ненадгледаним мрежама као што су аутоенкодери). Бекпропагација је такође генерализација делта правила за вишеслојне мреже, омогућене коришћењем правила ланца за итеративно израчунавање нагиба за сваки слој. Она је уско повезана са Гаус-Њутн алгоритмом, и део је континуираног истраживања у нервној бекпропагацији. Бекпропагација се може користити у било ком оптимизатору заснованом на градијенту, као што је L-BFGS или скраћени Њутн. Такође се често користи за обучавање дубоких неуронских мрежа, појма који се користи за опис неуронских мрежа са више од једног скривеног слоја.[1]
Remove ads
Мотивација
Циљ сваког алгоритма учења надгледања је проналажење функције која најбоље мапира скуп улаза на њихов тачан излаз. Пример би био класификациони задатак, где је улаз слика животиње, а тачан резултат је име животиње.
Мотивација за бекпропагацију је обучавање вишеслојне неуронске мреже тако да може научити одговарајућа представљања како би омогућила да сазна неко произвољно мапирање уноса за излаз.
Remove ads
Губитак функције
Понекад се назива функција трошка или функција грешке (не сме се мешати са Гаусовом функцијом грешке), функција губитка је функција која мапира вредности једне или више променљивих као реалан број који интуитивно представља неки "трошак" повезан са тим вредностима. Функција губитка рачуна разлику између излаза мреже и очекиваног излаза, након што се случај рашири кроз мрежу.
Претпоставке
Две претпоставке се морају направити о облику функције грешке.[2] Прва је да се може написати као просек преко функција грешке за индивидуалних примера обуке, . Разлог за ову претпоставку је да алгоритам бекпропагације израчунава градијент функције грешке за један пример тренинга, који треба генерализовати са укупном функцијом грешке. Друга претпоставка је да се може написати као функција излаза из неуронске мреже.
Нека су вектори у .
Посматрајмо функцију грешке која рачуна метрику између излаза.
Стандардан избор је:
квадрат Еуклидске метрике између вектора и вектора : Коефицијент се користи како би се скратио са 2 након диференцирања Функција грешке на основу примера се може записати као просечна вредност: и као парцијални извод у односу на излаз функције
Алгоритам оптимизације понавља циклус од две фазе, ширење и ажурирање тежине. Када се улазни вектор појави на мрежи, он се прослеђује напред кроз мрежу, слој по слој, све док не достигне излазни слој. Излаз мреже се затим упоређује са жељеним излазом, користећи функцију губитка. Добијена вредност грешке се израчунава за сваки од неурона у излазном слоју. Вредности грешке се затим прослеђују из излаза назад кроз мрежу, све док сваки неурон не добије придружену вредност грешке која одражава њен допринос изворном излазу. Бекпропагација користи ове вредности грешке за израчунавање градијента функције губитка. У другој фази, овај градијент се напаја методом оптимизације, која заузврат то користи за ажурирање тежине, у покушају да минимизира функцију губитка.
Нека је неуронска мрежа са конекција, улаза и излаза.
означавају векторе у , векторе у и векторе у .
Они се редом називају улази, излази и тежине.
Неуронска мрежа одговара функцији која за дати вектор тежина мапира улаз и излаз.
Оптимизација као улазе узима секвенцу примера и као резултат даје секвенцу тежина почевши од неке тежине која се обично бира као произвољна.
Ове тежине се рачунају на следећи начин: Прво се рачуна користећи само за . Излаз алгоритма је који нам даје нову функцију . Рачуница је иста у сваком кораку, овде је описан случај за .
Рачунање из се завршава примењујући градијент нагиба на функцију како би се нашао локални минимум, почевши од .
Remove ads
Интуиција
Да би се схватило математичко извођење алгоритма бекпропагације, пожељно је да се прво развију неке интуиције о односу између стварног излаза неурона и тачног излаза за одређени пример. Размотримо једноставну неуронску мрежу са две улазне јединице, једном излазном јединицом и без скривених јединица. Сваки неурон користи линеарни излаз, што је пондерисана сума његовог уноса.
У почетку, пре тренинга, тежине ће бити подешене насумично. Затим неурон учи на примерима, који се у овом случају састоје од скупа тројки где су и улази у мрежу и t је исправан излаз (излаз који мрежа треба на крају да произведе за дате улазе). Иницијална мрежа, за дате и ће израчунати излаз у који се вероватно разликује од t (дате случајне тежине) . Уобичајена метода за мерење неслагања између очекиваног излаза t и стварног излаза y је квадратна мера грешке:
где је E неслагање или грешка.
Као пример, размотрите мрежу у једном случају: , тако да улаз и улаз буду 1 и 1 и тачан излаз, t буде 0. Сада, ако је стварни излаз y исцртан на хоризонталној оси заједно са грешком E на вертикалној оси, резултат је парабола. Минимум параболе одговара излазу y који минимизује грешку E. На једном примеру, минимум такође дотиче хоризонталну осу, што значи да ће грешка бити нула и да мрежа може произвести излаз y који тачно одговара очекиваном излазу t. Самим тим, проблем мапирања улаза на излазе може се свести на проблем оптимизације проналаска функције која ће дати минималну грешку.
Међутим, излаз неурона зависи од пондерисане суме свих инпута: где су тежине на везу од улазних јединица до излазне јединице. Стога, грешка такође зависи од долазних тежина неурону, што је на крају оно што треба променити у мрежи како би се омогућило учење. Ако је свака тежина исцртана на засебној хоризонталној оси и грешка на вертикалној оси, резултат је параболичка посуда. За неурон са k тежина, исти график би захтевао елиптички параболоид са димензијом.
Remove ads
Инерција
Користећи променљиви инерцијски израз (Моментум) , градијент и последња промена се могу пондерисати тако да подешавање тежине додатно зависи од претходне промене. Ако је Моментум једнак 0, промена зависи искључиво од градијента, док вредност 1 зависи само од последње промене.
Слично као лопта која се спушта низ планину, чија тренутна брзина се одређује не само тренутним нагибом планине, већ и сопственом инерцијом, може се додати инерција: где је
- промена у тежини у вези између неурона и неурона у времену
- стопа учења
- грешка сигнала неурона ј
- излаз неурона што је и улаз за тренутни неурон (неурон )
- утицај инерције Ово одговара промени тежине у претходној тачки времена
Инерција зависи од тренутне промене тежине из тренутног градијента функције грешке (нагиб планине, прва сума), као и од промене тежине у претходној тачки времена (инерција, друга сума).
Уз инерцију, избегавају се такође и проблеми заглављивања (у стрмим равницама и равним платоима). Будући да, на пример, градијент функције грешке постаје врло мали у равним платоима, инерција би одмах довела до "успоравања" градијента. Ово успоравање је одложено додавањем инерције тако да се равни плато може прећи што брже.
Remove ads
Начини учења
Доступна су два начина учења: стохастични и серијски. У стохастичком учењу, сваки улаз ствара прилагођавање тежине. У серијском учењу тежине се прилагођавају на основу серије улаза, акумулирајући грешке над том серијом. Стохастично учење уводи "буку" у процес градације, користећи локални градијент израчунат из једне тачке податка; ово смањује шансе да се мрежа заглави у локалним минимумима. Међутим, серијско учење обично даје брже и стабилније резултате, пошто се свака промена врши у правцу просечне грешке серије. Општи избор компромиса је коришћење "мини-серија", што значи мале серије и са узорцима у свакој серији изабраним стохастички из целог скупа података.
Remove ads
Ограничења
Не постоји гаранција да ће бекпропагација наћи глобални минимум функције грешке, већ само локални минимум. За овај проблем који настаје због неконвексности функције грешке у неуронским мрежама, се дуго сматрало да представља велики недостатак, али је Јан ЛеЦун показао да у многим практичним проблемима ово није озбиљан недостатак.[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-им, јер је коришћена од стране јефтиних, моћних рачунарских система заснованих на ГПУ-у.
Remove ads
Референце
Литература
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads