Rețelele neuronale pe scurt. Rețele neuronale: tipuri, principiu de funcționare și domeniul de aplicare

Rețele neuronale

Diagrama unei rețele neuronale simple. Verzi sunt intrare elemente, galbene - zi libera element

Rețele neuronale artificiale(ANN) - modele matematice, precum și implementările lor software sau hardware, construite pe principiul organizării și funcționării rețelelor neuronale biologice - rețele de celule nervoase ale unui organism viu. Acest concept a apărut atunci când se studiază procesele care au loc în creier în timpul gândirii și când se încearcă modelarea acestor procese. Primul astfel de model de creier a fost perceptronul. Ulterior, aceste modele au început să fie folosite în scopuri practice, de regulă, în prognozarea problemelor.

Rețelele neuronale nu sunt programate în sensul obișnuit al cuvântului, ele sunt instruiți. Abilitatea de a învăța este unul dintre principalele avantaje ale rețelelor neuronale față de algoritmii tradiționali. Din punct de vedere tehnic, învățarea înseamnă găsirea coeficienților conexiunilor dintre neuroni. În procesul de învățare, rețeaua neuronală este capabilă să identifice relații complexe între intrări și ieșiri, precum și să efectueze generalizări. Aceasta înseamnă că, în cazul unui antrenament de succes, rețeaua va putea returna rezultatul corect pe baza datelor care lipseau din setul de antrenament.

Cronologie

Utilizări notabile

Clustering

Clustering este înțeles ca împărțirea unui set de semnale de intrare în clase, în ciuda faptului că nici numărul, nici caracteristicile claselor nu sunt cunoscute în prealabil. După antrenament, o astfel de rețea poate determina ce clasă este semnal de intrare. De asemenea, rețeaua poate semnala că semnalul de intrare nu aparține niciunei dintre clasele selectate - acesta este un semn că lipsesc date noi din proba de antrenament. Deci o astfel de rețea poate detecta clase de semnal noi, necunoscute anterior. Corespondența dintre clasele identificate de rețea și clasele care există în domeniul de studiu este stabilită de o persoană. Clusteringul este realizat, de exemplu, de rețelele neuronale Kohonen.

Selecția experimentală a caracteristicilor rețelei

După selecție structura de ansamblu trebuie să selectați experimental parametrii rețelei. Pentru rețele precum un perceptron, acesta va fi numărul de straturi, numărul de blocuri din straturi ascunse (pentru rețelele Word), prezența sau absența conexiunilor de bypass și funcțiile de transfer ale neuronilor. Atunci când alegeți numărul de straturi și neuroni din ele, ar trebui să pornim de la faptul că capacitatea rețelei de a se generaliza este mai mare, cu atât numărul total de conexiuni dintre neuroni este mai mare. Pe de altă parte, numărul de conexiuni este limitat de sus de numărul de înregistrări din datele de antrenament.

Selecția experimentală a parametrilor de învățare

După alegerea unei topologii specifice, trebuie să selectați parametrii de antrenament pentru rețeaua neuronală. Acest pas este deosebit de important pentru rețelele supravegheate. Alegerea corectă a parametrilor determină nu numai cât de repede vor converge răspunsurile rețelei către răspunsurile corecte. De exemplu, alegerea unei rate scăzute de învățare va crește timpul de convergență, dar uneori va evita paralizia rețelei. O creștere a momentului de învățare poate duce atât la o creștere, cât și la o scădere a timpului de convergență, în funcție de forma suprafeței de eroare. Pe baza unei astfel de influențe contradictorii a parametrilor, se poate concluziona că valorile acestora ar trebui alese experimental, ghidate de criteriul de finalizare a învățării (de exemplu, minimizarea erorii sau limitarea timpului de antrenament).

Formarea în rețea în sine

În timpul procesului de învățare, rețeaua scanează eșantionul de antrenament într-o anumită ordine. Ordinea de navigare poate fi secvențială, aleatorie etc. Unele rețele nesupravegheate, cum ar fi rețelele Hopfield, scanează eșantionul o singură dată. Altele, cum ar fi rețelele Kohonen, precum și rețelele supravegheate, scanează eșantionul de mai multe ori, cu o trecere completă peste eșantion numită epoca învăţării. Când învățați cu un profesor, setul de date inițiale este împărțit în două părți - eșantionul de formare efectivă și datele testului; principiul separării poate fi arbitrar. Datele de antrenament sunt transmise rețelei pentru antrenament, iar datele de testare sunt utilizate pentru a calcula eroarea rețelei (datele de testare nu sunt niciodată folosite pentru a antrena rețeaua). Astfel, dacă eroarea scade pe datele de testare, atunci rețeaua se generalizează. Dacă eroarea datelor de antrenament continuă să scadă, iar eroarea datelor de testare crește, atunci rețeaua a încetat să se mai generalizeze și pur și simplu „își amintește” datele de antrenament. Acest fenomen se numește supraadaptare sau supraadaptare a rețelei. În astfel de cazuri, antrenamentul este de obicei oprit. În timpul procesului de antrenament, pot apărea alte probleme, cum ar fi paralizia sau intrarea rețelei într-un minim local al suprafeței de eroare. Este imposibil să se prevadă în prealabil manifestarea unei anumite probleme, precum și să se ofere recomandări fără ambiguitate pentru rezolvarea acestora.

Verificarea adecvării pregătirii

Chiar și în cazul unui antrenament de succes, la prima vedere, rețeaua nu învață întotdeauna exact ce și-a dorit creatorul de la ea. Există un caz cunoscut când rețeaua a fost instruită să recunoască imagini ale tancurilor din fotografii, dar mai târziu s-a dovedit că toate tancurile au fost fotografiate pe același fundal. Drept urmare, rețeaua a „învățat” să recunoască acest tip de teren, în loc să „învețe” să recunoască tancurile. Astfel, rețeaua „înțelege” nu ce i s-a cerut, ci ce este mai ușor de generalizat.

Clasificarea după tipul de informații de intrare

  • Rețele neuronale analogice (utilizați informații sub formă de numere reale);
  • Rețele neuronale binare (funcționează cu informații prezentate în formă binară).

Clasificarea după natura pregătirii

  • Învățare supravegheată - spațiul de decizie de ieșire al rețelei neuronale este cunoscut;
  • Învățare nesupravegheată - o rețea neuronală generează un spațiu de decizie de ieșire numai pe baza acțiunilor de intrare. Astfel de rețele se numesc auto-organizare;
  • Învățarea prin întărire este un sistem de atribuire a penalităților și recompenselor din mediu.

