Înțelegerea rețelelor neuronale - Revizuirea IA

La fel ca creierul uman care este, pentru Fédéric Lenoir, continentul neexplorat al secolului 21, inteligența artificială este o știință neexplorată.

rețelelor

La fel ca creierul uman care este, pentru Fédéric Lenoir, continentul neexplorat al secolului XXI, inteligența artificială este știința neexplorată a secolului XXI. Iar comparația nu se termină aici. La fel ca în cazul inteligenței umane, în inteligența artificială vorbim rețelele neuronale.

Creierul uman este atât de complex încât nici cei mai mari neurologi nu îl pot descrie pe deplin. Cu toate acestea, cu ceea ce știm, putem construi ceva grozav. O tehnologie pe care se bazează cele mai bune AI astăzi: rețelele neuronale artificiale.

Această tehnologie este inspirată de funcționarea sistemului nervos al creierului nostru. Ar fi nevoie de sute de pagini pentru a o înțelege în profunzime, dar din moment ce ești foarte bun, câteva cuvinte vor fi suficiente 🙂

De la neuroni umani la rețele neuronale artificiale

Înainte de a putea vorbi despre neuroni artificiali, să descriem cum funcționează neuronul uman.

Un neuron biologic este o celulă caracterizată de mai multe componente. Sinapsele sunt punctele de legătură dintre neuroni. Dendritele sunt intrările în neuron, iar axonii sunt ieșirile lor către alți neuroni.

Corpul celulei este responsabil pentru activarea neuronului mai mult sau mai puțin, în funcție de intensitățile electrice ale semnalelor de excitare. Această activare are loc atunci când potențialul de acțiune al neuronului depășește un anumit prag, care se numește „potențial de activare”.

Diagrama unui neuron uman

Pentru a modela pur și simplu neuronii biologici, neurologii au introdus în anii 1940, noțiunea matematică a neuronului formal.

Schematic, un neuron formal are mai multe intrări și o singură ieșire. Distingem între activarea sinapselor și inhibarea sinapselor.

Matematic, neuronii propuși inițial sunt neuroni binari care au o ieșire de 0 sau 1. Această ieșire este calculată de neuron, utilizând o sumă ponderată a intrărilor sale. O funcție de activare este apoi aplicată acestei sume. Dacă rezultatul este mai mare decât un „prag de activare”, ieșirea va fi 1, altfel va fi 0.

Ce este o rețea neuronală ?

În inteligența artificială, rețelele neuronale sunt ansambluri de mai multe straturi de neuroni. Există sute de tipuri diferite de rețele neuronale. Principiul este întotdeauna același, arhitectura este diferită de fiecare dată.

Arhitectura rețelelor neuronale diferă în funcție de aplicație

În general, rețelele neuronale sunt un set de neuroni, organizați în mai multe straturi și legate între ele. Primul strat se numește strat de intrare, ultimul strat de ieșire, iar straturile dintre acestea se numesc straturi ascunse. Poate exista un număr foarte mare, în funcție de zona de aplicare.

Rețele neuronale pentru clasificare

În practică, neuronii primului strat vor transmite informații simple neuronilor stratului următor. Ceea ce le va influența gradul de activare și așa mai departe. Ultimul strat ne va furniza apoi informații despre rezultat.

De exemplu, pentru un sistem de recunoaștere a numerelor, intrările vor fi nivelurile de gri ale pixelilor din imagine. Rezultatul va fi probabilitatea ca un anumit număr să fie introdus ca intrare. Dacă ați introdus o imagine reprezentând numărul 5, v-ați aștepta ca numărul 5 să fie asociat cu o probabilitate mai mare. Și că celelalte cifre sunt asociate cu probabilități apropiate de 0.

Teorema fundamentală

Această metodă, care se bazează pe o serie de operații „simple”, poate aproxima funcții foarte complexe. McCulloch și Pitts au demonstrat acest lucru arătând că o rețea neuronală formală are aceeași putere de calcul ca o mașină Turing. În parte, din această cauză această tehnologie s-a impus ca metodă predominantă în învățarea automată.

Rețelele neuronale verifică teorema fundamentală a aproximării universale. Iată ce ne asigură de existența unei rețele neuronale care, pentru o funcție dată, ne oferă o aproximare a acelei funcții cu cât de puțină eroare ne dorim. Acesta este un rezultat foarte puternic !

În practică, fiecare neuron are doi parametri, părtinirea și greutatea. Prin urmare, ideea este de a găsi parametrizarea tuturor neuronilor rețelei, care să minimizeze diferența dintre funcția pe care dorim să o aproximăm și funcția modelată de rețea. Existența acestei parametrizări este dedusă de teorema anterioară.

Din păcate, pentru multe funcții este imposibil să-i găsești parametrii, știi doar că există. Ar fi nevoie de timpi gigantici de calcul pentru a le putea găsi.

În practică, antrenarea unei rețele neuronale este un exercițiu de optimizare

Rețelele neuronale sunt metode de învățare supravegheată. Prin urmare, avem date inițiale, pentru care cunoaștem ieșirea rețelei.

Munca pe care o facem cu privire la parametrii rețelei noastre are scopul de a minimiza diferența dintre ieșirea așteptată și ieșirea reală (cea furnizată de rețeaua neuronală). Această abatere poate fi calculată prin eroarea celor mai mici pătrate sau alte metrici ale erorii, vorbim despre funcția de pierdere. Încercăm să optimizăm această funcție de pierdere. Instruirea în rețea este o căutare de prejudecăți și greutăți care minimizează funcția de pierdere.

În matematică și mai precis în optimizare, există o mulțime de metode de minimizare a funcțiilor. Cea care este adesea utilizată este metoda de coborâre în gradient. Pentru această metodă, sunt necesare calcule ale derivatelor parțiale ale funcției de pierdere.