Duboke neuronske mreže: što su i kako rade
Duboke neuronske mreže koncept su koji čini glavnu tehnološku arhitekturu koja se koristi u modelima dubokog učenja. Ove se strukture ne mogu razumjeti bez razumijevanja opće ideje umjetnih neuronskih mreža, temeljnih za umjetnu inteligenciju.
Neuronske mreže koriste se za tisuće stvari: prepoznavanje registarskih tablica, pjesama, lica, glasova ili čak voća u našoj kuhinji. Oni su posebno korisna tehnologija i, unatoč činjenici da su tek nedavno postali praktični, bit će budućnost čovječanstva.
Sljedeći Vidjet ćemo dubinski ideju umjetnih neuronskih mreža i duboko, razumijevanje načina na koji rade, kako se treniraju i kako dolazi do interakcija između različitih neurona koji ih čine.
- Povezani članak: „Što je kognitivna znanost? Njegove osnovne ideje i faze razvoja"
Što su duboke neuronske mreže i što ih karakterizira?
Duboke neuronske mreže su jedna od najvažnijih tehnoloških arhitektura koja se koristi u Deep Learningu ili Deep Learningu. Ove posebne umjetne mreže imale su vrtoglavi rast posljednjih godina jer predstavljaju temeljni aspekt kada je u pitanju prepoznavanje svih vrsta obrazaca. Umjetna inteligencija postoji zahvaljujući radu ovih posebnih mreža koje, u U biti, oni postaju replika načina na koji naš mozak radi, iako u tehnološkom i matematika.
Prije nego što nastavimo s dubljim neuronskim mrežama, prvo moramo razumjeti kako umjetne neuronske mreže općenito rade i čemu služe. Lneuronske mreže su grana "strojnog učenja" koja je imala veliki utjecaj posljednjih godina, pomažući programerima i računalnim znanstvenicima da izgrade stvari poput chatbota zbog kojih, kada razgovaramo s njima, mislimo da razgovaramo sa stvarnim ljudskim bićima.
Umjetne neuronske mreže također su korištene sa samovozećim automobilima, mobilne aplikacije koje prepoznaju naše lice i pretvaraju ga u ono što želimo i mnoge druge funkcije. Njegova je primjenjivost vrlo opsežna, služi kao osnova moderne umjetne inteligencije i ima beskrajne korisne namjene u svakodnevnom životu.
umjetne neuronske mreže
Zamislimo da smo u svojoj kuhinji i odlučimo potražiti naranču, vrlo jednostavan zadatak.. Naranču znamo vrlo lako prepoznati, a znamo je i razlikovati od ostalog voća koje nalazimo u kuhinji, poput banana, jabuka i krušaka. Kao? Budući da smo u svom mozgu dobro usvojili koja su tipična svojstva naranče: njezina njegova veličina, njegov oblik, boja koje ima, kako miriše... Sve su to parametri pomoću kojih pronalazimo naranča.
To je jednostavan zadatak za ljude, ali... Može li to i računalo? Odgovor je da. U principu, bilo bi dovoljno definirati te iste parametre i dodijeliti vrijednost čvoru ili nečemu što bismo mogli nazvati “umjetnim neuronom”. Mi bismo tom neuronu rekli kakve su naranče, ukazujući na njihovu veličinu, težinu, oblik, boju ili bilo koji drugi parametar koji pripisujemo ovom voću. Imajući tu informaciju, očekuje se da će neuron znati prepoznati naranču kada mu je predoči.
Ako smo dobro odabrali parametre, bit će vam lako razlikovati naranče od stvari koje nisu naranče jednostavno uzimajući u obzir te karakteristike. Kada mu se prikaže slika bilo kojeg voća, taj će neuron tražiti karakteristike povezana s narančom i odlučite hoćete li je uključiti u kategoriju „naranča“ ili u kategoriju „ostalo“. voće". U statističkom smislu, to bi bilo pronaći područje u grafu parametara koje odgovara onome što postoji tražeći regiju koja bi obuhvatila sve komade voća iste veličine, oblika, boje, težine i arome kao i naranče.
Isprva sve ovo zvuči vrlo lako za kodiranje, a zapravo i jest. Vrlo je dobro razlikovati naranču od banane ili jabuke, budući da imaju različite boje i oblike. Međutim, što ako vam poklonimo grejp? i vrlo veliku mandarinu? Oni su voće koje se savršeno može zamijeniti s narančom. Hoće li umjetni neuron moći sam razlikovati naranče od grejpa? Odgovor je ne, a zapravo se vjerojatno misli da su isti.
Problem s korištenjem samo jednog sloja umjetnih neurona, ili što je isto, korištenjem samo jednostavnih neurona prvi, je taj generirati vrlo neprecizne granice odlučivanja kada vam se prezentira nešto što ima mnogo zajedničkih karakteristika s onim što biste trebali moći prepoznati, ali u stvarnosti nije. Ako predstavimo nešto što izgleda kao naranča, kao što je grejpfrut, čak i ako to nije to voće, ono će ga identificirati kao takvo.
Te granice odluke, ako su predstavljene u obliku grafikona, uvijek će biti linearne. Korištenje jednog umjetnog neurona, odnosno jednog čvora koji ima integrirane parametre konkretan, ali ne može učiti izvan njih, dobit će se vrlo bliske granice odlučivanja. difuzno. Njegovo glavno ograničenje je to što koristi dvije statističke metode, posebno višeklasnu regresiju i logistička regresija, što znači da u slučaju sumnje uključuje nešto što nije ono što smo očekivali da bude. će identificirati.
Kad bismo sve voće podijelili na "naranče" i "nenaranče", koristeći samo jedan neuron jasno je da banane, kruške, jabuke, lubenice i svako voće koje ne odgovara veličinom, bojom, oblikom, mirisom i tako dalje s narančama ja bih ih stavio u kategoriju "ne". naranče«. No, grejpfrut i mandarina bi ih svrstali u kategoriju "naranči", loše obavljajući posao za koji su dizajnirani.
A kada govorimo o narančama i grejpfrutima, mogli bismo govoriti o psima i vukovima, kokošima i kokošima, knjigama i bilježnicama... Ove situacije su slučajevi u kojima jednostavan niz "ako..." ("ako...") ne bi bio dovoljan za jasno razlikovanje između jednog i drugog. drugo. Potreban je složeniji, nelinearni sustav, koji je precizniji kada je u pitanju razlikovanje različitih elemenata. Nešto što uzima u obzir da između sličnosti mogu postojati razlike. Tu na scenu stupaju neuronske mreže.
Više slojeva, sličnije ljudskom mozgu
Umjetne neuronske mreže, kao što im ime kaže, računalni su umjetni modeli inspirirani u neuralnim mrežama ljudskog mozga, mrežama koje zapravo oponašaju funkcioniranje ovog organa biološki. Ovaj je sustav inspiriran neuralnim funkcioniranjem, a glavna mu je primjena prepoznavanje obrasci svih vrsta: identifikacija lica, prepoznavanje glasa, otisak prsta, rukopis, registarske pločice… Prepoznavanje uzoraka radi za gotovo sve..
Kako postoje različiti neuroni, parametri koji se primjenjuju su različiti i postiže se veći stupanj preciznosti. Ove neuronske mreže su sustavi koji nam omogućuju razdvajanje stavki u kategorije kada razlika može biti suptilna, razdvajajući ih na nelinearan način, nešto što bi inače bilo nemoguće učiniti način.
S jednim čvorom, s jednim neuronom, ono što se radi pri rukovanju informacijama je višeklasna regresija. Dodavanjem više neurona, budući da svaki od njih ima vlastitu nelinearnu aktivacijsku funkciju što, prevedeno na jednostavniji jezik, čini da imaju granice odlučivanja koje su točnije, biti grafički predstavljen u zakrivljenom obliku i uzimajući u obzir više karakteristika prilikom razlikovanja između "naranči" i "ne naranči", da nastavimo s tim primjerom.
Zakrivljenost ovih granica odlučivanja izravno će ovisiti o tome koliko slojeva neurona dodamo našoj neuronskoj mreži. Ti slojevi neurona, koji sustav čine složenijim i preciznijim, zapravo su duboke neuronske mreže. U principu, što više slojeva dubokih neuronskih mreža imamo, program će biti precizniji i sličniji u usporedbi s ljudskim mozgom.
Ukratko, neuronske mreže nisu ništa više od inteligentan sustav koji omogućuje donošenje preciznijih odluka, na vrlo sličan način na koji to radimo mi ljudska bića. Ljudska bića se temelje na iskustvu, učeći iz svoje okoline. Na primjer, vraćajući se na slučaj naranče i grejpa, ako ih nikada nismo vidjeli, savršeno ćemo ih zamijeniti s narančom. Kad je upoznamo, bit će to kad je već znamo prepoznati i razlikovati od naranče.
Prva stvar koja se radi je davanje nekih parametara neuronskim mrežama kako bi one znale što želimo da nauči identificirati. Zatim dolazi faza učenja ili obuke, tako da je sve točniji i postupno ima manju granicu pogreške. Ovo je vrijeme kada bismo svoju neuronsku mrežu predstavili narančom i drugim voćem. U fazi obuke dat će im se slučajevi u kojima su narančasti i slučajevi u kojima nisu narančasti, gledajući jesu li točno odgovorili i reći im točan odgovor.
Pokušat ćemo napraviti brojne pokušaje i što bliže stvarnosti.. Na taj način pomažemo neuronskoj mreži da radi kad stignu stvarni slučajevi i ona zna pravilno razlikovati, na isti način na koji bi to ljudsko biće učinilo u stvarnom životu. Ako je obuka bila odgovarajuća, nakon odabira dobrih parametara prepoznavanja i ako se dobro klasificiraju, neuronska mreža će imati vrlo visoku stopu uspješnosti prepoznavanja uzoraka. visoka.
- Možda će vas zanimati: "Kako rade neuroni?"
Što su oni i kako točno rade?
Sada kada smo vidjeli opću ideju o tome što su neuronske mreže i potpunije ćemo razumjeti što su i kako ti emulatori neurona ljudskog mozga rade i gdje se u svemu tome slikaju duboke neuronske mreže postupak.
Zamislimo da imamo sljedeću neuronsku mrežu: imamo tri sloja umjetnih neurona. Recimo da prvi sloj ima 4 neurona ili čvora, drugi 3, a posljednji ima samo 2. Ovo je sve primjer umjetne neuronske mreže, vrlo lako razumljiv.
Prvi sloj je onaj koji prima podatke., odnosno informacije koje mogu doći u obliku zvuka, slike, aroma, električnih impulsa... Ovo prvo sloj je ulazni sloj, i zadužen je za primanje svih podataka kako bi ih kasnije mogao poslati sljedećima slojeva. Tijekom treninga naše neuronske mreže, ovo će biti sloj s kojim ćemo prvi raditi, dajući joj podatke koje ćemo koristiti da vidimo koliko ste dobri u predviđanju ili identificiranju informacija koje ste dobili daje.
Drugi sloj našeg hipotetskog modela je skriveni sloj, koji se nalazi točno u sredini prvog i posljednjeg sloja., kao da je naša neuronska mreža sendvič. U ovom primjeru imamo samo jedan skriveni sloj, ali može ih biti koliko god želimo. Mogli bismo govoriti o 50, 100, 1000 ili čak 50 000 slojeva. U biti, ti skriveni slojevi dio su neuronske mreže koju bismo nazvali dubokom neuronskom mrežom. Što je veća dubina, to je neuronska mreža složenija.
Konačno imamo treći sloj našeg primjera koji je izlazni sloj. Ovaj sloj, kao što mu ime kaže, je zadužen za primanje informacija od prethodnih slojeva, donošenje odluke i davanje odgovora ili rezultata.
U neuronskoj mreži svaki umjetni neuron je povezan sa svim sljedećim. U našem primjeru, gdje smo komentirali da imamo tri sloja od 4, 3 i 2 neurona, 4 ulaznog sloja su povezan s 3 skrivenog sloja, a 3 skrivenog sloja s 2 izlaza, što nam daje ukupno 18 veze.
Svi ti neuroni povezani su s neuronima sljedećeg sloja, šaljući informacije u smjeru ulaz->skriveno->izlaz.. Da postoji više skrivenih slojeva, govorili bismo o većem broju veza, slanju informacija od skrivenog sloja do skrivenog sloja dok ne dođu do izlaznog sloja. Izlazni sloj, nakon što primi informaciju, ono što će učiniti jest dati nam rezultat na temelju informacija koje je primio i načina na koji ih je obradio.
Kada treniramo naš algoritam, odnosno našu neuronsku mrežu, ovaj proces koji smo upravo objasnili ponovit će se mnogo puta. Isporučit ćemo neke podatke mreži, vidjet ćemo što nam daje rezultat i analizirat ćemo ga i usporediti s onim što smo očekivali da će nam rezultat dati. Ako postoji velika razlika između onoga što se očekuje i onoga što se dobiva, to znači da postoji velika margina pogreške i da je stoga potrebno napraviti nekoliko izmjena.
Kako rade umjetni neuroni?
Sada ćemo razumjeti pojedinačno funkcioniranje neurona koji rade unutar neuronske mreže. Neuron prima ulaznu informaciju od prethodnog neurona. Recimo da ovaj neuron prima tri ulaza informacija, od kojih svaki dolazi od tri neurona prethodnog sloja. Zauzvrat, ovaj neuron generira izlaze, u ovom slučaju recimo da je povezan samo s neuronom sljedećeg sloja.
Svaka veza koju ovaj neuron ima s tri neurona prethodnog sloja donosi "x" vrijednost, što je vrijednost koju nam prethodni neuron šalje.; a ima i vrijednost "w", što je težina ove veze. Težina je vrijednost koja nam pomaže da jednoj vezi damo veću važnost u odnosu na druge. Ukratko, svaka veza s prethodnim neuronima ima “x” i “w” vrijednost, koje se množe (x·w).
Također ćemo imati vrijednost koja se zove "bias" ili bias predstavljena s "b" što je broj pogreške koja potiče određene neurone da se lakše aktiviraju od drugih. Osim toga, imamo aktivacijsku funkciju unutar neurona, što čini njegov stupanj klasifikacije različitih elemenata (str. npr. naranče) nije linearan. Sam za sebe, svaki neuron ima različite parametre koje treba uzeti u obzir, što čini cijeli sustav, to je neuronska mreža, klasificiran na nelinearan način.
Kako neuron zna treba li se aktivirati ili ne? odnosno kada znate morate li poslati informaciju sljedećem sloju? Pa, ova odluka je vođena sljedećom jednadžbom:

