Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Fier
  • O nouă teorie dezvăluie secretul modului în care funcționează rețelele neuronale. Limitările învățării profunde și viitorului

O nouă teorie dezvăluie secretul modului în care funcționează rețelele neuronale. Limitările învățării profunde și viitorului

Cum a devenit un discurs într-o conferință o senzație în lumea inteligenței artificiale? Natalie Wolchower de la WIRED a raportat despre o descoperire care ar putea duce la indicii despre modul în care funcționează rețelele de învățare profundă.

Deși algoritmii cunoscuți sub numele de „rețele neuronale profunde” au învățat să conducă mașini, să învingă campionii de jocuri video și Go, să picteze imagini și să facă descoperiri științifice, și-au derutat creatorii pentru că nimeni nu se aștepta ca algoritmii de învățare profundă să funcționeze atât de bine. La urma urmei, aceste sisteme s-au bazat pe o idee extrem de vagă a arhitecturii creierului (a cărei muncă nici nu o înțelege nimeni).

Ca și creierul, o rețea neuronală profundă are straturi de neuroni, doar artificiali, adică fragmente memoria calculatorului. Când un neuron se declanșează, acesta trimite semnale neuronilor săi asociați din alt strat. În timpul învățării profunde, conexiunile din rețea sunt consolidate sau slăbite, astfel încât sistemul să poată transmite mai bine un semnal de la date externe (de exemplu, o fotografie a unui câine) către straturi de neuroni asociate cu conceptele de nivel înalt dorite, de exemplu, "câine". După ce o rețea neuronală profundă a învățat din mii de mostre de fotografii ale câinilor, va putea recunoaște câinii în fotografii la fel ca oamenii. Saltul magic de la cazuri specifice la concepte generale este ceea ce dă rețelelor neuronale puterea lor, deoarece stă la baza gândirii umane, creativității și a altor abilități numite colectiv „inteligență”. Experții nu știau ce a permis rețelelor de învățare profundă să se generalizeze și în ce măsură această percepție a realității este similară cu creierul uman.

În luna iulie, a apărut pe YouTube o înregistrare a unui discurs la o conferință de la Berlin, care sugerează un posibil răspuns. În raportul său Naftali Tishbi , un om de știință și neuroștiință la Universitatea Ebraică din Ierusalim, a prezentat dovezi în sprijin noua teorie, explicând învățarea profundă. Tishby crede că rețelele neuronale profunde învață printr-un „bloc de informare”, o procedură el și colegii săi. descris în 1999. Ideea este că rețeaua neuronală scapă de datele și detaliile de intrare inutile, „împingând” informații prin blocaj și lăsând doar pe cele mai potrivite pentru definiție generală semne.Experimente pe calculator Tishby și studentul său Ravid Schwartz-Ziv au arătat cum se produce această procedură în timpul învățării profunde.

Aceste descoperiri au entuziasmat comunitatea AI. „Cred că ideea blocajului ar putea fi foarte importantă în cercetările viitoare rețele neuronale”, a spus Alex Alemi de la Google Research, care a făcut-o deja dezvoltat noi metode de aproximare pentru explorarea teoriei pe rețele neuronale mai mari. Blocajul poate acționa „nu doar ca un instrument teoretic pentru înțelegerea modului în care funcționează rețelele neuronale, ci și ca un instrument pentru crearea de noi obiective și structuri pentru rețelele neuronale”, a spus Alemi.

Unii cercetători se îndoiesc că această teorie explică pe deplin succesul învățării profunde, dar Kyle Cranmer de la Universitatea din New York, care folosește învățarea automată pentru a studia coliziunile de particule la Large Hadron Collider, spune că „acesta pare să fie adevărat”.

Geoffrey Hinton, un pionier în învățarea profundă, i-a scris o scrisoare lui Tishby după ce i-a urmărit discursul. "Este foarte interesant. Va trebui să-l mai ascult de zece mii de ori pentru a-l înțelege cu adevărat, dar este rar în zilele noastre să ascult un spectacol cu ​​o idee cu adevărat originală care ar putea fi răspunsul la un mare mister.”

Potrivit lui Tishby, care consideră acest principiu fundamental pentru orice învățare, acest răspuns mult așteptat înseamnă că „cel mai parte principalăînvăţarea înseamnă uitare.”

Gâtul de sticlă

Tishby a început să se gândească la blocajul informației atunci când alți cercetători au început să lucreze cu rețele neuronale profunde, deși niciunul dintre concepte nu avea încă un nume. În anii 1980, Tishby se gândea la cât de bine își recunosc oamenii vorbirea reciprocă, ceea ce era o problemă în studiul inteligenței artificiale la acea vreme. Tishby și-a dat seama că miezul problemei era o chestiune de relevanță – care sunt cele mai semnificative trăsături ale unui cuvânt rostit și cum le separăm de variabile precum accentele, dicția și intonația? Ce semnale alegem din marea de date de realitate?

„Această idee a relevanței informațiilor a fost menționată de multe ori, dar nu a fost niciodată articulată corespunzător”, a spus Tishby într-un interviu. „Timp de mulți ani, oamenii au crezut că teoria informației este inadecvată pentru a se gândi la relevanță, iar aceste concepții greșite se întorc la Shannon însuși.”

Claude Shannon, creatorul teoriei informației, a lansat într-un fel studiul informației în anii 1940, permițând ca informațiile să fie privite ca o categorie abstractă, zerouri și unii cu semnificație pur matematică. După cum spune Tishby, Shannon a acceptat opinia că „informația nu are nimic de-a face cu semantica”. Dar Tishby crede că nu este așa. Folosind teoria informației, „puteți defini „relevanța” într-un mod riguros”.

Imaginați-vă că X este un set complex de date, cum ar fi pixelii dintr-o fotografie a unui câine, iar Y este o variabilă simplă reprezentată de acele date, cum ar fi cuvântul „câine”. Puteți capta toate informațiile „relevante” despre X în Y comprimând X cât de mult puteți, fără a pierde capacitatea de a prezice Y. În lucrarea lor din 1999, Tishby și coautorii Fernando Pereira (acum la Google) și William Bialek ( acum la Universitatea Princeton) a formulat această presupunere ca o problemă de optimizare matematică. A fost o idee fundamentală fără aplicare practică.