Clasificare în funcție de natura acordării sinapselor

Clasificare după timpul de transmisie a semnalului

Într-un număr de rețele neuronale, funcția de activare poate depinde nu numai de coeficienții de greutate a conexiunilor w ij, dar și asupra timpului de transmitere a unui impuls (semnal) pe canalele de comunicație τ ij. Prin urmare, în general, funcția de activare (transmitere) de comunicare c ij din element u i la element u j are forma: . Apoi rețea sincronă ij fiecare legătură este fie zero, fie o constantă fixă ​​τ . asincron se numește o astfel de rețea pentru care timpul de transmisie τ ij pentru fiecare legătură între elemente u iȘi u j proprii, dar și permanente.

Clasificarea după natura relațiilor

Rețele feedforward

Toate conexiunile sunt direcționate strict de la neuronii de intrare la neuronii de ieșire. Exemple de astfel de rețele sunt perceptronul lui Rosenblatt, perceptronul multistrat, rețelele Word.

Rețele neuronale recurente

Semnalul de la neuronii de ieșire sau de la neuronii stratului ascuns este transmis parțial înapoi la intrările neuronilor stratului de intrare (feedback). Rețeaua recurentă Rețeaua Hopfield „filtrează” datele de intrare, revenind la o stare stabilă și, astfel, permite rezolvarea problemelor de compresie a datelor și construirea memoriei asociative. Un caz special de rețele recurente sunt rețelele bidirecționale. În astfel de rețele, există conexiuni între straturi atât în ​​direcția de la stratul de intrare la cel de ieșire, cât și în direcția opusă. Un exemplu clasic este Rețeaua Neuronală Cosco.

Funcții de bază radială

Rețele neuronale artificiale care utilizează rețele neuronale radiale-de bază ca funcții de activare (astfel de rețele sunt abreviate ca rețele RBF). Forma generală funcția de bază radială:

, De exemplu,

Unde X- vectorul semnalelor de intrare neuron, σ - lățimea ferestrei funcției, φ( y) este o funcție descrescătoare (cel mai adesea egală cu zero în afara unui anumit interval).

Rețeaua radial-bazică este caracterizată de trei caracteristici:

1. Singurul strat ascuns

2. Numai neuronii din stratul ascuns au o funcție de activare neliniară

3. Greutățile sinaptice ale conexiunilor straturilor de intrare și ascunse sunt egale cu unu

Despre procedura de instruire - vezi literatura de specialitate

Hărți autoorganizate

Astfel de rețele sunt o rețea neuronală competitivă nesupravegheată care îndeplinește sarcina de vizualizare și grupare. Este o metodă de proiectare a unui spațiu multidimensional într-un spațiu cu o dimensiune inferioară (cel mai adesea, bidimensională), este folosită și pentru rezolvarea problemelor de modelare, prognoză etc. Este una dintre versiunile rețelelor neuronale ale lui Kohonen. Hărțile de auto-organizare ale lui Kohonen servesc în primul rând pentru vizualizare și analiza inițială a datelor („inteligence”).

Semnalul către rețeaua Kohonen ajunge la toți neuronii simultan, greutățile sinapselor corespunzătoare sunt interpretate ca coordonate ale poziției nodului, iar semnalul de ieșire este format conform principiului „câștigătorul ia tot” - adică neuronul cel mai apropiat. (din punct de vedere al greutăților sinapselor) la semnalul de intrare are un obiect de semnal de ieșire diferit de zero. În timpul procesului de învățare, greutățile sinapselor sunt ajustate în așa fel încât nodurile rețelei să fie „locate” în locuri de condensare locală a datelor, adică descriu structura cluster-ului norului de date, pe de altă parte, conexiunile. dintre neuroni corespund relațiilor de vecinătate dintre clusterele corespunzătoare din spațiul caracteristic.

Este convenabil să considerăm astfel de hărți ca grile bidimensionale de noduri situate într-un spațiu multidimensional. Inițial, o hartă auto-organizată este o grilă de noduri conectate prin legături. Kohonen a luat în considerare două opțiuni pentru conectarea nodurilor - într-o rețea dreptunghiulară și hexagonală - diferența este că într-o rețea dreptunghiulară fiecare nod este conectat la 4 noduri învecinate, iar într-unul hexagonal - la 6 noduri cele mai apropiate. Pentru două astfel de grile, procesul de construire a unei rețele Kohonen diferă numai în locul în care sunt traversați cei mai apropiați vecini de un anumit nod.

Imbricarea inițială a grilei în spațiul de date este aleasă în mod arbitrar. Pachetul SOM_PAK al autorului oferă opțiuni pentru o locație inițială aleatorie a nodurilor în spațiu și o variantă pentru locația nodurilor într-un plan. După aceea, nodurile încep să se miște în spațiu conform următorului algoritm:

  1. Un punct de date este selectat aleatoriu X .
  2. Cel mai apropiat este determinat X nod de hartă (BMU - Best Matching Unit).
  3. Acest nod mută pasul dat spre x. Cu toate acestea, nu se mișcă singur, ci poartă de-a lungul unui anumit număr de noduri cele mai apropiate dintr-un cartier de pe hartă. Dintre toate nodurile în mișcare, nodul central cel mai apropiat de punctul de date se mișcă cel mai mult, iar restul experimentează deplasări mai mici cu cât sunt mai departe de BMU. Există două etape în reglarea hărții - etapa de reglare brută (ordonare) și etapa de reglare fină (ajustare fină). În prima etapă, sunt alese valori mari ale cartierelor, iar mișcarea nodurilor este de natură colectivă - ca urmare, harta „se extinde” și reflectă aproximativ structura datelor; la scenă reglaj fin raza vecinătății este 1-2 și pozițiile individuale ale nodurilor sunt deja ajustate. În plus, valoarea părtinirii scade uniform cu timpul, adică este mare la începutul fiecărei etape de antrenament și aproape de zero la sfârșit.
  4. Algoritmul se repetă pentru un anumit număr de epoci (este clar că numărul de pași poate varia foarte mult în funcție de sarcină).

Tipuri de rețele cunoscute

  • Rețea Hamming;
  • Neocognitron;
  • Rețea neuronală haotică;
  • Rețea de contrapropagare;
  • Rețeaua de funcții de bază radială (RBF-network);
  • Rețea de regresie generalizată;
  • Rețea probabilistică;
  • rețea neuronală siameză;
  • Rețele de rezonanță adaptivă.

Diferențele față de mașinile cu arhitectură von Neumann

O lungă perioadă de evoluție a oferit creierului uman multe calități care sunt absente în mașinile cu arhitectură von Neumann:

  • Paralelism în vrac;
  • Reprezentare distribuită a informațiilor și calcul;
  • Capacitate de a învăța și de a generaliza;
  • adaptabilitate;
  • Proprietatea procesării informațiilor contextuale;
  • toleranta la erori;
  • Consum redus de putere.

Rețele neuronale - aproximatori universali

Rețelele neuronale sunt aproximatori universali și pot simula orice automat continuu cu orice precizie. S-a demonstrat o teoremă de aproximare generalizată: folosind operații liniare și o conexiune în cascadă, este posibil să se obțină un dispozitiv dintr-un element neliniar arbitrar care calculează orice funcție continuă cu orice precizie predeterminată. Aceasta înseamnă că caracteristica neliniară a unui neuron poate fi arbitrară: de la sigmoid la un pachet sau wavelet arbitrar, sinusoid sau polinom. Complexitatea unei anumite rețele poate depinde de alegerea unei funcții neliniare, dar cu orice neliniaritate, rețeaua rămâne un aproximator universal chiar și atunci când alegerea potrivita structura poate aproxima în mod arbitrar cu exactitate funcționarea oricărui automat continuu.

Exemple de aplicații

Predicția seriilor temporale financiare

Date de intrare - prețul acțiunilor pentru anul. Sarcina este de a determina cursul de mâine. Se efectuează următoarea transformare - rata pentru azi, ieri, alaltăieri, alaltăieri este aliniată. Următorul rând este deplasat după dată cu o zi și așa mai departe. Pe setul primit, este antrenată o rețea cu 3 intrări și o ieșire - adică ieșirea este: rata pentru dată, intrări: rata pentru dată minus 1 zi, minus 2 zile, minus 3 zile. Hrănim rețelei instruite cursul pentru azi, ieri, alaltăieri și primim răspunsul pentru mâine. Este ușor de observat că în acest caz rețeaua va deduce pur și simplu dependența unui parametru de cei trei anteriori. Dacă este de dorit să se ia în considerare un alt parametru (de exemplu, indexul general pentru industrie), atunci acesta trebuie adăugat ca intrare (și inclus în exemple), reeduca rețeaua și obține rezultate noi. Pentru cel mai precis antrenament, merită să folosiți metoda ORO, ca fiind cea mai previzibilă și ușor de implementat.

Psihodiagnostic

O serie de lucrări ale lui M. G. Dorrer și coautorilor este dedicată studiului posibilității dezvoltării intuiției psihologice în sistemele experte în rețele neuronale. Rezultatele obținute oferă o abordare a dezvăluirii mecanismului de intuiție al rețelelor neuronale, care se manifestă atunci când rezolvă probleme de psihodiagnostic. Creat non-standard pentru tehnicile computerizate intuitiv abordarea psihodiagnosticului, care constă în excluderea construcției a descris realitatea. Vă permite să reduceți și să simplificați munca asupra metodelor de psihodiagnostic.

Chimioinformatica

Rețelele neuronale sunt utilizate pe scară largă în cercetarea chimică și biochimică.În prezent, rețelele neuronale sunt una dintre cele mai comune metode chimioinformatice de căutare a relațiilor cantitative structură-proprietate, datorită cărora sunt utilizate în mod activ atât pentru prezicerea proprietăților fizico-chimice, cât și a activității biologice a substanțelor chimice. compuși și pentru proiectarea direcționată a compușilor chimici și a materialelor cu proprietăți predeterminate, inclusiv dezvoltarea de noi medicamente.

Note

  1. McCulloch W.S., Pitts W., Calcul logic al ideilor legate de activitatea nervoasă // În: „Automate” ed. C. E. Shannon și J. McCarthy. - M.: Izd-vo inostr. lit., 1956. - p. 363-384. (Traducerea articolului în engleză din 1943)
  2. Recunoașterea modelelor și controlul adaptiv. BERNARD WIDROW
  3. Widrow B., Stearns S., Procesare adaptivă a semnalului. - M.: Radio și comunicare, 1989. - 440 p.
  4. Werbos P.J., Dincolo de regresie: noi instrumente pentru predicție și analiză în științele comportamentale. Ph.D. teză, Universitatea Harvard, Cambridge, MA, 1974.
  5. Galușkin A.I. Sinteza sistemelor de recunoaștere a imaginilor multistrat. - M.: „Energie”, 1974.
  6. Rumelhart D.E., Hinton G.E., Williams R.J., Învățarea reprezentărilor interne prin propagarea erorilor. În: Parallel Distributed Processing, vol. 1, pp. 318-362. Cambridge, MA, MIT Press. 1986.
  7. Bartsev S. I., Okhonin V. A. Rețele adaptative de prelucrare a informațiilor. Krasnoyarsk: Institutul de Fizică SO AN URSS, 1986. Preprint N 59B. - 20 s.
  8. BaseGroup Labs - Aplicarea practică a rețelelor neuronale în probleme de clasificare
  9. Acest tip de codare este uneori denumit cod „1 din N”.
  10. Sisteme deschise - Introducere în rețelele neuronale
  11. Mirkes E.M., Rețele neuronale logic transparente și producerea cunoștințelor explicite din date , În cartea: Neuroinformatică / A. N. Gorban, V. L. Dunin-Barkovsky, A. N. Kirdin etc. - Novosibirsk: Știință. Siberian Enterprise RAS, 1998. - 296 cu ISBN 5020314102
  12. Menționează această poveste în revista Popular Mechanics
  13. http://www.intuit.ru/department/expert/neuro/10/ INTUIT.ru - Rețele recurente ca dispozitive de stocare asociative]
  14. Kohonen, T. (1989/1997/2001), Hărți de auto-organizare, Berlin-New York: Springer-Verlag. Prima ediție 1989, a doua a treia ediție 1997, ediție extinsă 2001, ISBN 0-387-51387-6, ISBN 3-540-67921-9
  15. Zinoviev A. Yu. Vizualizarea datelor multidimensionale. - Krasnoyarsk: Ed. Universitatea Tehnică de Stat din Krasnoyarsk, 2000. - 180 p.
  16. Gorban A. N., Teorema de aproximare generalizată și capabilitățile de calcul ale rețelelor neuronale, Jurnalul siberian de matematică computațională, 1998. V.1, nr. 1. P. 12-24.
  17. Gorban A.N., Rossiyev D.A., Dorrer M.G., MultiNeuron - Simulator de rețele neuronale pentru aplicații medicale, fiziologice și psihologice , Wcnn'95, Washington, D.C.: Congresul mondial privind rețelele neuronale 1995 Reuniunea anuală a Societății internaționale de rețele neuronale: Renaissance Hotel, Washington, D.C., SUA, 17-21 iulie, 1995.
  18. Dorrer M. G., Intuiția psihologică a rețelelor neuronale artificiale , Diss. ... 1998. Alte exemplare online:,
  19. Baskin I. I., Palyulin V. A., Zefirov N. S., Aplicarea rețelelor neuronale artificiale în cercetarea chimică și biochimică, Vestn. Moscova Un-Ta. Ser. 2. Chimie. 1999. V.40. nr. 5.
  20. Galbershtam N. M., Baskin I. I., Palyulin V. A., Zefirov N. S. Rețelele neuronale ca metodă de căutare a structurii dependențelor - proprietatea compușilor organici // Progrese în chimie. - 2003. - T. 72. - Nr. 7. - S. 706-727.
  21. Baskin I. I., Palyulin V. A., Zefirov N. S. Perceptroni multistrat în studiul relațiilor „structură-proprietate” pentru compuși organici // Russian Chemical Journal (Jurnalul Societății Ruse de Chimie, numit după D.I. Mendeleev). - 2006. - T. 50. - S. 86-96.

