Дубоке неуронске мреже: шта су и како раде
Дубоке неуронске мреже су концепт који чини главну технолошку архитектуру која се користи у моделима дубоког учења. Ове структуре се не могу разумети без разумевања опште идеје вештачких неуронских мрежа, фундаменталних за вештачку интелигенцију.
Неуронске мреже се користе за хиљаду ствари: препознавање регистарских таблица, песама, лица, гласова, па чак и воћа у нашој кухињи. Они су посебно корисна технологија и, упркос чињеници да су тек недавно постали практични, они ће бити будућност човечанства.
Следећи Видећемо у дубини идеју вештачких неуронских мрежа и дубоко, разумевање како функционишу, како су обучени и како се дешавају интеракције између различитих неурона који их чине.
- Повезани чланак: „Шта је когнитивна наука? Његове основне идеје и фазе развоја"
Шта су дубоке неуронске мреже и шта их карактерише?
Дубоке неуронске мреже су једна од најважнијих технолошких архитектура која се користи у дубоком учењу или дубоком учењу. Ове посебне вештачке мреже су имале вртоглав раст последњих година јер представљају фундаментални аспект када је у питању препознавање свих врста образаца. Вештачка интелигенција постоји захваљујући раду ових конкретних мрежа које, у У суштини, они постају реплика како функционише наш мозак, иако у технолошком и матх.
Пре него што идемо даље у то шта су дубоке неуронске мреже, прво морамо да разумемо како вештачке неуронске мреже уопште функционишу и чему служе. Лнеуронске мреже су грана „машинског учења“ које су имале огроман утицај последњих година, помажући програмерима и компјутерским научницима да направе ствари као што су цхат ботови који, када разговарамо са њима, чине да мислимо да разговарамо са правим људским бићима.
Вештачке неуронске мреже су такође коришћене са самовозећим аутомобилима, мобилне апликације које препознају наше лице и претварају га у оно што желимо и многе друге функције. Његова примењивост је веома широка, служи као основа модерне вештачке интелигенције и има бесконачне корисне употребе за нашу свакодневицу.
вештачке неуронске мреже
Замислимо да смо у нашој кухињи и одлучимо да потражимо поморанџу, врло једноставан задатак.. Знамо да веома лако идентификујемо поморанџу, а знамо и како да је разликујемо од другог воћа које налазимо у кухињи, као што су банане, јабуке и крушке. Као што? Зато што смо у нашем мозгу веома асимилирали која су типична својства поморанџе: њена његову величину, облик, боју коју има, како мирише... Све су то параметри које користимо да пронађемо наранџаста.
То је једноставан задатак за људе, али... Може ли то и рачунар? Одговор је да. У принципу, било би довољно дефинисати те исте параметре и доделити вредност чвору или нечему што бисмо могли назвати „вештачки неурон”. Рекли бисмо том неурону какве су поморанџе, указујући на њихову величину, тежину, облик, боју или било који други параметар који приписујемо овом воћу. Имајући ове информације, очекује се да ће неурон знати како да идентификује наранџу када јој се представи.
Ако смо добро одабрали параметре, биће вам лако да направите разлику између поморанџе и ствари које нису поморанџе једноставно узимајући у обзир те карактеристике. Када се прикаже слика било ког воћа, тај неурон ће тражити карактеристике повезан са наранџастом и одлучи да ли да је уврсти у категорију „наранџаста“ или у категорију „остало“. воће“. У статистичком смислу, било би пронаћи регион у графу параметара који одговара ономе што постоји тражећи регион који би обухватио све комаде воћа који деле исту величину, облик, боју, тежину и арому као и поморанџе.
У почетку све ово звучи врло лако за кодирање, и у ствари јесте. Веома је добро разликовати наранџу од банане или јабуке, јер имају различите боје и облике. Међутим, шта ако вам поклонимо грејпфрут? и веома велика мандарина? То су воће које се савршено може помешати са поморанџом. Да ли ће вештачки неурон моћи сам да разликује наранџе и грејпфрут? Одговор је не, а у ствари се вероватно мисли да су исти.
Проблем са коришћењем само једног слоја вештачких неурона, или што је исто, када се прво користе једноставни неурони, је у томе што генеришете веома непрецизне границе одлучивања када вам се представи нешто што има много заједничких карактеристика са оним што бисте требали да препознате, али у стварности није. Ако представимо нешто што личи на поморанџу, као што је грејп, чак и ако није то воће, то ће га идентификовати као такво.
Ове границе одлучивања, ако су представљене у облику графикона, увек ће бити линеарне. Коришћење једног вештачког неурона, односно једног чвора који има интегрисане параметре конкретне, али не могу научити даље од њих, добиће се веома блиске границе одлучивања. дифузно. Његово главно ограничење је то што користи две статистичке методе, посебно вишекласну регресију и логистичка регресија, што значи да у недоумици укључује нешто што није оно што смо очекивали да буде. ће идентификовати.
Ако бисмо све воће поделили на „наранџе“ и „не наранџе“, користећи само један неурон, јасно је да банане, крушке, јабуке, лубенице и било које воће које не одговара величином, бојом, обликом, аромом и тако даље са поморанџама ставио бих их у категорију "не". поморанџе”. Међутим, грејпфрут и мандарине би их сврстали у категорију "наранџи", лоше обављајући посао за који су дизајнирани.
А када говоримо о наранџама и грејпфрутима, могли бисмо да говоримо о псима и вуковима, кокошима и кокошкама, књигама и свескама... Ове ситуације су случајеви у којима једноставна серија "ако..." ("ако...") не би била довољна да се јасно разликује једно од другог. друго. Потребан је сложенији, нелинеарни систем, који је прецизнији када је у питању разликовање различитих елемената. Нешто што узима у обзир да између сличности могу постојати разлике. Овде долазе неуронске мреже.
Више слојева, сличније људском мозгу
Вештачке неуронске мреже, као што им име сугерише, су рачунарски вештачки модели инспирисани у неуронским мрежама људског мозга, мрежама које у ствари опонашају функционисање овог органа биолошким. Овај систем је инспирисан неуронским функционисањем и његова главна примена је препознавање обрасци свих врста: идентификација лица, препознавање гласа, отисак прста, рукопис, Регистарске таблице… Препознавање образаца ради за скоро све..
Како постоје различити неурони, параметри који се примењују су различити и добија се већи степен прецизности. Ове неуронске мреже су системи који нам омогућавају да одвојимо ставке у категорије када разлика може бити суптилна, раздвајајући их на нелинеаран начин, нешто што би иначе било немогуће урадити манир.
Са једним чвором, са једним неуроном, оно што се ради при руковању информацијама је вишекласна регресија. Додавањем више неурона, пошто сваки од њих има сопствену функцију нелинеарне активације која, преведено на једноставнији језик, чини да имају границе одлучивања које су прецизније, графички представљен у закривљеном облику и узимајући у обзир више карактеристика када се прави разлика између „наранџе“ и „не поморанџе“, да наставимо са тим примером.
Закривљеност ових граница одлучивања ће директно зависити од тога колико слојева неурона додамо нашој неуронској мрежи. Ти слојеви неурона, који чине систем сложенијим и прецизнијим, у ствари су дубоке неуронске мреже. У принципу, што више слојева дубоких неуронских мрежа имамо, то ће програм бити тачнији и сличнији у поређењу са људским мозгом.
Укратко, неуронске мреже нису ништа друго до интелигентни систем који омогућава доношење прецизнијих одлука, на веома сличан начин као што то радимо ми људи. Људска бића се заснивају на искуству, учећи из нашег окружења. На пример, враћајући се на случај наранџе и грејпфрута, ако га никада нисмо видели, савршено ћемо га помешати са поморанџом. Када се упознамо са њом, биће то онда када будемо већ знали како да је идентификујемо и разликујемо од поморанџе.
Прво што се ради је да се неуронским мрежама дају неки параметри да знају како је то што желимо да научи да идентификује. Затим долази фаза учења или обуке, тако да је све тачнија и прогресивно има мању маргину грешке. Ово је време када бисмо нашу неуронску мрежу представили поморанџом и другим плодовима. У фази обуке биће им дати случајеви у којима су наранџасти и случајеви у којима нису наранџасти, тражећи да виде да ли су добили тачан одговор и рећи им тачан одговор.
Трудићемо се да учинимо бројне покушаје и што ближе реалности.. На овај начин помажемо неуронској мрежи да ради када стигну стварни случајеви и она зна како да правилно дискриминише, на исти начин на који би људско биће радило у стварном животу. Ако је обука била адекватна, изабравши добре параметре препознавања и ако се добро класификују, неуронска мрежа ће имати веома високу стопу успеха у препознавању образаца. висока.
- Можда ће вас занимати: "Како неурони раде?"
Шта су и како тачно функционишу?
Сада када смо видели општу идеју о томе шта су неуронске мреже и потпуније ћемо разумети шта су оне и како ови емулатори неурона људског мозга раде и где се у свему томе боје дубоке неуронске мреже процес.
Замислимо да имамо следећу неуронску мрежу: имамо три слоја вештачких неурона. Рецимо да први слој има 4 неурона или чвора, други 3, а последњи само 2. Ово је све пример вештачке неуронске мреже, прилично лако разумљиве.
Први слој је онај који прима податке., односно информације које могу доћи у виду звука, слике, арома, електричних импулса... Ово прво слој је улазни слој и задужен је за пријем свих података како би их касније могао послати на следеће слојева. Током обуке наше неуронске мреже, ово ће бити слој са којим ћемо прво радити, дајући га податке које ћемо користити да видимо колико сте добри у предвиђању или идентификацији информација које су вам дате даје.
Други слој нашег хипотетичког модела је скривени слој, који се налази тачно у средини првог и последњег слоја., као да је наша неуронска мрежа сендвич. У овом примеру имамо само један скривени слој, али их може бити колико год желимо. Можемо говорити о 50, 100, 1000 или чак 50 000 слојева. У суштини, ови скривени слојеви су део неуронске мреже који бисмо назвали дубоком неуронском мрежом. Што је дубина већа, то је комплекснија неуронска мрежа.
Коначно имамо трећи слој нашег примера који је излазни слој. Овај слој, као што му име говори, је задужена да прима информације из претходних слојева, доноси одлуку и даје нам одговор или резултат.
У неуронској мрежи сваки вештачки неурон је повезан са свим следећим. У нашем примеру, где смо коментарисали да имамо три слоја од 4, 3 и 2 неурона, 4 улазног слоја су повезан са 3 скривеног слоја, а 3 скривеног слоја са 2 излаза, дајући нам укупно 18 везе.
Сви ови неурони су повезани са онима из следећег слоја, шаљући информације у смеру улаз->скривено->излаз.. Када би било више скривених слојева, говорили бисмо о већем броју конекција, шаљући информације од скривеног слоја до скривеног слоја док не стигну до излазног слоја. Излазни слој, када прими информацију, оно што ће урадити је да нам да резултат на основу информација које је примио и начина на који их обрађује.
Када тренирамо наш алгоритам, односно нашу неуронску мрежу, овај процес који смо управо објаснили ће се радити много пута. Испоручићемо неке податке мрежи, видећемо шта нам даје резултат и анализираћемо их и упоредити са оним што смо очекивали да ће нам резултат дати. Ако постоји велика разлика између онога што се очекује и онога што се добија, то значи да постоји велика граница грешке и да је, стога, потребно направити неколико модификација.
Како функционишу вештачки неурони?
Сада ћемо разумети индивидуално функционисање неурона који раде унутар неуронске мреже. Неурон прима улазну информацију од претходног неурона. Рецимо да овај неурон прима три улаза информација, од којих сваки долази од три неурона претходног слоја. Заузврат, овај неурон генерише излазе, у овом случају рецимо да је повезан само са неуроном следећег слоја.
Свака веза коју овај неурон има са три неурона претходног слоја доноси вредност "к", што је вредност коју нам претходни неурон шаље.; а такође има вредност "в", што је тежина ове везе. Тежина је вредност која нам помаже да једној вези дамо већи значај у односу на друге. Укратко, свака веза са претходним неуронима има „к“ и „в“ вредност, које се множе (к·в).
Такође ћемо имати вредност која се зове "пристрасност" или пристрасност представљена са "б" што је број грешке која подстиче одређене неуроне да се активирају лакше од других. Поред тога, унутар неурона имамо активациону функцију, што чини њен степен класификације различитих елемената (стр. наранџе) није линеаран. Сваки неурон сам по себи има различите параметре које треба узети у обзир, што чини да се цео систем, ово је неуронска мрежа, класификује на нелинеаран начин.
Како неурон зна да ли мора да се активира или не? односно када знате да ли морате да пошаљете информације следећем слоју? Па, ова одлука је регулисана следећом једначином:
Ова формула значи да се мора направити збир свих тежина "в" помножених са свим вредностима "к" које неурон прима од претходног слоја. Овоме се додаје пристрасност "б".
Резултат ове једначине се шаље активационој функцији, што је једноставно функција која нам говори да, ако је резултат ове једначине већи од а одређени број, неурон ће послати сигнал следећем слоју и, ако је мањи, онда неће да га пошаље Дакле, овако вештачки неурон одлучује да ли ће или не послати информације неуронима на следећи начин: слој помоћу излаза који ћемо назвати "и", излаза који је, заузврат, улаз "к" следећег неурон.
А како тренирати целу мрежу?
Прва ствар која се ради је испорука података у први слој, као што смо раније коментарисали. Овај слој ће послати информације следећим слојевима, а то су скривени слојеви или дубока неуронска мрежа. Неурони ових слојева ће се активирати или не у зависности од примљене информације. Коначно, излазни слој ће нам дати резултат, који ћемо упоредити са вредношћу коју смо чекали да видимо да ли је неуронска мрежа научила шта да ради исправно.
Ако није добро научио онда ћемо извршити другу интеракцију, тј. поново ћемо вам представити информације и видети како се понаша неуронска мрежа. У зависности од добијених резултата, биће прилагођене вредности "б", односно пристрасност сваког неурона, а "в", ово је тежина сваке везе са сваким неуроном да би се смањила грешка. Да бисмо сазнали колика је та грешка, користићемо другу једначину, која је следећа:
Ова једначина је средња квадратна грешка. Урадићемо збир и (к) што је вредност коју нам је наша мрежа дала у интеракцији минус „а“, што је вредност коју смо очекивали да ће нам дати, подигнут на квадрат. Коначно, помножићемо овај збир са 1/2н, што је „н“ број интеракција које смо послали да тренирамо нашу неуронску мрежу.
На пример, претпоставимо да имамо следеће вредности
Прва колона „и (к)“ представља оно што нам је наша мрежа дала у свакој од четири интеракције које смо је тестирали. Вредности које смо добили, као што се може видети, не одговарају онима из друге колоне „а“, које су жељене вредности за сваку од тестираних интеракција. Последња колона представља грешку сваке интеракције.
Примењујући претходно наведену формулу и користећи ове податке овде, имајући у виду да је у овом случају н = 4 (4 интеракције) нам даје вредност од 3,87, што је средња квадратна грешка коју наша неуронска мрежа има у овим моменте. Знајући за грешку, оно што сада морамо да урадимо је, као што смо раније коментарисали, да променимо пристрасност и тежине сваког од неурона и њихове интеракције са намером да се на овај начин грешка смањити.
У овом тренутку се пријављују инжењери и компјутерски научници алгоритам који се зове градијентни спуштање помоћу којих могу да добију вредности за тестирање и модификовање пристрасности и тежине сваког вештачког неурона тако да се на овај начин добија све мања грешка приближавајући се предвиђању или резултату желео. То је ствар тестирања и што се више интеракција направи, то ће бити више обуке и више ће мрежа научити.
Када неуронска мрежа буде адекватно обучена, то ће бити када ће нам дати тачна и поуздана предвиђања и идентификације. У овом тренутку ћемо имати мрежу која ће у сваком од својих неурона имати вредност од дефинисану тежину, са контролисаном пристрасношћу и са капацитетом одлучивања који ће чинити систем рад.
Библиографске референце:
- Пуиг, А. [АМП Тецх] (2017, 28. јул). Како функционишу неуронске мреже? [Видео фајл]. Опоравио од https://www.youtube.com/watch? в=ИКМоглп-фБк&аб_цханнел=АМПТецх
- Сантаолала, Ј. [Дајте себи Влог] (2017, 11. април) ЦиенциаЦлип Цхалленге – Шта су неуронске мреже? [Видео фајл]. https://www.youtube.com/watch? в=рТпр6ДуИ4ЛУ&аб_цханнел=ДатеунВлог
- Шмидхубер, Ј. (2015). „Дубоко учење у неуронским мрежама: преглед“. Неуронске мреже. 61: 85–117. арКсив: 1404.7828. дои: 10.1016/ј.неунет.2014.09.003. ПМИД 25462637. С2ЦИД 11715509