„M-am gândit la asta în diferite contexte în ultimii treizeci de ani”, spune Tishby. „Sunt norocos că rețelele neuronale profunde au devenit atât de importante.”

Ochi pe fețele oamenilor

Deși conceptul de rețele neuronale profunde există de zeci de ani, performanța lor în sarcinile de recunoaștere a vorbirii și a imaginilor a crescut la începutul anilor 2010 datorită schemelor de antrenament îmbunătățite și procesoarelor de computer mai puternice. Tishby a devenit conștient de legătura potențială dintre această îmbunătățire și principiul său de blocaj în 2014, după ce a citit articole fizicienii David Schwab și Pankaj Mehta.

Ei au aflat că un algoritm inventat de Hinton numit „rețea de credință profundă” funcționează ca renormalizarea, o tehnică folosită în fizică pentru a obține ideea generala O sistem fizic conform detaliilor sale. Când Schwab și Mehta au aplicat rețeaua de credință profundă la un model de magnet în „punctul critic” al acestuia, unde sistemul este fractal la orice scară, au descoperit că rețeaua a folosit automat o tehnică asemănătoare renormalizării pentru a calcula starea modelului. . Acesta a fost un semn surprinzător că „extracția caracteristicilor relevante în contextul fizicii statistice și extracția caracteristicilor în contextul învățării profunde nu se numesc la fel, ci sunt același lucru”, după cum a spus biofizicianul. Ilya Nemenman.

Singura problemă este că lumea reală nu este fractală. „Lumea naturală nu este urechi pe urechi pe urechi, este ochi pe fețe pe oameni”, a spus Cranmer. „Deci nu aș spune că [procedura de renormalizare] este motivul pentru care rețelele neuronale funcționează bine cu imagini.” Dar Tishby, care la acea vreme urma chimioterapie pentru cancerul pancreatic, și-a dat seama că în spatele tuturor se afla o idee mai largă. „Gândirea la știință și la rolul vechilor mele idei a fost o parte importantă a vindecării mele”, a spus el.

În 2015, Tishbi și elevul său Noga Zaslavsky asumat că învățarea profundă este o procedură de blocare a informațiilor care elimină datele inutile, reținând în același timp informații despre subiectul pe care îl reprezintă datele. Noi experimente cu rețele neuronale profunde arată cum are loc procedura de blocaj. Într-un caz, cercetătorii au folosit rețele mici care puteau fi antrenate să eticheteze datele primite cu unu sau zero („câine” sau „nu câine”) și au creat 282 de conexiuni neuronale. semnale aleatorii. Apoi au urmărit ce s-a întâmplat când rețelele au început să se antreneze pe 3.000 de seturi de date.

Algoritmul de bază utilizat în majoritatea procedurilor de învățare profundă pentru a regla modul în care conexiunile neuronale răspund la date se numește „coborâre a gradientului stocastic”. De fiecare dată când rețeaua primește date, semnalul trece prin straturi de neuroni artificiali. Când semnalul ajunge în stratul superior, modelul final poate fi comparat cu eticheta corectă pentru imagine - 1 sau 0, „câine” sau „nu câine”. Orice diferențe între acest model și răspunsul corect sunt „propagate înapoi” prin straturi, ca un profesor care corectează un examen, algoritmul întărind sau slăbește fiecare conexiune pentru a îmbunătăți rețeaua pentru a produce semnalul de ieșire corect. Pe măsură ce antrenamentul progresează, modelele comune în datele de antrenament se reflectă în puterea conexiunilor, iar rețeaua devine expertă în etichetarea corectă a datelor, recunoașterea unui câine, a unui cuvânt sau a unei unități.

În experimentele lor, Tishby și Schwartz-Ziv au urmărit câte informații stoca fiecare strat al unei rețele neuronale profunde despre datele de intrare și ce informații stoca fiecare despre eticheta de ieșire. Oamenii de știință au descoperit că rețelele converg treptat către un blocaj teoretic al informației: limita teoretica, obținut în lucrarea originală de Tishby, Pereira și Bialek. Limita reprezintă absolutul cel mai bun rezultat, pe care sistemul le poate obține la extragerea informațiilor relevante. La această limită, sistemul comprimă datele de intrare cât mai strâns posibil, fără a sacrifica capacitatea de a prezice cu precizie categoria lor.

Tishby și Schwartz-Ziv au făcut descoperirea interesantă că învățarea profundă are loc în două faze: o scurtă fază de „ajustare” în care rețeaua învață să eticheteze datele de antrenament și o fază lungă de „compresie” în care rețeaua devine mai bună la generalizare, care se măsoară prin performanţă.reţele în etichetarea noilor date de testare.

Când o rețea neuronală își ajustează conexiunile pentru coborârea gradientului stocastic, la început numărul de biți pe care îi stochează în legătură cu intrarea rămâne aproximativ constant sau crește ușor pe măsură ce conexiunile sunt reglate pentru a codifica modele în intrare și rețeaua obține rezultate bune la etichetarea acesteia. Unii experți au comparat această etapă cu memorarea.

Apoi, învățarea trece în faza de compresie. Rețeaua începe să comprime informații despre datele de intrare, urmărind doar cele mai importante caracteristici care se corelează cu eticheta de ieșire. Acest lucru se întâmplă deoarece în fiecare iterație de coborâre a gradientului apar corelații aleatorii, spunând rețelei să facă lucruri diferite și să facă conexiuni mai puternice sau mai slabe. Această randomizare este o compresie a reprezentării sistemului a datelor de intrare. De exemplu, unele fotografii pot prezenta câini acasă, în timp ce altele nu. Atunci când rețeaua analizează aceste fotografii, poate „uita” corelația dintre case și câini din unele fotografii, deși alte fotografii rezistă. Înțelegerea de către sistem a conceptelor generale se formează prin uitarea anumitor caracteristici. De fapt, experimentele au arătat că capacitatea de generalizare a unei rețele neuronale devine mai bună în timpul fazei de compresie. (O rețea neuronală profundă antrenată pe fotografii cu câini poate fi testată pe alte fotografii, cu sau fără câini.)

Rămâne de văzut dacă blocajul informațional guvernează toate modurile de învățare profundă sau dacă există și alte metode de generalizare în afară de compresie. Unii experți în inteligență artificială consideră ideile lui Tishby drept unele dintre cele mai importante descoperiri teoretice recente despre învățarea profundă. Andrew Sachs, cercetător AI și neuroștiință la Universitatea Harvard, a observat că unele rețele neuronale mari nu necesită o fază lungă de compresie pentru a se generaliza bine. În schimb, cercetătorii programează ceva numit oprire timpurie, care scurtează timpul de antrenament pentru a împiedica rețeaua să codifice prea multe corelații.