Legături

  • Artificial Neural Network for PHP 5.x - Un proiect serios pentru dezvoltarea rețelelor neuronale în limbajul de programare PHP 5.X
  • Forumul rețelelor neuronale și al algoritmilor genetici
  • Mirkes E.M.,

Recent, din ce în ce mai des se vorbește despre așa-numitele rețele neuronale, spun ei, în curând vor fi utilizate activ în robotică și în inginerie mecanică și în multe alte domenii ale activității umane, dar algoritmii motoarelor de căutare, același Google, încep deja încet să le folosească. Care sunt aceste rețele neuronale, cum funcționează, care sunt aplicațiile lor și cum ne pot fi utile, citiți despre toate acestea în continuare.

Ce sunt rețelele neuronale

Rețelele neuronale sunt una dintre domenii cercetare științificăîn domeniul creării inteligenţă artificială(AI), care se bazează pe dorința de a imita sistemul nervos uman. Inclusiv capacitatea ei (sistemului nervos) de a corecta greșelile și de a auto-învăța. Toate acestea, deși oarecum aspre, ar trebui să ne permită să simulăm activitatea creierului uman.

Rețele neuronale biologice

Dar această definiție din paragraful de mai sus este pur tehnică, dar vorbind în limbajul biologiei, rețeaua neuronală este sistemul nervos uman, acel set de neuroni din creierul nostru, datorită căruia gândim, luăm anumite decizii, percepem lumea din jur. S.U.A.

Un neuron biologic este o celulă specială formată dintr-un nucleu, un corp și procese, în plus, are legătură strânsă cu mii de alți neuroni. Prin această conexiune, impulsurile electrochimice sunt transmise constant, aducând întreaga rețea neuronală într-o stare de excitare sau invers. De exemplu, un eveniment plăcut și în același timp incitant (întâlnirea cu cineva drag, câștigarea unui concurs etc.) va genera un impuls electrochimic în rețeaua neuronală care se află în capul nostru, care va duce la excitarea acestuia. Drept urmare, rețeaua neuronală din creierul nostru își va transmite excitația către alte organe ale corpului nostru și va duce la creșterea ritmului cardiac, clipirea mai frecventă a ochilor etc.

Aici, în imagine, este un model foarte simplificat al rețelei neuronale biologice a creierului. Vedem că un neuron este format dintr-un corp celular și un nucleu, corpul celular, la rândul său, are multe fibre ramificate numite dendrite. Dendritele lungi se numesc axoni și au o lungime mult mai mare decât cea prezentată în această figură, prin intermediul axonilor se realizează comunicarea între neuroni, datorită lor rețeaua neuronală biologică funcționează în capul nostru.

Istoria rețelelor neuronale

Care este istoria dezvoltării rețelelor neuronale în știință și tehnologie? Ea își are originea odată cu apariția primelor computere sau computere (calculatoare electronice) așa cum erau numite în acele vremuri. Așadar, la sfârșitul anilor 1940, un anume Donald Hebb a dezvoltat un mecanism de rețea neuronală, care a stabilit regulile pentru predarea computerelor, aceste „protocalculatoare”.

Cronologia ulterioară a evenimentelor a fost următoarea:

  • În 1954 are loc prima utilizare practică a rețelelor neuronale în funcționarea computerelor.
  • În 1958, Frank Rosenblatt a dezvoltat un algoritm pentru recunoașterea modelelor și o adnotare matematică pentru acesta.
  • În anii 1960, interesul pentru dezvoltarea rețelelor neuronale a scăzut oarecum din cauza puterii slabe de calcul din acea vreme.
  • Și a fost reînviat deja în anii 1980, în această perioadă a apărut un sistem cu un mecanism părere, se dezvoltă algoritmi de auto-învățare.
  • Până în 2000, puterea computerelor a crescut atât de mult încât au fost capabile să realizeze cele mai sălbatice vise ale oamenilor de știință din trecut. În acest moment, au apărut programe de recunoaștere a vocii, viziune computerizată și multe altele.

Rețele neuronale artificiale

Rețelele neuronale artificiale sunt înțelese în mod obișnuit ca sisteme de calcul care au capacitatea de a auto-învăța, de a-și crește treptat performanța. Principalele elemente ale structurii rețelei neuronale sunt:

  • Neuroni artificiali, care sunt unități elementare interconectate.
  • O sinapsă este o conexiune care este folosită pentru a trimite și a primi informații între neuroni.
  • Un semnal este informația reală care trebuie transmisă.

Aplicarea rețelelor neuronale

