Нацрт:Архитектура неуронске мреже

С Википедије, слободне енциклопедије

Основна архитектура неуронских мрежа[уреди | уреди извор]

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

Перцептрон[уреди | уреди извор]

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

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

било какву врсту израчунавања. У излазном чвору израчунава се линеарна функција облика , где представља тежинске коефицијенте. Тежински коефицијенти имају улогу да издвоје корисне информације из података. Знак реалног броја који се добија из датог производа се користи да се предвиди класа којој улазна променљива припада. Следи да се вредност која се предвиђа рачуна на следећи начин:

Функција знака мапира добијену реалну вредност или у +1 или у -1, што је одговарајуће за бинарну класификацију. Капица која се налази на излазној променљивој указује да се ради о вредности која је добије предвиђањем, а не о стварној вредности. Из тога следи да је грешка предвиђања једнака , и може узети једну вредност из скупа . У случајевима када је вредност грешке различита од нуле, потребно је ажурирати вредности тежинских коефицијената неуронске мреже.

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

У највећем броју случајева, постоји још једна променљива унутар модела, која се никада не мења и назива се наклоњеност или bias. У случајевима бинарне класификације где је скуп података јако небалансиран, приступ који је гореспоменут неће бити довољан за предвиђање. Потребно је уврстити додатну променљиву , која представља наклољеност и који успева да отклони непроменљив део предвиђања:

Перцептрон је дизајниран да хеуристички минимизује број погрешних класификација. Минимизација се постиже применом функције губитака.

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

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

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

Перцептрон алгоритам примењује стохастичку методу за ажурирање тежинских коефицијената. То значи да се грешка предвиђања минимизује ажурирањем тежинских коефицијената након тренирања сваког појединачног податка. Претпоставка је да неуронска мрежа насумично бира податке у току тренирања и мења тежинске коефицијенте са циљем да смањи грешку предвиђања за дати податак. Ажурирање тежинских коефицијената се врши само када , а то се дешава само када су направљене грешке у предвиђању. У mini batch стохастичком градијентном спусту, коефицијенти се ажурирају након што се тренира насумично изабрана група података величине :

Перцептрон представља линеаран модел, модел код ког једнакост представља линеарну хиперраван. Вредност је позитивна за вредности које се налазе са једне стране хиперравни, и негативна за вредности које се налазе са друге стране хиперравни. Овај тип модела постиже јако високу тачност када су подаци линеарни сепарабилни. Када подаци нису линеарно сепарабилни, модел постиже јако лоше резултате. Дати пример указује на ограничења која перцептрон има. Из тог разлога је потребно користити комплексније архитектуре неуронских мрежа.

Вишеслојна неуронска мрежа[уреди | уреди извор]

Вишеслојне неуронске мреже садрже више од једног слоја рачунања. Перцептрон садржи улазни и излазни слој, од којих је излазни слој једини слој који извршава одређено рачунање. Улазни слој преноси податке на излазни слој, а сва рачунања су потпуно видљива кориснику. Вишеслојне неуронске мреже садрже рачунске слојеве. Додатни међуслојеви(који се налазе између улаза и излаза) називају се скривени слојеви јер израчунавања која се одвијају у њима нису видљива за корисника. Специфична архитектура вишеслојних неуронских мрежа назива се feed-forward мрежама, јер узастопни слојеви уливају један у други од улаза ка излазу. Подразумевана архитектура мрежа са прослеђивањем података унапред претпоставља да су сви неурони у једном слоју повезани са свим неуронима у следећем слоју. Из тог разлога је архитектура неуронске мреже скоро у потпуности дефинисана, када се дефинише број слојева и број неурона у сваком слоју. Једина ствар коју је накнадно потребно дефинисати јесте функција губитка.

Као и у случају једнослојних мрежа, bias се може користити код неурона који се налазе у скривеним слојевима и као и у у излазним слојевима. Примери вишеслојних мрежа са или без bias-а приказани су на слици (а) и (б), респективно. У оба случаја, неуронска мрежа садржи три слоја. Улазни слој се често не рачуна, приликом пребројавања слојева, јер само преноси податке и не врши никакво израчунавање. Ако неуронска мрежа садржи неурона у сваком од својих слојева, онда векторске репрезентације ових слојева, означене са имају димензионалности . Из тог разлога број неурона у сваком слоју представља димензионалност тог слоја.

Активациона функција[уреди | уреди извор]

