Rețele neuronale: exemplu, definiție, semnificație, domeniu de aplicare

Inteligența artificială și rețelele neuronale sunt tehnici incredibil de interesante și puternice bazate pe învățarea automată, care au fost folosite pentru a rezolva multe probleme din lumea reală. Cel mai simplu exemplu de rețea neuronală este învățarea punctuației și a gramaticii pentru sistemul automat.. pentru a crea un text complet nou, cu respectarea tuturor regulilor de ortografie.

Istoria rețelelor neuronale

Informaticienii au încercat de mult timp să simuleze creierul uman. În 1943, Warren S. McCulloch și Walter Pitts au dezvoltat primul model conceptual al unei rețele neuronale artificiale. În "Calculul logic al ideilor referitoare la activitatea neuronală", au descris un exemplu de rețea neuronală, conceptul de neuron - o singură celulă care trăiește într-o rețea comună, care primește date de intrare, le procesează și generează semnale de ieșire.

Istoria rețelei neuronale

Munca lor, ca și cea a multor alți oameni de știință, nu a fost menită să descrie cu exactitate funcționarea creierului biologic. Rețeaua neuronală artificială a fost dezvoltată ca un model de calcul care operează pe Principiul de funcționare a creierului pentru a rezolva o gamă largă de probleme.

Evident, există exerciții care sunt ușor de rezolvat pentru un calculator, dar dificil de făcut pentru un om, cum ar fi extragerea rădăcinii pătrate a unui număr de zece cifre. Acest exemplu ar dura mai puțin de o milisecundă pentru o rețea neuronală, în timp ce un om ar avea nevoie de câteva minute pentru a-l calcula. Pe de altă parte, există unele care sunt incredibil de ușor de rezolvat pentru un om, dar care depășesc puterea unui computer, cum ar fi alegerea fundalului unei imagini.

Oamenii de știință care au descoperit inteligența artificială

Oamenii de știință au petrecut mult timp cercetând și implementând soluții complexe. Cele mai frecvente un exemplu de rețea neuronală în informatică - recunoașterea modelelor. Gama de aplicații variază de la Recunoașterea optică a caracterelor și fotografii, scanări tipărite sau scrise de mână în text digital înainte de recunoașterea facială.

Mașini de calcul biologice

Mașini de calcul biologice

Creierul uman este o mașinărie de calcul excepțional de complexă și cea mai puternică mașină de calcul cunoscută. Funcționarea sa internă este modelată în jurul conceptului de neuroni și a rețelelor acestora, cunoscute sub numele de rețele neuronale biologice. Creierul conține în jur de 100 de miliarde de neuroni care sunt conectați prin aceste rețele.

La un nivel înalt, ele comunică între ele printr-o interfață formată din axoni terminali conectați la dendrite printr-un spațiu - o sinapsă. Pur și simplu, unul transmite un mesaj celuilalt prin această interfață dacă suma semnalelor de intrare ponderate de la unul sau a câtorva neuroni depășește pragul pentru a provoca o transmisie. Aceasta se numește activare atunci când pragul este depășit și mesajul este transmis către următorul neuron.

Procesul de însumare poate fi complex din punct de vedere matematic. Intrarea este o combinație ponderată a acestor semnale, iar ponderarea fiecăruia înseamnă că această intrare poate avea un efect diferit asupra calculului ulterior și asupra ieșirii finale a rețelei.

Elemente ale unui model neuronal

Învățarea profundă este termenul utilizat pentru rețele neuronale complexe, formate din mai multe straturi. Straturile sunt alcătuite din noduri. Un nod este pur și simplu un loc unde are loc un calcul, care se declanșează atunci când se confruntă cu un număr suficient de stimuli. Un nod combină intrările dintr-un set de coeficienți sau ponderi care fie întăresc, fie slăbesc semnalul respectiv, atribuindu-le astfel o semnificație pentru sarcină.

Rețelele de învățare profundă sunt diferite de rețelele neuronale obișnuite cu un singur strat ascuns. Un exemplu de formare a rețelelor neuronale este Kohonen Networks.

Elemente ale unui model neuronal

În rețelele de învățare profundă, fiecare strat învață un anumit set de funcții pe baza ieșirii stratului anterior. Cu cât se avansează mai mult în rețeaua neuronală, cu atât mai complexe sunt obiectele care pot fi recunoscute de noduri, deoarece acestea combină și recombină obiectele din stratul anterior.

