Acest tutorial aprofundat despre regulile de învățare a rețelelor neuronale explică învățarea Hebbian și algoritmul de învățare Perceptron cu exemple:
În tutorialul nostru anterior am discutat despre rețeaua neuronală artificială care este o arhitectură formată dintr-un număr mare de elemente interconectate numite neuroni.
Acești neuroni procesează intrarea primită pentru a da ieșirea dorită. Nodurile sau neuronii sunt conectați prin intrări, ponderi de conectare și funcții de activare.
Principala caracteristică a unei rețele neuronale este capacitatea sa de a învăța. Rețelele neuronale se antrenează singure cu exemple cunoscute. Odată ce rețeaua este antrenată, ea poate fi folosită pentru a rezolva valorile necunoscute ale problemei.
=> Citiți seria completă de formare în învățare automată
Rețeaua neuronală învață prin diferite scheme de învățare care sunt clasificate ca învățare supravegheată sau nesupravegheată.
În algoritmii de învățare supravegheată, valorile țintă sunt cunoscute de rețea. Aceasta încearcă să reducă eroarea dintre ieșirea dorită (țintă) și ieșirea reală pentru o performanță optimă. În algoritmii de învățare nesupravegheată, valorile țintă sunt necunoscute, iar rețeaua învață singură prin identificarea modelelor ascunse în datele de intrare prin formarea de clustere etc.
Un RNA este format din 3 părți, și anume intrare, strat ascuns și strat de ieșire. Există un singur strat de intrare și un singur strat de ieșire, în timp ce în rețea poate să nu existe niciun strat ascuns sau pot fi prezente 1 sau mai multe straturi ascunse. Pe baza acestei structuri, RNA se clasifică în rețele cu un singur strat, cu mai multe straturi, feed-forward sau recurente.
- Terminologie importantă a RNA
- Compararea regulilor de învățare a rețelelor neuronale
- Clasificarea algoritmilor de învățare supravegheată
- #1) Gradient Descent Learning
- #2) Învățare stocastică
- Clasificarea algoritmilor de învățare nesupravegheată
- #1) Învățarea Hebbian
- #2) Învățarea competitivă
- Neuronul Mc Culloch-Pitts
- Algoritmul de învățare Hebbian
- Exemplu de regulă de învățare Hebbian
- Algoritmul de învățare Perceptron
- Exemplu de regulă de învățare Perceptron
- Algoritmul de învățare Hoff Widrow
- Concluzie
Terminologie importantă a RNA
Înainte de a clasifica diferitele reguli de învățare în RNA, haideți să înțelegem câteva terminologii importante legate de RNA.
#1) Ponderi: Într-o RNA, fiecare neuron este conectat la ceilalți neuroni prin legături de conexiune. Aceste legături poartă o greutate. Ponderea are informații despre semnalul de intrare către neuron. Ponderile și semnalul de intrare sunt utilizate pentru a obține o ieșire. Ponderile pot fi reprezentate sub formă de matrice, care se mai numește și matrice de conexiune.
Care neuron este conectat la fiecare alt neuron din stratul următor prin intermediul ponderilor de conexiune. Prin urmare, dacă există „n” noduri și fiecare nod are „m” ponderi, atunci matricea de ponderi va fi:
W1 reprezintă vectorul de ponderi pornind de la nodul 1. W11 reprezintă vectorul de ponderare de la primul nod al stratului precedent la primul nod al stratului următor. În mod similar, wijj reprezintă vectorul de ponderare de la „al „i-lea” element de procesare (neuron) la „al „j-lea” element de procesare din stratul următor.
#2) Polarizare: Polarizarea se adaugă la rețea prin adăugarea unui element de intrare x (b) = 1 în vectorul de intrare. De asemenea, polarizarea poartă o pondere notată cu w (b).
Ponderea joacă un rol important în calcularea ieșirii neuronului. Polarizarea poate fi fie pozitivă, fie negativă. O polarizare pozitivă crește greutatea netă de intrare, în timp ce polarizarea negativă reduce intrarea netă.
#3) Prag: În funcția de activare se utilizează o valoare de prag. Intrarea netă este comparată cu pragul pentru a obține valoarea de ieșire. În NN, funcția de activare este definită pe baza valorii pragului și se calculează ieșirea.
Valoarea pragului este:
#4) Rata de învățare: Se denumește prin alfa ? Rata de învățare variază de la 0 la 1. Este utilizată pentru ajustarea ponderii în timpul procesului de învățare a NN.
#5) Factorul Momentum: Se adaugă pentru o convergență mai rapidă a rezultatelor. Factorul momentum se adaugă la pondere și este utilizat în general în rețelele de backpropagation.
Compararea regulilor de învățare a rețelelor neuronale
Metode de învățare -> | Gradient Descent | Hebbian | Competitive | Stochastic | |
---|---|---|---|---|---|
Tip de arhitectură ||| |
|||||
Single Layer Feedforward | ADALINE Hopfield Perceptron |
Associative Memory Hopfield |
Linear Vector Cantizare |
||
Multilayer Feed Forward | Cascadă Corelație Multilayer Feed Forward Funcție de polarizare radială Funcție |
Neocognitron | |||
Recurrent | Rețea neuronală recurentă | Rețea neuronală recurentă | Bidirecțională Auto Asociativă Memorie Creier- State- In-a- Box Hopfield |
Teorie adaptivă Teorie de rezonanță |
Boltzmann Mașină Cauchy Mașină |
Clasificarea diferitelor tipuri de învățare a RNA este prezentată mai jos.
Clasificarea algoritmilor de învățare supravegheată
- Gradient Descent
- Stochastic
#1) Gradient Descent Learning
În acest tip de învățare, reducerea erorilor are loc cu ajutorul ponderilor și a funcției de activare a rețelei. Funcția de activare trebuie să fie diferențiabilă.
Ajustarea ponderilor depinde de gradientul de eroare E în această învățare. Regula de backpropagation este un exemplu al acestui tip de învățare. Astfel, ajustarea ponderilor este definită ca
#2) Învățare stocastică
În această învățare, ponderile sunt ajustate într-un mod probabilistic.
Clasificarea algoritmilor de învățare nesupravegheată
- Hebbian
- Competitiv
#1) Învățarea Hebbian
Această învățare a fost propusă de Hebb în 1949. Ea se bazează pe ajustarea corelativă a ponderilor. Perechile de modele de intrare și ieșire sunt asociate cu o matrice de ponderi, W.
Pentru ajustarea ponderilor se ia transpunerea ieșirii.
#2) Învățarea competitivă
Este o strategie de tipul „câștigătorul ia totul”. În acest tip de învățare, atunci când un model de intrare este trimis către rețea, toți neuronii din strat concurează și numai neuronii câștigători au ajustări ale ponderii.
Neuronul Mc Culloch-Pitts
Cunoscut și sub numele de neuronul M-P, aceasta este cea mai veche rețea neuronală care a fost descoperită în 1943. În acest model, neuronii sunt conectați prin ponderi de conexiune, iar funcția de activare este utilizată în binar. Pragul este folosit pentru a determina dacă neuronii se vor activa sau nu.
Funcția neuronului M-P este:
Algoritmul de învățare Hebbian
Rețeaua Hebb a fost declarată de Donald Hebb în 1949. Conform regulii lui Hebb, se constată că ponderile cresc proporțional cu produsul dintre intrare și ieșire. Aceasta înseamnă că, într-o rețea Hebb, dacă doi neuroni sunt interconectați, atunci ponderile asociate acestor neuroni pot fi crescute prin modificări ale distanței sinaptice.
Această rețea este potrivită pentru date bipolare. Regula de învățare Hebbian se aplică, în general, porților logice.
Ponderile sunt actualizate astfel:
W (nou) = w (vechi) + x*y
Algoritm de antrenament pentru regula de învățare Hebbian
Etapele de antrenament ale algoritmului sunt următoarele:
- Înțial, ponderile sunt setate la zero, adică:
- .adică w =0 pentru toate intrările i =1 până la n și n este numărul total de neuroni de intrare.
- Să fie s ieșirea. Funcția de activare pentru intrări este, în general, setată ca o funcție de identitate.
- Funcția de activare pentru ieșire este, de asemenea, setată la y= t.
- Ajustările ponderilor și polarizarea sunt ajustate la:
- Pasii 2 – 4 se repetă pentru fiecare vector de intrare și ieșire.
Exemplu de regulă de învățare Hebbian
Să implementăm funcția logică ȘI cu intrări bipolare folosind învățarea Hebbian
X1 și X2 sunt intrările, b este bias-ul luat ca 1, valoarea țintă este ieșirea operației logice ȘI peste intrări.
Input Input Bias Target X1 .
X2 b y 1 1 1 1 1 1 -.1 1 -1 -1 1 1 -1 -1 -1 1 -1 #1) Inițial, ponderile sunt setate la zero, iar polarizarea este, de asemenea, setată la zero.
W1=w2=b=0
#2) Primul vector de intrare este luat ca =, iar valoarea țintă este 1.
Noile ponderi vor fi:
#3) Ponderile de mai sus sunt noile ponderi finale. Când se trece a doua intrare, acestea devin ponderile inițiale.
#4) Se ia a doua intrare = . Ținta este -1.
#5) În mod similar, se calculează celelalte intrări și ponderi.
Tabelul de mai jos prezintă toate intrările:
Rețea Hebb pentru funcția AND
Algoritmul de învățare Perceptron
Rețelele Perceptron sunt rețele de tip feed-forward cu un singur strat. Acestea se mai numesc și rețele Perceptron simple. Perceptronul este alcătuit dintr-un strat de intrare, un strat ascuns și un strat de ieșire.
Stratul de intrare este conectat la stratul ascuns prin intermediul unor ponderi care pot fi inhibitorii sau excitante sau zero (-1, +1 sau 0). Funcția de activare utilizată este o funcție binară în trepte pentru stratul de intrare și stratul ascuns.
Lovitura este
Y= f (y)
Funcția de activare este:
Actualizarea ponderilor are loc între stratul ascuns și stratul de ieșire pentru a se potrivi cu ieșirea țintă. Eroarea este calculată pe baza ieșirii efective și a ieșirii dorite.
Dacă ieșirea se potrivește cu ținta, atunci nu are loc nicio actualizare a ponderii. Ponderile sunt setate inițial la 0 sau 1 și ajustate succesiv până când se găsește o soluție optimă.
Ponderile din rețea pot fi setate inițial la orice valoare. Învățarea Perceptronului va converge la vectorul de ponderi care oferă o ieșire corectă pentru toate modelele de formare a intrărilor și această învățare are loc într-un număr finit de pași.
Regula Perceptronului poate fi utilizată atât pentru intrările binare, cât și pentru cele bipolare.
Regula de învățare pentru Perceptron cu o singură ieșire
#1) Să existe „n” vectori de intrare de instruire, iar x (n) și t (n) sunt asociate cu valorile țintă.
#2) Se inițializează ponderile și polarizarea. Setați-le la zero pentru a facilita calculul.
#3) Fie rata de învățare 1.
#4) Stratul de intrare are funcția de activare identitară astfel încât x (i)= s ( i).
#5) Pentru a calcula ieșirea rețelei:
#6) Funcția de activare se aplică peste intrarea rețelei pentru a obține o ieșire.
#7) Acum, pe baza ieșirii, se compară valoarea țintă dorită (t) și ieșirea reală.
#8) Se continuă iterația până când nu mai există nicio modificare a ponderii. Opriți-vă odată ce se realizează această condiție.
Regula de învățare pentru Perceptronul cu ieșiri multiple
#1) Să existe „n” vectori de intrare de instruire, iar x (n) și t (n) sunt asociate cu valorile țintă.
#2) Se inițializează ponderile și polarizarea. Setați-le la zero pentru a ușura calculul.
#3) Fie ca rata de învățare să fie 1.
#4) Stratul de intrare are funcția de activare identitară, astfel încât x (i)= s ( i).
#5) Pentru a calcula ieșirea fiecărui vector de ieșire de la j= 1 la m, intrarea în rețea este:
#6) Funcția de activare se aplică peste intrarea în rețea pentru a obține o ieșire.
#7) Acum, pe baza ieșirii, se compară valoarea țintă dorită (t) și ieșirea reală și se fac ajustări ale ponderii.
w este vectorul de ponderare al legăturilor de conexiune dintre al zecelea neuron de intrare și al j-lea neuron de ieșire, iar t este ieșirea țintă pentru unitatea de ieșire j.
#8) Se continuă iterația până când nu mai există nicio modificare a ponderii. Opriți-vă odată ce această condiție este îndeplinită.
Exemplu de regulă de învățare Perceptron
Implementarea funcției AND folosind o rețea Perceptron pentru intrări și ieșiri bipolare.
Schema de intrare va fi x1, x2 și polarizare b. Fie ponderile inițiale 0 și polarizarea 0. Pragul este setat la zero și rata de învățare este 1.
AND Gate
X1 X2 Target .
1 1 1 1 -1 -1 -1 1 -1 -1 -1 -1 #1) X1=1 , X2= 1 și ieșirea țintă = 1
W1=w2=wb=0 și x1=x2=b=1, t=1
Intrare în rețea= y =b + x1*w1+x2*w2 = 0+1*0 +1*0 =0Pentru că pragul este zero, prin urmare:
De aici se obține, output = 0. Acum verificați dacă ieșirea (y) = ținta (t).
y = 0 dar t= 1 ceea ce înseamnă că acestea nu sunt identice, de aceea are loc actualizarea ponderilor.
Noile ponderi sunt 1, 1 și 1 după ce este prezentat primul vector de intrare.
#2) X1= 1 X2= -1 , b= 1 și ținta = -1, W1=1 ,W2=2, Wb=1
Intrare netă= y =b + x1*w1+x2*w2 = 1+1*1 + (-1)*1 =1
Lovitura netă pentru intrarea= 1 va fi 1 din:Din acest motiv, din nou, ținta = -1 nu se potrivește cu ieșirea reală =1. Au loc actualizări ale ponderilor.
Acum noile ponderi sunt w1 = 0 w2 =2 și wb =0
În mod similar, continuând cu următorul set de intrări, obținem următorul tabel:
EPOCII sunt ciclul de modele de intrare introduse în sistem până când nu mai este necesară nicio modificare a ponderilor și iterația se oprește.
Algoritmul de învățare Hoff Widrow
Cunoscut și sub numele de Regula Delta, acesta urmează regula coborârii gradientului pentru regresie liniară.
Actualizează ponderile de conexiune cu diferența dintre valoarea țintă și cea de ieșire. Este algoritmul de învățare cu cea mai mică medie pătrată care se încadrează în categoria algoritmilor de învățare supravegheată.
Această regulă este urmată de ADALINE (Adaptive Linear Neural Networks) și MADALINE. Spre deosebire de Perceptron, iterațiile rețelelor Adaline nu se opresc, ci converge prin reducerea celei mai mici erori medii pătratice. MADALINE este o rețea formată din mai multe ADALINE.
Motivul regulii de învățare delta este acela de a minimiza eroarea dintre vectorul de ieșire și vectorul țintă.
Ponderile în rețelele ADALINE sunt actualizate prin:
Eroarea medie pătratică minimă = (t- yin)2, ADALINE converge atunci când este atinsă eroarea medie pătratică minimă.
Concluzie
În acest tutorial, am discutat cei doi algoritmi, și anume regula de învățare Hebbian și regula de învățare Perceptron. Regula Hebbian se bazează pe regula conform căreia vectorul de greutate crește proporțional cu semnalul de intrare și cu semnalul de învățare, adică cu ieșirea. Greutățile sunt crescute prin adăugarea produsului dintre intrare și ieșire la vechea greutate.
W (nou) = w (vechi) +x*y
Aplicația regulilor Hebb constă în probleme de asociere de tipare, clasificare și categorizare.
Regula de învățare Perceptron poate fi aplicată atât la rețele cu o singură ieșire, cât și la rețele cu mai multe clase de ieșiri. Scopul rețelei perceptron este de a clasifica modelul de intrare într-o anumită clasă de membri. Neuronii de intrare și neuronii de ieșire sunt conectați prin legături care au ponderi.
Ponderile sunt ajustate pentru a potrivi ieșirea reală cu valoarea țintă. Rata de învățare este setată de la 0 la 1 și determină scalabilitatea ponderilor.
Ponderile sunt actualizate în funcție de:
În afară de aceste reguli de învățare, algoritmii de învățare automată învață prin multe alte metode, și anume: supravegheată, nesupravegheată, de întărire. Unii dintre ceilalți algoritmi ML obișnuiți sunt Back Propagation, ART, Kohonen Self Organizing Maps, etc.
Sperăm că v-au plăcut toate tutorialele din această serie de învățare automată!!!
=> Vizitați aici pentru seria exclusivă de învățare automată
.