Rețeaua neuronală [1] (de asemenea , rețea neuronală artificială , ANN ) este un model matematic , precum și implementarea sa software sau hardware, construit 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 și când se încearcă modelarea acestor procese. Prima astfel de încercare a fost rețelele neuronale ale lui W. McCulloch și W. Pitts [2] . După dezvoltarea algoritmilor de învățare, modelele rezultate au început să fie utilizate în scopuri practice: în probleme de prognoză , pentru recunoașterea modelelor , în probleme de control etc.
ANN este un sistem de procesoare simple conectate și care interacționează ( neuroni artificiali ). Astfel de procesoare sunt de obicei destul de simple (mai ales în comparație cu procesoarele utilizate în computerele personale). Fiecare procesor dintr-o astfel de rețea se ocupă doar de semnalele pe care le primește periodic și de semnalele pe care le trimite periodic altor procesoare. Și totuși, fiind conectate într-o rețea suficient de mare cu interacțiune controlată, astfel de procesoare individuale simple împreună sunt capabile să îndeplinească sarcini destul de complexe.
Rețelele neuronale nu sunt programate în sensul obișnuit al cuvântului, sunt antrenate [a] . 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 dependențe 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 eșantionul de antrenament, precum și a datelor incomplete și/sau „zgomotoase”, parțial distorsionate.
Obiectele de natură diferită pot acționa ca imagini: simboluri text, imagini, modele de sunet etc. La antrenamentul rețelei, sunt oferite diferite modele de imagini cu indicarea clasei căreia îi aparțin. Un eșantion este de obicei reprezentat ca un vector de valori caracteristice. În acest caz, totalitatea tuturor caracteristicilor trebuie să determine în mod unic clasa căreia îi aparține eșantionul. Dacă nu există suficiente caracteristici, rețeaua poate asocia același eșantion cu mai multe clase, ceea ce nu este adevărat. La sfârșitul instruirii în rețea, acesta poate fi prezentat cu imagini necunoscute anterior și poate primi un răspuns despre apartenența la o anumită clasă.
Topologia unei astfel de rețele se caracterizează prin faptul că numărul de neuroni din stratul de ieșire este de obicei egal cu numărul de clase definite. Aceasta stabilește o corespondență între ieșirea rețelei neuronale și clasa pe care o reprezintă. Când o rețea este prezentată cu o imagine, una dintre ieșirile sale ar trebui să arate un semn că imaginea aparține acestei clase. În același timp, alte ieșiri ar trebui să aibă un semn că imaginea nu aparține acestei clase [18] . Dacă două sau mai multe ieșiri au un semn de apartenență la o clasă, se consideră că rețeaua „nu este sigură” de răspunsul acesteia.
Arhitecturile rețelelor neuronale utilizateAceastă problemă este apropiată de problema clasificării. Situațiile sunt supuse clasificării, ale căror caracteristici sunt alimentate la intrarea rețelei neuronale. La ieșirea rețelei ar trebui să apară un semn al deciziei pe care a luat-o. În acest caz, ca semnale de intrare se folosesc diverse criterii de descriere a stării sistemului controlat [19] .
Clustering se referă la î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 este capabilă să determine cărei clase îi aparține semnalul 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. Astfel, o astfel de rețea poate detecta clase de semnale 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 .
Rețelele neuronale din versiunea simplă a lui Kohonen nu pot fi uriașe, așa că sunt împărțite în hiperstraturi (hipercoloane) și nuclee (microcoloane). În comparație cu creierul uman, numărul ideal de straturi paralele nu ar trebui să depășească 112. Aceste straturi, la rândul lor, alcătuiesc hiperstraturi (hipercoloane), în care există de la 500 la 2000 de microcoloane (nuclei). În plus, fiecare strat este împărțit într-un set de hipercoloane care pătrund prin aceste straturi. Microcoloanele sunt codificate cu cifre și unități cu rezultatul obținut la ieșire. Dacă este necesar, straturi suplimentare și neuroni sunt îndepărtați sau adăugați. Este ideal să folosiți un supercomputer pentru a selecta numărul de neuroni și straturi. Un astfel de sistem permite rețelelor neuronale să fie plastice.
Arhitecturile rețelelor neuronale utilizateCapacitatea unei rețele neuronale de a prezice rezultă direct din capacitatea sa de a generaliza și evidenția dependențele ascunse între datele de intrare și de ieșire. După antrenament, rețeaua este capabilă să prezică valoarea viitoare a unei anumite secvențe pe baza mai multor valori anterioare și (sau) a unor factori existenți în prezent. Prognoza este posibilă doar atunci când schimbările anterioare predetermina într-adevăr viitorul într-o oarecare măsură . De exemplu, predicția prețurilor acțiunilor pe baza prețurilor acțiunilor de săptămâna trecută poate fi sau nu de succes, în timp ce prezicerea rezultatelor loteriei de mâine pe baza datelor din ultimii 50 de ani va eșua aproape sigur.
Arhitecturile rețelelor neuronale utilizateRețelele neuronale pot aproxima funcții continue. A fost demonstrată o teoremă de aproximare generalizată [20] : 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 o 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 și, cu alegerea corectă a structurii, poate aproxima cu exactitate funcționarea oricărui automat continuu.
Arhitecturile rețelelor neuronale utilizateCapacitatea rețelelor neuronale de a identifica relațiile dintre diferiți parametri face posibilă exprimarea datelor cu dimensiuni înalte mai compact dacă datele sunt strâns interconectate unele cu altele. Procesul invers - restaurarea setului de date original dintr-o informație - se numește memorie (auto)asociativă. Memoria asociativă vă permite, de asemenea, să restaurați semnalul/imaginea originală din datele de intrare zgomotoase/deteriorate. Rezolvarea problemei memoriei heteroasociative face posibilă implementarea memoriei adresabile la conținut [19] .
Unii dintre acești pași ar trebui luați în considerare mai detaliat.
Alegerea datelor pentru formarea în rețea și prelucrarea acestora este cel mai dificil pas în rezolvarea problemei. Setul de date de antrenament trebuie să îndeplinească mai multe criterii:
Datele inițiale sunt convertite în forma în care pot fi transmise la intrările rețelei. Fiecare intrare din fișierul de date se numește pereche de antrenament sau vector de antrenament . Vectorul de antrenament conține o valoare pentru fiecare intrare în rețea și, în funcție de tipul de antrenament (supravegheat sau nesupravegheat), o valoare pentru fiecare ieșire din rețea. Antrenarea unei rețele pe un set „brut”, de regulă, nu dă rezultate de înaltă calitate. Există o serie de moduri de a îmbunătăți „percepția” rețelei.
În plus, prezentarea atât a datelor de intrare, cât și a datelor de ieșire joacă un rol important. Să presupunem că rețeaua este instruită să recunoască literele din imagini și are o ieșire numerică - numărul literei din alfabet. În acest caz, rețeaua va avea impresia falsă că literele numerotate 1 și 2 sunt mai asemănătoare decât literele numerotate 1 și 3, ceea ce în general nu este adevărat. Pentru a evita o astfel de situație, se folosește o topologie de rețea cu un număr mare de ieșiri, când fiecare ieșire are semnificația sa. Cu cât sunt mai multe ieșiri în rețea, cu atât distanța dintre clase este mai mare și cu atât este mai dificil să le confundi.
Tipul de rețea ar trebui să fie ales pe baza expunerii problemei și a datelor de instruire disponibile. Învățarea supravegheată necesită o evaluare „expert” pentru fiecare element al eșantionului. Uneori, obținerea unei astfel de estimări pentru o cantitate mare de date este pur și simplu imposibilă. În aceste cazuri, o alegere naturală este o rețea de învățare nesupravegheată (de exemplu , harta auto-organizată Kohonen sau rețeaua neuronală Hopfield ). Atunci când se rezolvă alte probleme (cum ar fi prognoza seriilor temporale), judecata experților este deja conținută în datele originale și poate fi extrasă în timpul procesării. În acest caz, puteți utiliza un perceptron multistrat[ clarifica ] sau rețeaua Word .
După alegerea structurii generale, este necesar să se selecteze 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 acestea, trebuie să pornim de la faptul că capacitatea rețelei de a se generaliza este mai mare, cu atât este mai mare numărul total de conexiuni între neuroni . Pe de altă parte, numărul de conexiuni este limitat de sus de numărul de înregistrări din datele de antrenament.
După alegerea unei topologii specifice, este necesar să selectați parametrii de antrenament al rețelei neuronale. 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 de învățare scăzută va crește timpul de convergență, dar uneori va evita paralizia rețelei . Creșterea momentului de învățare poate crește sau micșora timpul 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 învățare).
Î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 ( de exemplu, rețele 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, o trecere completă peste eșantion fiind numită o epocă de învățare . 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.
Toate cele de mai sus se aplică numai algoritmilor iterativi pentru găsirea de soluții de rețele neuronale. Pentru ei, nimic nu poate fi cu adevărat garantat și este imposibil să automatizezi complet antrenamentul rețelelor neuronale. Cu toate acestea, alături de algoritmii de învățare iterativă, există algoritmi non-iterativi care au o stabilitate foarte mare și vă permit să automatizați complet procesul de învățare .
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 [22] . Astfel, rețeaua „înțelege” nu ce i s-a cerut, ci ce este mai ușor de generalizat.
Testarea calității antrenamentului rețelei neuronale ar trebui efectuată pe exemple care nu au participat la formarea acesteia. Numărul de cazuri de testare ar trebui să fie cu atât mai mare, cu atât calitatea instruirii este mai mare. Dacă erorile rețelei neuronale au o probabilitate apropiată de o miliardime, atunci sunt necesare un miliard de cazuri de testare pentru a confirma această probabilitate. Se pare că testarea rețelelor neuronale bine pregătite devine o sarcină foarte dificilă.
Într-un număr de rețele neuronale, funcția de activare poate depinde nu numai de coeficienții de greutate a conexiunilor , ci și de timpul de transmitere a unui impuls (semnal) prin canalele de comunicare . Prin urmare, în general, funcția de activare (transfer) a conexiunii de la element la element are forma: . Atunci o rețea sincronă este o astfel de rețea în care timpul de transmisie al fiecărei conexiuni este fie zero, fie o constantă fixă . O rețea asincronă este o rețea în care timpul de transmisie pentru fiecare conexiune între elemente este diferit , dar și constant.
În rețelele neuronale 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 .
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 Hopfield recurentă „filtrează” datele de intrare, revenind la o stare stabilă și, astfel, permite rezolvarea problemelor de compresie a datelor și construirea memoriei asociative [23] . Rețelele bidirecționale sunt un caz special de rețele recurente. Î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 .
Au fost dezvoltate rețele neuronale care folosesc rețele radial-bazice (numite și RBF) ca funcții de activare. Vedere generală a funcției de bază radială:
, de exemplu,
unde este vectorul semnalelor de intrare ale neuronilor, este lățimea ferestrei funcției, este o funcție descrescătoare (cel mai adesea egală cu zero în afara unui anumit segment).
Rețeaua radial-bazică este caracterizată de trei caracteristici:
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 [ 24] . Hărțile auto-organizate ale lui Kohonen servesc în primul rând pentru vizualizare și analiza inițială („recunoaștere”) a datelor [25] .
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 (în sensul greutăților sinapselor) de 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 a 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 șase cele mai apropiate noduri. 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:
Sistemele de calcul bazate pe rețele neuronale au o serie de calități care sunt absente în mașinile cu arhitectură von Neumann (dar inerente creierului uman):
Datele de intrare sunt prețul acțiunilor pentru anul. Sarcina este de a determina cursul de mâine. Se efectuează următoarea transformare - cursul pentru azi, ieri, alaltăieri este aliniat. Următorul rând este deplasat după dată cu o zi și așa mai departe. Pe setul rezultat, se antrenează o rețea cu 3 intrări și o ieșire - adică ieșire: curs la zi, intrări: curs la zi minus 1 zi, minus 2 zile, minus 3 zile. Rețeaua instruită este alimentată cu tariful pentru azi, ieri, alaltăieri și primește răspunsul pentru mâine. În acest caz, rețeaua va afișa dependența unui parametru față 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.
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 [27] [28] . 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. A fost creată o abordare intuitivă a psihodiagnosticului , care nu este standard pentru metodele computerizate , care constă în excluderea construcţiei realităţii descrise . Vă permite să reduceți și să simplificați munca asupra metodelor de psihodiagnostic.
Rețelele neuronale sunt utilizate pe scară largă în cercetarea chimică și biochimică [29] . În prezent, rețelele neuronale sunt una dintre cele mai comune metode ale chimioinformaticii pentru căutarea relațiilor cantitative structură-proprietate [30] [31] , datorită cărora sunt utilizate în mod activ atât pentru prezicerea proprietăților fizico-chimice și a activității biologice a compușilor chimici, cât și pentru proiectarea direcționată a compușilor chimici, compuși și materiale cu proprietăți predeterminate, inclusiv dezvoltarea de noi medicamente.
Rețelele neuronale sunt utilizate cu succes pentru sinteza sistemelor de control pentru obiecte dinamice [32] [33] .
În domeniul controlului, sistemele neuronale sunt utilizate în probleme de identificare a obiectelor, în algoritmi de prognoză și diagnosticare, precum și pentru sinteza ACS optimă. Pentru a implementa ACP bazat pe ANN, producția de neurocipuri și neurocontrolere (NC) este în prezent dezvoltată intens .
Într-un anumit sens, ANN este un simulator de creier care are capacitatea de a învăța și de a naviga în condiții de incertitudine. O rețea neuronală artificială este similară cu creierul în două aspecte. Rețeaua dobândește cunoștințe în procesul de învățare și, pentru a stoca cunoștințe, folosește nu obiectele în sine, ci conexiunile lor - valorile coeficienților conexiunilor interneuronale, numite greutăți sinaptice sau coeficienți sinaptici.
Procedura de învățare a ANN constă în identificarea greutăților sinaptice care îi conferă proprietățile de transformare necesare. O caracteristică a ANN este capacitatea sa de a modifica parametrii și structura în procesul de învățare. [34]
Algoritmii rețelelor neuronale sunt folosiți pe scară largă în economie [35] . Cu ajutorul rețelelor neuronale se rezolvă problema dezvoltării algoritmilor pentru găsirea unei descrieri analitice a tiparelor de funcționare a obiectelor economice (întreprindere, industrie, regiune). Acești algoritmi sunt aplicați pentru prognoza unor indicatori de „ieșire” ai obiectelor. Utilizarea metodelor rețelelor neuronale permite rezolvarea unor probleme de modelare economică și statistică, creșterea gradului de adecvare a modelelor matematice și apropierea acestora de realitatea economică [36] . Deoarece sistemele economice, financiare și sociale sunt foarte complexe și sunt rezultatul acțiunilor și reacțiilor umane, crearea unui model matematic complet , luând în considerare toate acțiunile și reacțiile posibile, este o sarcină foarte dificilă (dacă poate fi rezolvată). În sistemele de această complexitate, este firesc și cel mai eficient să se utilizeze modele care imită direct comportamentul societății și al economiei. Este exact ceea ce poate oferi metodologia rețelelor neuronale [37] .
![]() | |
---|---|
În cataloagele bibliografice |
|
Tipuri de rețele neuronale artificiale | |
---|---|
|
Ingineria cunoașterii | |
---|---|
Concepte generale | |
Modele rigide | |
Metode soft | |
Aplicații | |
Învățare automată și extragerea datelor | |
---|---|
Sarcini | |
Învățarea cu un profesor | |
analiza grupului | |
Reducerea dimensionalității | |
Prognoza structurală | |
Detectarea anomaliilor | |
Modele grafice probabilistice | |
Rețele neuronale | |
Consolidarea învățării |
|
Teorie | |
Reviste și conferințe |
|