Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Fier
  • Cu cuvinte simple despre complex: ce sunt rețelele neuronale? Introducere în învățarea profundă.

Cu cuvinte simple despre complex: ce sunt rețelele neuronale? Introducere în învățarea profundă.

Și, în parte, acest ghid este pentru oricine este interesat de învățarea automată, dar nu știe de unde să înceapă. Conținutul articolelor este conceput pentru un public larg și va fi destul de superficial. Dar îi pasă cuiva? Cu cât sunt mai mulți oameni interesați de învățarea automată, cu atât mai bine.

Recunoașterea obiectelor cu învățare profundă

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 face acest lucru un computer a luat peste 50 de ani celor mai buni informaticieni. În ultimii câțiva ani, am găsit în sfârșit o abordare bună a recunoașterii obiectelor. folosind rețele neuronale convoluționale profunde. Sună ca o grămadă de cuvinte inventate dintr-un roman fantasy de William Gibson, dar totul va deveni clar când 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 imaginile păsărilor, să învățăm cum să recunoaștem ceva mult mai simplu - un număr scris de mână „8”.

Ce este învățarea profundă? 3 martie 2016

Acum vorbesc despre tehnologiile la modă ale învățării profunde, de parcă ar fi mană din rai. Dar vorbitorii înțeleg ce este cu adevărat? Dar acest concept nu are o definiție formală și combină o mulțime de tehnologii. În această postare, vreau să explic cât mai popular și, de fapt, ce se află în spatele acestui termen, de ce este atât de popular și ce ne oferă aceste tehnologii.


Pe scurt, acest termen nou (învățare profundă) este despre cum să asamblați o abstractizare (reprezentare) mai complexă și mai profundă din unele abstracțiuni simple. în ciuda faptului că și cele mai simple abstracții ar trebui să fie colectate de computerul însuși, și nu de o persoană. Acestea. Nu este vorba doar despre învățare, ci despre meta-învățare. Figurat vorbind, computerul însuși trebuie să învețe cum să-l învețe cel mai bine. Și, de fapt, termenul „adânc” este exact ceea ce înseamnă. Aproape întotdeauna, acest termen este aplicat rețelelor neuronale artificiale, unde este folosit mai mult de un strat ascuns, prin urmare, formal, „adânc” înseamnă și o arhitectură mai profundă a rețelei neuronale.

Aici, pe diapozitivul în curs de dezvoltare, puteți vedea clar cât de diferită învățarea profundă de cea convențională. Repet unic pentru învățarea profundă este faptul că mașina în sine găsește caracteristici(trăsăturile cheie ale ceva care sunt cel mai ușor de a distinge o clasă de obiecte de alta) și aceste caracteristici sunt structurate ierarhic: cele mai complexe sunt formate din altele mai simple.. Mai jos vom explora acest lucru cu un exemplu.

Să ne uităm la un exemplu de problemă de recunoaștere a imaginii: înainte, cum - au introdus o imagine uriașă (1024 × 768 - aproximativ 800.000 de valori numerice) într-o rețea neuronală convențională cu un singur strat și au privit computerul murind încet, sufocându-se din cauza lipsei de memorie și incapacitatea de a înțelege ce pixeli sunt importanți de recunoscut și care nu. Ca să nu mai vorbim de eficacitatea acestei metode. Iată arhitectura unei astfel de rețele neuronale convenționale (de mică adâncime).

Apoi, cu toate acestea, au ascultat cum creierul evidențiază semnele și o face strict ierarhic și, de asemenea, au decis să extragă o structură ierarhică din imagini. Pentru a face acest lucru, a fost necesar să adăugați mai multe straturi ascunse (straturi care se află între intrare și ieșire; aproximativ vorbind, pași de transformare a informațiilor) în rețeaua neuronală. Deși au decis să facă acest lucru aproape imediat, deoarece neuronii au fost inventați, dar apoi rețelele cu un singur strat ascuns au fost antrenate cu succes. Acestea. în principiu, rețelele profunde există de aproximativ atâta timp cât rețelele obișnuite, pur și simplu nu le-am putut antrena. Ce s-a schimbat?

În 2006, mai mulți cercetători independenți au rezolvat această problemă deodată (în plus, capacitățile hardware s-au dezvoltat deja suficient, au apărut plăci video suficient de puternice). Acești cercetători sunt: ​​Jeffrey Hinton (și colegul său Ruslan Salakhutidinov) cu tehnica pre-antrenării fiecărui strat al unei rețele neuronale cu o mașină Boltzmann limitată (iertați-mă pentru acești termeni...), Jan Lekun cu rețele neuronale convoluționale și Yoshuaia Bengio cu autoencodere în cascadă. Primii doi au fost recrutați imediat de Google și, respectiv, de Facebook. Iată două prelegeri: una - Hinton, celălalt - Lyakuna unde explică ce este învățarea profundă. Nimeni nu vă poate spune mai bine decât ei. Inca una grozava lectura Schmidhuber despre dezvoltarea învățării profunde, de asemenea, unul dintre pilonii acestei științe. Și Hinton are, de asemenea, un curs grozav despre cursul despre neuroni.

De ce sunt capabile acum rețelele neuronale profunde? Ei sunt capabili să recunoască și să descrie obiecte, puteți spune „înțelege” ce este. Este vorba despre înțelegerea sensului.

Vizionați acest videoclip în care recunoașteți ceea ce vede camera în timp real.

După cum am spus, tehnologiile de învățare profundă sunt un întreg grup de tehnologii și soluții. Am enumerat deja câteva dintre ele în paragraful de mai sus, un alt exemplu sunt rețelele recurente, care sunt folosite doar în videoclipul de mai sus pentru a descrie ceea ce vede rețeaua. Dar cel mai popular reprezentant al acestei clase de tehnologii sunt încă rețelele neuronale convoluționale ale LaCun. Ele sunt construite prin analogie cu principiile activității cortexului vizual al creierului pisicii, în care au fost descoperite așa-numitele celule simple, reacționând la linii drepte în unghiuri diferite și complexe - a căror reacție este asociată cu activarea unui anumit set de celule simple. Deși, ca să fiu sincer, Lyakun însuși nu era orientat către biologie, a rezolvat o problemă specifică (vezi prelegerile sale), și apoi s-a întâmplat.