Ova formula znači da se mora napraviti zbroj svih težina "w" pomnožen sa svim vrijednostima "x" koje neuron prima od prethodnog sloja. Ovome se dodaje prednapon "b".
Rezultat ove jednadžbe šalje se aktivacijskoj funkciji, što je jednostavno funkcija koja nam govori da, ako je rezultat ove jednadžbe veći od a određeni broj, neuron će poslati signal sljedećem sloju, a ako je manji, neće poslati ga Dakle, ovako umjetni neuron odlučuje hoće li poslati informaciju neuronima na sljedeći način: sloj pomoću izlaza koji ćemo nazvati "y", izlaza koji je zauzvrat ulaz "x" sljedećeg neuron.
A kako trenirati cijelu mrežu?
Prva stvar koja se radi je isporuka podataka prvom sloju, kao što smo prethodno komentirali. Ovaj sloj će poslati informacije sljedećim slojevima, koji su skriveni slojevi ili duboka neuronska mreža. Neuroni ovih slojeva će se aktivirati ili ne, ovisno o primljenoj informaciji. Na kraju, izlazni sloj će nam dati rezultat koji ćemo usporediti s vrijednošću koju smo čekali da vidimo je li neuronska mreža naučila što treba učiniti ispravno.
Ako nije dobro naučio, izvršit ćemo drugu interakciju, tj. ponovno ćemo vam dati informacije i vidjeti kako se neuronska mreža ponaša. Ovisno o dobivenim rezultatima prilagodit će se vrijednosti "b", to jest pristranost svakog neurona, a "w", to je težina svake veze sa svakim neuronom kako bi se smanjila pogreška. Kako bismo saznali kolika je ta pogreška, upotrijebit ćemo drugu jednadžbu, koja je sljedeća:

