Învățare profundă ( învățare profundă ; ing. Învățare profundă ) - un set de metode de învățare automată ( cu un profesor , cu implicare parțială a unui profesor , fără profesor , cu întărire ) bazate pe reprezentări ale învățării (învățare caracteristică/reprezentare ing. ), și nu algoritmi specializați în sarcini specifice. Multe metode de învățare profundă erau cunoscute încă din anii 1980 (și chiar mai devreme [1] ), dar rezultatele nu au fost impresionante [2], în timp ce progresele în teoria rețelelor neuronale artificiale (pre-antrenarea rețelelor neuronale folosind un caz special al unui model grafic nedirecțional, așa-numita mașină Boltzmann limitată ) și puterea de calcul de la mijlocul anilor 2000 (inclusiv utilizarea acceleratoarelor grafice ). , matrice de porți programabile de utilizator și diverse forme de procesoare neuronale ) nu au permis crearea de arhitecturi tehnologice complexe ale rețelelor neuronale care să aibă performanțe suficiente și să permită rezolvarea unei game largi de probleme care nu puteau fi rezolvate efectiv înainte, de exemplu, pe calculator . viziunea , traducerea automată , recunoașterea vorbirii și calitatea soluției sunt acum comparabile în multe cazuri, iar în unele depășesc eficiența umană [3] .
În ciuda faptului că termenul „ învățare profundă ” a apărut în comunitatea științifică a învățării automate abia în 1986, după lucrările lui Rina Dekhter [4] , primul algoritm de lucru general pentru perceptronii multistrat cu feed-forward profund a fost publicat în cartea sovieticului. oamenii de știință Alexei Grigorievich Ivakhnenko și Valentin Grigorievich Lapa „Dispozitive predictive cibernetice”, încă din 1965 [5]
Alte arhitecturi profunde, în special cele specializate în recunoașterea modelelor , își au originea în neocognitronul dezvoltat de Kunihiko Fukushima.în 1980. În 1989, Jan LeCun a reușit să folosească algoritmul de backpropagation pentru a antrena rețele neuronale profunde pentru a rezolva problema recunoașterii codurilor poștale scrise de mână [6] . În ciuda experienței de succes, a fost nevoie de trei zile pentru a antrena modelul, ceea ce a limitat semnificativ aplicabilitatea acestei metode. Rata scăzută de învățare este asociată cu mulți factori, inclusiv problema gradienților de dispariție din cauza răspândirii mari a valorilor parametrilor antrenabili, care a fost analizată în 1991 de Jörgen Schmidhuber și Sepp Hochreiter. Din cauza acestor probleme, rețelele neuronale au făcut loc pentru a sprijini mașinile vectoriale în anii 1990 .
Până în 1991, astfel de sisteme au fost folosite pentru a recunoaște cifre izolate scrise de mână 2D, iar recunoașterea obiectelor 3D a fost realizată prin potrivirea imaginilor 2D cu un model de obiect 3D realizat manual. În 1992, a fost creat un model de cresceptron [7] [8] [9] pentru recunoașterea obiectelor tridimensionale în scene aglomerate.
În 1994, André de Carvalho, împreună cu Mike Fairhurst și David Bisset, au publicat rezultatele experimentale ale unei rețele neuronale booleene cu mai multe straturi, cunoscută și ca o rețea neuronală fără greutate, constând dintr-un modul de rețea neuronală auto-organizată cu trei straturi pentru extragerea caracteristicilor ( SOFT) și apoi o clasificare a modulelor de rețea neuronală stratificată (GSN). Fiecare modul a fost supus unei instruiri independente. Fiecare strat din modul a preluat obiecte cu o complexitate crescândă în raport cu stratul anterior. [zece]
În 1995, Brendan Frey a demonstrat că este posibil să se antreneze (în două zile) o rețea care conține șase straturi complet conectate și câteva sute de unități ascunse folosind un algoritm somn-veghe dezvoltat cu Peter Dayan și Hinton [11] . Mulți factori contribuie la viteza scăzută, inclusiv problema gradientului de dispariție analizată în 1991 de Sepp Hochreiter [12] [13] .
Modelele mai simple care utilizează lucru manual specific sarcinii, cum ar fi filtrele Gabor și mașinile vectoriale suport (SVM), au fost alegeri populare în anii 1990 și 2000 din cauza costului de calcul al rețelelor neuronale artificiale (ANN) și a lipsei de înțelegerea modului în care creierul își leagă rețelele biologice.
Atât învățarea de suprafață, cât și cea profundă (de exemplu, rețele recurente) ANN-urile au fost studiate de mulți ani [14] [15] [16] . Aceste metode nu au depășit niciodată modelele eterogene mixte Gaussian și Markov ascunse bazate pe modele de vorbire generativă antrenate discriminator [17] . Au fost analizate dificultăți cheie, inclusiv reducerea gradientului [12] și structura de corelație temporală slabă în modelele predictive neuronale [18] [19] . Dificultăți suplimentare au fost lipsa datelor de antrenament și puterea de calcul limitată.
Învățarea profundă a câștigat popularitate la mijlocul anilor 2000, când totul s-a reunit: computerele au devenit suficient de puternice pentru a antrena rețele neuronale mari (au învățat să delege calculele către GPU -uri , ceea ce a accelerat procesul de învățare cu un ordin de mărime), seturile de date au devenit suficient de mari pentru antrena rețele mari a avut sens, iar un alt progres a avut loc în teoria rețelelor neuronale artificiale - articole de Hinton , Osinderero și Tae [20] , precum și Bengio [21] , în care autorii au arătat că este posibil să se preinstruiască eficient. o rețea neuronală multistrat dacă fiecare strat este antrenat separat la utilizarea unei mașini Boltzmann limitate și apoi reinstruire folosind metoda de backpropagation .
În 2012, o echipă condusă de George E. Dahl a câștigat Merck Molecular Activity Challenge folosind rețele neuronale profunde multitasking pentru a prezice ținta biomoleculară a unui singur medicament [22] . În 2014, grupul lui Hochreiter a folosit învățarea profundă pentru a identifica efectele nețintă și toxice ale substanțelor chimice de mediu în nutrienți, produse de uz casnic și medicamente și a câștigat „Tox21 Data Challenge” de la Institutul Național de Sănătate din SUA , Administrația pentru Alimente și Medicamente din SUA . calitatea alimentelor și medicamentelor și NCATS [23] .
O dezvoltare semnificativă în recunoașterea imaginilor sau a obiectelor a fost resimțită între 2011 și 2012. În timp ce rețelele neuronale convoluționale retropropagate (CNN) există de zeci de ani, iar GPU-urile implementează rețele neuronale de mulți ani, inclusiv CNN-uri, implementările rapide ale CNN-urilor pe GPU au fost folosite pentru a avansa vederea computerizată. În 2011, această abordare a atins performanțe supraomenești pentru prima dată într-o competiție de recunoaștere a modelelor vizuale. Tot în 2011 a câștigat concursul de scris de mână ICDAR, iar în mai 2012, concursul de segmentare a imaginii ISBI [24] . Până în 2011, CNN-urile nu au jucat un rol major la conferințele de viziune computerizată, dar în iunie 2012, o prezentare a lui Ciresan [25] la conferința emblematică CVPR a arătat cum integrarea maximă a CNN-urilor pe un GPU poate îmbunătăți semnificativ multe rezultate de referință. În octombrie 2012, un sistem similar a fost dezvoltat de Krizhevsky [26] , a cărui echipă a câștigat competiția la scară largă ImageNet cu o marjă semnificativă față de metodele de învățare automată de suprafață. În noiembrie 2012, echipa Ciresan a câștigat și concursul ICPR pentru analiză de imagini medicale mari pentru depistarea cancerului, iar în anul următor Marea Provocare MICCAI pe aceeași temă [27] . În 2013 și 2014, rata de eroare în sarcina ImageNet folosind învățarea profundă a fost redusă și mai mult datorită unei tendințe similare în recunoașterea vorbirii la scară largă. Steven Wolfram a publicat aceste îmbunătățiri ca parte a Proiectului de identificare a imaginii [28] .
Clasificarea imaginilor a fost apoi extinsă la sarcina mai complexă de a genera descrieri (legende) pentru imagini, adesea ca o combinație de CNN și LSTM [29] [30] [31] [32] .
Unii cercetători cred că victoria ImageNet din octombrie 2012 a marcat începutul unei „revoluții de învățare profundă” care a schimbat industria AI [33] .
În martie 2019, Yoshua Bengio , Geoffrey Hinton și Yann LeCun au primit Premiul Turing pentru descoperiri conceptuale și inginerești care au făcut din rețelele neuronale profunde o componentă critică a calculului.
Rețelele neuronale artificiale (ANN) sunt sisteme de calcul bazate pe principiile rețelelor neuronale biologice care alcătuiesc creierul animalului. Astfel de sisteme învață (își îmbunătățesc treptat abilitățile) să execute sarcini, de obicei fără a fi programate pentru a rezolva sarcini specifice. De exemplu, în recunoașterea imaginilor pisicilor, aceștia pot învăța să recunoască imaginile care conțin pisici analizând exemple de imagini care au fost etichetate manual „pisică” sau „fără pisică” și folosind rezultatele analizei pentru a identifica pisicile în alte imagini. ANN-urile și-au găsit cea mai mare utilizare în aplicațiile software care sunt dificil de exprimat cu un algoritm computerizat tradițional folosind programarea bazată pe reguli .
ANN-urile se bazează pe un set de unități conectate numite neuroni artificiali (similar cu neuronii biologici din creierul biologic). Fiecare conexiune (sinapsă) dintre neuroni poate transmite un semnal către alt neuron. Neuronul receptor (postsinaptic) poate procesa semnalul (semnalele) și apoi semnala neuronilor conectați la acesta. Neuronii pot avea o stare, reprezentată de obicei prin numere reale, de obicei între 0 și 1. Neuronii și sinapsele pot avea și greutăți care se modifică în timpul învățării, ceea ce poate crește sau scădea puterea semnalului pe care îl trimite.
De obicei, neuronii sunt organizați în straturi. Straturi diferite pot efectua diferite tipuri de transformări. Semnalele călătoresc de la primul strat (de intrare) la ultimul (de ieșire), eventual după ce au trecut prin straturi de mai multe ori.
Scopul inițial al abordării rețelei neuronale a fost de a rezolva probleme în același mod ca și creierul uman. De-a lungul timpului, atenția s-a concentrat pe selecția anumitor abilități intelectuale, ceea ce a dus la abateri de la biologie, precum retropropagarea, sau transmiterea de informații în sens invers și înființarea unei rețele care să reflecte aceste informații.
Rețelele neuronale sunt utilizate pentru o varietate de sarcini, inclusiv viziunea artificială, recunoașterea vorbirii, traducerea automată, filtrarea rețelelor sociale, jocurile video și diagnosticarea medicală.
Începând cu 2017, rețelele neuronale au de obicei câteva mii până la câteva milioane de unități și milioane de conexiuni. În ciuda faptului că acest număr este cu câteva ordine de mărime mai mic decât numărul de neuroni din creierul uman, aceste rețele pot îndeplini multe sarcini la un nivel care depășește capacitățile oamenilor (de exemplu, recunoașterea feței, jocul go ) [34] .
O rețea neuronală profundă (DNN, DNN - Deep neuronal network) este o rețea neuronală artificială (ANN) cu mai multe straturi între straturile de intrare și de ieșire [35] [36] . GNN găsește metoda corectă de transformare matematică pentru a transforma intrarea într-o ieșire, indiferent dacă corelația este liniară sau neliniară . Rețeaua se deplasează prin straturi, calculând probabilitatea fiecărei ieșiri. De exemplu, un DNN care este antrenat să recunoască rasele de câini va trece printr-o anumită imagine și va calcula probabilitatea ca un câine din imagine să aparțină unei anumite rase. Utilizatorul poate vizualiza rezultatele și selecta probabilitățile pe care rețeaua ar trebui să le afișeze (peste un anumit prag, de exemplu) și poate returna o etichetă sugerată rețelei. Fiecare transformare matematică este considerată un strat, iar GNN-urile complexe au multe straturi, de unde și denumirea de rețele „deep” sau „deep”.
GNN-urile pot modela relații neliniare complexe. Arhitecturile GNN generează modele compoziționale în care un obiect este exprimat ca o compoziție pe mai multe niveluri de primitive [37] . Straturile suplimentare permit elementelor să fie compuse de la niveluri inferioare, potențial modelând date complexe cu mai puține unități decât o rețea fină cu metrici similare [35] .
Arhitectura profundă include multe variații ale mai multor abordări de bază. Fiecare arhitectură a găsit succes în anumite domenii. Nu este întotdeauna posibilă compararea performanței mai multor arhitecturi decât dacă acestea au fost evaluate pe aceleași seturi de date.
GNN-urile sunt de obicei rețele feed-forward în care datele sunt transferate de la un strat de intrare la un strat de ieșire fără feedback. În primul rând, GNN creează o hartă a neuronilor virtuali și atribuie valori numerice aleatorii sau „greutăți” conexiunilor dintre ei. Greutățile și datele de intrare sunt multiplicate și returnează un semnal de ieșire de la 0 la 1. Dacă rețeaua nu recunoaște cu acuratețe un anumit model, algoritmul va ajusta ponderile până când va determina coeficienții care procesează corect datele. [38]
Învățarea profundă este caracterizată ca o clasă de algoritmi de învățare automată care [39] :
Toate definițiile indică
Compoziția straturilor neliniare specifice depinde de problema rezolvată. Sunt utilizate atât straturi ascunse ale rețelei neuronale, cât și straturi de transformări logice complexe [40] . Sistemul poate include variabile latente organizate în straturi în modele generative profunde, cum ar fi noduri într-o rețea profundă de încredere și o mașină Boltzmann profund restricționată .
Algoritmii de învățare profundă se opun algoritmilor de învățare superficială în ceea ce privește numărul de transformări parametrizate pe care le întâlnește semnalul pe măsură ce se propagă de la nivelul de intrare la cel de ieșire, unde o transformare parametrizată este considerată a fi o unitate de procesare a datelor care are parametri antrenabili, cum ar fi ca greutăți sau praguri [41] . Lanțul de transformări de la intrare la ieșire se numește CAP - prin transfer de responsabilitate ( calea de atribuire a creditelor în engleză , CAP ). CAP-urile descriu relații cauzale potențiale de-a lungul rețelei de la intrare la ieșire, iar calea în diferite ramuri poate avea lungimi diferite. Pentru o rețea neuronală feedforward, adâncimea CAP nu diferă de adâncimea rețelei și este egală cu numărul de straturi ascunse plus unul (stratul de ieșire este, de asemenea, parametrizat). Pentru rețelele neuronale recurente , în care semnalul poate sări prin straturi ocolindu-le pe cele intermediare, CAP este potențial nelimitat în lungime datorită feedback-ului. Nu există un prag universal agreat pentru adâncimea de divizare a învățării superficiale din învățarea profundă, dar învățarea profundă este în general considerată a fi caracterizată de mai multe straturi neliniare (CAP > 2). Jorgen Schmidhuber subliniază, de asemenea, „învățarea foarte profundă” atunci când CAP > 10 [41] .
Învățarea profundă este un algoritm de învățare automată pentru modelarea abstracțiilor la nivel înalt folosind transformări multiple neliniare [39] [40] [41] [42] [43] .
În primul rând, învățarea profundă include următoarele metode și variațiile acestora:
Prin combinarea acestor metode, sunt create sisteme complexe care corespund diverselor sarcini de inteligență artificială .
Învățarea profundă este o selecție validată dintr-o familie largă de metode de învățare automată pentru reprezentarea datelor care se potrivesc cel mai bine naturii problemei. O imagine, de exemplu, poate fi reprezentată în mai multe moduri, cum ar fi un vector de intensitate a valorilor pe pixel sau (într-o formă mai abstractă) ca un set de primitive, regiuni de o anumită formă etc. Reprezentări de date de succes ușurează rezolvarea problemelor specifice - de exemplu, recunoașterea feței și expresiile faciale [44] ). În sistemele de învățare profundă, automatizează procesul de selecție și reglare a caracteristicilor, realizând învățarea caracteristicilor fără un profesor sau cu implicarea parțială a unui profesor , folosind algoritmi eficienți și extragerea ierarhică a caracteristicilor [45] pentru aceasta .
Cercetările în acest domeniu au îmbunătățit modelele de lucru cu volume mari de date neetichetate. Unele abordări au apărut din progresele în domeniul neuroștiinței , progresele în interpretarea procesării informațiilor, construirea de modele de comunicare în sistemul nervos , cum ar fi codificarea neuronală asociată cu determinarea relației dintre stimul și răspunsurile neuronale și relația dintre activitatea electrică. neuronii din creier [46] .
Sistemele de învățare profundă și-au găsit aplicații în domenii precum viziunea computerizată , recunoașterea vorbirii , procesarea limbajului natural , recunoașterea audio, bioinformatica , unde au fost demonstrate rezultate semnificativ mai bune decât anterior pentru o serie de sarcini.
În ciuda succesului utilizării învățării profunde, aceasta are încă o limitare fundamentală: modelele de învățare profundă sunt limitate în ceea ce pot reprezenta, iar majoritatea programelor nu pot fi exprimate ca o transformare geometrică continuă a unei varietăți de date [47] .
Cu toate acestea, rămâne noțiunea sceptică că învățarea profundă nu este altceva decât un cuvânt la modă sau un rebrand pentru rețelele neuronale [48] [49] .
Î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 |
|