Tishby spune că modelele de rețea analizate de Sachs și colegii săi diferă de arhitectura rețelelor neuronale standard, dar teoria blocajului informațional explică performanța lor mai bine decât alte metode. Întrebările despre existența unui blocaj în rețelele neuronale mai mari sunt parțial abordate în experimentele recente ale lui Tishby și Schwartz-Ziv, în care aceștia antrenează rețele neuronale mult mai mari cu 330.000 de conexiuni pentru a recunoaște cifrele scrise de mână în baza de date MNIST cu 60.000 de imagini, care este o binecunoscut benchmark pentru evaluarea performanței algoritmilor de învățare profundă. Oamenii de știință au văzut aceeași convergență a rețelelor; au observat, de asemenea, două faze distincte de învățare profundă, separate printr-o tranziție și mai bruscă decât în rețele mici. „Acum sunt complet convins că acesta este un fenomen general”, a spus Tishby.

Oameni și mașini

Misterul modului în care creierul cernește semnalele din simțurile noastre și le ridică la nivelul de conștientizare a generat mult interes în rândul primilor cercetători în inteligența artificială care sperau să recreeze procesul de învățare al creierului. În cea mai mare parte, ei au abandonat deja această cale a progresului tehnologic și au început să sporească productivitatea, mai degrabă decât să urmărească plauzibilitatea biologică. Cu toate acestea, pe măsură ce mașinile de gândire realizează fapte din ce în ce mai mari, ridicând chiar temeri că AI ar putea deveni într-o zi o amenințare existențială, mulți speră că aceste studii vor dezvălui idei generale despre învățare și inteligență.

Brenden Lake, care studiază diferențele și asemănările dintre învățarea umană și cea automată, a spus că descoperirile lui Tishby reprezintă „ pas important la deschiderea cutiei negre a rețelelor neuronale”, dar el a subliniat că creierul este o cutie neagră mult mai complexă. Creierul nostru adult, care are câteva sute de trilioane de conexiuni între 86 de miliarde de neuroni, utilizează probabil o serie de trucuri pentru a îmbunătăți generalizarea dincolo de modelul de bază și procedurile de învățare prin recunoaștere a sunetului care apar în timpul copilăriei și care pot semăna cu învățarea profundă în multe privințe.

De exemplu, Lake a spus că cele două faze ale învățării profunde nu sunt similare cu modul în care copiii învață scrisorile scrise de mână, pe care le studiază. Copiii nu au nevoie să vadă mii de exemple și să-și comprima înțelegerea literelor pe o perioadă lungă de timp pentru a învăța alte exemple din acele litere și pentru a le scrie ei înșiși. Ei pot învăța acest lucru dintr-un exemplu. Modelele lui Lake și ale colegilor săi sugerează că creierul poate deconstrui scrisoare nouă ca o serie de „bătăi” – constructe mentale preexistente – care permite ca conceptul de scriere să fie legat de cunoștințele anterioare. „În loc să mă gândesc la imaginea unei litere ca un model de pixeli și să învețe conceptul ca o reprezentare a acelor caracteristici”, ca în algoritmii standard de învățare automată, Lake a explicat: „Încerc să construiesc un model cauzal simplu al scrisoare”, adică creați o comandă rapidă către generalizare.

Astfel de idei despre creier ar putea fi utile comunității AI, facilitând schimbul de informații între aceste zone. Tishby crede că teoria sa se va dovedi utilă în ambele discipline, chiar dacă ia o formă mai generală în învățarea umană. Teoria ne permite deja să înțelegem ce tipuri de probleme pot rezolva rețelele neuronale reale și artificiale. "Asta da descriere completa probleme care pot fi studiate”, spune Tishby. Acestea sunt „probleme în care pot elimina zgomotul de la intrare fără a-mi afecta capacitatea de clasificare. Acestea sunt probleme ale vederii naturale și ale recunoașterii vorbirii. Acestea sunt exact tipurile de probleme pe care creierul nostru le poate gestiona.”

Cu toate acestea, atât rețelele neuronale reale, cât și cele artificiale nu pot face față problemelor în care fiecare detaliu este important, iar o diferență în minute poate strica întregul rezultat. De exemplu, mulți oameni nu pot înmulți rapid două numere mari în capul lor. „Avem o gamă largă probleme similare, probleme logice care sunt foarte sensibile la modificările unei variabile. Clasificare, probleme discrete, probleme criptografice. Nu cred că învățarea profundă mă va ajuta vreodată să sparg codurile criptografice.”

Generalizarea - un blocaj informațional - înseamnă renunțarea la unele detalii. Nu este potrivit pentru calcule mentale complexe, dar nu sunt sarcina principală a creierului. Căutăm chipuri cunoscute într-o mulțime, ordine în haos, semnale vizibile într-o lume zgomotoasă.

Inteligența artificială, rețelele neuronale, învățarea automată - ce înseamnă de fapt toate aceste concepte populare în prezent? Pentru majoritatea oamenilor neinițiați, care sunt și eu, au părut întotdeauna ceva fantastic, dar de fapt esența lor se află la suprafață. Am de multă vreme ideea să scriu într-un limbaj simplu despre rețelele neuronale artificiale. Aflați singuri și spuneți-le altora ce este această tehnologie, cum funcționează, luați în considerare istoria și perspectivele ei. În acest articol, am încercat să nu intru în buruieni, ci să vorbesc simplu și popular despre această direcție promițătoare în lumea înaltei tehnologii.

Inteligența artificială, rețelele neuronale, învățarea automată - ce înseamnă de fapt toate aceste concepte populare în prezent? Pentru majoritatea oamenilor neinițiați, care sunt și eu, au părut întotdeauna ceva fantastic, dar de fapt esența lor se află la suprafață. De mult am avut ideea de a scrie într-un limbaj simplu despre rețelele neuronale artificiale. Aflați singuri și spuneți-le altora ce este această tehnologie, cum funcționează, luați în considerare istoria și perspectivele ei. În acest articol, am încercat să nu intru în buruieni, ci să vorbesc simplu și popular despre această direcție promițătoare în lumea înaltei tehnologii.