Pur și simplu, rețelele convoluționale sunt rețele în care principalul element structural al învățării este un grup (combinație) de neuroni (de obicei un pătrat de 3 × 3,10 × 10 etc.), și nu unul. Și la fiecare nivel al rețelei sunt instruite zeci de astfel de grupuri. Rețeaua găsește combinații de neuroni care maximizează informațiile despre imagine. La primul nivel, rețeaua extrage cele mai elementare, structural simple elemente ale imaginii - puteți spune blocurile de construcție: margini, linii, segmente, contraste. Mai înalt - combinații deja stabile de elemente ale primului nivel și așa mai departe în lanț. Vreau să subliniez încă o dată caracteristica principală a învățării profunde: rețelele înseși formează aceste elemente și decid care dintre ele sunt mai importante și care nu. Acest lucru este important, deoarece în domeniul învățării automate, crearea de caracteristici este cheia, iar acum trecem la etapa în care computerul însuși învață să creeze și să selecteze caracteristici. Aparatul în sine alocă o ierarhie de caracteristici informative.

Deci, în procesul de învățare (vizionarea a sute de imagini), rețeaua convoluțională formează o ierarhie de caracteristici de diferite niveluri de adâncime. Aici, la primul nivel, ele pot evidenția, de exemplu, astfel de elemente (reflectare contrast, unghi, chenar etc.).


La al doilea nivel, va fi deja un element din elementele primului nivel. Pe a treia - din a doua. Trebuie înțeles că această imagine este doar o demonstrație. Acum, în uz industrial, astfel de rețele au de la 10 la 30 de straturi (nivele).

După ce o astfel de rețea a fost instruită, o putem folosi pentru clasificare. După ce au dat o imagine ca intrare, grupuri de neuroni ai primului strat trec prin imagine, activând în acele locuri în care există un element de imagine corespunzător unui element specific. Acestea. această rețea analizează imaginea în părți - mai întâi în liniuțe, linii, unghiuri, apoi părți mai complexe și, în final, ajunge la concluzia că o imagine din acest tip de combinație de elemente de bază este o față.

Mai multe despre rețelele convoluționale -

Am aflat despre tendințele de afaceri la o conferință de amploare lângă Kiev. Sâmbăta a fost plină de intuiții, deoarece au luat noi cunoștințe și cunoștințe, inspirate de melancolia de a petrece o oră. La conferință, au existat 4 fluxuri de rapoarte suplimentare pentru lideri de afaceri, manageri de top, marketeri, vânzări, academicieni și alți specialiști. Unul dintre vorbitori a fost ministrul Infrastructurii Volodymyr Omelyan, care a vorbit despre dezvoltarea galeriei, renovarea drumurilor și aeroporturilor.

O zi bună tuturor, dragi colegi iOS, cu siguranță fiecare dintre voi a lucrat cu rețeaua și a analizat date din JSON. Pentru acest proces, există o grămadă de biblioteci, tot felul de instrumente pe care le puteți folosi. Unele dintre ele sunt complexe, iar altele sunt simple. Eu însumi, de foarte mult timp, am analizat sincer JSON cu mâinile mele, nefiind încrederea acestui proces unor biblioteci terțe, iar acest lucru avea avantajele sale.

Pe 9 septembrie 2014, în cadrul următoarei prezentări, Apple și-a prezentat propriul sistem de plată mobilă - Apple Pay.

Cu Apple Pay, utilizatorii iPhone 6 și iPhone 6+, precum și cele mai recente versiuni de Apple Watch, pot face achiziții online, se pot bucura de beneficii suplimentare ale Apple Pay pentru aplicațiile mobile și pot efectua plăți folosind tehnologia NFC (Near Field Communication). Pentru a autoriza plăți, sunt utilizate tehnologiile Touch ID sau Face ID.

Tehnologiile nu stau pe loc, iar procesele de dezvoltare se deplasează odată cu ele. Dacă companiile anterioare lucrau după modelul „Waterfall”, acum, de exemplu, toată lumea se străduiește să implementeze „Scrum”. Evoluție are loc și în furnizarea de servicii de dezvoltare software. Anterior, companiile ofereau clienților o dezvoltare de calitate în limita bugetului, oprindu-se aici, dar acum se străduiesc să ofere beneficii maxime pentru client și afacerea acestuia prin oferirea expertizei lor.

În ultimii ani, au apărut atât de multe fonturi bune, inclusiv gratuite, încât am decis să scriem o continuare a noastră pentru designeri.

Fiecare designer are un set de fonturi preferate cu care să lucreze, cu care este obișnuit să lucreze și care reflectă stilul său grafic. Designerii spun „Nu există niciodată prea multe fonturi bune”, dar acum vă puteți imagina cu siguranță o situație în care acest set este format doar din fonturi gratuite.

Cât de des se află managerii de proiect între o piatră și un loc greu atunci când încearcă să găsească un echilibru între toate cerințele și termenele limită ale clientului și sănătatea mintală a întregii echipe? Câte nuanțe trebuie luate în considerare pentru a exista pace și ordine de ambele părți ale răspunderii? Cum să înțelegi dacă ești un manager bun sau trebuie să te atingă urgent pe toate fronturile? Cum să determinați în ce aspecte ești tu, ca prim-ministru, care rămâne în urmă și unde ești bun și inteligent? Despre asta a fost exact despre următoarea conferință Code’n’Coffee.

Tehnologia de recunoaștere a imaginilor devine din ce în ce mai activă în viața noastră de zi cu zi. Companiile și instituțiile îl folosesc pentru orice, de la securitate la cercetarea satisfacției clienților. Investițiile în produse bazate pe această caracteristică sunt de așteptat să crească la 39 de miliarde de dolari până în 2021. Iată doar câteva exemple despre cum este utilizată recunoașterea modelelor în diferite domenii.

(Publicațiile Manning).

Articolul este destinat persoanelor care au deja o experiență semnificativă în domeniul învățării profunde (de exemplu, celor care au citit deja capitolele 1-8 din această carte). Presupune multe cunoștințe.

Învățare profundă: Vedere geometrică

Cel mai uimitor lucru despre învățarea profundă este cât de simplu este. În urmă cu zece ani, nimeni nu și-ar fi putut imagina ce rezultate uimitoare am obține în problemele de percepție a mașinilor folosind modele parametrice simple antrenate cu coborâre în gradient. Acum se dovedește că tot ce ai nevoie este suficient de mare modele parametrice instruite pe suficient de mare numărul de mostre. După cum a spus odată Feynman despre univers: Nu este complicat, sunt doar multe».

În învățarea profundă, totul este un vector, adică. punctîn spațiu geometric. Datele de intrare ale modelului (acestea pot fi text, imagini etc.) și țintele sale sunt mai întâi „vectorizate”, adică traduse într-un spațiu vectorial inițial ca intrare și un spațiu vectorial țintă ca ieșire. Fiecare strat dintr-un model de învățare profundă efectuează o transformare geometrică simplă asupra datelor care circulă prin el. Împreună, lanțul de straturi model creează o transformare geometrică foarte complexă, împărțită în câteva simple. Această transformare complexă încearcă să transforme spațiul de date de intrare în spațiul țintă, pentru fiecare punct. Parametrii de transformare sunt determinați de greutățile stratului, care sunt actualizate constant în funcție de performanța actuală a modelului. Caracteristica cheie a unei transformări geometrice este că trebuie să fie diferentiabil, adică ar trebui să putem afla parametrii săi prin coborâre în gradient. Intuitiv, aceasta înseamnă că transformarea geometrică trebuie să fie netedă și continuă - o constrângere importantă.

Întregul proces de aplicare a acestei transformări geometrice complexe asupra datelor de intrare poate fi vizualizat în 3D prin reprezentarea unei persoane care încearcă să deruleze o minge de hârtie: o minge de hârtie mototolită este o varietate de date de intrare cu care modelul începe să lucreze. Fiecare mișcare a unei persoane cu o minge de hârtie este ca o simplă transformare geometrică efectuată de un strat. Secvența completă a gesturilor de desfășurare este o transformare complexă a întregului model. Modelele de învățare profundă sunt mașini matematice pentru desfășurarea unei game complicate de date cu dimensiuni mari.

Aceasta este magia învățării profunde: transformați valoarea în vectori, în spații geometrice și apoi învățați treptat transformări geometrice complexe care transformă un spațiu în altul. Tot ce este nevoie sunt spații de o dimensiune suficient de mare pentru a transmite întreaga gamă de relații găsite în datele originale.

Limitele învățării profunde

Setul de probleme care pot fi rezolvate cu această strategie simplă este aproape nesfârșit. Și totuși, multe dintre ele sunt încă în afara tehnicilor actuale de învățare profundă – chiar și cu cantități mari de date adnotate manual. Să presupunem, de exemplu, că puteți colecta un set de date de sute de mii – chiar milioane – de descrieri în limba engleză ale caracteristicilor software scrise de managerii de produs, precum și un an de bază corespunzător dezvoltat de echipele de inginerie pentru a îndeplini aceste cerințe. Chiar și cu aceste date, nu puteți antrena un model de învățare profundă doar citind descrierea produsului și generând baza de cod adecvată. Acesta este doar unul dintre multele exemple. În general, orice necesită argumentare, raționament - cum ar fi programarea sau aplicarea metodei științifice, planificarea pe termen lung, manipularea datelor în stil algoritmic - depășește capacitățile modelelor de învățare profundă, indiferent de câte date le aruncați. Chiar și antrenarea unei rețele neuronale pentru un algoritm de sortare este o sarcină incredibil de dificilă.

Motivul este că modelul de învățare profundă este „doar” un lanț de transformări geometrice simple, continue, care transformă un spațiu vectorial în altul. Tot ce poate face este să transforme un set de date X într-un alt set Y, atâta timp cât există o posibilă transformare continuă de la X la Y care poate fi învățată și disponibilitatea set dens de mostre Transformări X:Y ca date de antrenament. Deci, deși un model de învățare profundă poate fi considerat un fel de program, dar majoritatea programelor nu pot fi exprimate ca modele de deep learning- pentru majoritatea problemelor, fie nu există o rețea neuronală profundă de o dimensiune practic adecvată care să rezolve problema, fie dacă există, poate fi de neantrenat, adică transformarea geometrică corespunzătoare poate fi prea complexă sau nu există date adecvate pentru antrenamentul acesteia.

Extinderea tehnicilor existente de învățare profundă – adăugarea mai multor straturi și utilizarea mai multor date de antrenament – ​​poate atenua doar superficial unele dintre aceste probleme. Nu va rezolva problema fundamentală că modelele de învățare profundă sunt foarte limitate în ceea ce pot reprezenta și că majoritatea programelor nu pot fi exprimate ca o transformare geometrică continuă a unei varietăți de date.

Riscul antropomorfizării modelelor de învățare automată

Unul dintre riscurile foarte reale ale inteligenței artificiale moderne este interpretarea greșită a modului în care funcționează modelele de învățare profundă și exagerarea capacităților acestora. O caracteristică fundamentală a minții umane este „modelul psihicului uman”, tendința noastră de a proiecta obiective, credințe și cunoștințe asupra lucrurilor din jurul nostru. Desenarea unei fețe zâmbitoare pe o piatră ne face dintr-o dată „fericiți” – mental. Într-o aplicație de învățare profundă, aceasta înseamnă, de exemplu, că dacă putem antrena mai mult sau mai puțin cu succes un model pentru a genera descrieri textuale ale imaginilor, atunci avem tendința de a crede că modelul „înțelege” conținutul imaginilor, precum și descrierile generate. Suntem atunci foarte surprinși când, din cauza unei mici abateri de la setul de imagini prezentat în datele de antrenament, modelul începe să genereze descrieri absolut absurde.

