redes neuronales: facil y desde cero
TRANSCRIPT
-
8/19/2019 Redes Neuronales: Facil y desde cero
1/8
1 COMPORTAMIENTO DE UNA NEURONA
DESCRIPCION
El presente trabajo es una pequeña introducción a las redes neuronales, en base a los videos subidos al canal deJavier Garcia. Dichos videos se pueden ver en el siguiente enlace :Redes neuronales: Facil desde cero.
1. COMPORTAMIENTO DE UNA NEURONA
Sea una neurona con las entradas {x 1 , x 2 , x 3} y una única salida {y1}, tal como se muestra en la imagen:
Figura 1.1: Modelo de una neurona
Donde la salida y, esta dada por:
y = f (z ) , donde: z = u 1 + x1 · w1 + x2 · w2 + x3 · w3La función mas usada para modelar la neurona, es la funcion sigmoidea, cuya derivada tiene una propiedades
muy particulares:
f (z) = 1 + e− z − 1
f (z) = + 1 + e− z− 2
· e− z
f (z) = e− z
1 + e− z · 1
1 + e− z
f (z) = (e− z + 1) − 1
1 + e− z · 1
1 + e− z
f (z ) = 1 − 1
1 + e− z · 1
1 + e− z
f (z ) = (1 − f (z)) · f (z)Como vamos a estar modicando los pesos {u 1, w1 , w2 , w3} , nos interesa como estos afectan a la salida y, porlo tanto vamos a aplicar derivadas parciales:
∂y∂u 1
= ∂f (z)
∂z · ∂z∂u 1
= (1 − f (z)) · f (z) · ∂z∂u 1
∂y∂w 1
= ∂f (z )
∂z · ∂z∂w 1
= (1 − f (z)) · f (z) · ∂z∂w 1
Deiner Zapata S. 1
https://www.youtube.com/watch?v=jaEIv_E29sk&list=PLAnA8FVrBl8AWkZmbswwWiF8a_52dQ3JQhttps://www.youtube.com/watch?v=jaEIv_E29sk&list=PLAnA8FVrBl8AWkZmbswwWiF8a_52dQ3JQ
-
8/19/2019 Redes Neuronales: Facil y desde cero
2/8
2 RED MULTICAPA
∂y∂w 2
= ∂f (z )
∂z · ∂z∂w 2
= (1 − f (z)) · f (z) · ∂z∂w 2
∂y∂w
3
= ∂f (z )
∂z
·
∂z∂w
3
= (1
− f (z))
· f (z)
·
∂z∂w
3Donde:
y = f (z ) y z = u 1 + x1 · w1 + x2 · w2 + x3 · w3Por lo tanto:
∂z∂u 1
= 1 , ∂z∂w 1
= x 1 , ∂z∂w 2
= x 2 , ∂z∂w 3
= x 3
Reemplazando:
∂y∂u 1
= (1 − y) · y ∂y
∂w 1= (1 − y) · y · x1
∂y∂w 2
= (1 − y) · y · x2∂y
∂w 3= (1 − y) · y · x3
2. RED MULTICAPA
2.1. Red de 1 capa oculta
Sea la red neuronal multicapa 1:2:1 tal como se muestra acontinuación
Figura 2.1: Red de una capa oculta
Donde la salida, esta dada por:
y = a (3)1 = f z(3)1 = f u
(3)1 + w
(2)11 · a
(2)1 + w
(2)21 · a
(2)2
Cuyas derivadas parciales son:
∂a (3)1∂u (3)1
= a (3)1 · 1 − a(3)1
∂a (3)1∂w (2)11
= a (3)1 · 1 − a(3)1 · a
(2)1
∂a (3)1∂w (2)21
= a (3)1 · 1 − a(3)1 · a
(2)2
Las expresiones subrayadas en la primera ecuación, son funciones dadas por las siguientes ecuaciones:
a (2)1 = f u(2)1 + w
(1)11 · a
(1)1 a
(2)2 = f u
(2)2 + w
(1)12 · a
(1)1
Cuyas derivadas parciales son:
Deiner Zapata S. 2
-
8/19/2019 Redes Neuronales: Facil y desde cero
3/8
2.1 Red de 1 capa oculta 2 RED MULTICAPA
∂a (2)1∂u (1)1
= a (2)1 · 1 − a(2)1
∂a (2)1∂w (1)11
= a (2)1 · 1 − a(2)1 · a
(1)1
∂a (2)2∂u (1)2
= a (2)2 · 1 − a(2)2
∂a (2)2∂w (1)12
= a (2)2 · 1 − a(2)2 · a
Las derivadas parciales de la salida y = a (3)1 con respecto a los pesos u (2)1 , w(1)11 , u (2)2 , w (1)12 son:
∂a (3)1∂u (2)1
=∂f z (3)1
∂z (3)1 · ∂z (3)1∂a (2)1 ·
∂a (2)1∂u (2)1
= a (3)1 · 1 − a(3)1 · w
(2)11 · a
(2)1 · 1 − a
(2)1 · 1
∂a (3)1∂w (1)11
=∂f z (3)1
∂z (3)1 · ∂z (3)1∂a (2)1 ·
∂a (2)1∂w (1)11
= a (3)1 · 1 − a(3)1 · w
(2)11 · a
(2)1 · 1 − a
(2)1 · a
(1)1
∂a (3)1∂u (2)2
=∂f z (3)1
∂z (3)1 · ∂z (3)1∂a (2)2 ·
∂a (2)2∂u (2)2
= a (3)1 · 1 − a(3)1 · w
(2)21 · a
(2)2 · 1 − a
(2)2 · 1
∂a (3)1∂w (1)12
= ∂f z(3)1
∂z (3)1 · ∂z (3)1∂a (2)2 ·
∂a (2)2∂w (1)12
= a (3)1 · 1 − a(3)1 · w
(2)21 · a
(2)2 · 1 − a
(2)2 · a
(1)1
Analizando y reescribiendo las fórmulas anteriores, tenemos que:
Figura 2.2: Analisis de la derivada ∂y 1∂w (1)11
de forma visual
∂y 1∂w (1)11
= x 1 · a(2)1 · 1 − a
(2)1 · w
(2)11 · [y1 · (1 − y1)]
Partimos desde x1 hacia y1 , como la primera no es una neurona «real» se pone el termino x1 , seguimos lalinea y nos topamos con w (1)11 , pero como estamos derivando con respecto a esta variable, no la consideramos,
seguimos avanzando y nos topamos con una neurona «real», por lo tanto agregamos a (2)1 · 1 − a(2)1 , seguimos
avanzando y nos topamos con w (2)11 y nalmente nos topamos con la última neurona «real» en la capa externa,por lo tanto agregamos y · (1 − y)
∂y 2∂w (1)12
= x 1 · a(2)1 · 1 − a
(2)1 · w
(2)21 · [y2 · (1 − y2)]
De forma similar partimos de x1hacia y1 , se agrega x1 , luego a(2)1 · 1 − a
(2)1 , avanzamos y el peso que une
las neuronas es w (2)21 y nalmente y2 · (1 − y2)
Deiner Zapata S. 3
-
8/19/2019 Redes Neuronales: Facil y desde cero
4/8
2.2 Red de 2 capas ocultas 2 RED MULTICAPA
Para los casos ∂y 1∂u (2)1
y ∂y 2∂u (2)2
, unicamente se cambia los terminos x 1 y x 2 por 1, quedando:
∂y 1∂u (2)1
= 1 · a(2)1 · 1 − a
(2)1 · w
(2)11 · [y1 · (1 − y1)]
∂y 2∂u (2)2
= 1 · a (2)1 · 1 − a (2)1 · w(2)21 · [y2 · (1 − y2)]
2.2. Red de 2 capas ocultas
Sea la red neuronal multicapa 3:4:4:2 tal como se muestra acontinuación:
Figura 2.3: Red neuronal multicapa
Analizamos gracamente, partiendo desde x hacia y:
∂y i∂w (1)jk =
x j · a(2)k · 1 − a
(2)k · w
(2)kp · a
(3) p · 1 − a
(3) p · w
(3) pi · [yi · (1 − yi )]
Recordar que:
Unicamente se atravieza 1 neurona «falsa» : a (1)j = x j ,por lo tanto se coloca ”x j ” al inicio.
Se atraviezan 3 neuronas «reales» : a (2)k , a(3) p , a
(4)i = yi , cuyas derivadas son de la forma : ”a · (1 − a)”
wkp : Une la neurona «k» con la neurona «p».
w pi : Une la neurnoa «p» con la neurona «i»
Deiner Zapata S. 4
-
8/19/2019 Redes Neuronales: Facil y desde cero
5/8
2.2 Red de 2 capas ocultas 2 RED MULTICAPA
Figura 2.4: Red neuronal multicapa
Ahora agregamos las sumatorias, debido a que existen varios caminos en la capa n 3 = 4 , por lo tanto la ecuaciónquedaría de la siguiente forma:
∂y i∂w (1)jk
= x j · a(2)k · 1 − a
(2)k ·
n 3 =4
p=1
w (2)kp · a (3) p · 1 − a (3) p · w(3) pi · yi · (1 − yi )
Para analizar las derivadas parciales de yi con respecto a w(2)jk , los caminos posibles se muestran en la gura
acontinuación:
Figura 2.5: Red neuronal multicapa
En este caso partimos desde a (2)j hacia yi , por lo tanto la primera neurona es «falsa»
∂y i∂w (2)jk
= a (2)j · a(3)k · 1 − a
(3)k · w
(3)ki · [yi · (1 − yi )]
Para analizar las derivadas parciales de yi con respecto a w(3)jk , los caminos posibles se muestran en la gura
acontinuación:
Deiner Zapata S. 5
-
8/19/2019 Redes Neuronales: Facil y desde cero
6/8
2.2 Red de 2 capas ocultas 2 RED MULTICAPA
Figura 2.6: Red neuronal multicapa
Esta vez partimos desde a (3)j hacia yi , por lo tanto la ecuación quedaría como :
∂y i∂w (3)jk
= a (3)j · yi · (1 − yi )
Para el caso de los umbrales, como ya se vio anteriormente, unicamente se cambia el primer termino por «1»,es decir:
∂y i∂u (2)j
= ∂y i∂w (1)jk
x j =1 ,k = j∂y i
∂u (3)j=
∂y i∂w (2)jk
a j =1 ,k = j∂y i
∂u (4)j=
∂y i∂w (3)jk
x j =1 ,k = j
2.2.1. Deniendo el error
Considerando la distancia euclidiana para denir el error de tal forma que:
error = (s 1 − y1)2 + ( s 2 − y2)2Para mínimizar cualquier función de la forma f = √ g, se toma la derivada y se iguala a cero:
f = g2√ g = 0 , entonces g = 0
Para ahorrar calculo computaciónal y para n 4 = 2 capas en la salida, denimos el error de la forma:
error = 12 · (s 1 − y1)
2 + ( s 1 − y2)2
Como el error esta en funcion de 2 variables {y1 , y2}, su derivada con respecto a cualquier variable, será de laforma:∂error
∂m =
∂error∂y 1 ·
∂y 1∂m
+ ∂error
∂y 2 · ∂ y2∂m
∂error∂m
= [−(s 1 − y1)] · ∂y 1∂m
+ [−(s 2 − y2)] · ∂ y2∂m
Expresando en terminos generales:
Deiner Zapata S. 6
-
8/19/2019 Redes Neuronales: Facil y desde cero
7/8
2.2 Red de 2 capas ocultas 2 RED MULTICAPA
∂error∂m
=n 4
i =1−(s i − yi ) ·
∂y i∂m
2.2.2. Derivadas parciales del errorLa variacion del error con el cambio de los pesos, quedará de la siguiente forma:
Derivada del error respecto a w (3)ji
∂error
∂w (3)ji= −(s i − yi ) ·
∂y i∂w (3)ji
= [ −(s i − yi )] · a(3)j · yi · (1 − yi )
∂error
∂w (3)ji= a (3)j · yi · (1 − yi ) · (−(s i − yi ))
Derivada del error respecto a w (2)ji
∂error
∂w (2)ji=
n 4
i =1−(s i − yi ) ·
∂y i∂w (2)ji
=n 4
i =1
(−(s i − yi )) · a(2)j · a
(3)k · 1 − a
(3)k · w
(3)ki · yi · (1 − yi )
Ordenando y sacando los terminos que no inuyen en la sumatoria:
∂error
∂w (2)ji= a (2)j · a
(3)k · 1 − a
(3)k ·
n 4
i =1
w(3)ki · yi · (1 − yi ) · (−(s i − yi ))
Derivada del error respecto a w (1)ji
∂error
∂w (1)ji=
n 4
i =1 −(s
i − y
i)
· ∂y i
∂w (1)ji =
n 4
i =1
(
−(s
i − y
i))
·x
j · a (2)
k ·1
− a (2)
k ·
n 3 =4
p=1
w(2)kp ·
a (3) p ·
1
− a (3)
p · w(3)
pi · y
i Ordenando los terminos:
∂error
∂w (1)ji= x j · a
(2)k · 1 − a
(2)k ·
n 4 =2
i =1
n 3 =4
p=1(−(s i − yi )) · w
(2)kp · a (3) p · 1 − a (3) p · w
(3) pi · yi · (1 − yi )
∂error
∂w (1)ji= x j · a
(2)k · 1 − a
(2)k ·
n 3 =4
p=1
n 4 =2
i =1
w (2)kp · a (3) p · 1 − a (3) p · w(3) pi · yi · (1 − yi ) · (−(s i − yi ))
∂error
∂w (1)ji= x j
· a (2)k
·1
− a (2)k
·
n 3 =4
p=1
w(2)kp
· a (3) p
·1
− a (3) p
·
n 4 =2
i =1
w (3) pi
· yi
· (1
− yi )
· (
−(s i
− yi ))
Como se observa que hay expresiones que se repiten, introduciremos algunas variables:
Derivada del error respecto a w (3)ji
∂error
∂w (3)ji= a (3)j · δ
(4)i , donde δ
(4)i = yi · (1 − yi ) · [−(s i − yi )]
Deiner Zapata S. 7
-
8/19/2019 Redes Neuronales: Facil y desde cero
8/8
2.2 Red de 2 capas ocultas 2 RED MULTICAPA
Derivada del error respecto a w (2)ji
∂error
∂w (2)ji= a (2)j · δ
(3)k , donde δ
(4)k = a
(3)k · 1 − a
(3)k ·
n 4
i =1
w (3)ki · δ (4)i
Derivada del error respecto a w (1)ji
∂error
∂w (1)ji= a (2)j · δ
(2)k , donde δ
(2)k = a
(2)k · 1 − a
(2)k ·
n 3 =4
p=1
w(2)kp · δ (3) p
Para hallar las derivadas del error respecto al umbral, unicamente se cambian a (1)j , a(2)j , a
(3)j se reemplazan
por 1, quedando:
∂error
∂u (3)i= δ (4)i
∂error
∂u (2)i= δ (3)i
∂error
∂u (1)i= δ (2)i
Por tanto, los valores nuevos valores de los pesos {w, u } en general, viene dado por:
wn +1 = wn + ∂error
∂w ny un +1 = u n +
∂error∂u n
Deiner Zapata S. 8