Puțină istorie

Pentru prima dată, conceptul de rețele neuronale artificiale (ANN) a apărut în încercarea de a simula procesele creierului. Prima descoperire majoră în acest domeniu poate fi considerată crearea modelului rețelei neuronale McCulloch-Pitts în 1943. Oamenii de știință au dezvoltat pentru prima dată un model de neuron artificial. Ei au propus, de asemenea, proiectarea unei rețele din aceste elemente de realizat operatii logice. Dar, cel mai important, oamenii de știință au demonstrat asta rețea similară capabil să învețe.

Următorul pas important a fost dezvoltarea de către Donald Hebb a primului algoritm pentru calcularea unui ANN în 1949, care a devenit fundamental pentru câteva decenii ulterioare. În 1958, Frank Rosenblatt a dezvoltat parceptronul, un sistem care imită procesele creierului. La un moment dat, tehnologia nu avea analogi și este încă fundamentală în rețelele neuronale. În 1986, aproape simultan, independent unul de celălalt, oamenii de știință americani și sovietici au îmbunătățit semnificativ metoda fundamentală de formare a unui perceptron multistrat. În 2007, rețelele neuronale au cunoscut o renaștere. Informaticianul britanic Geoffrey Hinton a dezvoltat pentru prima dată un algoritm de învățare profundă pentru rețelele neuronale cu mai multe straturi, care acum este, de exemplu, folosit pentru a conduce mașinile autonome.

Pe scurt despre principalul lucru

În sensul general al cuvântului, rețelele neuronale sunt modele matematice, lucrând pe principiul rețelelor de celule nervoase dintr-un corp animal. ANN-urile pot fi implementate atât în ​​soluții programabile, cât și în soluții hardware. Pentru a face lucrurile mai ușor de înțeles, un neuron poate fi considerat ca o celulă care are multe găuri de intrare și o găuri de ieșire. Modul în care semnalele multiple de intrare sunt formate într-un semnal de ieșire este determinat de algoritmul de calcul. Valorile eficiente sunt furnizate fiecărui neuron de intrare, care sunt apoi distribuite de-a lungul conexiunilor interneuronice (sinopse). Sinapsele au un parametru - greutatea, datorită căruia informațiile de intrare se modifică atunci când se deplasează de la un neuron la altul. Cel mai simplu mod de a imagina principiul de funcționare al rețelelor neuronale este amestecarea culorilor. Neuronul albastru, verde și roșu au greutăți diferite. Informația neuronului a cărui greutate este mai mare va fi dominantă în următorul neuron.

Rețeaua neuronală în sine este un sistem de mulți astfel de neuroni (procesoare). Individual, aceste procesoare sunt destul de simple (mult mai simple decât procesorul unui computer personal), dar atunci când sunt combinate în sistem mare neuronii sunt capabili să îndeplinească sarcini foarte complexe.

În funcție de domeniul de aplicare, o rețea neuronală poate fi interpretată în moduri diferite. De exemplu, din punctul de vedere al învățării automate, o ANN este o metodă de recunoaștere a modelelor. Din punct de vedere matematic, aceasta este o problemă cu mai mulți parametri. Din punctul de vedere al ciberneticii - un model de control adaptiv al roboticii. Pentru inteligența artificială, ANN este o componentă fundamentală pentru modelarea inteligenței naturale folosind algoritmi de calcul.

Principalul avantaj al rețelelor neuronale față de algoritmii de calcul convenționali este capacitatea lor de a învăța. În sensul general al cuvântului, învățarea înseamnă găsirea coeficienților de cuplare corecti între neuroni, precum și rezumarea datelor și identificarea dependențelor complexe între semnalele de intrare și de ieșire. De fapt, antrenamentul cu succes al unei rețele neuronale înseamnă că sistemul va fi capabil să identifice rezultatul corect pe baza datelor care nu se află în setul de antrenament.

Situatia actuala

Și oricât de promițătoare ar fi această tehnologie, ANN-urile sunt încă foarte departe de capacitățile creierului și gândirii umane. Cu toate acestea, rețelele neuronale sunt deja utilizate în multe domenii ale activității umane. Până acum, ei nu sunt capabili să ia decizii extrem de inteligente, dar sunt capabili să înlocuiască o persoană acolo unde a fost nevoie anterior. Dintre numeroasele domenii de aplicare ale ANN putem remarca: crearea de sisteme de autoînvățare Procese de producție, vehicule fără pilot, sisteme de recunoaștere a imaginii, sisteme inteligente de securitate, robotică, sisteme de monitorizare a calității, interfețe de interacțiune vocală, sisteme de analiză și multe altele. Această utilizare pe scară largă a rețelelor neuronale se datorează, printre altele, apariției diferitelor metode de accelerare a antrenamentului ANN.

Astăzi, piața rețelelor neuronale este uriașă - miliarde și miliarde de dolari. După cum arată practica, majoritatea tehnologiilor de rețele neuronale din întreaga lume diferă puțin unele de altele. Cu toate acestea, utilizarea rețelelor neuronale este o activitate foarte costisitoare, care în majoritatea cazurilor poate fi permisă doar de companii mari. Dezvoltarea, antrenamentul și testarea rețelelor neuronale necesită o putere mare de calcul și este evident că aceasta este disponibilă din abundență. jucători majori pe piata IT. Printre principalele companii care conduc dezvoltări în acest domeniu se numără divizia Google DeepMind, divizia Microsoft Research, IBM, Facebook și Baidu.

Desigur, toate acestea sunt bune: rețelele neuronale se dezvoltă, piața crește, dar până acum sarcina principală inca nerezolvata. Omenirea nu a reușit să creeze o tehnologie care să se apropie nici măcar de capacitățile creierului uman. Să ne uităm la principalele diferențe dintre creierul uman și rețelele neuronale artificiale.

De ce rețelele neuronale sunt încă departe de creierul uman?

Cea mai importantă diferență, care schimbă radical principiul și eficiența sistemului, este unelte diferite semnale în rețelele neuronale artificiale și într-o rețea biologică de neuroni. Cert este că într-un ANN neuronii transmit valori care sunt valori reale, adică numere. ÎN creier uman Se transmit impulsuri cu o amplitudine fixă, iar aceste impulsuri sunt aproape instantanee. Acest lucru duce la o serie de avantaje ale rețelei umane de neuroni.