În special, acest lucru este cel mai evident în „exemplele adverse”, adică eșantioanele de date de intrare în rețea de învățare profundă care sunt special selectate pentru a fi clasificate greșit. Știți deja că puteți face ascensiune în gradient în spațiul de date de intrare pentru a genera mostre care maximizează activarea, de exemplu, a unui anumit filtru de rețea neuronală convoluțională - aceasta este baza tehnicii de vizualizare pe care am tratat-o ​​în capitolul 5 (notă: Deep Learning with Python books) , la fel ca algoritmul Deep Dream din Capitolul 8. În mod similar, prin ascensiunea în gradient, se poate modifica ușor imaginea pentru a maximiza predicția de clasă pentru o clasă dată. Dacă facem o fotografie a unui panda și adăugăm un gradient „gibon”, putem face ca rețeaua neuronală să clasifice acest panda drept gibon. Aceasta mărturisește atât fragilitatea acestor modele, cât și diferența profundă dintre transformarea input-to-output pe care o ghidează și propria noastră percepție umană.

În general, modelele de învățare profundă nu înțeleg inputurile, cel puțin nu în sens uman. Propria noastră înțelegere a imaginilor, sunetelor, limbajului se bazează pe experiența noastră senzoriomotorie ca oameni - ca ființe materiale pământești. Modelele de învățare automată nu au acces la astfel de experiențe și, prin urmare, nu pot „înțelege” contribuțiile noastre într-un mod asemănător uman. Adnotând un număr mare de exemple de antrenament pentru modelele noastre, îi facem să învețe o transformare geometrică care aduce datele la conceptele umane pentru acel set special de exemple, dar această transformare este doar o schiță simplificată a modelului original al minții noastre, așa cum dezvoltat din experiența noastră ca agenți corporali - este ca o reflexie slabă într-o oglindă.

În calitate de practicant în învățarea automată, țineți întotdeauna cont de acest lucru și nu cădeți niciodată în capcana de a crede că rețelele neuronale înțeleg sarcina pe care o îndeplinesc - nu o fac, cel puțin nu în modul care are sens pentru noi. Ei au fost instruiți pentru o sarcină diferită, mult mai restrânsă decât cea pe care vrem să le învățăm: pur și simplu conversia mostrelor de antrenament de intrare în mostre de antrenament țintă, punct la punct. Arată-le orice este diferit de datele de antrenament și se vor rupe în cel mai absurd mod.

Generalizare locală vs. generalizare limită

Se pare că există diferențe fundamentale între transformarea geometrică directă de la intrare la ieșire pe care o fac modelele de învățare profundă și modul în care oamenii gândesc și învață. Nu este doar faptul că oamenii învață singuri din experiența lor corporală și nu prin procesarea unui set de mostre de antrenament. Pe lângă diferența dintre procesele de învățare, există diferențe fundamentale în natura reprezentărilor subiacente.

Oamenii sunt capabili de mult mai mult decât să transforme un stimul imediat într-un răspuns imediat, cum ar fi o rețea neuronală sau poate o insectă. Oamenii au în minte modele complexe, abstracte ale situației actuale, ale ei înșiși, ale altor oameni și pot folosi aceste modele pentru a prezice diverse viitoare posibile și pentru a efectua planificarea pe termen lung. Ei sunt capabili să pună cap la cap concepte binecunoscute pentru a reprezenta ceva ce nu au știut niciodată înainte - cum ar fi desenul unui cal în blugi, de exemplu, sau o imagine cu ceea ce ar face dacă ar câștiga la loterie. Abilitatea de a gândi ipotetic, de a ne extinde modelul de spațiu mental cu mult dincolo de ceea ce am experimentat direct, adică capacitatea de a face abstracțiiȘi raţionament poate caracteristica definitorie a cunoașterii umane. Eu numesc aceasta „generalizare extremă”: capacitatea de a se adapta la situații noi, neexperimentate până acum, cu foarte puține sau deloc date.

Acest lucru este în contrast puternic cu ceea ce fac rețelele de învățare profundă, ceea ce aș numi „generalizare locală”: transformarea intrărilor în ieșiri încetează rapid să aibă sens dacă noile intrări sunt chiar ușor diferite de ceea ce au întâlnit în timpul antrenamentului. Luați în considerare, de exemplu, problema de a învăța parametrii adecvați de lansare pentru ca o rachetă să aterizeze pe Lună. Dacă ar fi să utilizați o rețea neuronală pentru această sarcină, antrenând-o cu un profesor sau cu întărire, ar trebui să îi oferiți mii sau milioane de trasee de zbor, adică trebuie să emiteți set dens de exempleîn spațiul valorilor primite pentru a învăța cum să se transforme în mod fiabil din spațiul valorilor primite în spațiul valorilor ieșite. În schimb, oamenii pot folosi puterea abstracției pentru a crea modele fizice - știința rachetelor - și pot veni cu soluția exactă care va duce o rachetă pe Lună în doar câteva încercări. În același mod, dacă ați proiectat o rețea neuronală pentru a controla corpul uman și doriți ca acesta să învețe cum să treacă în siguranță prin oraș fără a fi lovit de o mașină, rețeaua trebuie să moară de multe mii de ori în diferite situații înainte de a se încheia. că mașinile sunt periculoase și eșuează.comportament adecvat pentru a le evita. Dacă este mutat într-un oraș nou, rețeaua va trebui să reînvețe mult din ceea ce știa. Pe de altă parte, oamenii sunt capabili să învețe comportamente sigure fără a mai muri vreodată, datorită puterii modelării abstracte a situațiilor ipotetice.

Deci, în ciuda progresului nostru în cunoașterea mașinilor, suntem încă foarte departe de IA la nivel uman: modelele noastre pot face doar generalizare locală, adaptându-se la situații noi care trebuie să fie foarte apropiate de datele din trecut, în timp ce mintea umană este capabilă generalizare finală adaptarea rapidă la situații complet noi sau planificarea în viitor.

concluzii

Iată ce trebuie să rețineți: singurul succes real al învățării profunde de până acum este capacitatea de a traduce spațiul X în spațiul Y folosind o transformare geometrică continuă atunci când există o mulțime de date adnotate umane. A face acest lucru bine este o schimbare a jocului pentru întreaga industrie, dar AI la nivel uman este încă departe.