Domeniul de aplicare al rețelelor neuronale artificiale se extinde în fiecare an, astăzi ele sunt utilizate în domenii precum:

  • Învățarea automată este un tip de inteligență artificială. Se bazează pe antrenamentul AI pe exemplul a milioane de sarcini de același tip. În zilele noastre, învățarea automată este implementată în mod activ motoare de căutare Google, Yandex, Bing, Baidu. Deci bazat pe milioane interogări de căutare, pe care toți îl tastăm în Google în fiecare zi, algoritmii lor învață să ne arate cele mai relevante rezultate, astfel încât să putem găsi exact ceea ce căutăm.
  • În robotică, rețelele neuronale sunt folosite în dezvoltarea a numeroși algoritmi pentru „creierele” de fier ale roboților.
  • Arhitecti sisteme informatice utilizați rețelele neuronale pentru a rezolva problema calculului paralel.
  • Cu ajutorul rețelelor neuronale, matematicienii pot rezolva diverse probleme matematice complexe.

Tipuri de rețele neuronale

În general, pentru sarcini diferite aplica tipuri diferiteși tipuri de rețele neuronale, printre care se numără:

  • rețele neuronale convoluționale,
  • rețele neuronale recurente,
  • Rețeaua neuronală Hopfield.

Rețele neuronale convoluționale

Rețelele convoluționale sunt unul dintre cele mai populare tipuri de rețele neuronale artificiale. Așa că și-au dovedit eficiența în recunoașterea modelelor vizuale (video și imagini), sistemele de recomandare și procesarea limbajului.

  • Rețelele neuronale convoluționale sunt foarte scalabile și pot fi utilizate pentru recunoașterea modelelor de orice rezoluție mare.
  • Aceste rețele folosesc neuroni tridimensionali volumetrici. Într-un singur strat, neuronii sunt conectați doar printr-un câmp mic, numit strat receptiv.
  • Neuronii straturilor învecinate sunt conectați prin mecanismul de localizare spațială. Funcționarea multor astfel de straturi este asigurată de filtre speciale neliniare care răspund tuturor Mai mult pixeli.

Rețele neuronale recurente

Astfel de rețele neuronale sunt numite recurente, ale căror conexiuni între neuroni formează un ciclu indicativ. Are urmatoarele caracteristici:

  • Fiecare conexiune are propria greutate, care este, de asemenea, o prioritate.
  • Nodurile sunt împărțite în două tipuri, noduri introductive și noduri ascunse.
  • Informațiile dintr-o rețea neuronală recurentă sunt transmise nu numai în linie dreaptă, strat cu strat, ci și între neuronii înșiși.
  • important trăsătură distinctivă Rețeaua neuronală recurentă este prezența așa-numitei „zone de atenție”, când mașinii i se pot oferi anumite date care necesită o procesare îmbunătățită.

Rețelele neuronale recurente sunt utilizate în recunoașterea și procesarea datelor text (în frecvență, se bazează pe Google Translator, algoritmul Yandex Palekh, asistent vocal Apple Siri).

Rețele neuronale, video

Și în sfârșit, un videoclip interesant despre rețelele neuronale.

Dacă urmăriți știrile din lumea științei și tehnologiei, probabil ați auzit ceva despre conceptul de rețele neuronale.

De exemplu, în 2016, rețeaua neuronală AlphaGo a Google l-a învins pe unul dintre cei mai buni jucători profesioniști de Counter-Strike: Global Offensive din lume cu 4-1. YouTube a anunțat, de asemenea, că va folosi rețelele neuronale pentru a-și înțelege mai bine videoclipurile.

Dar ce este o rețea neuronală? Cum functioneaza? Și de ce sunt atât de populare în prelucrare?

Calculatorul este ca un creier

Oamenii de știință moderni discută adesea despre creier ca pe un tip de computer. Rețelele neuronale urmăresc să facă opusul: să construiască un computer care să funcționeze ca un creier.

Desigur, avem doar o înțelegere superficială a extremului funcții complexe a creierului, dar prin crearea unei simulări simplificate a modului în care creierul procesează datele, putem construi un tip de computer care va funcționa foarte diferit de cel standard.

Procesoarele computerelor prelucrează datele secvenţial ("în ordine"). Ei efectuează multe operații pe un set de date, pe rând. Procesarea în paralel („procesarea mai multor fire în același timp”) accelerează foarte mult computerul prin utilizarea mai multor procesoare în serie.

În figura de mai jos, exemplul de procesare paralelă necesită cinci procesoare diferite:

O rețea neuronală artificială (așa-numita pentru a o deosebi de rețelele neuronale reale din creier) are o structură fundamental diferită. Este foarte interconectat. Acest lucru vă permite să procesați datele foarte rapid, să învățați din aceste date și să vă actualizați propria structură internă pentru a îmbunătăți performanța.

in orice caz grad înalt interconexiunea are câteva implicații izbitoare. De exemplu, rețelele neuronale sunt foarte bune la recunoașterea structurilor de date obscure.

Abilitatea de a invata

Capacitatea unei rețele neuronale de a învăța este cea mai mare putere a sa. În cadrul unei arhitecturi de calcul standard, programatorul trebuie să dezvolte un algoritm care îi spune computerului ce să facă cu datele primite pentru a se asigura că computerul returnează răspunsul corect.

Răspunsul I/O poate fi la fel de simplu ca „când tasta A este apăsată”, „A este afișat pe ecran” sau mai complex decât efectuarea de statistici complexe. Pe de altă parte, rețelele neuronale nu au nevoie de aceiași algoritmi. Prin mecanisme de învățare, aceștia își pot dezvolta în esență proprii algoritmi. Mașină de algoritmi pentru a se asigura că funcționează corect.

Este important să rețineți că, deoarece rețelele neuronale sunt programe scrise pe mașini care folosesc un standard Hardware pentru procesarea secvenţială, tehnologia actuală încă impune limitări. De fapt, crearea unei versiuni hardware a unei rețele neuronale este o problemă complet diferită.

De la neuroni la noduri

Acum că am pus bazele pentru modul în care funcționează rețelele neuronale, putem începe să ne uităm la unele dintre aspectele specifice. Structura de bază a unei rețele neuronale artificiale arată astfel:


Fiecare dintre cercuri este numit „nod” și imită un singur neuron. În stânga sunt nodurile de intrare, în mijloc sunt nodurile ascunse, iar în dreapta sunt nodurile de ieșire.

În termenii cei mai simpli, nodurile de intrare preiau valori de intrare care pot fi binare 1 sau 0, parte a unei valori de culoare RGB, starea unei piese de șah sau orice altceva. Aceste noduri reprezintă informațiile care vin în rețea.