În primul rând, liniile de comunicare din creier sunt mult mai eficiente și mai economice decât cele din ANN. În al doilea rând, circuitul de impulsuri asigură ușurința de implementare a tehnologiei: este suficient să folosiți circuite analogice în loc de mecanisme de calcul complexe. În cele din urmă, rețelele cu impulsuri sunt imune la interferențe audio. Numerele reale sunt supuse zgomotului, ceea ce crește probabilitatea erorilor.

Concluzie

Desigur, în ultimul deceniu a avut loc un adevărat boom în dezvoltarea rețelelor neuronale. Acest lucru se datorează în primul rând faptului că procesul de instruire ANN a devenit mult mai rapid și mai ușor. Așa-numitele rețele neuronale „pre-antrenate” au început, de asemenea, să fie dezvoltate în mod activ, ceea ce poate accelera semnificativ procesul de introducere a tehnologiei. Și dacă este prea devreme să spunem dacă rețelele neuronale vor putea într-o zi să reproducă pe deplin capacitățile creierului uman, probabilitatea ca în următorul deceniu ANN-urile să poată înlocui oamenii într-un sfert din profesiile existente devine din ce în ce mai adevărată. .

Pentru cei care vor să afle mai multe

  • Marele Război Neural: Ce face cu adevărat Google
  • Cum ne-ar putea schimba viitorul computerele cognitive

Astăzi, un grafic este una dintre cele mai acceptabile modalități de a descrie modelele create într-un sistem de învățare automată. Aceste grafice de calcul sunt compuse din vârfuri de neuroni conectate prin margini de sinapsă care descriu conexiunile dintre vârfuri.

Spre deosebire de un GPU scalar central sau vectorial, un IPU este tip nou procesoarele concepute pentru învățarea automată vă permit să construiți astfel de grafice. Un computer care este conceput pentru a gestiona grafice - masina perfecta pentru modele de grafice computaționale generate de învățarea automată.

Una dintre cele mai ușoare moduri de a descrie procesul de inteligență a mașinii este vizualizarea acestuia. Echipa de dezvoltare Graphcore a creat o colecție de astfel de imagini care sunt afișate pe IPU. S-a bazat pe software Plop, care vizualizează munca inteligenței artificiale. Cercetătorii acestei companii au descoperit și de ce rețelele profunde necesită atât de multă memorie și ce soluții există pentru a rezolva problema.

Poplar include un compilator grafic care a fost construit de la zero pentru a traduce operațiunile standard de învățare automată în cod de aplicație IPU foarte optimizat. Vă permite să colectați aceste grafice împreună folosind același principiu în care sunt colectate POPNN-urile. Biblioteca conține un set tipuri variate vârfuri pentru primitive generalizate.

Graficele sunt paradigma pe care se bazează toate programele. În Poplar, graficele vă permit să definiți un proces de calcul, în care vârfurile efectuează operații și muchiile descriu relația dintre ele. De exemplu, dacă doriți să adăugați două numere împreună, puteți defini un vârf cu două intrări (numerele pe care doriți să le adăugați), câteva calcule (o funcție pentru a adăuga două numere) și o ieșire (rezultatul).

De obicei, operațiile cu vârfuri sunt mult mai complexe decât în ​​exemplul descris mai sus. Ele sunt adesea determinate programe mici, numite codeleturi (nume de cod). Abstracția grafică este atractivă deoarece nu face ipoteze cu privire la structura calculului și descompune calculul în componente pe care IPU le poate folosi pentru a opera.

Plopul folosește această abstractizare simplă pentru a construi grafice foarte mari care sunt reprezentate ca imagini. Generarea software-ului a graficului înseamnă că îl putem adapta la calculele specifice necesare pentru a asigura cel mai mult utilizare eficientă resursele UIP.

Compilatorul traduce operațiuni standard, utilizat în sistemele de învățare automată, în codul aplicației IPU foarte optimizat. Compilatorul de grafice creează o imagine intermediară a graficului de calcul, care este implementată pe unul sau mai multe dispozitive IPU. Compilatorul poate afișa acest grafic de calcul, astfel încât o aplicație scrisă la nivelul cadrului rețelei neuronale afișează o imagine a graficului de calcul care rulează pe IPU.


Graficul întregului ciclu de antrenament AlexNet în direcții înainte și înapoi

Compilatorul de grafică Poplar a transformat descrierea AlexNet într-un grafic de calcul de 18,7 milioane de vârfuri și 115,8 milioane de muchii. Gruparea clar vizibilă este rezultatul unei comunicări puternice între procesele din fiecare strat al rețelei, cu o comunicare mai ușoară între straturi.

Un alt exemplu este o rețea simplă complet conectată, instruită pe MNIST - apelare simplă date pentru viziunea computerizată, un fel de „Bună ziua, lume” în învățarea automată. Rețea simplă explorarea acestui set de date ajută la înțelegerea graficelor care sunt conduse de aplicațiile Poplar. Prin integrarea bibliotecilor de grafice cu cadre precum TensorFlow, compania oferă unul dintre moduri simple pentru utilizarea IPU-urilor în aplicații de învățare automată.

După ce graficul a fost construit folosind compilatorul, acesta trebuie să fie executat. Acest lucru este posibil folosind Graph Engine. Exemplul ResNet-50 demonstrează funcționarea acestuia.


Graficul ResNet-50

Arhitectura ResNet-50 permite crearea de rețele profunde din partiții repetate. Procesorul trebuie să definească aceste secțiuni doar o dată și să le apeleze din nou. De exemplu, clusterul de nivel conv4 este executat de șase ori, dar mapat o singură dată pe grafic. Imaginea demonstrează, de asemenea, varietatea de forme ale straturilor convoluționale, deoarece fiecare are un grafic construit conform unei forme naturale de calcul.

Motorul creează și gestionează execuția unui model de învățare automată folosind un grafic generat de compilator. Odată implementat, Graph Engine monitorizează și răspunde la IPU-urile sau dispozitivele utilizate de aplicații.

Imaginea ResNet-50 arată întregul model. La acest nivel este dificil să identifici conexiunile între vârfurile individuale, așa că merită să te uiți la imaginile mărite. Mai jos sunt câteva exemple de secțiuni din straturile rețelei neuronale.