Pentru a elimina unele dintre aceste limitări și a concura cu creierul uman, trebuie să ne îndepărtăm de conversia directă de la intrare la ieșire și să trecem la raţionamentȘi abstracții. Poate că o bază potrivită pentru modelarea abstractă a diferitelor situații și concepte ar putea fi programele de calculator. Am mai spus (notă: în Deep Learning with Python) că modelele de învățare automată pot fi definite ca „programe antrenabile”; momentan nu putem antrena decât un subset restrâns și specific al tuturor programelor posibile. Dar dacă am putea antrena fiecare program, modular și repetitiv? Să vedem cum putem ajunge acolo.

Viitorul învățării profunde

Având în vedere ceea ce știm despre modul în care funcționează rețelele de învățare profundă, limitările lor și starea actuală a cercetării științifice, putem prezice ce se va întâmpla pe termen mediu? Iată câteva dintre gândurile mele personale despre această problemă. Rețineți că nu am o sferă de cristal pentru predicții, așa că multe din ceea ce mă aștept s-ar putea să nu se împlinească. Aceasta este o speculație absolută. Împărtășesc aceste predicții nu pentru că mă aștept să se realizeze pe deplin în viitor, ci pentru că sunt interesante și aplicabile în prezent.

La un nivel înalt, iată principalele domenii pe care le văd promițătoare:

  • Modelele se vor apropia de programe de calculator de uz general construite pe baza unor primitive mult mai bogate decât straturile noastre diferențiabile actuale - așa că obținem raţionamentȘi abstracții, a cărui absență este o slăbiciune fundamentală a modelelor actuale.
  • Vor apărea noi forme de învățare care vor face acest lucru posibil - și vor permite modelelor să se îndepărteze de transformările pur și simplu diferențiabile.
  • Modelele vor necesita mai puțină contribuție a dezvoltatorului - nu ar trebui să fie treaba ta să modifici în mod constant butoanele.
  • Va exista mai multă reutilizare sistematică a caracteristicilor și arhitecturilor învățate; sisteme de meta-învățare bazate pe rutine reutilizabile și modulare.
În plus, rețineți că aceste considerații nu se aplică în mod specific învățării supravegheate, care este încă baza învățării automate - se aplică și oricărei forme de învățare automată, inclusiv învățării nesupravegheate, învățării autosupravegheate și învățării prin întărire. Nu contează fundamental de unde provin etichetele tale sau cum arată ciclul tău de învățare; aceste ramuri diferite ale învățării automate sunt doar fațete diferite ale aceluiași construct.

Așa că mergeți înainte.

Modele ca programe

După cum am observat mai devreme, o dezvoltare transformațională necesară, la care se poate aștepta în domeniul învățării automate, se îndepărtează de modelele care funcționează pur. recunoasterea formelorși numai capabil de generalizare locală, la modele capabile de abstracțiiȘi raţionament care poate ajunge generalizare finală. Toate programele actuale de inteligență artificială cu un nivel de bază de raționament sunt codificate de către programatori umani: de exemplu, programele care se bazează pe algoritmi de căutare, manipularea graficelor, logica formală. De exemplu, în programul DeepMind AlphaGo, cea mai mare parte a „inteligenței” de pe ecran este proiectată și codificată de către programatori experți (de exemplu, căutarea în arbore folosind metoda Monte Carlo); învăţarea asupra datelor noi are loc numai în submodule specializate - reţele de valori şi reţele de politici. Dar în viitor, astfel de sisteme AI ar putea fi pe deplin antrenate fără intervenția umană.

Cum să realizezi acest lucru? Să luăm un tip de rețea binecunoscut: RNN. Important este că RNN-urile au puțin mai puține limitări decât rețelele neuronale feedforward. Acest lucru se datorează faptului că RNN-urile sunt puțin mai mult decât simple transformări geometrice: sunt transformări geometrice care sunt efectuate continuu într-o buclă for. Timpul pentru bucla este stabilit de dezvoltator: este o presupunere de rețea încorporată. Desigur, RNN-urile sunt încă limitate în ceea ce pot reprezenta, în principal pentru că fiecare dintre pașii lor este încă o transformare geometrică diferențiabilă și din cauza modului în care trec informații pas cu pas prin puncte dintr-un spațiu geometric continu (vectori de stare). Acum imaginați-vă rețele neuronale care ar fi „creștere” cu primitive de programare în același mod ca pentru bucle - nu doar o singură buclă codificată for cu memorie geometrică, ci un set mare de primitive de programare pe care modelul le-ar putea accesa liber pentru a-și extinde. capabilități de procesare, cum ar fi ramuri, instrucțiuni while, creare de variabile, stocare pe disc pentru memorie pe termen lung, operatori de sortare, structuri avansate de date precum liste, grafice, tabele hash și multe altele. Spațiul de programe pe care o astfel de rețea îl poate reprezenta va fi mult mai larg decât îl pot exprima rețelele de deep learning existente, iar unele dintre aceste programe pot obține o putere de generalizare excelentă.

Într-un cuvânt, ne vom îndepărta de faptul că avem „inteligență algoritmică hard-coded” (software scris de mână) pe de o parte și „inteligență geometrică antrenată” (deep learning) pe de altă parte. În schimb, obținem un amestec de module algoritmice formale care oferă capacitatea raţionamentȘi abstracții, și module geometrice care oferă oportunități intuiția informală și recunoașterea modelelor. Întregul sistem va fi antrenat cu o implicare umană mică sau deloc.

O zonă conexă a AI care cred că ar putea face o mare diferență în viitorul apropiat este sinteza softwareîn special sinteza de software neuronal. Sinteza programelor constă în generarea automată de programe simple folosind un algoritm de căutare (poate o căutare genetică, ca în programarea genetică) pentru a explora un spațiu mare de programe posibile. Căutarea se oprește atunci când este găsit un program care îndeplinește specificațiile cerute, adesea furnizate ca un set de perechi intrare-ieșire. După cum puteți vedea, acest lucru este foarte asemănător cu învățarea automată: „datele de antrenament” sunt furnizate ca perechi intrare-ieșire, găsim un „program” care corespunde transformării intrărilor în ieșiri și este capabil să se generalizeze la noi intrări. Diferența este că, în loc să învățăm valorile parametrilor într-un program hard-coded (rețea neuronală), generăm sursă printr-un proces de căutare discret.

Cu siguranță mă aștept ca în următorii câțiva ani să fie din nou mult interes în acest domeniu. În special, mă aștept la pătrunderea reciprocă a domeniilor conexe ale învățării profunde și sintezei programelor, unde nu vom genera doar programe în limbaje de uz general, ci și unde vom genera rețele neuronale (fluxuri de procesare a datelor geometrice), augmentată un set bogat de primitive algoritmice, cum ar fi buclele for - și multe altele. Acest lucru ar trebui să fie mult mai convenabil și util decât generarea directă a codului sursă și va extinde foarte mult domeniul de aplicare al problemelor care pot fi rezolvate folosind învățarea automată - spațiul de programe pe care le putem genera automat, având în vedere datele de antrenament adecvate. Un amestec de IA simbolică și IA geometrică. RNN-urile moderne pot fi considerate strămoșul istoric al unor astfel de modele hibride algoritmico-geometrice.


Imagine: Un program antrenat se bazează simultan pe primitive geometrice (recunoașterea modelelor, intuiție) și primitive algoritmice (argumentare, căutare, memorie).

Dincolo de retropropagare și straturi diferențiabile

Dacă modelele de învățare automată devin mai mult ca programe, atunci cu greu vor mai fi diferențiabile - cu siguranță, aceste programe vor folosi în continuare straturi cu geometrie continuă ca subprograme, care vor rămâne diferențiabile, dar întregul model nu va fi așa. Ca urmare, utilizarea retropropagarii pentru a ajusta valorile greutății într-o rețea fixă, codificată, poate să nu continue să fie metoda preferată pentru antrenamentul modelelor în viitor - cel puțin să nu se limiteze doar la această metodă. Trebuie să ne dăm seama cum să antrenăm cel mai eficient sisteme nediferențiabile. Abordările actuale includ algoritmi genetici, „strategii evolutive”, anumite metode de învățare prin întărire, ADMM (metoda multiplicatorului Lagrange cu direcție variabilă). Desigur, coborârea gradientului nu mai merge nicăieri - informațiile despre gradient vor fi întotdeauna utile pentru optimizarea funcțiilor parametrice diferențiabile. Dar modelele noastre vor deveni cu siguranță din ce în ce mai ambițioase decât funcțiile parametrice diferențiabile, așa că dezvoltarea lor automată („antrenament” în „învățare automată”) va necesita mai mult decât propagarea inversă.

În plus, backpropagation are un cadru end-to-end, care este potrivit pentru învățarea transformărilor bune în lanț, dar este destul de ineficient din punct de vedere computațional, deoarece nu exploatează pe deplin modularitatea rețelelor profunde. Pentru a crește eficiența oricărui lucru, există o singură rețetă universală: introduceți modularitatea și ierarhia. Astfel, putem face retropropagarea în sine mai eficientă prin introducerea modulelor de învățare decuplate cu un fel de mecanism de sincronizare între ele, organizate într-o manieră ierarhică. Această strategie este parțial reflectată în lucrarea recentă a DeepMind privind „gradienții sintetici”. Mă aștept la mult, mult mai mult lucru în această direcție în viitorul apropiat.

Ne putem imagina un viitor în care modelele nediferențiabile la nivel global (dar cu părți diferențiabile) vor învăța - crește - folosind un proces de căutare eficient care nu aplică gradienți, în timp ce părțile diferențiabile vor învăța și mai repede folosind gradienți folosind unele versiuni de backpropagation mai eficiente.

Învățare automată automată

În viitorul arhitecturilor, modelele vor fi create mai degrabă prin instruire decât să fie scrise de mână de ingineri. Modelele obținute prin antrenament funcționează automat împreună cu un set mai bogat de primitive și modele de învățare automată asemănătoare programelor.

Acum, de cele mai multe ori, un dezvoltator de deep learning modifică la nesfârșit datele cu scripturi Python, apoi petrece mult timp modificând arhitectura și hiperparametrii rețelei de deep learning pentru a obține un model funcțional - sau chiar pentru a obține un model remarcabil, dacă Dezvoltatorul este atât de ambițios. Inutil să spun că aceasta nu este cea mai bună stare de lucruri. Dar AI poate ajuta și aici. Din păcate, partea de prelucrare și pregătire a datelor este dificil de automatizat, deoarece necesită adesea cunoașterea domeniului, precum și o înțelegere clară la nivel înalt a ceea ce dorește dezvoltatorul să obțină. Cu toate acestea, reglarea hiperparametrului este o procedură simplă de căutare, iar în acest caz știm deja ce dorește dezvoltatorul să obțină: aceasta este determinată de funcția de pierdere a rețelei neuronale care trebuie reglată. Acum a devenit o practică obișnuită să instalați sisteme AutoML de bază care se ocupă de majoritatea modificărilor setărilor modelului. Am instalat eu unul pentru a câștiga competițiile Kaggle.

La cel mai elementar nivel, un astfel de sistem ar ajusta pur și simplu numărul de straturi din stivă, ordinea acestora și numărul de elemente sau filtre din fiecare strat. Acest lucru se face de obicei folosind biblioteci precum Hyperopt, despre care am discutat în Capitolul 7 (notă: cărțile Deep Learning with Python). Dar poți să mergi mult mai departe și să încerci să înveți arhitectura adecvată de la zero, cu un set minim de restricții. Acest lucru este posibil cu învățare prin întărire, de exemplu, sau cu ajutorul algoritmilor genetici.

Un alt domeniu important de dezvoltare pentru AutoML este antrenarea arhitecturii modelului în același timp cu greutățile modelului. Antrenând modelul de la zero de fiecare dată când încercăm arhitecturi ușor diferite, ceea ce este extrem de ineficient, astfel încât un sistem AutoML cu adevărat puternic va conduce evoluția arhitecturilor în timp ce proprietățile modelului sunt reglate prin backpropagation pe datele de antrenament, eliminând astfel toată redundanța a calculelor. Pe măsură ce scriu aceste rânduri, abordări similare au început deja să fie aplicate.