Fiecare nod de intrare este asociat cu mai multe noduri ascunse (uneori fiecare nod ascuns, alteori un subset). Nodurile de intrare preiau informațiile care le sunt date și le transmit împreună cu stratul ascuns.

De exemplu, un nod de intrare poate trimite un semnal („foc”, în limbajul neuroștiinței) dacă primește un 1 și rămâne inactiv dacă primește un zero. Fiecare nod ascuns are un prag: dacă toate intrările sale însumate ating o anumită valoare, se declanșează.

De la sinapse la conexiuni

Fiecare conexiune, care este echivalentă cu o sinapsă anatomică, are și o anumită greutate, ceea ce permite rețelei să acorde mai multă atenție acțiunii unui anumit nod. Iată un exemplu:


După cum puteți vedea, greutatea conexiunii „B” este mai mare decât cea a conexiunii „A” și „C”. Să presupunem că nodul ascuns „4” se va declanșa numai dacă primește o intrare totală de „2” sau mai mult. Aceasta înseamnă că dacă „1” sau „3” funcționează individual, atunci „4” nu va funcționa, dar „1” și „3” împreună vor apela nodul. Nodul „2” poate iniția un nod singur prin conexiunea „B”.

Să luăm vremea ca exemplu practic. Să presupunem că proiectați o rețea neuronală simplă pentru a determina dacă ar trebui să existe o avertizare de furtună de iarnă.

Folosind conexiunile și greutățile de mai sus, nodul 4 se poate declanșa numai dacă temperatura este sub -18 C și vântul este peste 48 km/s, sau se va declanșa dacă probabilitatea de ninsoare este mai mare de 70%. Temperatura va fi introdusă în nodul 1, vânturile în nodul 3 și probabilitatea ca zăpada să intre în nodul 2. Acum nodul 4 poate lua în considerare toate acestea atunci când determină ce semnal să trimită la stratul de ieșire.

Mai bine decât o simplă logică

Desigur, această funcție ar putea fi implementată pur și simplu folosind porți simple AND/OR. Dar rețelele neuronale mai complexe precum cele de mai jos sunt capabile să efectueze operațiuni mult mai complexe.


Nodurile stratului de ieșire funcționează la fel ca și stratul ascuns: nodurile de ieșire însumează intrările din stratul ascuns, iar dacă ating o anumită valoare, nodurile de ieșire declanșează și trimit semnale specifice. La sfârșitul procesului, stratul de ieșire va trimite un set de semnale care indică rezultatul intrării.

În timp ce rețeaua prezentată mai sus este simplă, rețelele neuronale profunde pot avea multe straturi ascunse și sute de noduri.


Rezolvarea unei erori

Acest proces este relativ simplu până acum. Dar acolo unde rețelele neuronale sunt cu adevărat necesare este în antrenament. Majoritatea rețelelor neuronale folosesc un proces de backpropagation care trimite semnale înapoi prin rețea.

Înainte ca dezvoltatorii să implementeze o rețea neuronală, o rulează într-o fază de antrenament în care i se oferă un set de intrări cu rezultate cunoscute. De exemplu, un programator poate învăța o rețea neuronală să recunoască imagini. Intrarea ar putea fi o imagine a unei mașini, iar ieșirea corectă ar fi cuvântul „mașină”.

Programatorul oferă o imagine ca intrare și vede ce iese din nodurile de ieșire. Dacă rețeaua răspunde cu „avion”, programatorul îi spune computerului că este greșit.

Rețeaua face apoi ajustări la propriile conexiuni prin modificarea greutății diferitelor legături dintre noduri. Această acțiune se bazează pe un algoritm de învățare special adăugat în rețea. Rețeaua continuă să ajusteze greutățile conexiunii până când oferă ieșirea corectă.

Aceasta este o simplificare, dar rețelele neuronale pot învăța operații foarte complexe folosind principii similare.

Imbunatatire continua

Chiar și după antrenament, backpropagation (antrenamentul) continuă - și aici rețelele neuronale devin foarte, foarte cool. Ei continuă să învețe pe măsură ce sunt utilizați, integrând informații noi și efectuând ajustări la greutățile diferiților compuși, devenind din ce în ce mai eficienți la sarcina pentru care sunt destinati.

Poate fi la fel de simplu ca recunoașterea modelelor sau la fel de complex ca un joc CS:GO.

Astfel, rețelele neuronale se schimbă și se îmbunătățesc în mod constant. Și acest lucru poate avea consecințe neașteptate, ducând la rețele care prioritizează lucruri pe care programatorul nu le-ar acorda prioritate.

Pe lângă procesul descris mai sus, care se numește învățare supravegheată, există o altă metodă: învățarea nesupravegheată.

În această situație, rețelele neuronale preiau intrare și încearcă să o recreeze exact în ieșirea lor, folosind backpropagation pentru a-și actualiza conexiunile. Acesta poate suna ca un exercițiu inutil, dar așa învață rețelele să extragă caracteristici utileși generalizează aceste caracteristici pentru a-și îmbunătăți modelele.

Chestiuni de profunzime

Backpropagarea este o modalitate foarte eficientă de a antrena rețele neuronale... când au doar câteva straturi. Pe măsură ce numărul de straturi ascunse crește, eficiența propagării inverse scade. Aceasta este o problemă pentru rețelele adânci. Folosind backpropagation, acestea nu sunt adesea mai eficiente decât rețelele simple.

Oamenii de știință au dezvoltat o serie de soluții la această problemă, ale căror specificități sunt destul de complexe și dincolo de scopul acestei părți introductive. Ceea ce multe dintre aceste soluții încearcă să facă limbaj simplu, se numește reducerea complexității rețelei prin învățarea acesteia să „comprima” datele.


Pentru a face acest lucru, rețeaua învață să extragă mai puține caracteristici de identificare din intrare, devenind în cele din urmă mai eficientă în calculele sale. În esență, web-ul face generalizări și abstracții, aproape în același mod în care oamenii învață.

După această instruire, rețeaua poate tăia nodurile și legăturile pe care le consideră mai puțin importante. Acest lucru face rețeaua mai eficientă și învățarea devine mai ușoară.

Aplicații de rețea neuronală

Astfel, rețelele neuronale modelează modul în care creierul învață folosind mai multe niveluri de noduri - de intrare, ascunse și de ieșire - și pot învăța atât în ​​situații controlate, cât și necontrolate. Rețelele complexe sunt capabile să abstragă și să generalizeze, ceea ce le face mai eficiente și mai capabile de învățare.

