Globoke nevronske mreže: kaj so in kako delujejo
Globoke nevronske mreže so koncept, ki sestavlja glavno tehnološko arhitekturo, ki se uporablja v modelih globokega učenja. Teh struktur ni mogoče razumeti brez razumevanja splošne ideje umetnih nevronskih mrež, temeljnih za umetno inteligenco.
Nevronske mreže se uporabljajo za tisoč stvari: prepoznavanje registrskih tablic, pesmi, obrazov, glasov ali celo sadja v naši kuhinji. So še posebej uporabna tehnologija in bodo prihodnost človeštva, kljub temu, da so šele pred kratkim postala praktična.
Naslednji Poglobljeno si bomo ogledali idejo umetnih nevronskih mrež in globine, razumeti, kako delujejo, kako so usposobljeni in kako pride do interakcij med različnimi nevroni, ki jih sestavljajo.
- Sorodni članek: »Kaj je kognitivna znanost? Njegove osnovne ideje in faze razvoja"
Kaj so globoke nevronske mreže in kaj jih označuje?
Globoke nevronske mreže so ena najpomembnejših tehnoloških arhitektur, ki se uporablja v Deep Learning ali Deep Learning. Ta posebna umetna omrežja so v zadnjih letih doživela vrtoglavo rast, saj predstavljajo temeljni vidik, ko gre za prepoznavanje vseh vrst vzorcev. Umetna inteligenca obstaja zahvaljujoč delovanju teh posebnih omrežij, ki v V bistvu so replika delovanja naših možganov, čeprav v tehnološkem in matematika.
Preden nadaljujemo s tem, kaj so globoke nevronske mreže, moramo najprej razumeti, kako umetne nevronske mreže na splošno delujejo in čemu so namenjene. Lnevronske mreže so veja »strojnega učenja«, ki je imela v zadnjih letih velik vpliv, ki programerjem in računalničarjem pomaga zgraditi stvari, kot so chatboti, zaradi katerih, ko se pogovarjamo z njimi, mislimo, da se pogovarjamo s pravimi ljudmi.
Umetne nevronske mreže so bile uporabljene tudi pri samovozečih avtomobilih, mobilne aplikacije, ki prepoznajo naš obraz in ga spremenijo v tisto, kar želimo in še mnogo več funkcije. Njegova uporabnost je zelo obsežna, saj služi kot osnova sodobne umetne inteligence in ima neskončno koristno uporabo v našem vsakdanu.
umetne nevronske mreže
Predstavljajmo si, da smo v naši kuhinji in se odločimo poiskati pomarančo, kar je zelo preprosta naloga.. Pomarančo znamo zelo enostavno prepoznati in jo znamo tudi ločiti od drugega sadja, ki ga najdemo v kuhinji, kot so banane, jabolka in hruške. kot? Ker smo v naših možganih dobro usvojili tipične lastnosti pomaranče: njene velikost, oblika, barva, vonj... Vse to so parametri, s katerimi najdemo oranžna.
To je preprosta naloga za ljudi, vendar... Lahko tudi računalnik? Odgovor je pritrdilen. Načeloma bi bilo dovolj, da definiramo te iste parametre in dodelimo vrednost vozlišču ali nečemu, kar bi lahko poimenovali "umetni nevron". Temu nevronu bi povedali, kakšne so pomaranče, z navedbo njihove velikosti, teže, oblike, barve ali katerega koli drugega parametra, ki ga pripišemo temu sadju. S temi informacijami se pričakuje, da bo nevron vedel, kako prepoznati pomarančo, ko bo predstavljena.
Če smo parametre dobro izbrali, boste zlahka razlikovali med pomarančami in stvarmi, ki niso pomaranče, preprosto z upoštevanjem teh lastnosti. Ko mu je predstavljena slika katerega koli sadja, bo ta nevron iskal značilnosti povezana s pomarančo in se odločite, ali jo vključite v kategorijo »pomaranča« ali v kategorijo »drugo sadje". V statističnem smislu bi bilo najti regijo v grafu parametrov, ki ustreza temu, kar je išče regijo, ki bi zajemala vse koščke sadja, ki imajo enako velikost, obliko, barvo, težo in aromo kot pomaranče.
Sprva se vse to sliši zelo enostavno za kodiranje in dejansko je. Zelo dobro je razlikovati pomarančo od banane ali jabolka, saj imata različne barve in oblike. Kaj pa, če bi vam podarili grenivko? in zelo veliko mandarino? So sadeži, ki jih je mogoče popolnoma zamenjati s pomarančo. Ali bo umetni nevron lahko sam razlikoval med pomarančami in grenivkami? Odgovor je ne in dejansko se verjetno misli, da sta enaka.
Težava pri uporabi samo ene plasti umetnih nevronov ali, kar je enako, pri uporabi samo preprostih nevronov je ta, da ustvariti zelo nenatančne meje odločanja, ko vam je predstavljeno nekaj, kar ima veliko skupnih značilnosti s tem, kar bi morali biti sposobni prepoznati, v resnici pa ni. Če predstavimo nekaj, kar je videti kot pomaranča, na primer grenivko, ga bo prepoznalo kot takšno, tudi če to ni to sadje.
Te odločitvene meje, če so predstavljene v obliki grafa, bodo vedno linearne. Uporaba enega samega umetnega nevrona, to je enega samega vozlišča, ki ima integrirane parametre konkretne, vendar se ne morejo učiti preko njih, bodo dosežene zelo blizu meja odločanja. difuzno. Njegova glavna omejitev je, da uporablja dve statistični metodi, zlasti večrazredno regresijo in logistična regresija, kar pomeni, da v dvomu vključuje nekaj, kar ni tisto, kar smo pričakovali. bo identificiral.
Če bi vse sadje razdelili na »pomaranče« in »nepomaranče«, je z uporabo samo enega nevrona jasno, da so banane, hruške, jabolka, lubenice in vse sadje, ki ne ustreza po velikosti, barvi, obliki, aromi in tako dalje s pomarančami, bi jih uvrstil v kategorijo "ne". pomaranče«. Vendar bi jih grenivke in mandarine uvrstile v kategorijo "pomaranč", saj slabo opravljajo nalogo, za katero so bile zasnovane.
In ko govorimo o pomarančah in grenivkah, bi lahko govorili o psih in volkovih, kokoših in piščancih, knjigah in zvezkih... Vse Te situacije so primeri, v katerih preprost niz "če ..." ("če ...") ne bi zadostoval za jasno razlikovanje med enim in drugim. drugo. Potreben je bolj kompleksen, nelinearen sistem, ki je bolj natančen pri razlikovanju med različnimi elementi. Nekaj, kar upošteva, da med podobnostmi lahko obstajajo razlike. Tukaj nastopijo nevronske mreže.
Več plasti, bolj podobno človeškim možganom
Umetne nevronske mreže, kot pove že njihovo ime, so računalniški umetni modeli, ki se zgledujejo po v nevronskih mrežah človeških možganov, mrežah, ki pravzaprav posnemajo delovanje tega organa biološki. Ta sistem se zgleduje po nevronskem delovanju in njegova glavna uporaba je prepoznavanje vzorci vseh vrst: identifikacija obraza, prepoznavanje glasu, prstni odtis, rokopis, registrske tablice… Prepoznavanje vzorcev deluje za skoraj vse..
Ker obstajajo različni nevroni, so uporabljeni parametri različni in dosežena je večja stopnja natančnosti. Te nevronske mreže so sistemi, ki nam omogočajo ločevanje elementov v kategorije, ko razlika je lahko subtilna, ločuje jih na nelinearen način, kar bi bilo drugače nemogoče narediti način.
Z enim samim vozliščem, z enim nevronom je tisto, kar se naredi pri ravnanju z informacijami, večrazredna regresija. Z dodajanjem več nevronov, saj ima vsak od njih svojo nelinearno aktivacijsko funkcijo, zaradi česar imajo, prevedeno v preprostejši jezik, meje odločanja, ki so natančneje, grafično predstavljen v ukrivljeni obliki in upošteva več značilnosti pri razlikovanju med "pomarančami" in "nepomarančami", če nadaljujemo s tem primerom.
Ukrivljenost teh odločitvenih meja bo neposredno odvisna od tega, koliko plasti nevronov dodamo naši nevronski mreži. Tiste plasti nevronov, ki naredijo sistem kompleksnejši in natančnejši, so pravzaprav globoke nevronske mreže. Načeloma velja, da več plasti globokih nevronskih mrež imamo, bolj natančen in podoben bo program v primerjavi s človeškimi možgani.
Skratka, nevronske mreže niso nič drugega kot inteligenten sistem, ki omogoča sprejemanje natančnejših odločitev, na zelo podoben način, kot to počnemo ljudje. Ljudje temeljimo na izkušnjah, učimo se iz okolja. Na primer, če se vrnemo k primeru pomaranče in grenivke, če ju še nismo videli, jo bomo popolnoma zamenjali za pomarančo. Ko se bomo z njo seznanili, jo bomo že znali prepoznati in razlikovati od pomaranč.
Prva stvar, ki jo naredimo, je, da nevronskim mrežam damo nekaj parametrov, da vedo, kako želimo, da se naučijo prepoznati. Nato pride faza učenja ali usposabljanja, tako da je vedno bolj natančen in ima postopoma manjšo mejo napake. To je čas, ko bi svojo nevronsko mrežo predstavili s pomarančo in drugim sadjem. V fazi usposabljanja bodo dobili primere, v katerih so oranžni, in primere, v katerih niso oranžni, pri čemer bodo preverili, ali so pravilno odgovorili, in jim povedali pravilen odgovor.
Poskušali bomo narediti številne poskuse in čim bližje realnosti.. Na ta način pomagamo nevronski mreži, da deluje, ko pridejo resnični primeri, in ve, kako pravilno razlikovati, na enak način, kot bi to storil človek v resničnem življenju. Če je bilo usposabljanje ustrezno, po izbiri dobrih parametrov za prepoznavanje in dobro razvrščene, bo imela nevronska mreža zelo visoko stopnjo uspešnosti prepoznavanja vzorcev. visoka.
- Morda vas zanima: "Kako delujejo nevroni?"
Kaj so in kako točno delujejo?
Zdaj, ko smo videli splošno idejo o tem, kaj so nevronske mreže, in bomo bolje razumeli, kaj so in kako delujejo ti emulatorji nevronov človeških možganov in kje pri vsem tem slikajo globoke nevronske mreže postopek.
Predstavljajmo si, da imamo naslednjo nevronsko mrežo: imamo tri plasti umetnih nevronov. Recimo, da ima prva plast 4 nevrone ali vozle, druga 3, zadnja pa samo 2. Vse to je primer umetne nevronske mreže, ki je lahko razumljiva.
Prva plast je tista, ki sprejema podatke., to je informacije, ki lahko pridejo v obliki zvoka, slike, arom, električnih impulzov... Ta prva sloj je vhodni sloj in je zadolžen za sprejem vseh podatkov, da jih lahko kasneje pošlje naslednjim plasti. Med usposabljanjem naše nevronske mreže bo to plast, s katero bomo najprej delali in jo dajali podatke, ki jih bomo uporabili, da ugotovimo, kako dobri ste pri napovedovanju ali prepoznavanju informacij, ki ste jih prejeli daje.
Druga plast našega hipotetičnega modela je skrita plast, ki je na sredini prve in zadnje plasti., kot da bi bila naša nevronska mreža sendvič. V tem primeru imamo samo eno skrito plast, vendar jih je lahko kolikor želimo. Lahko bi govorili o 50, 100, 1000 ali celo 50.000 slojih. V bistvu so te skrite plasti tisti del nevronske mreže, ki bi jo poimenovali globoka nevronska mreža. Večja kot je globina, bolj kompleksna je nevronska mreža.
Končno imamo tretjo plast našega primera, ki je izhodna plast. Ta plast, kot pove njeno ime, je zadolžen za sprejemanje informacij iz predhodnih slojev, sprejemanje odločitev in posredovanje odgovora oziroma rezultata.
V nevronski mreži je vsak umetni nevron povezan z vsemi naslednjimi. V našem primeru, kjer smo komentirali, da imamo tri plasti 4, 3 in 2 nevronov, so 4 vhodne plasti povezan s 3 skrite plasti in 3 skrite plasti z 2 izhoda, kar nam daje skupno 18 povezave.
Vsi ti nevroni so povezani s tistimi v naslednji plasti in pošiljajo informacije v smeri vhod->skrito->izhod.. Če bi bilo več skritih plasti, bi govorili o večjem številu povezav, ki pošiljajo informacije od skrite plasti do skrite plasti, dokler ne dosežejo izhodne plasti. Izhodna plast, ko prejme informacije, nam bo dala rezultat na podlagi informacij, ki jih je prejela, in načina njihove obdelave.
Ko treniramo naš algoritem, to je našo nevronsko mrežo, se bo ta postopek, ki smo ga pravkar razložili, izvajal večkrat. Nekaj podatkov bomo posredovali omrežju, videli bomo, kaj nam daje rezultat, in ga bomo analizirali ter primerjali s tistim, kar smo pričakovali, da nam bo rezultat dal. Če obstaja velika razlika med pričakovanim in doseženim, to pomeni, da obstaja velika meja napake in da je zato treba narediti nekaj sprememb.
Kako delujejo umetni nevroni?
Zdaj bomo razumeli posamezno delovanje nevronov, ki delujejo znotraj nevronske mreže. Nevron prejme vnos informacij od prejšnjega nevrona. Recimo, da ta nevron prejme tri informacijske vhode, od katerih vsak prihaja iz treh nevronov prejšnje plasti. Po drugi strani pa ta nevron ustvarja rezultate, v tem primeru recimo, da je povezan samo z nevronom naslednje plasti.
Vsaka povezava, ki jo ima ta nevron s tremi nevroni prejšnje plasti, prinaša vrednost "x", to je vrednost, ki nam jo pošilja prejšnji nevron.; in ima tudi vrednost "w", ki je teža te povezave. Teža je vrednost, ki nam pomaga dati večji pomen eni povezavi pred drugimi. Skratka, vsaka povezava s prejšnjimi nevroni ima vrednost "x" in "w", ki se pomnožita (x·w).
Imeli bomo tudi vrednost, imenovana "pristranskost" ali pristranskost, predstavljena z "b", ki je število napak, ki spodbuja določene nevrone, da se aktivirajo lažje kot drugi. Poleg tega imamo znotraj nevrona aktivacijsko funkcijo, zaradi česar je njegova stopnja razvrščanja različnih elementov (str. pomaranče) ni linearna. Vsak nevron ima sam po sebi različne parametre, ki jih je treba upoštevati, zaradi česar je celoten sistem, to je nevronska mreža, razvrščen na nelinearen način.
Kako nevron ve, ali se mora aktivirati ali ne? to je, kdaj veste, ali morate poslati informacije naslednji plasti? No, to odločitev ureja naslednja enačba:
Ta formula pomeni, da je treba narediti vsoto vseh uteži "w", pomnoženo z vsemi vrednostmi "x", ki jih nevron prejme od prejšnje plasti. Temu je dodan predklon "b".
Rezultat te enačbe se pošlje aktivacijski funkciji, ki je preprosto funkcija, ki nam pove, da če je rezultat te enačbe večji od a določeno število, bo nevron poslal signal naslednji plasti in, če je manj, potem ne bo da ga pošljem Torej, takole se umetni nevron odloči, ali bo nevronom poslal informacije ali ne, kot sledi: plast s pomočjo izhoda, ki ga bomo imenovali "y", izhoda, ki je nato vhod "x" naslednjega nevron.
In kako usposobiti celotno mrežo?
Prva stvar, ki jo naredimo, je dostaviti podatke prvi plasti, kot smo že komentirali. Ta plast bo pošiljala informacije naslednjim plastem, ki so skrite plasti ali globoka nevronska mreža. Nevroni teh plasti se bodo aktivirali ali ne, odvisno od prejete informacije. Končno nam bo izhodna plast dala rezultat, ki ga bomo primerjali z vrednostjo, na katero smo čakali, da bi videli, ali se je nevronska mreža naučila, kaj mora narediti pravilno.
Če se ni dobro naučil, bomo izvedli še eno interakcijo, tj. znova vam bomo predstavili informacije in videli, kako se nevronska mreža obnaša. Glede na dobljene rezultate bodo prilagojene vrednosti "b", to je pristranskost vsakega nevrona, in "w", to je teža vsake povezave z vsakim nevronom, da se zmanjša napaka. Da bi ugotovili, kako velika je ta napaka, bomo uporabili drugo enačbo, ki je naslednja:
Ta enačba je povprečna kvadratna napaka. Naredili bomo vsoto y (x), ki je vrednost, ki nam jo je naše omrežje dalo v interakciji minus "a", kar je vrednost, ki smo jo pričakovali, da nam bo dala, dvignjena na kvadrat. Na koncu bomo to vsoto pomnožili z 1/2n, pri čemer je to "n" število interakcij, ki smo jih poslali za usposabljanje naše nevronske mreže.
Denimo, da imamo naslednje vrednosti
Prvi stolpec »y (x)« predstavlja, kaj nam je dalo naše omrežje v vsaki od štirih interakcij, ki smo jih preizkusili. Vrednosti, ki smo jih dobili, kot je razvidno, ne ustrezajo tistim iz drugega stolpca "a", ki so želene vrednosti za vsako od testiranih interakcij. Zadnji stolpec predstavlja napako vsake interakcije.
Z uporabo zgoraj omenjene formule in uporabo teh podatkov tukaj, ob upoštevanju, da je v tem primeru n = 4 (4 interakcije) nam daje vrednost 3,87, kar je povprečna kvadratna napaka, ki jo ima naša nevronska mreža v teh trenutke. Ker vemo napako, moramo zdaj, kot smo že komentirali, spremeniti pristranskost in uteži vsakega izmed nevronov in njihove interakcije z namenom, da je na ta način napaka zmanjšati.
Na tej točki se prijavijo inženirji in računalničarji algoritem, imenovan gradientni spust s katerim lahko pridobijo vrednosti za testiranje in spreminjanje pristranskosti in teže vsakega umetnega nevrona tako da na ta način dobimo vedno manjšo napako, ki se približuje napovedi ali rezultatu želel. Gre za preizkušanje in več kot bo interakcij, več bo usposabljanja in več se bo omrežje naučilo.
Ko bo nevronska mreža ustrezno usposobljena, nam bo dajala natančne in zanesljive napovedi in identifikacije. Na tej točki bomo imeli mrežo, ki bo imela v vsakem od svojih nevronov vrednost določeno težo, z nadzorovano pristranskostjo in z zmožnostjo odločanja, ki bo sistem delo.
Bibliografske reference:
- Puig, A. [AMP Tech] (2017, 28. julij). Kako delujejo nevronske mreže? [Video datoteka]. Obnovljeno iz https://www.youtube.com/watch? v=IQMoglp-fBk&ab_channel=AMPTech
- Santaolalla, J. [Podarite si videolog] (2017, 11. april) CienciaClip Challenge - Kaj so nevronske mreže? [Video datoteka]. https://www.youtube.com/watch? v=rTpr6DuY4LU&ab_channel=DateunVlog
- Šmidhuber, J. (2015). "Globoko učenje v nevronskih mrežah: pregled". Nevronske mreže. 61: 85–117. arXiv: 1404.7828. doi: 10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509