Când toate acestea vor începe să se întâmple, dezvoltatorii de învățare automată nu vor rămâne fără muncă - vor trece la un nivel superior în lanțul valoric. Ei vor începe să depună mult mai mult efort pentru a crea funcții complexe de pierdere care reflectă cu adevărat obiectivele de afaceri și vor avea o înțelegere profundă a modului în care modelele lor afectează ecosistemele digitale în care operează (de exemplu, clienții care folosesc predicții model și generează date pentru acesta). training) sunt probleme pe care doar cele mai mari companii își pot permite acum să le ia în considerare.

Învățare pe tot parcursul vieții și reutilizare a rutinelor modulare

Dacă modelele devin mai complexe și construite pe primitive algoritmice mai bogate, atunci această complexitate crescută va necesita reutilizare mai intensă între sarcini, mai degrabă decât antrenarea modelului de la zero de fiecare dată când avem o nouă sarcină sau un nou set de date. În cele din urmă, multe seturi de date nu conțin suficiente informații pentru a dezvolta un nou model complex de la zero și va fi pur și simplu necesar să se utilizeze informații din seturile de date anterioare. Nu înveți engleza de fiecare dată când deschizi o carte nouă - asta ar fi imposibil. În plus, modelele de antrenament de la zero pentru fiecare sarcină nouă este foarte ineficientă din cauza suprapunerii semnificative dintre sarcinile curente și cele care au fost întâlnite anterior.

În plus, în ultimii ani, s-a făcut în mod repetat observația remarcabilă că antrenarea aceluiași model pentru a face mai multe sarcini slab cuplate îi îmbunătățește rezultatele. în fiecare dintre aceste sarcini. De exemplu, antrenarea aceleiași rețele neuronale pentru a traduce din engleză în germană și din franceză în italiană va avea ca rezultat un model care are performanțe mai bune în fiecare dintre aceste perechi de limbi. Antrenarea unui model de clasificare a imaginii în același timp cu un model de segmentare a imaginii, cu o singură bază convoluțională, va avea ca rezultat un model care are performanțe mai bune la ambele sarcini. etc. Acest lucru este destul de intuitiv: există întotdeauna niste informații care se suprapun între aceste două sarcini aparent diferite, astfel încât modelul general are acces la mai multe informații despre fiecare sarcină individuală decât un model care a fost antrenat doar pentru acea sarcină anume.

Ceea ce facem cu adevărat atunci când reaplicăm un model pentru diferite sarcini este să folosim greutăți pre-antrenate pentru modele care îndeplinesc funcții comune, cum ar fi extragerea caracteristicilor vizuale. Ați văzut acest lucru în practică în Capitolul 5. Mă aștept ca în viitor o versiune mai generală a acestei tehnici să fie folosită peste tot: nu vom folosi doar caracteristici învățate anterior (greutăți ale submodelului), ci și arhitecturi de model și proceduri de antrenament. Pe măsură ce modelele devin mai asemănătoare cu programele, vom începe să le refolosim rutine, la fel ca funcțiile și clasele din limbaje obișnuite de programare.

Gândiți-vă la cum arată procesul de dezvoltare a software-ului astăzi: odată ce un inginer rezolvă o anumită problemă (cereri HTTP în Python, de exemplu), o împachetează ca o bibliotecă abstractă pentru reutilizare. Inginerii care se vor confrunta cu o problemă similară în viitor pur și simplu caută bibliotecile existente, le descarcă și le folosesc în propriile proiecte. În același mod, în viitor, sistemele de meta-învățare vor putea să asambla noi programe, parcurgând o bibliotecă globală de blocuri reutilizabile de nivel înalt. Dacă sistemul începe să dezvolte rutine similare pentru mai multe sarcini diferite, va lansa o versiune „abstractă” reutilizabilă a rutinei și o va stoca în biblioteca globală. Acest proces va deschide posibilitatea pentru abstracții, o componentă necesară pentru a realiza „generalizarea finală”: o subrutină care se va dovedi utilă pentru multe sarcini și domenii se poate spune că „abstractează” un anumit aspect al luării deciziilor. Această definiție a „abstracției” nu pare să fie conceptul de abstractizare în dezvoltarea de software. Aceste rutine pot fi fie geometrice (module de deep learning cu reprezentări pre-antrenate) fie algoritmice (mai apropiate de bibliotecile cu care lucrează programatorii moderni).

Imagine: Un sistem de meta-învățare care poate dezvolta rapid modele specifice sarcinii folosind primitive reutilizabile (algoritmice și geometrice), realizând astfel „generalizarea finală”.

Concluzie: viziune pe termen lung

Pe scurt, iată viziunea mea pe termen lung pentru învățarea automată:
  • Modelele vor deveni mai mult ca programe și vor avea capabilități care depășesc cu mult transformările geometrice continue ale datelor originale cu care lucrăm acum. Poate că aceste programe vor fi mult mai aproape de modelele mentale abstracte pe care oamenii le mențin despre mediul lor și despre ei înșiși și vor putea generaliza mai puternic datorită naturii lor algoritmice.
  • În special, modelele se vor amesteca module algoritmice cu raționament formal, căutare, capacitate de abstractizare – și module geometrice cu intuiție informală și recunoaștere a modelelor. AlphaGo (un sistem care necesita programare manuală intensivă și arhitectură) este un exemplu timpuriu al cum ar putea arăta fuziunea AI simbolică și geometrică.
  • Ei vor fi crescut automat (și nu scris manual de programatori umani), folosind părți modulare dintr-o bibliotecă globală de subrutine reutilizabile - o bibliotecă care a evoluat prin asimilarea modelelor de înaltă performanță din mii de sarcini și seturi de date anterioare. Odată ce sistemul metalearning a definit modele comune de rezolvare a problemelor, acestea sunt convertite în subrutine reutilizabile - la fel ca funcțiile și clasele din programarea modernă - și adăugate la biblioteca globală. Acesta este modul în care capacitatea abstracții.
  • Biblioteca globală și sistemul corespunzător de creștere a modelelor vor putea realiza o anumită formă de „generalizare extremă” umanoidă: confruntat cu o nouă sarcină, o nouă situație, sistemul va fi capabil să asambleze un nou model de lucru pentru această sarcină, folosind un cantități mici de date, datorită: 1) primitivelor bogate de tip program, care sunt buni la generalizări și 2) experienței extinse în rezolvarea unor probleme similare. În același mod în care oamenii pot învăța rapid un nou joc video complex, deoarece au experiență anterioară cu multe alte jocuri și pentru că modelele bazate pe experiența anterioară sunt abstracte și asemănătoare unui program, mai degrabă decât pur și simplu transformă stimulul în acțiune.
  • În esență, acest sistem de creștere a modelelor de învățare continuă poate fi interpretat ca Inteligență Artificială Puternică. Dar nu vă așteptați să vină o robo-apocalipsă singulară: este o fantezie pură care s-a născut dintr-o lungă listă de neînțelegeri profunde în înțelegerea inteligenței și tehnologiei. Cu toate acestea, această critică nu este aici.