Rețelele de învățare profundă realizează extragerea automată a caracteristicilor fără aport uman, spre deosebire de majoritatea algoritmilor tradiționali, și se termină cu un strat de ieșire: un clasificator logic sau softmax care atribuie o probabilitate unui anumit rezultat și se numește predicție.

Cutia neagră ANN

Rețelele neuronale artificiale (RNA) sunt modele statistice care se bazează parțial pe rețelele neuronale biologice. Acestea sunt capabile să gestioneze relații neliniare între intrări și ieșiri în paralel. Astfel de modele se caracterizează prin prezența unor ponderi adaptive de-a lungul căilor dintre neuroni, care pot fi ajustate de algoritmul de învățare pentru a îmbunătăți întregul model.

Arhitectura neuronală artificială (ANN)

Un exemplu simplu de rețea neuronală este o rețea neuronală artificială din punct de vedere arhitectural, în care:

  • Strat de intrare - strat de intrare.
  • Strat ascuns.
  • Strat de ieșire.

Este modelat folosind straturi de neuroni artificiali sau unități de calcul care pot accepta intrări și folosesc o funcție de activare împreună cu un prag pentru a determina dacă mesajele sunt transmise.

Într-un model simplu, primul strat este stratul de intrare, urmat de stratul ascuns și, în final, de stratul de ieșire. Fiecare poate conține unul sau mai mulți neuroni. Modelele pot deveni din ce în ce mai complexe pe măsură ce capacitățile de abstractizare cresc și rezolvarea problemelor, numărul de straturi ascunse, numărul de neuroni dintr-un anumit strat și numărul de căi dintre aceștia.

Arhitectura și reglarea modelului sunt componente esențiale ale metodelor RNA, pe lângă algoritmii de învățare în sine. Sunt extrem de puternici și sunt considerați algoritmi de tip "cutie neagră", ceea ce înseamnă că mecanismele lor interne sunt foarte greu de înțeles și de explicat.

Algoritmi de învățare profundă

Învățare profundă - este un concept sună destul de tare, este de fapt doar un termen care descrie anumite tipuri de rețele neuronale și algoritmi asociați care consumă date brute de intrare prin mai multe straturi de transformări neliniare pentru a calcula o ieșire țintă.

Extracția nesupravegheată a caracteristicilor este, de asemenea, un domeniu în care învățarea profundă depășește așteptările. Un exemplu de formare a rețelelor neuronale - rețele SKIL.

Algoritmi de învățare profundă

În mod tradițional, este responsabilitatea cercetătorului de date sau a programatorului să efectueze procesul de extragere a caracteristicilor în majoritatea celorlalte abordări de învățare automată, împreună cu selecția și proiectarea caracteristicilor.

Parametrii optimi ai algoritmului

Algoritmii de învățare a caracteristicilor sancționează mașina pentru a învăța o sarcină specifică folosind un set rafinat de capacități de învățare. Cu alte cuvinte, ei învață să învețe să învețe. Acest principiu a fost folosit cu succes în multe aplicații și este considerat una dintre cele mai avansate metode de inteligență artificială. Algoritmii adecvați sunt adesea utilizați pentru sarcini supravegheate, nesupravegheate și parțial supravegheate.

Modelele bazate pe rețele neuronale au mai multe straturi decât algoritmii de învățare la suprafață. Algoritmii mai mici sunt mai puțin complecși și necesită o cunoaștere mai profundă a funcțiilor optime, care include selecția și proiectarea. În schimb, algoritmii de învățare profundă se bazează mai mult pe selectarea și optimizarea modelului optim prin reglarea. Acestea sunt mai potrivite pentru problemele în care cunoașterea prealabilă a caracteristicilor este mai puțin de dorit sau necesară, iar datele fixe nu sunt disponibile sau nu sunt necesare pentru utilizare.

Datele de intrare sunt transformate în toate straturile sale de către neuronii artificiali sau unitățile de procesare. Un exemplu de cod de rețea neuronală se numește CAP.

Valoarea PAC

CAP este utilizat pentru a măsura în arhitectura modelului de învățare profundă. Majoritatea cercetătorilor din domeniu sunt de acord că are mai mult de două straturi neliniare pentru PAC, iar unii cred că PAC cu mai mult de zece straturi necesită o învățare prea profundă.

Semnificația PAC

O discuție detaliată a numeroaselor arhitecturi de modele și algoritmi diferiți pentru acest tip de învățare este foarte spațială și controversată. Cele mai studiate sunt considerate a fi:

  1. Rețele neuronale directe.
  2. Rețele neuronale recursive.
  3. Perspectroni multistrat (MLP).
  4. Rețele neuronale convergente.
  5. Rețele neuronale recursive.
  6. Rețele de credință profundă.
  7. Rețele convergente de convingeri profunde.
  8. Hărți de autoorganizare.
  9. Mașini Boltzmann adânci.
  10. Autocodificatoare cu suprimare a zgomotului suprapuse.