De ce rețelele profunde au nevoie de atât de multă memorie?

Amprentele mari de memorie sunt una dintre cele mai mari provocări ale rețelelor neuronale profunde. Cercetătorii încearcă să combată lățimea de bandă limitată a dispozitivelor DRAM care trebuie utilizate sisteme moderne pentru a stoca un număr mare de greutăți și activări într-o rețea neuronală profundă.

Arhitecturile au fost proiectate folosind cipuri de procesor concepute pentru procesare secvențială și optimizare DRAM pentru memorie de înaltă densitate. Interfața dintre aceste două dispozitive este un blocaj care introduce limitări ale lățimii de bandă și adaugă o suprasarcină semnificativă în consumul de energie.

Deși nu avem încă o înțelegere completă a creierului uman și a modului în care funcționează, se înțelege în general că nu există un mare depozit de memorie separat. Se crede că funcția memoriei pe termen lung și pe termen scurt din creierul uman este încorporată în structura neuronilor + sinapselor. Chiar și organisme simple precum viermii, cu o structură cerebrală neuronală de puțin peste 300 de neuroni, au o anumită funcție de memorie.

Construirea memoriei în procesoarele convenționale este o modalitate de a ocoli problema blocajele memorie, deblocând o lățime de bandă enormă la un consum mult mai mic de energie. Cu toate acestea, memoria pe cip este costisitoare și nu este concepută pentru cantitățile cu adevărat mari de memorie care sunt atașate la procesoarele și GPU-urile utilizate în prezent pentru antrenarea și implementarea rețelelor neuronale profunde.

Așadar, este util să ne uităm la modul în care memoria este utilizată astăzi în procesoare și sisteme de deep learning bazate pe GPU și să vă întrebați de ce au nevoie de o astfel de memorie. dispozitive mari stocarea memoriei când creierul uman funcționează bine fără ele?

Rețelele neuronale au nevoie de memorie pentru a stoca datele de intrare, greutățile și funcțiile de activare pe măsură ce intrarea se propagă prin rețea. În învățare, activarea pe intrare trebuie menținută până când poate fi utilizată pentru a calcula erorile în gradienții de ieșire.

De exemplu, o rețea ResNet cu 50 de straturi are aproximativ 26 de milioane de parametri de greutate și calculează 16 milioane de activări înainte. Dacă utilizați un float pe 32 de biți pentru a stoca fiecare greutate și activare, va necesita aproximativ 168 MB de spațiu. Folosind mai mult valoare mica precizie de a stoca aceste greutăți și activări, am putea înjumătăți sau chiar de patru ori această cerință de stocare.

O problemă majoră de memorie apare din faptul că GPU-urile se bazează pe date reprezentate ca vectori denși. Prin urmare, ei pot folosi un singur fir de instrucțiuni (SIMD) pentru a obține o densitate mare de calcul. CPU folosește unități vectoriale similare pentru calcul de înaltă performanță.

GPU-urile au o lățime de sinapsă de 1024 de biți, așa că folosesc date în virgulă mobilă pe 32 de biți, așa că adesea le împart în mini-lot paralel de 32 de eșantioane pentru a crea vectori de date pe 1024 de biți. Această abordare a paralelismului vectorial crește numărul de activări de 32 de ori și nevoia de stocare locală cu o capacitate de peste 2 GB.

GPU-urile și alte mașini proiectate pentru algebra matriceală sunt, de asemenea, supuse încărcării de memorie din cauza greutăților sau activărilor rețelei neuronale. GPU-urile nu pot efectua eficient micile convoluții utilizate în rețelele neuronale profunde. Prin urmare, o transformare numită „reducere” este utilizată pentru a converti aceste convoluții în multiplicari matrice-matrice (GEMM), pe care GPU-urile le pot gestiona eficient.

De asemenea, este necesară o memorie suplimentară pentru a stoca datele de intrare, valorile temporare și instrucțiunile programului. Măsurarea utilizării memoriei la antrenamentul ResNet-50 pe un GPU high-end a arătat că necesită mai mult de 7,5 GB de DRAM local.

Unii ar putea crede că o precizie de calcul mai mică ar putea reduce cantitatea de memorie necesară, dar nu este cazul. Prin comutarea valorilor datelor la jumătate de precizie pentru greutăți și activări, veți umple doar jumătate din lățimea vectorului SIMD, irosind jumătate din resursele de calcul disponibile. Pentru a compensa acest lucru, atunci când treceți de la precizie completă la precizie jumătate pe GPU, va trebui apoi să dubleți dimensiunea mini-lotului pentru a forța suficient paralelism de date pentru a utiliza toate calculele disponibile. Astfel, trecerea la greutăți de precizie mai mică și activări pe GPU necesită încă mai mult de 7,5 GB de memorie dinamică cu acces liber.

Cu atât de multe date de stocat, este pur și simplu imposibil să le potriviți pe toate într-un GPU. Fiecare strat de rețea neuronală convoluțională trebuie să stocheze starea DRAM-ului extern, să încarce următorul strat de rețea și apoi să încarce datele în sistem. Drept urmare, interfața este deja limitată de lățimea de bandă și latența memoriei. memorie externa suferă de o povară suplimentară repornire constantă greutăți și stocarea și preluarea funcțiilor de activare. Acest lucru încetinește semnificativ timpul de antrenament și crește semnificativ consumul de energie.

Există mai multe modalități de a rezolva această problemă. În primul rând, operațiuni precum funcțiile de activare pot fi efectuate „in loc”, permițând ca datele de intrare să fie rescrise direct la ieșire. Prin urmare, memorie existenta poate fi refolosit. În al doilea rând, oportunitatea pentru reutilizare memoria poate fi obținută prin analiza dependenței de date dintre operațiunile din rețea și alocarea aceleiași memorie operațiunilor care nu o folosesc în acel moment.

A doua abordare este deosebit de eficientă atunci când întreaga rețea neuronală poate fi analizată în timpul compilării pentru a crea o memorie fixă ​​alocată, deoarece supraîncărcarea de gestionare a memoriei este redusă la aproape zero. S-a dovedit că combinația acestor metode poate reduce utilizarea memoriei unei rețele neuronale de două până la trei ori.
O a treia abordare semnificativă a fost descoperită recent de echipa Baidu Deep Speech. Au aplicat diverse metode economisirea memoriei pentru a obține o reducere de 16 ori a consumului de memorie al funcțiilor de activare, ceea ce le-a permis să antreneze rețele cu 100 de straturi. Anterior, cu aceeași cantitate de memorie, puteau antrena rețele cu nouă straturi.