У случају перцептрона, избор функција знака као активациона функција мотивисан је чињеницом да се ради о бинарном класификационом проблему. Ако је потребно да се предвиди вероватноћа припадања бинарној класи, као активациона функција се може користити сигмоид, на тај начин ће предвиђена вредност представљати сигурност са којом може да се гарантује да је предвиђање тачно. Што је број ближи јединици, са већом сигурношћу се може гарантовати да је предвиђање тачно. Важност нелинеарних активационих функција постаје видљива када се пређе са посматрања перцептрона на посматрање вишеслојних неуронских мрежа. Неке од најчешће коришћених нелинеарних функција су сигмоид, тангенс хиперболички и исправљена линеарна функција. Оне се могу користити као активационе функције у сваком скривеном слоју. Знак се користи да означи активациону функцију:

Из овога следи да неурон рачуна две једначине унутар себе. Вредност која се добија пре примене активационе функције, назива се пре-активациона вредност, док се вредност која се добије након примене активационе функције назива активациона вредност. Излаз из неурона увек представља активациону вредност. Пре-активациона променљиве се користе у разним анализама, једна од њих је приликом примене алгоритма за промагацију грешке уназад(back propagation algorithm).

Најједноставнија активациона функција је линеарна активациона функција, позната још и као функција идентитета, која не пружа нелинеарност:

Линеарна активациона функција се обично користи у излазном чвору, када је вредност која треба да се добије реалан број.

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

- функција знака

- сигмоид функција

- тангенс хиперболички функција

Функција сигмоид даје вредности из опсега и из тог разлога је погодна у рачуну који се може интерпретирати кроз вероватноћу. Корисна је у креирању функција губитака максималног очекивања(maximum likelihood). Функција тангенс хиперболички има облик сличан сигмоиду, с тиме да је хоризонтално и вертикално скалирана у опсегу . Тангенс хиперболички и сигмоид су повезани на следећи начин:

Пожељније је користити тангенс хиперболички у односу на сигмоид када су вредности на излазу и позитивне и негативне. Због већег градијента(који је условљен развлачењем) лакше су за тренирање од сигмоидне функције. Сигмоид и тангенс хиперболички су дуго година били први избор за унос нелинеарности у неуронску мрежу. У новије време, нове нелинеанре функције су постале популарнији избор за активационе функције:

- Rectified linear unit [ReLU]

- Hard tanh

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

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

Избор и број излазних чворова у великој мери зависи од избора активационе функције, која опет зависи од задатка који је потребно урадити. Ако се ради класификације за k-вредности, потребно је израчунати k вредности. Дати проблем се решава применом функције меког максимума (softmax) као активационе функције. Активациона функција за неки i-ти излаз је једнака:

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

Функција губитака[уреди | уреди извор]

Избор функције губитака је критичан у дефинисању излаза који ће давати најбоље решење за дати проблем. На пример, регресија најмањег квадрат са нумеричким излазима захтева једноставну квадратну функцију губитака која има облик за један тренинг пример, где представља стварну вредност, а вредност добијену предвиђањем. Такође се могу користити друге врсте функције губитка као што је губитак шарке(hinge loss), код које је , а узима реалне вредност:

Губитак шарке се може користити за имплементацију методе учења, која се назива метода потпорних вектора.

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

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

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

Категорички излази: У овом случају, ако су вероватноће класа (користећи функцију меког максимума као активациону функцију), а -та класа је класа са исправним излазом, онда је функција губитка за појединачну инстанцу дефинисана на следећи начин:

Мултиномијална логистичка регресија имплементира ову функцију губитка и назива се cross entropy функција губитака. Бинарна логистичка регресија је идентична мултиномијалној логистичкој регресији, када је вредност постављена једнака .

Изводи активационих функција[уреди | уреди извор]

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

Линеарне и знак активације: Извод линеарне активације функције је једнак на свим местима. Извод је једнак за све вредности осим за , где је дисконтинуиран и недиференциран. Због нултог градијента и недиференцијативности ове активационе функције, она се ретко користи као функција губитака. Изводи линеарне и знак активационе функције приказани су на слици (а) и (б), респективно.

Активација сигмоида: Извод сигмоидне активационе функције је крајње једноставан, када се изражава у облику излаза из сигмоида, а не улаза. Нека је излаз сигмоидне функције са аргументом :

Затим се извод може написати на следећи начин:

Који се може написати и на следећи начин:

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

Активација тангенс хиперболичке функције: Као и у случају сигмоидне активације, активација тангенс хиперболичке функције се често користи као функција од излаза , а не од улаза :

Први извод је једнак:

Који се може написати и на следећи начин:

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

ReLU активација: ReLU узима вредност парцијалног извода једнаку за ненегативне вредности свог аргумента, и , у супротном. Извод ReLU активације је приказан на слици (е) .