Arhitecturi moderne de top

Perceptronii sunt considerate rețele neuronale de primă generație, modele computaționale ale unui singur neuron. Ele au fost inventate în 1956 de Frank Rosenblatt în "The Perceptron: A Suggested Model for Storing and Organising Information in the Brain" (Perceptronul: un model sugerat pentru stocarea și organizarea informațiilor în creier). Un perceptron, numit și rețea de tip feed-forward, transmite informații de la partea frontală la partea din spate.

Rețelele neuronale recurente RNN-urile transformă o secvență de intrare într-o secvență de ieșire care se află într-un domeniu diferit, de exemplu, schimbarea unei secvențe de presiuni sonore într-o secvență de identificatori de cuvinte.

John Hopfield a introdus rețeaua Hopfield Net în lucrarea sa din 1982, "Neural Networks and Physical Systems with Emerging Collective Computing Capabilities". Într-o rețea Hopfield (HN), fiecare neuron este conectat la fiecare alt neuron. Acestea sunt antrenate prin setarea valorii lor la circuitul dorit, după care se pot calcula ponderile.

Mașina Boltzmann

O mașină Boltzmann este un tip de rețea neuronală recurentă stocastică, care poate fi considerată ca un analog al rețelelor Hopfield. Aceasta a fost una dintre primele opțiuni de explorare a reprezentărilor interne care rezolvă probleme combinatorii complexe. Neuronii de intrare devin neuroni de ieșire la sfârșitul unei actualizări complete.

Rețeaua Generative Adversarial Network (GAN) a lui Ian Goodfellow este formată din două rețele. Este adesea o combinație de feed forward și rețele neuronale convoluționale. Unul generează conținut generativ, iar celălalt trebuie să evalueze conținutul discriminativ.

Pornirea SKIL din Python

Rețeaua neuronală de învățare profundă în Python potrivește intrările cu ieșirile și găsește corelații. Este cunoscut ca un aproximator universal, deoarece poate învăța să aproximeze funcția necunoscută f(x) = y între orice intrare "x" și orice ieșire "y", presupunând că acestea sunt corelate sau legate cauzal.

Procesul de învățare găsește "f" sau modul corect de transformare a lui "x" în "y", indiferent dacă f(x) = 3x + 12 sau f(x) = 9x - 0,1.

Sarcinile de clasificare sunt legate de seturi de date, astfel încât rețelele neuronale realizează corelații între etichete și date. Se cunosc următoarele tipuri de învățare supravegheată:

  • recunoașterea facială;
  • identificarea persoanelor în imagini;
  • definirea expresiilor faciale: supărat, vesel;
  • identificarea obiectelor din imagini: semne de oprire, pietoni, indicatoare de bandă;
  • recunoașterea gesturilor în imagini video;
  • determinarea vocii vorbitorului;
  • clasificarea textului spam.

Un exemplu de rețea neuronală convoluțională

O rețea neuronală convoluțională este similară unei rețele perceptron multistrat. Principala diferență este că CNN studiază modul în care este structurat și în ce scop este folosit. CNN a fost inspirat de procesele biologice. Structura lor are aspectul cortexului vizual prezent la animale. Acestea se aplică în domeniul viziunii computerizate și reușesc să atingă un nivel de vârf în materie de nivelurile de performanță în diverse domenii de cercetare.

Înainte de a codifica CNN-uri, se utilizează o bibliotecă, cum ar fi Keras cu backend-ul Tensorflow, pentru a construi un model. Mai întâi efectuați importul necesar. Biblioteca ajută la construirea unei rețele neuronale convoluționale. Încărcați setul de date mnist prin keras. Importați un model secvențial keras, la care se pot adăuga straturi de convoluție și de asociere, straturi dense, deoarece sunt utilizate pentru predicția etichetelor. Dropdown reduce supraadaptarea, iar alinierea convertește vectorul tridimensional într-un vector unidimensional. În cele din urmă, importăm numpy pentru operațiile cu matrice:

  • Y = 2 # valoarea 2 reprezintă faptul că imaginea are cifra 2;
  • Y = [0,0,1,0,0,0,0,0,0,0,0,0] # A treia poziție în vector a făcut 1;
  • # Aici valoarea clasei este convertită într-o matrice de clasă binară.