Combinarea memoriei și a resurselor de procesare într-un singur dispozitiv are un potențial semnificativ de a îmbunătăți performanța și eficiența rețelelor neuronale convoluționale, precum și a altor forme de învățare automată. Pot fi făcute compromisuri între resursele de memorie și de calcul pentru a obține un echilibru între caracteristici și performanță în sistem.

Rețelele neuronale și modelele de cunoștințe din alte metode de învățare automată pot fi considerate grafice matematice. Există o cantitate imensă de paralelism concentrat în aceste grafice. Un procesor paralel conceput pentru a exploata paralelismul în grafice nu se bazează pe mini-loturi și poate reduce semnificativ cantitatea de stocare locală necesară.

Rezultatele cercetărilor actuale au arătat că toate aceste metode pot îmbunătăți semnificativ performanța rețelelor neuronale. GPU-urile și procesoarele moderne au o memorie la bord foarte limitată, doar câțiva megaocteți în total. Noile arhitecturi de procesor concepute special pentru învățarea automată echilibrează memoria și calculul pe cip, oferind îmbunătățiri semnificative de performanță și eficiență față de tehnologiile actuale. procesoare centraleși acceleratoare grafice.

Din articol veți afla ce este învățarea profundă. Articolul conține și multe resurse pe care le puteți folosi pentru a stăpâni acest domeniu.

ÎN lumea modernă De la asistență medicală până la producție, învățarea profundă este folosită peste tot. Companiile apelează la această tehnologie pentru a rezolva probleme complexe, cum ar fi recunoașterea vorbirii și a obiectelor, traducerea automată și așa mai departe.

Una dintre cele mai impresionante realizări din acest an a fost AlphaGo învingându-l pe cel mai bun jucător Go din lume. Pe lângă Go, aparatele au învins oameni în alte jocuri: dame, șah, reversi și Jeopardy.

Câștigarea unui joc de societate poate să nu pară aplicabilă pentru rezolvarea problemelor din viața reală, dar acest lucru nu este deloc adevărat. Go a fost conceput pentru a fi imbatabil prin inteligența artificială. Pentru a face acest lucru, ar trebui să învețe un lucru important pentru acest joc - intuiția umană. Acum, cu ajutorul acestei dezvoltări, este posibil să rezolvi multe probleme care înainte erau inaccesibile unui computer.

Evident, învățarea profundă este încă departe de a fi perfectă, dar este deja aproape de a fi utilă comercial. De exemplu, aceste mașini autonome. Companii cunoscute precum Google, Tesla și Uber încearcă deja să introducă mașini autonome pe străzile orașului.

Ford prezice o creștere semnificativă a cotei de auto-conducere Vehicul până în 2021. Guvernul SUA a reușit, de asemenea, să dezvolte un set de reguli de siguranță pentru ei.

Ce este învățarea profundă?

Pentru a răspunde la această întrebare, trebuie să înțelegeți cum interacționează cu învățarea automată, rețelele neuronale și inteligența artificială. Pentru a face acest lucru, folosim metoda de vizualizare folosind cercuri concentrice:

Cercul exterior este inteligența artificială în general (de exemplu, computerele). Puțin mai departe este învățarea automată, iar chiar în centru sunt învățarea profundă și rețelele neuronale artificiale.

În linii mari, învățarea profundă este pur și simplu un nume mai convenabil pentru rețelele neuronale artificiale. „Adanc” în această expresie se referă la gradul de complexitate (adâncime) al rețelei neuronale, care poate fi adesea destul de superficial.

Creatorii primei rețele neuronale s-au inspirat din structura cortexului cerebral. Un nivel de bază al rețeaua, un perceptron, este în esență un analog matematic al unui neuron biologic. Și, ca și în creier, perceptronii care se intersectează unul cu celălalt pot apărea într-o rețea neuronală.

Primul strat al rețelei neuronale se numește strat de intrare. Fiecare nod din acest strat primește o anumită informație ca intrare și o transmite nodurilor ulterioare din alte straturi. Cel mai adesea, nu există conexiuni între nodurile unui strat, iar ultimul nod al lanțului emite rezultatul rețelei neuronale.

Nodurile din mijloc sunt numite noduri ascunse deoarece nu au conexiuni cu lumea exterioară, cum ar fi nodurile de ieșire și de intrare. Ele sunt apelate numai atunci când straturile anterioare sunt activate.

Învățarea profundă este în esență o tehnică de antrenament a rețelei neuronale care utilizează multe straturi pentru a rezolva probleme complexe (cum ar fi recunoașterea vorbirii) folosind modele. În anii optzeci, majoritatea rețelelor neuronale erau cu un singur strat din cauza cost ridicatși limitări ale datelor.

Dacă luăm în considerare învățarea automată ca o ramură sau o variantă a inteligenței artificiale, atunci învățarea profundă este un tip specializat de astfel de ramură.

Învățarea automată folosește inteligența computerizată care nu oferă imediat răspunsul. În schimb, codul va rula pe datele de testare și, pe baza corectitudinii rezultatelor sale, își va ajusta progresul. Pentru succesul acestui proces, se folosesc de obicei o varietate de tehnici, software special și informatică, care descriu metode statice și algebră liniară.

Metode de învățare profundă

Metodele de învățare profundă sunt împărțite în două tipuri principale:

  • Antrenament tutorat
  • Învățare nesupravegheată

Prima metodă folosește date special selectate pentru a obține rezultatul dorit. Necesită destul de multă intervenție umană, deoarece datele trebuie selectate manual. Cu toate acestea, este util pentru clasificare și regresie.

Imaginați-vă că sunteți proprietarul unei companii și doriți să determinați impactul bonusurilor asupra duratei contractelor subordonaților dvs. Cu date precolectate, o metodă de învățare supravegheată ar fi indispensabilă și foarte eficientă.

A doua metodă nu implică răspunsuri pregătite în prealabil și algoritmi de lucru. Acesta își propune să identifice modele ascunse în date. Este folosit de obicei pentru sarcini de grupare și asociere, cum ar fi gruparea clienților după comportament. „Și ei aleg cu asta” pe Amazon este o variantă a sarcinii de asociere.

