Documente Academic
Documente Profesional
Documente Cultură
Perceptronul
etc..
Exemplu
(Hyper)Plan de separație
Exemplu
Antrenare unui simplu neuron
3. Se calculează ieșirea :
N
o = f w0 + xi wi
i =1
4. Se actualizează ponderi:
i i i
Where:
h = rata de învățare (0 < h <= 1), De obicei pusă la 0.1 sau 0.2
ε(t) = eroarea = ieșirea dorită (y()) – ieșirea rețelei (o())
Exemplu
1,0 1,1
Funcția
Logică OR
y = f(w0+w1x1+w2x2)
x1 x2 y x2
0 0 0
0 1 1
1 0 1 0,0 0,1
1 1 1 x1
Ecuația dreptei de separație: ?x1+?x2 = ? or -?x1-?x2 + ? = 0
o(t) y(t) ε(t) Δw(t)
Antrenare
0 0 0 0
0 1 +1 ηx(t) η=0.2 o = f(w0+w1x1+w2x2) = f(o’)
1 0 -1 -ηx(t)
1 1 0 0 Ite w1 w2 w0 x1 x2 y= o' o ε Δw1 Δw2 Δw0
rat (x1or
x 2)
1 0.02 -0.15 0.09 1 0 1 0.11 0 1 0.2 0
1 x 0.5 0.2
f ( x) = 2 0.22 -0.15 0.29 0 1 1 0.14 0 1 0 0.2
0 x 0.5 3 0.22 0.05 0.49 1 1 1 0.76 1 0 0 0
0.2
0
4 0.22 0.05 0.49 1 0 1 0.71 1 0 0 0
0
5 0.22 0.05 0.49 0 0 0 0.49 0 0 0 0
0
6 0.22 0.05 0.49 1 1 1 0.76 1 0 0 0
0
1 0.02 -0.15 0.09 1 0 1 0.11 0 1 0.2 0
0.2
Exemplu
1,0 1,1
Funcție logică
XOR
x1 x2 y x2
0 0 0
0 1 1
1 0 1
1 1 0 0,0 0,1
x1
Doi neuroni liniari sunt necesari pentru o clasificare corectă
XOR- Eșec
Iterat w1 w2 w0 x1 x2 y o' o ε Δw1 Δw2 Δw0
1 0.02 -0.15 0.09 1 0 0 0.11 0 0 0 0 0
2 0.02 -0.15 0.09 0 1 0 -0.06 0 0 0 0 0
3 0.02 -0.15 0.09 1 1 1 -0.04 0 1 0.2 0.2 0.2
4 0.22 0.05 0.29 1 0 0 0.51 1 -1 -0.2 0 -0.2
5 0.02 0.05 0.09 0 0 1 0.09 0 1 0 0 0.2
6 0.02 0.05 0.29 1 1 1 0.36 0 1 0.2 0.2 0.2
7 0.22 0.25 0.49 0 0 1 0.49 0 1 0 0 0.2
8 0.22 0.25 0.69 1 1 1 1.16 1 0 0 0 0
9 0.22 0.25 0.69 1 0 0 0.91 1 -1 -0.2 0 -0.2
10 0.02 0.25 0.49 0 1 0 0.74 1 -1 0 -0.2 -0.2
11 0.02 0.05 0.29 0 0 1 0.29 0 1 0 0 0.2
12 0.02 0.05 0.49 1 1 1 0.56 1 0 0 0 0
13 0.02 0.05 0.49 1 0 0 0.51 1 -1 -0.2 0 -0.2
14 -0.18 0.05 0.29 0 1 0 0.34 0 0 0 0 0
15 -0.18 0.05 0.29 1 0 0 0.11 0 0 0 0 0
16 -0.18 0.05 0.29 0 0 1 0.29 0 1 0 0 0.2
Antrenare cu gradient descent
• Perceptron:
– Date de intrare vector 2D
ex 1
– Funcție de activare sigmoid f ( x) = x = −x
e +1 e +1
• Derivata este
e x (1 + e x ) − e x e x ex
f ' ( x) = = x = f ( x)(1 − f ( x) )
(e x + 1) 2 (e + 1) 2
– Ieșirea este:
o = f (w1 x1 + w2 x2 + w0 )
Antrenare cu gradient descent
(y − f (w x ))
N N
( yi − oi )
1 1 2
E= = + w2 x2i + w0
2 i
i 1 1
N i =1 N i =1
w1
( k −1)
E
w2( k ) = w2( k −1) + w2( k −1) = w2 +
( k −1)
w2
( k −1)
E
w0( k ) = w0( k −1) + w0( k −1) = w0( k −1) +
w0
Iterații- antrenare
• Derivata funcției cost în raport cu o pondere
Derivata unei funcții compuse
( k −1) 2
E 1
(y ( ))
N
w1
=
w1 N
− f w1 x1i + w2 x2i + w0 =
i t ( x) = f (g (h( x) ))
i =1
t ' ( x) = f ' (g (h( x) )) g ' (h( x) ) h' ( x)
N 2
= ( (
yi − f w1 x1i + w2 x2i + w0 ))
N i =1 w1
=
N
( ( )) (
(−2) yi − f w1 x1i + w2 x2i + w0 f ' w1 x1i + w2 x2i + w0 x1i ) (
)
oi = f w1 x1i + w2 x2i + w0 = f x i
N i =1
( yi − oi ) f ' x i = f x i 1 − f x i
− 2 N
= ( yi − oi ) f x i 1 − f x i x1i =
N i =1
− 2 N
= ( yi − oi ) oi (1 − oi ) x1i =
N i =1
https://sebastianraschka.com/Articles/2015_singlelayer_neurons.html
Iterații- antrenare
• Corecțiile sunt:
( k −1)
E − 2 N
= ( yi − oi ) oi (1 − oi ) x1i
w1 N i =1
( k −1)
E − 2 N
= ( yi − oi ) oi (1 − oi ) x2i
w2 N i =1
( k −1)
E − 2 N
= ( yi − oi ) oi (1 − oi )
w0 N i =1
• Actualizările sunt:
− 2 N
w =w
(k )
1
( k −1)
1 + ( yi − oi ) oi (1 − oi ) x1i
N i =1
− 2 N
w2( k ) = w2( k −1) + ( yi − oi ) oi (1 − oi ) x2i
N i =1
− 2 N
w0( k ) = w0( k −1) + ( yi − oi ) oi (1 − oi )
N i =1
Perceptron Multi-Strat
Perceptron Multi-Strat
Strat de ieșire
Rețea cu 3-straturi
Are două straturi
active și unul ascuns Strat ascuns
Strat de intrare
I1 I2 I3 I4
Formulare matematică
N
oij = f w0ij + xij wij Unde:
i =1 • f() este o funcție neliniară
• xi sunt:
o Intrările pentru stratul de intrare
o Ieșirile stratului anterior pentru
Antrenare:
straturile ascunse sau cele de
- Determinarea valorilor ponderilor
ieșire
• wi – ponderi
• w0 – bias/offset
Antrenare MLPs
x = wijoi
n
• xj= suma ponderată a intrărilor in nodul j
j i =0
−x j
= f ( x j ) =1/(1+ e )
• oj= ieșirea nodului o= f (xj )
• L= funcția cost globală a rețelei
Algoritmul Back-Propagation
L
Obiectiv: Calculează derivatele w pentru toate ponderile wij
Proces în patru pași: ij
1. Calculează cât de repede se modifică eroarea când ieșirea nodului j este
modificată
2. Calculează cât de repede se modifică eroarea când valoarea nodului j se
modifică
3. Calculează cât de repede se modifică eroarea când ponderea wij ce intră în
nodul j se modifică
4. Calculează cât de repede se modifică eroarea când ieșirea nodului i din stratul
anterior se modifică
Algoritmul Back-Propagation
Varianta On-Line a algoritmului:
1. Inițializăm ponderile
Unde: L
wij = j oi = − = −LWij
wij
Și la fel pt h2 :
Exemplu
Continuăm propgarea forward
• Procesul se repetă pâna la neuronii de la ieșire.
•
Si pentru o2 :
Exemplu
Calculăm Eroarea totală
Eroarea totală e
Exemplu
Pasul de retropropagare
Actualizăm ponderile astfel încât să minimizăm eroarea pe fiecare
neuron și deci per total
Stratul de ieșire
Consider ăm w5 Vrem.
Vizual:
Exemplu
When we take the partial derivative of the total error with respect to outo1 ,
the quantity [1/2(targeto2 – out02)2] becomes zero because outo1 does not
affect it which means we’re taking the derivative of a constant which is zero.
Exemplu
Next, how much does the ieșire of o1 change with respect to its total net input?
The partial derivative of the logistic Funcție (a.k.a. sigmoid) is the ieșire multiplied by 1 minus the output:
Finally, how much does the total net input of o1 change with respect to w5 ?
Therefore:
Some sources extract the negative sign from δ so it would be written as:
To decrease the error, we then subtract this value from the current Pondere(multiplied by some learning rate, eta, which is set here to 0.5):
The process is similar with the one for the ieșire layer, but slightly different to
account for the fact that the ieșire of each hidden layer neuron contributes to
the ieșire (and therefore error) of multiple ieșire neurons. We know that
outh1 affects both outo1 and outo2 therefore the needs to take into
consideration its effect on the both ieșire neurons:
And is equal to :
Exemplu
Therefore:
Now that we have , we need to figure out and then for each weight:
We calculate the partial derivative of the total net input to h1 with respect to w1 the same as we did for the ieșire neuron: