neural network learning rules perceptron hebbian learning
Acest tutorial detaliat privind 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 Retele neuronale artificiale care este o arhitectură a unui număr mare de elemente interconectate numite neuroni.
Acești neuroni procesează intrarea primită pentru a da ieșirea dorită. Nodurile sau neuronii sunt legați de intrări, greutăți de conexiune și funcții de activare.
Principala caracteristică a unei rețele neuronale este capacitatea sa de a învăța. Rețelele neuronale se antrenează cu exemple cunoscute. Odată ce rețeaua este instruită, aceasta poate fi utilizată pentru rezolvarea valorilor necunoscute ale problemei.
=> Citiți seria completă de formare pentru învățarea 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 supravegheați, valorile țintă sunt cunoscute de rețea. Încearcă să reducă eroarea dintre ieșirea dorită (țintă) și ieșirea reală pentru o performanță optimă. În algoritmii de învățare nesupravegheați, valorile țintă sunt necunoscute, iar rețeaua învață de la sine identificând tiparele ascunse din intrare prin formarea de clustere etc.
Un ANN este format din 3 părți, adică stratul de intrare, stratul ascuns și stratul de ieșire. Există un singur strat de intrare și un strat de ieșire, în timp ce este posibil să nu existe un strat ascuns sau unul sau mai multe straturi ascunse care ar putea fi prezente în rețea. Pe baza acestei structuri, ANN este clasificat într-un singur strat, multistrat, feed-forward sau rețele recurente.
Ce veți învăța:
- Terminologie ANN importantă
- Compararea regulilor de învățare a rețelelor neuronale
- Concluzie
Terminologie ANN importantă
Înainte de a clasifica diferitele reguli de învățare în ANN, să înțelegem câteva terminologii importante legate de ANN.
# 1) Greutăți: Într-un ANN, fiecare neuron este conectat la ceilalți neuroni prin legături de conexiune. Aceste legături au o pondere. Greutatea conține informații despre semnalul de intrare către neuron. Greutățile și semnalul de intrare sunt utilizate pentru a obține o ieșire. Greutățile pot fi notate într-o formă matricială care se mai numește și matrice de conexiune.
Fiecare neuron este conectat la fiecare neuron al stratului următor prin greutăți de conexiune. Prin urmare, dacă există noduri „n” și fiecare nod are greutăți „m”, atunci matricea de greutate va fi:
W1 reprezintă vectorul de greutate pornind de la nodul 1. W11 reprezintă vectorul de greutate de la 1Sfnodul stratului precedent la 1Sfnodul stratului următor. În mod similar, wij reprezintă vectorul de greutate de la elementul de procesare „ith” (neuron) la elementul de procesare „jth” al stratului următor.
# 2) Bias : Biasul este adăugat la rețea prin adăugarea unui element de intrare x (b) = 1 în vectorul de intrare. Biasul are, de asemenea, o greutate notată cu w (b).
Biasul joacă un rol important în calcularea producției neuronului. Tendința 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: O funcție de prag este utilizată în funcția de activare. Intrarea netă este comparată cu pragul pentru a obține ieșirea. În NN, funcția de activare este definită pe baza valorii pragului și se calculează ieșirea.
Valoarea prag este:
# 4) Rata de învățare : Este notat cu alfa?. Rata de învățare variază de la 0 la 1. Este utilizată pentru ajustarea greutății în timpul procesului de învățare al NN.
# 5) Factor de impuls : Se adaugă pentru o convergență mai rapidă a rezultatelor. Factorul de impuls se adaugă greutății și este utilizat în general în rețelele de propagare înapoi.
Compararea regulilor de învățare a rețelelor neuronale
Metode de învățare -> | Coborâre în gradient | Hebbian | Competitiv | Stochastic | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
EPOCH 2 | |||||||||||
Tipul de arhitectură || | |||||||||||
Feedforward cu un singur strat | ADALINE Hopfield Perceptron | Asociativ Memorie Hopfield | Vector liniar Cuantizare | ||||||||
Transmiterea fluxului multistrat | Cascadă Corelație Feed multistrat Redirecţiona Bias radial Funcţie | Neocognitron | |||||||||
Recurent | Neural recurent Reţea | Bidirectional Auto Asociativ Memorie Brain- State- In-a- Box Hopfield | Adaptive Teoria rezonanței | Boltzmann Mașinărie Cauchy Mașinărie |
Clasificarea diferitelor tipuri de învățare a ANN este prezentată mai jos.
Clasificarea algoritmilor de învățare supravegheați
- Coborâre în gradient
- Stochastic
# 1) Învățare descendentă în gradient
În acest tip de învățare, reducerea erorilor are loc cu ajutorul greutăților și a funcției de activare a rețelei. Funcția de activare ar trebui să fie diferențiată.
Ajustarea greutăților depinde de gradientul de eroare E din această învățare. Regula de propagare înapoi este un exemplu al acestui tip de învățare. Astfel, ajustarea greutății este definită ca
# 2) Învățarea stochastică
În această învățare, greutățile sunt ajustate într-un mod probabilistic.
Clasificarea algoritmilor de învățare fără supraveghere
- Hebbian
- Competitiv
# 1) Învățarea Hebbian
Această învățare a fost propusă de Hebb în 1949. Se bazează pe ajustarea corelativă a greutăților. Perechile de modele de intrare și ieșire sunt asociate cu o matrice de greutate, W.
Transpunerea ieșirii este luată pentru ajustarea greutății.
# 2) Învățare competitivă
Este un câștigător care ia toată strategia. În acest tip de învățare, atunci când un model de intrare este trimis în rețea, toți neuronii din strat concurează și doar neuronii câștigători au ajustări ale greutății.
Mc Culloch-Pitts Neuron
Cunoscută și sub numele de neuron M-P, aceasta este cea mai veche rețea neuronală care a fost descoperită în 1943. În acest model, neuronii sunt conectați prin greutăți de conexiune, iar funcția de activare este utilizată în binar. Pragul este utilizat pentru a determina dacă neuronul va trage 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 de intrare și ieșire. Înseamnă că într-o rețea Hebb, dacă doi neuroni sunt interconectați, atunci greutățile asociate cu acești neuroni pot fi crescute prin modificări ale decalajului sinaptic.
Această rețea este potrivită pentru date bipolare. Regula învățării Hebbian este în general aplicată porților logice.
Ponderile sunt actualizate ca:
W (nou) = w (vechi) + x * y
Algoritm de instruire pentru regula de învățare Hebbian
software desktop de la distanță pentru Windows 7
Pașii de instruire ai algoritmului sunt după cum urmează:
- Inițial, greutățile sunt setate la zero, adică w = 0 pentru toate intrările i = 1 la n și n este numărul total de neuroni de intrare.
- Să fie 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.
- Reglajele de greutate și părtinirea sunt ajustate la:
- Pașii de la 2 la 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 Hebbian Learning
X1 și X2 sunt intrări, b este polarizarea luată ca 1, valoarea țintă este ieșirea operației ȘI logice peste intrări.
Intrare | Intrare | Părtinire | Ţintă |
---|---|---|---|
X1 | X2 | b | Da |
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 părtinirea este, de asemenea, setată la zero.
W1 = w2 = b = 0
#Două) Primul vector de intrare este luat ca (x1 x2 b) = (1 1 1), iar valoarea țintă este 1.
Noile greutăți vor fi:
# 3) Greutățile de mai sus sunt noile greutăți finale. Când a doua intrare este trecută, acestea devin greutățile inițiale.
# 4) Luați a doua intrare = (1 -1 1). Ținta este -1.
# 5) În mod similar, se calculează celelalte intrări și greutăți.
Tabelul de mai jos prezintă toate intrările:
Intrări | Părtinire | Ieșire țintă | Schimbări de greutate | Modificări de părtinire | Greutăți noi | ||||
---|---|---|---|---|---|---|---|---|---|
X1 | X2 | b | Da | ? w1 | ? w2 | ? b | W1 | W2 | b |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | -1 | 1 | -1 | -1 | 1 | -1 | 0 | Două | 0 |
-1 | 1 | 1 | -1 | 1 | -1 | -1 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 | 1 | 1 | -1 | Două | Două | -Două |
Hebb Net pentru funcția ȘI
Algoritmul de învățare Perceptron
Rețelele Perceptron sunt rețele feed-forward cu un singur strat. Acestea se mai numesc rețele single Perceptron. Perceptronul constă dintr-un strat de intrare, un strat ascuns și un strat de ieșire.
Stratul de intrare este conectat la stratul ascuns prin greutăți care pot fi inhibitoare sau excitative sau zero (-1, +1 sau 0). Funcția de activare utilizată este o funcție de pas binar pentru stratul de intrare și stratul ascuns.
Ieșirea este
Y = f (y)
Funcția de activare este:
Actualizarea greutății 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 reale și a ieșirii dorite.
Dacă ieșirea se potrivește țintei, nu are loc actualizarea greutății. Greutățile 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 Perceptron va converge la vectorul de greutate care oferă o ieșire corectă pentru toate tiparele de antrenament de intrare și această învățare are loc într-un număr finit de pași.
Regula Perceptron poate fi utilizată atât pentru intrările binare, cât și pentru cele bipolare.
cum se testează injecția sql manual
Regula de învățare pentru Perceptron de ieșire unică
# 1) Să existe „n” vectori de antrenament și x (n) și t (n) sunt asociați cu valorile țintă.
#Două) Inițializați greutățile și părtinirea. Setați-le la zero pentru un calcul ușor.
# 3) Rata de învățare să fie 1.
# 4) Stratul de intrare are funcția de activare a identității deci x (i) = s (i).
# 5) Pentru a calcula ieșirea rețelei:
# 6) Funcția de activare este aplicată peste intrarea netă pentru a obține o ieșire.
# 7) Acum, pe baza rezultatului, comparați valoarea țintă dorită (t) și ieșirea reală.
# 8) Continuați iterația până când nu se schimbă greutatea. Opriți-vă odată ce această condiție este atinsă.
Regula de învățare pentru Perceptron de ieșire multiplă
# 1) Să existe „n” vectori de antrenament și x (n) și t (n) sunt asociați cu valorile țintă.
#Două) Inițializați greutățile și părtinirea. Setați-le la zero pentru un calcul ușor.
# 3) Rata de învățare să fie 1.
# 4) Stratul de intrare are funcția de activare a identității deci x (i) = s (i).
# 5) Pentru a calcula ieșirea fiecărui vector de ieșire de la j = 1 la m, intrarea netă este:
# 6) Funcția de activare este aplicată peste intrarea netă pentru a obține o ieșire.
# 7) Acum, pe baza rezultatului, comparați valoarea țintă dorită (t) și rezultatul real și efectuați ajustări ale greutății.
w este vectorul de greutate al legăturilor de conexiune dintre ith neuron de intrare și jth de ieșire și t este ieșirea țintă pentru unitatea de ieșire j.
# 8) Continuați iterația până când nu se schimbă greutatea. Opriți-vă odată ce această condiție este atinsă.
Exemplu de regulă de învățare a Perceptronului
Implementarea funcției ȘI folosind o rețea Perceptron pentru intrări și ieșiri bipolare.
Modelul de intrare va fi x1, x2 și bias b. Fie ca greutățile inițiale să fie 0 și polarizarea să fie 0. Pragul este setat la zero, iar rata de învățare este 1.
ȘI Poartă
X1 | X2 | Ţintă |
---|---|---|
1 | 1 | 1 |
1 | -1 | -1 |
-1 | 1 | -1 |
-1 | -1 | -1 |
# 1) X1 = 1, X2 = 1 și ieșire țintă = 1
W1 = w2 = wb = 0 și x1 = x2 = b = 1, t = 1
Intrare netă = y = b + x1 * w1 + x2 * w2 = 0 + 1 * 0 + 1 * 0 = 0
Deoarece pragul este zero, prin urmare:
De aici obținem, ieșire = 0. Acum verificați dacă ieșire (y) = țintă (t).
y = 0 dar t = 1 ceea ce înseamnă că acestea nu sunt aceleași, prin urmare are loc actualizarea greutății.
Noile greutăți sunt 1, 1 și 1 după prezentarea primului vector de intrare.
#Două) X1 = 1 X2 = -1, b = 1 și țintă = -1, W1 = 1, W2 = 2, Wb = 1
Intrare netă = y = b + x1 * w1 + x2 * w2 = 1 + 1 * 1 + (-1) * 1 = 1
Ieșirea netă pentru intrare = 1 va fi 1 din:
Prin urmare, din nou, ținta = -1 nu se potrivește cu ieșirea reală = 1. Actualizările de greutate au loc.
Acum, greutățile noi 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:
Intrare | Părtinire | Ţintă | Intrare netă | Ieșire calculată | Schimbări de greutate | Greutăți noi | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
X1 | X2 | b | t | yin | Da | ? w1 | ? w2 | ? b | W1 | W2 | wb |
EPOCH 1 | |||||||||||
1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | -1 | 1 | -1 | 1 | 1 | -1 | 1 | -1 | 0 | Două | 0 |
-1 | 1 | 1 | -1 | Două | 1 | 1 | -1 | -1 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 | -3 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | -1 |
1 | -1 | 1 | -1 | -1 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
-1 | 1 | 1 | -1 | -1 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
-1 | -1 | 1 | -1 | -3 | -1 | 0 | 0 | 0 | 1 | 1 | -1 |
EPOCHS sunt ciclul modelelor de intrare alimentate către sistem până când nu este necesară schimbarea greutății și iterația se oprește.
Algoritmul de învățare Widrow Hoff
De asemenea cunoscut ca si Regula Delta , urmează regula de coborâre a gradientului pentru regresia liniară.
Actualizează greutățile conexiunii cu diferența dintre valoarea țintă și valoarea de ieșire. Este cel mai mic algoritm de învățare pătrat care se încadrează în categoria algoritmului 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, dar converge prin reducerea celei mai mici erori pătrate. MADALINE este o rețea de mai multe ADALINE.
Motivul regulii de învățare delta este de a minimiza eroarea dintre ieșire și vectorul țintă.
Ponderile din rețelele ADALINE sunt actualizate de:
Eroare pătrată medie minimă = (t- yîn)Două, ADALINE converge când se atinge cea mai mică eroare pătrată.
Concluzie
În acest tutorial, am discutat cei doi algoritmi, adică Hebbian Learning Rule și Perceptron Learning Rule. Regula Hebbian se bazează pe regula că vectorul de greutate crește proporțional cu semnalul de intrare și învățare, adică ieșirea. Ponderile sunt incrementate prin adăugarea produsului de intrare și ieșire la greutatea veche.
W (nou) = w (vechi) + x * y
Aplicarea regulilor Hebb rezidă în problemele de asociere, clasificare și clasificare a modelelor.
Regula de învățare Perceptron poate fi aplicată atât rețelei de ieșire unică, cât și rețelei de clase de ieșire multiple. Scopul rețelei perceptron este de a clasifica modelul de intrare într-o anumită clasă de membri. Neuronii de intrare și neuronul de ieșire sunt conectați prin legături cu greutăți.
Ponderile sunt ajustate pentru a se potrivi cu ieșirea reală cu valoarea țintă. Rata de învățare este setată de la 0 la 1 și determină scalabilitatea greutăților.
Greutățile sunt actualizate în funcție de:
În afară de aceste reguli de învățare, algoritmii de învățare automată învață prin multe alte metode, adică Supravegheat, nesupravegheat, întărire. Unii dintre ceilalți algoritmi obișnuiți de ML sunt propagarea înapoi, ART, hărți de autoorganizare Kohonen 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ă
Lectură recomandată
- Un ghid complet pentru rețeaua neuronală artificială în învățarea automată
- Tipuri de învățare automată: supravegheată vs. învățare nesupravegheată
- Data Mining Vs Machine Learning Vs Intelligence Artificial Vs Deep Learning
- Testarea securității rețelei și cele mai bune instrumente de securitate a rețelei
- Cele mai populare instrumente software de învățare automată în 2021
- Tutorial de învățare automată: Introducere în ML și aplicațiile sale
- Cele mai bune 15 instrumente de scanare în rețea (rețea și scaner IP) din 2021
- Top 30 instrumente de testare a rețelei (instrumente de diagnosticare a performanței rețelei)