În timp ce învățarea supravegheată este adesea destul de convenabilă, este mai mult varianta dificila inca mai bine. Învățarea profundă s-a dovedit a fi o rețea neuronală care nu necesită supraveghere umană.

Importanța învățării profunde

Calculatoarele au folosit mult timp tehnologia pentru a recunoaște anumite caracteristici dintr-o imagine. Cu toate acestea, rezultatele au fost departe de a avea succes. Viziunea computerizată a avut un impact incredibil asupra învățării profunde. Aceste două tehnici sunt cele care acest moment rezolva toate problemele de recunoaștere.

În special, Facebook a reușit să recunoască fețele din fotografii folosind învățarea profundă. Aceasta nu este o simplă îmbunătățire a tehnologiei, ci un punct de cotitură care schimbă toate convingerile anterioare: „O persoană poate determina cu o probabilitate de 97,53% dacă aceeași persoană este prezentată în două fotografii diferite. Programul dezvoltat de echipa Facebook poate face acest lucru cu o probabilitate de 97,25%, indiferent de iluminare sau dacă persoana se uită direct la cameră sau este întoarsă lateral spre aceasta.”

Recunoașterea vorbirii a suferit, de asemenea, modificări semnificative. Echipa de la Baidu, unul dintre cele mai importante motoare de căutare din China, a dezvoltat un sistem de recunoaștere a vorbirii care a reușit să depășească oamenii în viteza și acuratețea scrierii textului în limba engleză. dispozitive mobile. În engleză și mandarină.

Ceea ce este deosebit de interesant este că scrierea unei rețele neuronale comune pentru două limbi complet diferite nu a necesitat multă muncă: „Din punct de vedere istoric, oamenii vedeau chineza și engleza ca două limbi complet diferite. limbi diferite, așa că fiecare dintre ei a necesitat o abordare diferită”, spune Andrew Ng, șeful centrului de cercetare Baidu. „Algoritmii de învățare sunt acum atât de generalizați încât puteți Doarînvăța."

Google folosește învățarea profundă pentru a gestiona energia în centrele de date ale companiei. Au fost capabili să reducă costurile cu resursele de răcire cu 40%. Aceasta reprezintă o îmbunătățire cu aproximativ 15% a eficienței energetice și economii de milioane de dolari.

Microservicii de învățare profundă

Aici scurtă recenzie servicii legate de deep learning.

Tagger ilustrație. Îmbunătățit de Illustration2Vec, acest serviciu vă permite să marcați imaginile cu un rating de „protejat”, „îndoielnic”, „periculos”, „drept de autor” sau „general” pentru a înțelege în prealabil conținutul imaginii.

  • Suplimentul Theano de la Google
  • Editabil în Python și Numpy
  • Adesea folosit pentru a rezolva o serie specifică de probleme
  • Nu scop general. Concentrați-vă pe viziunea artificială
  • Editat în C++
  • Există o interfață în Python

Cursuri online de deep learning

Google și Udacity s-au unit pentru a crea un curs gratuit de deep learning, parte a cursului Udacity Machine Learning. Acest program este condus de dezvoltatori experimentați care doresc să dezvolte domeniul învățării automate și, în special, al învățării profunde.

O altă opțiune populară este cursul de învățare automată de la Andrew Ng, susținut de Coursera și Stanford.

  1. Învățare automată - Stanford de Andrew Ng pe Coursera (2010-2014)
  2. Învățare automată - Caltech de Yaser Abu-Mostafa (2012-2014)
  3. Învățare automată - Carnegie Mellon de Tom Mitchell (primăvara 2011)
  4. Rețele neuronale pentru învățarea automată – Geoffrey Hinton despre Coursera (2012)
  5. Clasa rețele neuronale– Hugo Larochelle de la Universitatea din Sherbrooke (2013)

Cărți despre învățarea profundă

În timp ce resursele din secțiunea anterioară se bazează pe o bază de cunoștințe destul de extinsă, Grokking Deep Learning, dimpotrivă, se adresează începătorilor. După cum spun autorii: „Dacă ați terminat clasa a XI-a și aveți o înțelegere aproximativă a modului de a scrie Python, vă vom învăța învățarea profundă.”

O alternativă populară la această carte este o carte cu titlul explicativ Deep Learning Book. Este deosebit de bun pentru că acoperă toată matematica de care veți avea nevoie pentru a intra în acest domeniu.

  1. „Deep Learning” de Yoshua Bengio, Ian Goodfellow și Aaron Courville (2015)
  2. „Rețele neuronale și învățarea profundă” de Michael Nielsen (2014)
  3. „Învățare profundă” de la Microsoft Research (2013)
  4. „Tutoriale de învățare profundă” de la Laboratorul LISA, Universitatea din Montreal (2015)
  5. „neuraltalk” de Andrej Karpathy
  6. „Introducere în algoritmii genetici”
  7. „Abordare modernă a inteligenței artificiale”
  8. „Prezentare generală asupra învățării profunde și a rețelelor neuronale”

Videoclipuri și prelegeri

Deep Learning Simplified este un canal YouTube minunat. Iată primul lor videoclip:

Și, în parte, acest ghid este destinat oricărei persoane care este interesată de învățarea automată, dar nu știe de unde să înceapă. Conținutul articolelor este destinat unui public larg și va fi destul de superficial. Dar îi pasă cuiva cu adevărat? Cu cât mai mulți oameni devin interesați de învățarea automată, cu atât mai bine.

Recunoașterea obiectelor folosind deep learning

Poate că ați văzut deja acest celebru comic xkcd. Gluma este că orice copil de 3 ani poate recunoaște o fotografie a unei păsări, dar pentru a obține un computer pentru a face asta a fost nevoie de cei mai buni informaticieni de peste 50 de ani. În ultimii câțiva ani, am găsit în sfârșit o abordare bună a obiectului. recunoașterea folosind rețele neuronale convoluționale profunde. Sună ca o grămadă de cuvinte inventate dintr-un roman științifico-fantastic William Gibson, dar va avea sens odată ce le vom lua unul câte unul. Așa că hai să o facem - scrie un program care recunoaște păsările!

Să începem simplu

Înainte de a învăța cum să recunoaștem imagini cu păsări, să învățăm cum să recunoaștem ceva mult mai simplu - numărul scris de mână „8”.

Cele mai bune articole pe această temă