La ce putem folosi aceste sisteme fascinante?

În teorie, putem folosi rețelele neuronale pentru aproape orice. Și probabil că le-ați folosit fără să vă dați seama. Sunt foarte frecvente în recunoașterea vorbirii și vizuale, de exemplu, pentru că pot învăța să identifice anumite trăsături, lucruri comune în sunete sau imagini.

Deci, când spui „OK Google”, iPhone-ul tău rulează discursul printr-o rețea neuronală pentru a înțelege ce spui. Poate că există o altă rețea neuronală care învață să prezică ceea ce este posibil să ceri.

Vehiculele autopropulsate pot folosi rețelele neuronale pentru a procesa date vizuale, urmând astfel regulile rutiereși evitați coliziunile. Roboții de toate tipurile pot beneficia de rețelele neuronale care îi ajută să învețe cum să îndeplinească sarcini în mod eficient. Calculatoarele pot învăța să joace jocuri precum șah sau CS:GO. Dacă ați interacționat vreodată cu un chatbot, este posibil ca acesta să folosească o rețea neuronală pentru a sugera răspunsuri relevante.

Căutarea pe internet poate beneficia foarte mult de pe urma rețelelor neuronale, deoarece un model de procesare paralelă extrem de eficient poate genera o mulțime de date rapid. De asemenea, rețeaua neuronală vă poate învăța obiceiurile pentru a vă personaliza rezultatele căutării sau pentru a prezice ceea ce veți căuta în viitorul apropiat. Acest model predictiv va fi evident foarte valoros pentru marketeri (și pentru oricine trebuie să prezică un comportament uman complex).

Recunoașterea modelelor, recunoașterea optică a imaginii, predicția bursei, găsirea rutelor, procesarea datelor mari, analiza costurilor medicale, prognoza vânzărilor, inteligența artificială în jocurile video - posibilitățile sunt aproape nesfârșite. Capacitatea rețelelor neuronale de a învăța modele, de a face generalizări și de a prezice cu succes comportamentul le face valoroase în nenumărate situații.

Viitorul rețelelor neuronale

Rețelele neuronale au avansat de la modele foarte simple la simulatoare de antrenament de nivel înalt. Acestea se află pe telefoanele, tabletele noastre și folosesc multe dintre serviciile web pe care le folosim. Există multe alte sisteme de învățare automată.

Dar rețelele neuronale, datorită asemănării lor (într-un mod foarte simplist) cu creierul uman, sunt printre cele mai fascinante. În timp ce continuăm să dezvoltăm și să îmbunătățim modelele, nu putem spune de ce sunt capabile.

Cunoașteți aplicații interesante ale rețelelor neuronale? Tu ai experiență cu ele? Ce te atrage cel mai mult la această tehnologie? Împărtășiți-vă gândurile în comentariile de mai jos!

În 2016, internetul a izbucnit într-un nou val de hype - de data aceasta proiectul Deep Dream, lansat publicului de programatorii Google, a devenit subiectul unor discuții aprinse în rețelele sociale. Deep Dream permite tuturor să-și încarce propria fotografie pentru procesare de inteligență artificială.

La ieșire, utilizatorul primește o imagine așa cum o „văd” rețelele neuronale. Cum funcționează și ce este MNIST? Astăzi vă vom spune principii de baza munca inteligenței artificiale.

Excursie la biologie

Capacitatea unei persoane de a interpreta și a percepe corect informațiile vizuale este oferită de cel mai complex proces biologic din univers. În același timp, rețeaua neuronală biologică umană joacă un rol uriaș în activitatea aparatului vizual, care a devenit prototipul primelor modele de inteligență artificială. De ce este creierul atât de important pentru o vedere clară și clară?

Faptul este că ochiul uman percepe o imagine neclară, inversată și stricat de un punct orb. Ea este cea care se formează inițial pe retină și abia apoi se transmite la creier. El deja „întoarce” imaginea, filtrează detaliile inutile și evidențiază aproape instantaneu obiectele familiare sau necunoscute în câmpul vizual. Pe baza informațiilor primite, sistemul nervos „emite instrucțiuni” altor organe, fie că este vorba de o creștere bruscă a adrenalină într-o situație periculoasă sau de o senzație crescută de foame la vederea alimentelor delicioase.

Un rol uriaș în definirea corectă a imaginilor îl joacă învățământul primar, pe care toți copiii îl suferă chiar și la o vârstă inconștientă. De exemplu, când văd un animal necunoscut, părinții explică că este un câine și nu orice altă creatură. Data viitoare când creierul copilului recunoaște imediat câinele pe fundalul altor obiecte. Deci, de-a lungul vieții, după milioane de imagini văzute, abilitatea de a recunoaște și procesa informatie necesara. Pentru inteligența artificială, bazele de date de imagini precum MNIST sunt folosite ca exemple.

Ce este o rețea neuronală artificială?

Sistemul nervos uman este alcătuit din miliarde de neuroni conectați prin sinapse. Fiecare neuron poate forma și rupe mii de conexiuni cu celule similare într-o fracțiune de secundă. Datorită acestui fapt, putem gândi, analiza, aminti și reproduce diferite informații. Rețeaua neuronală artificială (ANN) este prima încercare de a permite unei mașini să dobândească capacitatea de analiză.

La fel ca un model biologic, un ANN este format dintr-un număr mare de neuroni interconectați prin sinapse. Numai în acest caz, acestea nu sunt celule, ci unități de calcul care primesc și emit anumite informații. Ele sunt împărțite în mai multe tipuri (input, ascuns, ieșire și context). Datorită unei mici varietăți de specii, este posibil să se organizeze un model primitiv al ceea ce numim gândire.

Sinapsele neuronilor din ANN-uri au, de asemenea, proprii parametri. Fiecare conexiune dintre o unitate de calcul este înzestrată cu o pondere, motiv pentru care informațiile de la un neuron cu o greutate mare sunt considerate dominante. În procesul de configurare și antrenare a unei rețele neuronale artificiale, parametrii de greutate se pot schimba în mod repetat.

Ce e inauntru?

Pentru a crea un ANN, puteți folosi diferite instrumente și limbaje de programare; rețelele neuronale din Python sunt cele mai populare ca antrenament. Acest limbaj de scripting este unul dintre cele mai ușor de învățat și este ideal pentru dezvoltarea ANN-urilor. Rețelele neuronale Java sunt mai puțin populare datorită scrierii lor mai complexe.

