O rețea neuronală feedforward este o rețea neuronală artificială în care conexiunile dintre noduri nu formează o buclă [1] . O astfel de rețea este diferită de o rețea neuronală recurentă .
Rețeaua neuronală feedforward a fost primul și cel mai simplu tip de rețea neuronală artificială [2] . În această rețea, informația călătorește într-o singură direcție înainte de la nodurile de intrare, prin nodurile ascunse (dacă există) și la nodurile de ieșire. Nu există cicluri sau bucle de feedback în rețea [1] .
Cel mai simplu tip de rețea neuronală este rețeaua perceptron cu un singur strat, care constă dintr-un singur strat de noduri de ieșire; ale căror intrări merg direct la ieşiri printr-o serie de scale. Suma produselor greutăților și intrărilor este calculată la fiecare nod, iar dacă valoarea depășește un anumit prag (de obicei 0), neuronul se declanșează și ia o valoare activată (de obicei 1); în caz contrar, ia valoarea dezactivată (de obicei −1). Neuronii cu o astfel de funcție de activare sunt numiți și neuroni artificiali sau unități liniare de prag. În literatură, termenul de perceptron se referă adesea la rețele care constau doar din una dintre aceste unități. Un neuron similar a fost descris de Warren McCulloch și Walter Pitts în anii 1940.
Perceptronul poate fi creat folosind orice valoare pentru stările activat și dezactivat, atâta timp cât valoarea de prag se află între ele.
Perceptronii pot fi antrenați folosind un algoritm de învățare simplu, denumit în mod obișnuit regula delta . Acesta calculează erorile dintre rezultatul calculat și ieșirile eșantionului și le folosește pentru a crea ajustări de greutate, implementând astfel o formă de coborâre a gradientului .
Perceptronii cu un singur strat sunt capabili doar să învețe structuri separabile liniar ; în 1969, într-o monografie faimoasă numită Perceptrons , de Marvin Minsky și Seymour Papert , s-a arătat că o rețea de perceptroni cu un singur strat nu putea învăța funcția XOR (cu toate acestea, perceptronii multistrat erau capabili să producă orice funcție booleană posibilă ) .
Deși unitatea de prag unității este destul de limitată în puterea sa de calcul, s-a demonstrat că rețelele de unități de prag paralele pot aproxima orice funcție continuă de la intervalul compact al numerelor reale la intervalul [-1,1]. Acest rezultat poate fi găsit în Peter Auer, Harald Burgsteiner și Wolfgang Maass „Learning rule for very simple universal aproximators consisting of a single layer of perceptrons” [3] .
O rețea neuronală cu un singur strat poate calcula o ieșire continuă în loc de o funcție în trepte . O alegere comună este așa-numita funcție logistică:
Cu această alegere, rețeaua cu un singur strat este identică cu modelul de regresie logistică utilizat pe scară largă în modelarea statistică . Funcția logistică este cunoscută și sub denumirea de funcție sigmoidă . Are un derivat continuu, care îi permite să fie utilizat în retropropagare . Această funcție este de asemenea preferată deoarece derivata sa este ușor de calculat:
(Faptul că f satisface ecuația diferențială de mai sus este ușor de arătat prin aplicarea regulii lanțului )
Această clasă de rețele constă din mai multe niveluri de unități de calcul, de obicei interconectate printr-o conexiune directă. Fiecare neuron dintr-un strat are conexiuni direcționate cu neuronii din stratul următor. În multe aplicații, dispozitivele din aceste rețele folosesc funcția sigmoidă ca funcție de activare.
Teorema de aproximare universală pentru rețelele neuronale afirmă că fiecare funcție continuă care mapează intervale de numere reale la un interval de număr real de ieșire poate fi aproximată în mod arbitrar de un perceptron multistrat cu un singur strat ascuns. Acest rezultat este valabil pentru o gamă largă de funcții de activare, de exemplu, pentru funcțiile sigmoide.
Rețelele multistrat utilizează multe metode de învățare, dintre care cea mai populară este propagarea inversă. Aici valorile de ieșire sunt comparate cu răspunsul corect pentru a calcula valoarea unei funcții de eroare predefinite. Eroarea este apoi returnată prin rețea în diferite moduri. Folosind aceste informații, algoritmul ajustează greutatea fiecărei conexiuni pentru a reduce valoarea funcției de eroare cu o cantitate mică. După repetarea acestui proces pentru un număr suficient de mare de cicluri de pregătire, rețeaua va converge de obicei către o stare în care eroarea de calcul este mică. În acest caz, putem spune că rețeaua a învățat o anumită funcție obiectivă . Pentru a regla corect greutățile, se utilizează o tehnică generală de optimizare neliniară numită coborâre în gradient. Pentru a face acest lucru, rețeaua calculează derivata funcției de eroare în raport cu ponderile rețelei și modifică ponderile în așa fel încât eroarea să scadă (coborând astfel suprafața funcției de eroare). Din acest motiv, propagarea inversă poate fi utilizată numai în rețele cu funcții de activare diferențiabile.
În general, problema antrenării rețelei pentru a funcționa eficient chiar și pe mostre care nu au fost folosite ca antrenament este o problemă destul de subtilă care necesită metode suplimentare. Acest lucru este deosebit de important pentru cazurile în care sunt disponibile doar un număr foarte limitat de mostre de antrenament [4] . Pericolul este ca rețeaua să suprapună datele de antrenament și să nu reușească să capteze adevăratul proces statistic care generează datele. Teoria învățării computaționale se preocupă de formarea clasificatorilor pe o cantitate limitată de date. În contextul rețelelor neuronale, o simplă euristică , numită oprire timpurie, asigură adesea că rețeaua se va generaliza bine la exemplele din afara setului de antrenament.
Alte probleme tipice ale algoritmului de backpropagation sunt rata de convergență și posibilitatea atingerii minimului local al funcției de eroare. Astăzi, există tehnici practice care fac din backpropagarea în perceptroni multistrat instrumentul de alegere pentru multe probleme de învățare automată .
De asemenea, puteți utiliza o serie de rețele neuronale independente moderate de un intermediar, un comportament similar apare în creier. Acești neuroni pot lucra separat și pot face față unei sarcini mari, iar rezultatele pot fi în cele din urmă combinate [5] .