Ova jednadžba je korijen srednje kvadratne pogreške. Napravit ćemo zbroj y (x) koji je vrijednost koju nam je naša mreža dala u interakciji minus "a", što je vrijednost koju smo očekivali da će nam dati, podignuta na kvadrat. Konačno, pomnožit ćemo ovaj zbroj s 1/2n, budući da je to "n" broj interakcija koje smo poslali za treniranje naše neuronske mreže.
Na primjer, pretpostavimo da imamo sljedeće vrijednosti

Prvi stupac "y (x)" predstavlja ono što nam je naša mreža dala u svakoj od četiri interakcije koje smo testirali. Vrijednosti koje smo dobili, kao što se vidi, ne odgovaraju onima iz drugog stupca “a”, a to su željene vrijednosti za svaku od testiranih interakcija. Zadnji stupac predstavlja pogrešku svake interakcije.
Primjenom gore navedene formule i korištenjem ovih podataka ovdje, imajući na umu da je u ovom slučaju n = 4 (4 interakcije) daje nam vrijednost od 3,87, što je srednja kvadratna pogreška koju naša neuronska mreža ima u ovim trenutaka. Znajući pogrešku, ono što sada moramo učiniti je, kao što smo već komentirali, promijeniti pristranost i težine svakog pojedinog neurona i njihove interakcije s namjerom da se na taj način pogreška smanjiti.
U ovom trenutku se prijavljuju inženjeri i informatičari algoritam koji se naziva gradijentni spuštanje s kojima mogu dobiti vrijednosti za testiranje i modificiranje pristranosti i težine svakog umjetnog neurona tako da se na taj način dobiva sve niža pogreška, približavajući se predviđanju ili rezultatu Htio. To je stvar testiranja i što se više interakcija ostvari, to će biti više obuke i više će mreža naučiti.
Jednom kad se neuronska mreža adekvatno istrenira, bit će kada će nam davati točna i pouzdana predviđanja i identifikacije. U ovom trenutku ćemo imati mrežu koja će u svakom svom neuronu imati vrijednost od definiranu težinu, s kontroliranom pristranošću i kapacitetom odlučivanja koji će sustav činiti raditi.
Bibliografske reference:
- Puig, A. [AMP Tech] (2017., 28. srpnja). Kako funkcioniraju neuronske mreže? [Video datoteka]. Oporavljen od https://www.youtube.com/watch? v=IQMoglp-fBk&ab_channel=AMPTech
- Santaolalla, J. [Give yourself a Vlog] (2017., 11. travnja) CienciaClip Challenge - Što su neuronske mreže? [Video datoteka]. https://www.youtube.com/watch? v=rTpr6DuY4LU&ab_channel=DateunVlog
- Schmidhuber, J. (2015). "Duboko učenje u neuronskim mrežama: Pregled". Neuronske mreže. 61: 85–117. arXiv: 1404.7828. doi: 10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509