Ceea ce este ascuns „sub capota” ANN-ului este uneori necunoscut chiar și dezvoltatorului însuși. În timpul antrenamentului, sistemul își poate schimba forma și poate fi foarte diferit de forma sa originală. Un număr imens de neuroni sunt alcătuiți din sute de straturi de perceptron, care sunt „încurcate” cu rețele plastice de interconexiuni.

În general, prezent formula generala acțiunile unei anumite rețele neuronale sunt destul de dificile și nu sunt necesare. Din punct de vedere practic, ne interesează doar intrarea și ieșirea oferite de program. Cât de bine „învață” ANN să ia în considerare și să identifice imaginile depinde doar de succesul învățării automate.

Învățare automată

Inițial, inteligența artificială a apărut ca o inițiativă de a crea un astfel de instrument tehnologic care ar putea rezolva probleme care anterior erau destinate exclusiv gândirii umane. Domeniul învățării automate a rețelelor neuronale ca o subsecțiune a inteligenței artificiale a apărut nu cu mult timp în urmă la intersecția dintre matematică și informatică. Scopul principal al învățării automate este construirea corectă a algoritmilor bazați pe exemple reale starea lucrurilor. Cu cuvinte simple mașina „învață” să selecteze soluția corectă a problemei prin sortarea a mii de soluții posibile.

Cel mai bine este să luați în considerare învățarea automată în detaliu folosind exemplul unui ANN, care a fost creat pentru a identifica obiectele din imagini. Inițial, sunt dați parametrii de greutate ai sinapselor la întâmplare. După primul rezultat al prelucrării imaginii (adesea incorecte), rețeaua neuronală își schimbă parametrii până când învață să găsească obiectele dorite în fotografie cu un grad ridicat de probabilitate.

Cu toate acestea, în unele cazuri, „tutorialele greșite” pot anula toate eforturile dezvoltatorilor. Un set slab de imagini monotone va duce la faptul că programul va „memora” pur și simplu definițiile necesare pentru fiecare imagine și nu va analiza cele mai mici detalii ale acesteia. Mai ales în astfel de scopuri, există baza de date MNIST (Mixed National Institute of Standards and Technology). Include zeci de mostre standardizate de cifre scrise de mână pe imagini de 28x28 pixeli.

MNIST este complet deschis pentru utilizare, fiecare dezvoltator poate verifica performanța rețelei neuronale în baza de date. Pe lângă MNIST, puteți utiliza baza de date ImageNet de la Universitatea Stanford. Include aproximativ 14 milioane de imagini de diferite formate.

Tipuri de rețele neuronale

După natura conexiunilor, ANN-urile sunt clasificate în rețele neuronale recurente, funcții de bază radială și hărți de auto-organizare. În ANN-urile recurente, semnalul de la neuronii de ieșire este parțial returnat înapoi la sistem pentru analize ulterioare. Rețelele de bază radială sunt antrenate mai rapid datorită plasării diferite a stratului ascuns și de ieșire al neuronilor. Și, în sfârșit, rețelele de auto-organizare sunt folosite pentru a identifica rapid noi obiecte nefamiliare.

ANN-urile sunt, de asemenea, clasificate în funcție de natura antrenamentului, setările de greutate, tipurile de date de intrare și multe alte caracteristici. În utilizare practică, capacitățile celor trei arhitecturi de rețele neuronale menționate mai sus sunt cele mai utilizate.

Scopul și domeniul de aplicare

Inteligența artificială nu mai este o invenție a scriitorilor de science fiction, cele mai simple modele ale sale sunt implementate chiar și în smartphone-urile obișnuite. ANN-urile sunt utilizate în trei scopuri principale:

  • Clasificarea este distribuirea unei cantități mari de date pe baza anumitor parametri. De exemplu, un program ar putea decide ce bănci clienții să împrumute în funcție de capacitatea lor de plată și istoricul de creditare;
  • Prognoza - prezicerea rezultatului evenimentelor cu un anumit grad de probabilitate. De exemplu, cât va costa un bloc de acțiuni la bursă;
  • Recunoașterea este identificarea anumitor obiecte dintr-o fotografie sau un videoclip. Cel mai simplu exemplu– detectarea automată a feței în camera smartphone-ului.

Până acum, aplicațiile de înfrumusețare selfie și serviciile de căutare de persoane cu o singură fotografie rămân singurele utilizări pentru rețelele neuronale. Cu toate acestea, Vinci, Snapchat sau FaceApp sunt doar vârful aisbergului. ANN-urile pot da un impuls semnificativ automatizării transportului, financiar, divertisment și alte domenii. Datorită inteligenței artificiale, în curând va fi posibil să scapi de munca umană monotonă.

Mai mult, chiar și creativitatea poate fi pusă în flux. Prin eforturile dezvoltatorilor Yandex, a apărut primul album muzical 404, înregistrat de o rețea neuronală. Albumul a devenit prima colecție a grupului inexistent Neuronnaya Oborona, bazată pe stilul textelor lui Yegor Letov.

ANN-urile pot fi un punct de plecare pentru dezvoltarea ulterioară a asistenților precum Siri sau Cortana. Deja, astfel de sisteme pot suporta o conversație simplă și pot răspunde la solicitarea dorită a utilizatorului. Serviciul Deep Dream care a lansat boom-ul rețelelor neuronale în 2016 este un spin-off de la dezvoltatorii Google. Pe exemplul fotografiilor prelucrate de el, ne putem imagina cum o mașină vede cutare sau cutare imagine cu „creierul” său. Desigur, în timp ce încurcăturile ilizibile seamănă mai mult cu efectele negative ale drogurilor psihedelice. Cu toate acestea, acesta este deja primul pas serios către inteligența artificială cu drepturi depline.


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 cu mai multe straturi, care acum este, de exemplu, folosit 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 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ția acelui neuron, a cărui greutate 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 calculator 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 comunicare î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 a fost nevoie anterior. 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 voce interacțiuni, sisteme de analiză și multe altele. O distribuție atât de largă a rețelelor neuronale, printre altele, se datorează apariției diferite căi accelerarea învățării ANN.

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 unelte diferite semnale î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 impuls sunt protejate de interferența sunetului. Numerele reale sunt afectate de zgomot, ceea ce crește șansa de eroare.

Rezultat

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 î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 ca adevăr.

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


Se încarcă...
Top