Ce sunt rețelele neuronale și cum funcționează acestea?
Dacă țineți pasul cu știrile despre tehnologie, ați întâmpinat probabil conceptul de rețele neuronale (de asemenea cunoscute ca plase neuronale).
În 2016, de exemplu, rețeaua neuronală AlphaGo de la Google a bătut unul dintre cei mai buni jucători profesioniști Go din lume într-o serie de 4-1. De asemenea, YouTube a anunțat că vor folosi rețele neuronale pentru a-și înțelege mai bine videoclipurile YouTube va folosi rețele neuronale pentru a înțelege efectiv videoclipurile YouTube va folosi rețele neuronale pentru a înțelege efectiv videoclipurile Căutarea pe YouTube poate fi frustoasă deoarece YouTube nu văd videoclipurile așa o persoană face. Recent, Google înregistrează un brevet care ar putea schimba acest lucru. Citeste mai mult . Pot să vină în minte zeci de alte povești.
Dar ce anume este o rețea neurală? Cum functioneazã? Și de ce este atât de popular în învățarea mașinilor?
Un computer ca un creier
Cercetătorii neuroștici contemporani discută adesea despre creier ca un tip de calculator. Rețelele neuronale urmăresc să facă contrariul: să construiască un calculator care să funcționeze ca un creier.
Desigur, avem doar o înțelegere rapidă a funcțiilor extrem de complexe ale creierului, dar prin crearea unei simulări simplificate a modului în care creierul procesează datele, putem construi un tip de calculator care funcționează foarte diferit de cel standard.
Procesoarele de procesare procesează date în serie (“pentru a”). Ei efectuează multe operații pe un set de date, unul câte unul. Procesare paralelă (“procesând mai multe fluxuri simultan”) accelerează semnificativ calculatorul prin utilizarea mai multor procesoare în serie.
În imaginea de mai jos, exemplul de prelucrare paralelă necesită cinci procesoare diferite:
O rețea neurală artificială (așa numită pentru ao deosebi de rețeaua neurală reală din creier) are o structură fundamental diferită. Este foarte interconectat. Acest lucru îi permite să prelucreze rapid datele, să învețe din acele date și să își actualizeze propria structură internă pentru a îmbunătăți performanța.
Cu toate acestea, gradul ridicat de interconectare are unele efecte uluitoare. De exemplu, rețelele neuronale sunt foarte bune în recunoașterea modelelor obscure în date.
Abilitatea de a învăța
Capacitatea unei rețele neuronale de a învăța este cea mai mare putere. Cu ajutorul arhitecturii standard de calcul, un programator trebuie să dezvolte un algoritm care să spună computerului ce trebuie să facă cu datele primite pentru a se asigura că computerul emite răspunsul corect.
Un răspuns de intrare-ieșire ar putea fi la fel de simplu ca “când tasta A este apăsată, afișați "A" pe ecran” sau la fel de complicat ca și efectuarea unor statistici complexe. Rețelele neuronale, pe de altă parte, nu au nevoie de același tip de algoritmi. Prin mecanisme de învățare, ei pot proiecta în esență propriii algoritmi 4 Algoritmi de învățare a mașinilor care îți modelează viața 4 Algoritmi de învățare a mașinilor care îți modelează viața Poate nu-ți dai seama că învățarea mașinilor este deja în jurul tău și poate exercita un surprinzător grad de influență peste viața ta. Nu mă credeți? S-ar putea să fii surprins. Citește mai mult, care asigură că funcționează corect.
Este important să rețineți că, deoarece rețelele neuronale sunt programe software scrise pe mașini care folosesc hardware standard de procesare serială, tehnologia curentă încă impune limite. De fapt, construirea unei versiuni hardware a unei rețele neuronale este o altă problemă în întregime.
De la neuroni la noduri
Acum, că am pus bazele pentru funcționarea rețelelor neuronale, putem începe să ne uităm la unele dintre ele. Structura de bază a unei rețele neuronale artificiale arată astfel:
Fiecare cerc este numit a “nodul” și simulează un singur neuron. În partea stângă sunt nodurile de intrare, în mijloc sunt nodurile ascunse, iar în partea dreaptă sunt nodurile de ieșire.
În termeni foarte fundamentali, nodurile de intrare acceptă valori de intrare, care ar putea fi binare 1 sau 0, o parte a unei valori de culoare RGB, statutul unei bucăți de șah sau orice altceva. Aceste noduri reprezintă informațiile care circulă în rețea.
Fiecare nod de intrare este conectat la un număr de noduri ascunse (uneori la fiecare nod ascuns, uneori la un subset). Nodurile de intrare iau informațiile pe care le-au dat și le transmit spre stratul ascuns.
De exemplu, un nod de intrare ar putea trimite un semnal (“foc,” în limbajul neuroștiinței) dacă primește 1 și rămâne latente dacă primește un zero. Fiecare nod ascuns are un prag: dacă toate intrările sumate ajung la o anumită valoare, acesta se declanșează.
De la Synapses la Connections
Fiecare conexiune, echivalentul unei sinapse anatomice, are de asemenea o greutate specifică, care permite rețelei să pună un accent mai puternic pe acțiunea unui nod specific. Iată un exemplu:
După cum puteți vedea, greutatea conexiunii B este mai mare decât cea a conexiunilor A și C. Să presupunem că nodul ascuns 4 va declanșa numai dacă primește o intrare totală de 2 sau mai mare. Asta inseamna ca daca 1 sau 3 incendii pe cont propriu, atunci 4 nu vor fi declansate, dar 1 si 3 impreuna ar declansa nodul. Nodul 2 ar putea de asemenea să declanșeze singur nodul prin conexiunea B.
Să luăm vremea ca un exemplu practic. Spuneți că proiectați o rețea neuronală simplă pentru a determina dacă ar trebui să existe o avertizare privind furtuna de iarnă.
Folosind conexiunile și greutățile de mai sus, nodul 4 ar putea să se declanșeze doar dacă temperatura este sub 0 F și vânturile sunt peste 30 MPH, sau ar fi declanșat dacă există o șansă de zăpadă de peste 70%. Temperatura ar fi alimentată în nodul 1, vânturile la nodul 3 și probabilitatea zăpezii în nodul 2. Acum, nodul 4 poate lua în considerare toate acestea atunci când determină ce semnal să trimită la stratul de ieșire.
Mai mult decât o simplă logică
Desigur, această funcție ar putea fi pur și simplu adoptată cu simple porți logice AND / OR. Dar rețelele neuronale mai complexe, ca cea de mai jos, sunt capabile de operații mult mai complexe.
Nodurile stratului de ieșire funcționează în același mod ca cele ale straturilor ascunse: nodurile de ieșire însumează intrarea din stratul ascuns și dacă ating o anumită valoare, nodurile de ieșire declanșează și trimit semnale specifice. La sfârșitul procesului, stratul de ieșire va trimite un set de semnale care indică rezultatul intrării.
În timp ce rețeaua afișată mai sus este simplă, rețelele neuronale profunde pot avea multe straturi ascunse și sute de noduri.
Corectarea erorii
Procesul, până în prezent, este relativ simplu. Dar în cazul în care rețelele neuronale strălucesc într-adevăr este în procesul de învățare. Cele mai multe plase neuronale utilizează un proces numit backpropagare, care trimite semnale înapoi prin intermediul rețelei.
Înainte ca programatorii să implementeze o rețea neurală, ei o conduc printr-o fază de instruire în care primește un set de intrări cu rezultate cunoscute. De exemplu, un programator ar putea învăța o rețea neuronală pentru a recunoaște imaginile Utilizarea telefonului dvs. smartphone pentru a identifica ceva cu CamFind Utilizați telefonul dvs. inteligent pentru a identifica ceva cu CamFind Această aplicație poate identifica cu adevărat orice obiect pe care îl aruncați. Asta nu este doar cool, dar are și o grămadă de utilizări practice! Citeste mai mult . Intrarea ar putea fi o imagine a unei mașini, iar ieșirea corectă ar fi cuvântul “mașină.”
Programatorul furnizează imaginea ca intrare și văd ce rezultă din nodurile de ieșire. Dacă rețeaua răspunde “avion,” programatorul îi spune computerului că este incorect.
Rețeaua face apoi ajustări ale propriilor conexiuni, modificând greutățile diferitelor legături dintre noduri. Această acțiune este ghidată de un algoritm specific de învățare adăugat la rețea. Rețeaua continuă să ajusteze greutățile de conectare până când furnizează ieșirea corectă.
Aceasta este o simplificare, dar rețelele neuronale pot învăța operații extrem de complexe folosind principii similare.
Îmbunătățire continuă
Chiar și după antrenament, backpropagation-ul continuă - și asta este în cazul în care rețelele neuronale devin foarte cool. Ei continuă să învețe pe măsură ce sunt folosiți, integrând noi informații și făcând trucuri la greutățile diferitelor conexiuni, devenind din ce în ce mai eficiente și mai eficiente la sarcinile pentru care au fost proiectate.
Acest lucru ar putea fi la fel de simplu ca recunoașterea imaginii sau la fel de complex ca jocul Go.
În acest fel, rețelele neuronale se schimbă mereu și se îmbunătățesc. Și acest lucru poate avea efecte surprinzătoare, rezultând în rețele care prioritizează lucrurile pe care un programator nu le-ar fi gândit să le prioritizeze.
În plus față de procesul descris mai sus, care se numește învățare supravegheată, există și o altă metodă: învățarea nesupravegheată.
În această situație, rețelele neuronale iau o intrare și încearcă să o recreeze exact în ieșirea lor, folosind backpropagation pentru a actualiza conexiunile. Acest lucru poate părea un exercițiu fără fructe, dar în acest fel, rețelele învață să extragă caracteristici utile și să generalizeze aceste caracteristici pentru a-și îmbunătăți modelele.
Probleme de profunzime
Backpropagation este o modalitate foarte eficientă de a învăța rețelele neuronale ... când sunt doar câteva straturi profunde. Odată cu creșterea numărului de straturi ascunse, eficacitatea backpropagation-ului scade. Aceasta este o problemă pentru rețelele profunde. Folosind backpropagation, ele nu sunt de multe ori mai eficiente decât rețele simple.
Oamenii de știință au venit cu o serie de soluții la această problemă, specificul cărora este destul de complicat și dincolo de sfera acestei introductive. Multe dintre aceste soluții încearcă să facă, în termeni simpli, să reducă complexitatea rețelei prin instruirea acesteia “comprima” datele.
Pentru a face acest lucru, rețeaua învață să extragă un număr mai mic de caracteristici de identificare a intrării, devenind astfel mai eficient în calculele sale. De fapt, rețeaua face generalizări și abstractizări, mult în același mod în care oamenii învață.
După această învățare, rețeaua poate împrăștia noduri și conexiuni pe care le consideră mai puțin importante. Acest lucru face rețeaua mai eficientă și învățarea devine mai ușoară.
Aplicații pentru rețele neuronale
Astfel, rețelele neuronale simulează modul în care creierul învață prin utilizarea mai multor noduri - intrări, ascunse și ieșiri - și sunt capabili să învețe atât în situații supravegheate, cât și nesupravegheate. Plasele complexe pot abstracționa și generaliza, făcându-le mai eficiente și mai capabile să învețe.
Ce putem folosi aceste sisteme fascinante pentru?
Teoretic, putem folosi rețele neuronale pentru aproape orice. Probabil că le-ați folosit fără să le dați seama. Ele sunt foarte frecvente în vorbire și recunoaștere vizuală, de exemplu, deoarece pot învăța să aleagă trăsături specifice care au sunete sau imagini în comun.
Deci, atunci când întrebați Siri 8 lucruri pe care probabil nu le-ați realizat Siri ar putea face 8 lucruri pe care probabil nu le-ați realizat Siri ar putea face Siri a devenit una dintre caracteristicile iPhone definitorii, dar pentru mulți oameni, nu este întotdeauna cel mai util. În timp ce o parte din acest lucru se datorează limitărilor de recunoaștere a vocii, ciudățenia de a utiliza ... Citeste mai mult în cazul în care cea mai apropiată stație de benzină este, iPhone-ul dvs. vă pune discurs printr-o rețea neuronale pentru a afla ce spuneți. Poate există o altă rețea neuronală care învață să prezică tipurile de lucruri pe care probabil ți le cereți.
Autovehiculele cu autovehicule pot utiliza rețele neuronale pentru prelucrarea datelor vizuale, respectând regulile rutiere și evitând coliziunile. Roboții de toate tipurile pot beneficia de rețele neuronale care îi ajută să învețe să-și îndeplinească eficient sarcinile. Computerele pot învăța să joace jocuri ca șahul, du-te și Atari clasice. Dacă ați vorbit vreodată cu un chatbot, există șansa să utilizați o rețea neurală pentru a oferi răspunsuri adecvate.
căutarea pe internet poate beneficia foarte mult de rețelele neuronale, deoarece modelul de procesare paralelă foarte eficientă poate genera rapid o mulțime de date. De asemenea, o rețea neurală vă poate învăța obiceiurile pentru a vă personaliza rezultatele căutării sau pentru a anticipa ceea ce veți căuta în viitorul apropiat. Acest model de predicție ar fi în mod evident foarte valoros pentru marketerii (și oricine altcineva care trebuie să prezică comportamentul uman complex).
Recunoașterea imaginilor, recunoașterea optică a caracterelor Cele mai bune 5 instrumente OCR pentru extragerea textului din imagini Cele mai bune 5 instrumente OCR pentru extragerea textului din imagini Când aveți înțelesuri de hârtie, cum obțineți tot textul imprimat transformat în ceva ce va fi un program digital capabil să recunoască și să indexeze? Păstrați aproape un software OCR bun. Citește mai mult, predicția pieței de valori, identificarea rutelor, prelucrarea datelor, analiza costurilor medicale, prognoza vânzărilor, jocul video AI ... posibilitățile sunt aproape nesfârșite. Abilitatea rețelelor neuronale de a învăța modele, de a generaliza și de a prezice cu succes comportamentul le face valoroase în nenumărate situații.
Viitorul rețelelor neuronale
Rețelele neuronale au avansat de la modele foarte simple la simulări de învățare foarte complexe. Sunt în telefoanele noastre, în tabletele noastre și sunt difuzate prin multe dintre serviciile web pe care le folosim. Există multe alte sisteme de învățare a mașinilor acolo.
Dar rețelele neuronale, din cauza asemănării lor (într-un mod foarte simplificat) cu creierul uman, sunt unele dintre cele mai fascinante. Pe măsură ce continuăm să dezvoltăm și să perfecționăm modelele, nu putem spune ce vor fi capabili.
Știți despre utilizarea interesantă a rețelelor neuronale? Aveți experiență cu voi înșivă? Ce crezi că e interesant în această tehnologie? Împărtășiți-vă gândurile în comentariile de mai jos!
Explorați mai multe despre: Futurology, Rețele neuronale, Tehnologie.