Algoritm de construcție:

  1. Adaugă straturi super-precise și pooling maxim la un model secvențial.
  2. Adăugați straturi intermediare. Dropout dezactivează în mod aleatoriu unii neuroni din rețea, forțând datele să găsească noi căi și reducând supraadaptarea.
  3. Adaugă straturi dense care sunt utilizate pentru a prezice clasa (0-9).
  4. Ei compilează un model cu o funcție de pierdere de entropie încrucișată categorică, un optimizator Adadelta și o metrică de precizie.
  5. După instruire, estimați pierderile și precizia modelului din datele de testare și imprimați-le.
Algoritm de construcție

Modelare în Matlab

Să prezentăm un exemplu simplu de rețele neuronale Matlab.

Presupunând că "а" modelul are trei intrări "a", "b" и "c" și generează o ieșire "y".

Simulare Matlab

În scopul generării de date: y = 5a + bc + 7c.

În primul rând, se scrie un mic script pentru a genera datele:

  • a = Rand (11000);
  • b = Rand (1,1000);
  • c = Rand (1,1000);
  • n = Rand (1,1000) * 0,05;
  • y = a * 5 + b * c + 7 * c + n,

unde n este zgomotul, adăugat special pentru a face să pară date reale. Cantitatea de zgomot este de 0,1 și este uniformă.

Astfel, intrarea este setul "a", "b" и "c", și ieșirea:

  • I = [a; b; c];
  • O = y.

Apoi folosește o funcție newff încorporată în matlab pentru a genera modelul.

Exemple de probleme de rețele neuronale

Mai întâi se creează o matrice R de dimensiune 3 * 2. Prima coloană va arăta minimul celor trei intrări, iar a doua coloană va arăta maximul celor trei intrări. În acest caz, cele trei intrări sunt între 0 și 1, deci:

R = [0 1; 0 1; 0 1].

Acum creați o matrice de mărime care are dimensiunea v a tuturor straturilor: S = [51].

Acum apelați funcția newff după cum urmează:

net = newff ([0 1; 0 1; 0 1; 0 1], S, {`tansig`, `purelin`}).

Modelul neuronal {`tansig`, `purelin`} prezintă funcția de cartografiere a celor două straturi.

Se antrenează cu datele create anterior: net = train(net,I,O).

Rețeaua este antrenată, puteți vedea curba de performanță pe măsură ce este antrenată.

Curba de performanță

Acum, simulați-l din nou pe aceleași date și comparați rezultatele:

O1 = sim(net,I);

plot(1:1000,O,1:1000,O1).

Astfel, matricea de intrare va fi:

  • net.IW{1}
  • -0.3684 0.0308 -0.5402
  • 0.4640 0.2340 0.5875
  • 1.9569 -1.6887 1.5403
  • 1.1138 1.0841 0.2439
  • net.LW{2,1}
  • -11.1990 9.4589 -1.0006 -0.9138

Aplicații de inteligență artificială

Exemple de implementări ale rețelelor neuronale includ soluții online pentru autoservire și fluxuri de lucru robuste. Există modele de învățare profundă utilizate pentru chatbots și, pe măsură ce acestea continuă să evolueze, ne putem aștepta să vedem o mai mare utilizare a acestui domeniu pentru o gamă largă de afaceri.

Aplicații:

  1. Traducerea automată. Nu este nimic nou, învățarea profundă ajută la îmbunătățirea traducerii automate a textului folosind rețele stivuite și permite traducerea imaginilor.
  2. Un exemplu simplu de aplicație a unei rețele neuronale - adăugarea de culoare la imagini și videoclipuri alb-negru. Aceasta se poate face automat cu ajutorul unor modele avansate de învățare.
  3. Mașinile învață punctuația, gramatica și stilul unui fragment de text și pot utiliza model pentru automat crearea unui text complet nou, cu ortografie, gramatică și stil de text corecte.

Rețelele neuronale artificiale RNA și tehnicile mai sofisticate de învățare profundă sunt unele dintre cele mai avansate instrumente de rezolvare a problemelor complexe. Deși este puțin probabil ca în viitorul apropiat să se înregistreze un boom al aplicațiilor, progresele în tehnologia și aplicațiile inteligenței artificiale vor fi cu siguranță interesante.

Deși raționamentul deductiv, inferența logică și procesul decizional raționamentul asistat de calculator este încă foarte departe de a fi perfect în prezent, s-au făcut deja progrese semnificative în ceea ce privește aplicarea inteligența artificială și algoritmii asociați.

Articole pe această temă