Inteligența artificială, rețelele neuronale, învățarea automată - ce înseamnă cu adevărat toate aceste concepte populare acum? 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 avut de multă vreme ideea să scriu într-un limbaj simplu despre rețelele neuronale artificiale. Învățaț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 junglă, ci să vorbesc simplu și popular despre această zonă promițătoare în lumea înaltei tehnologii.

Inteligența artificială, rețelele neuronale, învățarea automată - ce înseamnă cu adevărat toate aceste concepte populare acum? Pentru majoritatea oamenilor neinițiați, care sunt și eu, ei au părut întotdeauna ceva fantastic, dar de fapt esența lor se află la suprafață. Am avut de multă vreme ideea să scriu într-un limbaj simplu despre rețelele neuronale artificiale. Învățaț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 junglă, ci să vorbesc simplu și popular despre această zonă promițătoare în lumea înaltei tehnologii.

Un pic de istorie

Pentru prima dată, conceptul de rețele neuronale artificiale (ANN) a apărut atunci când s-a încercat să modeleze 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 mai întâi un model de neuron artificial. De asemenea, ei au propus construirea unei rețele din aceste elemente pentru a efectua operații logice. Dar, cel mai important, oamenii de știință au demonstrat că o astfel de rețea este capabilă să învețe.

Următorul pas important a fost dezvoltarea de către Donald Hebb a primului algoritm de calcul ANN în 1949, care a devenit fundamental pentru următoarele câteva decenii. Î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 predare a unui perceptron multistrat. În 2007, rețelele neuronale au suferit o renaștere. Informaticianul britanic Geoffrey Hinton a fost pionierul algoritmului de învățare profundă pentru rețelele neuronale multistrat, care este acum folosit, de exemplu, pentru a opera vehicule fără pilot.

Pe scurt despre principal

În sensul general al cuvântului, rețelele neuronale sunt modele matematice care funcționează pe principiul rețelelor de celule nervoase dintr-un organism animal. ANN-urile pot fi implementate atât în ​​soluții programabile, cât și în soluții hardware. Pentru ușurința percepției, un neuron poate fi reprezentat ca un fel de celulă care are multe intrări și o singură ieșire. Cât de multe semnale de intrare sunt formate într-un semnal de ieșire este determinat de algoritmul de calcul. Valorile eficiente sunt transmise la fiecare intrare neuronală, care sunt apoi distribuite de-a lungul conexiunilor interneuronale (sinopse). Sinapsele au un singur 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 înțelege cum funcționează rețelele neuronale este să folosiți amestecarea culorilor ca exemplu. Neuronul albastru, verde și roșu au greutăți diferite. Informațiile acelui neuron, a căror greutate va fi dominantă în următorul neuron.

Rețeaua neuronală în sine este un sistem de mulți astfel de neuroni (procesoare). Separat, aceste procesoare sunt destul de simple (mult mai simple decât un procesor de computer personal), dar atunci când sunt conectați la un 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, 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 fi antrenați. În sensul general al cuvântului, învățarea constă în găsirea coeficienților corecti de conexiune între neuroni, precum și în generalizarea datelor și identificarea relațiilor complexe între semnalele de intrare și de ieșire. De fapt, antrenamentul reușit al rețelei neuronale înseamnă că sistemul va fi capabil să identifice rezultatul corect pe baza datelor care nu se află în setul de antrenament.

Situatia de azi

Și oricât de promițătoare ar fi această tehnologie, până acum 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 era nevoie anterior de el. Printre numeroasele domenii de aplicare ale ANN-urilor se numără: crearea de sisteme de auto-învățare a proceselor 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. O distribuție atât de largă a rețelelor neuronale, printre altele, se datorează apariției diferitelor modalități de a accelera învățarea ANN-urilor.

Până în prezent, piața rețelelor neuronale este uriașă - este de 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 un exercițiu foarte costisitor, pe care în cele mai multe cazuri doar companiile mari și-l permit. Pentru dezvoltarea, antrenamentul și testarea rețelelor neuronale este necesară o putere mare de calcul, este evident că jucătorii mari de pe piața IT au suficient de mult. 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ă nu a fost rezolvată. Omenirea nu a reușit să creeze o tehnologie care să fie nici măcar aproape ca capabilități de creierul 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 transmisia diferită a semnalului în rețelele neuronale artificiale și în rețeaua biologică de neuroni. Cert este că în ANN, neuronii transmit valori care sunt valori reale, adică numere. În creierul uman, impulsurile sunt transmise cu o amplitudine fixă, iar aceste impulsuri sunt aproape instantanee. De aici rezultă 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-uri. În al doilea rând, circuitul de impulsuri asigură simplitatea implementării tehnologiei: este suficient să folosiți circuite analogice în loc de mecanisme de calcul complexe. În cele din urmă, rețelele de impulsuri sunt protejate de interferența sunetului. Numerele reale sunt afectate de zgomot, ceea ce crește șansa de eroare.

Rezultat

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

Pentru cei care vor să afle mai multe

  • Marele război neuronal: ce face cu adevărat Google
  • Cum computerele cognitive ne pot schimba viitorul

Top articole similare