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 de Javier 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 {x1 , x2 , x3 } 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 = u1 + x1 · w1 + x2 · w2 + x3 · w3 La función mas usada para modelar la neurona, es la funcion sigmoidea, cuya derivada tiene una propiedades muy particulares: f (z) = 1 + e−z f 0 (z) = + 1 + e−z f 0 (z) =
−1
−2
· e−z
1 e−z · −z 1+e 1 + e−z
(e−z + 1) − 1 1 · 1 + e−z 1 + e−z 1 1 f 0 (z) = 1 − · 1 + e−z 1 + e−z f 0 (z) =
f 0 (z) = (1 − f (z)) · f (z) Como vamos a estar modificando los pesos {u1, w1 , w2 , w3 } , nos interesa como estos afectan a la salida y, por lo tanto vamos a aplicar derivadas parciales: ∂y ∂f (z) ∂z ∂z = · = (1 − f (z)) · f (z) · ∂u1 ∂z ∂u1 ∂u1 ∂y ∂f (z) ∂z ∂z = · = (1 − f (z)) · f (z) · ∂w1 ∂z ∂w1 ∂w1 Deiner Zapata S.
1
2
RED MULTICAPA
∂y ∂f (z) ∂z ∂z = · = (1 − f (z)) · f (z) · ∂w2 ∂z ∂w2 ∂w2 ∂y ∂f (z) ∂z ∂z = · = (1 − f (z)) · f (z) · ∂w3 ∂z ∂w3 ∂w3 Donde: y = f (z) y Por lo tanto:
z = u1 + x1 · w1 + x2 · w2 + x3 · w3
∂z ∂z ∂z ∂z =1, = x1 , = x2 , = x3 ∂u1 ∂w1 ∂w2 ∂w3
Reemplazando: ∂y = (1 − y) · y ∂u1
2.
∂y = (1 − y) · y · x1 ∂w1
∂y = (1 − y) · y · x2 ∂w2
∂y = (1 − y) · y · x3 ∂w3
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: (3) (3) (3) (2) (2) (2) (2) = f u1 + w11 · a1 + w21 · a2 y = a1 = f z1 Cuyas derivadas parciales son: (3)
∂a1
(3)
∂u1
(3) (3) = a1 · 1 − a1
(3)
∂a1
(2)
∂w11
(3) (2) (3) = a1 · 1 − a1 · a1
(3)
∂a1
(2)
∂w21
(3) (2) (3) = a1 · 1 − a1 · a2
Las expresiones subrayadas en la primera ecuación, son funciones dadas por las siguientes ecuaciones: (2) (2) (1) (1) (2) (2) (1) (1) a1 = f u1 + w11 · a1 a2 = f u2 + w12 · a1 Cuyas derivadas parciales son:
Deiner Zapata S.
2
2.1
Red de 1 capa oculta
(2)
∂a1
(1)
∂u1
(2) (2) = a1 · 1 − a1
2
(2)
∂a1
(1)
∂w11
(2) (2) (1) = a1 · 1 − a1 · a1
(2)
∂a2
(1)
∂u2
(2) (2) = a2 · 1 − a2
RED MULTICAPA
(2)
∂a2
(1)
∂w12
(2) (2) (1) = a2 · 1 − a2 · a1
n o (3) (2) (1) (2) (1) Las derivadas parciales de la salida y = a1 con respecto a los pesos u1 , w11 , u2 , w12 son: (3) (3) (2) (3) h i h i h i ∂f z 1 ∂z1 ∂a1 ∂a1 (3) (3) (2) (2) (2) = · · = a · 1 − a · w · a · 1 − a ·1 1 1 11 1 1 (2) (3) (2) (2) ∂u1 ∂z1 ∂a1 ∂u1 (3) (3) (2) (3) h i h i h i ∂f z 1 ∂z1 ∂a1 ∂a1 (3) (3) (2) (2) (2) (1) = · · = a · 1 − a · w · a · 1 − a · a 1 1 11 1 1 1 (1) (3) (2) (1) ∂w11 ∂z1 ∂a1 ∂w11 (3) (3) (2) (3) h i h i h i ∂f z1 ∂z1 ∂a2 ∂a1 (3) (3) (2) (2) (2) = · · = a · 1 − a · w · a · 1 − a ·1 1 1 21 2 2 (2) (3) (2) (2) ∂u2 ∂z1 ∂a2 ∂u2 (3) (3) (3) (2) h i h i h i ∂f z 1 ∂a1 ∂z1 ∂a2 (3) (3) (2) (2) (2) (1) = · · = a · 1 − a · w · a · 1 − a · a 1 1 21 2 2 1 (1) (3) (2) (1) ∂w12 ∂z1 ∂a2 ∂w12 Analizando y reescribiendo las fórmulas anteriores, tenemos que:
Figura 2.2: Analisis de la derivada
∂y1 (1)
∂w11
∂y1 (1) ∂w11
de forma visual
h i (2) (2) (2) = x1 · a1 · 1 − a1 · w11 · [y1 · (1 − y1 )]
Partimos desde x1 hacia y1 , como la primera no es una neurona «real» se pone el termino x1 , seguimos la (1) linea y nos topamos con w11 , pero como estamos derivando con respecto a esta variable,no la consideramos, (2)
(2)
seguimos avanzando y nos topamos con una neurona «real», por lo tanto agregamos a1 · 1 − a1 (2) w11 y
avanzando y nos topamos con por lo tanto agregamos y · (1 − y) ∂y2 (1)
∂w12
, seguimos
finalmente nos topamos con la última neurona «real» en la capa externa,
h i (2) (2) (2) · w21 · [y2 · (1 − y2 )] = x1 · a1 · 1 − a1
(2) (2) De forma similar partimos de x1 hacia y1 , se agrega x1 , luego a1 · 1 − a1 , avanzamos y el peso que une (2)
las neuronas es w21 y finalmente y2 · (1 − y2 ) Deiner Zapata S.
3
2.2
Red de 2 capas ocultas
Para los casos
∂y1 (2) ∂u1
y
2
∂y2 (2) , ∂u2
unicamente se cambia los terminos x1 y x2 por 1, quedando:
∂y1 (2) ∂u1
∂y2 (2)
∂u2
2.2.
RED MULTICAPA
h i (2) (2) (2) = 1 · a1 · 1 − a1 · w11 · [y1 · (1 − y1 )] h i (2) (2) (2) = 1 · a1 · 1 − a1 · w21 · [y2 · (1 − y2 )]
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 graficamente, partiendo desde x hacia y: ∂yi (1)
∂wjk
h i h i (2) (2) (2) (3) (3) = xj · ak · 1 − ak · wkp · a(3) · wpi · [yi · (1 − yi )] p · 1 − ap
Recordar que: Unicamente se atravieza 1 neurona «falsa» :
n o (1) aj = xj ,por lo tanto se coloca ”xj ” al inicio.
n o (2) (3) (4) Se atraviezan 3 neuronas «reales» : ak , ap , ai = yi , cuyas derivadas son de la forma : ”a · (1 − a)” wkp : Une la neurona «k» con la neurona «p». wpi : Une la neurnoa «p» con la neurona «i»
Deiner Zapata S.
4
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 n3 = 4, por lo tanto la ecuación quedaría de la siguiente forma: ∂yi (1)
∂wjk
3 =4 h nX i (2) (2) (2) (3) (3) = xj · ak · 1 − ak · wkp · a(3) · wpi · yi · (1 − yi ) p · 1 − ap
p=1 (2)
Para analizar las derivadas parciales de yi con respecto a wjk , los caminos posibles se muestran en la figura acontinuación:
Figura 2.5: Red neuronal multicapa (2)
En este caso partimos desde aj
hacia yi , por lo tanto la primera neurona es «falsa»
∂yi (2)
∂wjk
h i (2) (3) (3) (3) = aj · ak · 1 − ak · wki · [yi · (1 − yi )] (3)
Para analizar las derivadas parciales de yi con respecto a wjk , los caminos posibles se muestran en la figura acontinuación:
Deiner Zapata S.
5
2.2
Red de 2 capas ocultas
2
RED MULTICAPA
Figura 2.6: Red neuronal multicapa (3)
Esta vez partimos desde aj
hacia yi , por lo tanto la ecuación quedaría como : ∂yi (3) ∂wjk
(3)
= aj · yi · (1 − yi )
Para el caso de los umbrales, como ya se vio anteriormente, unicamente se cambia el primer termino por «1», es decir: ∂yi (2) ∂uj
2.2.1.
=
∂yi
b (1) xj =1,k=j ∂wjk
∂yi (3) ∂uj
=
∂yi
b (2) aj =1,k=j ∂wjk
∂yi (4) ∂uj
=
∂yi
b (3) xj =1,k=j
∂wjk
Definiendo el error
Considerando la distancia euclidiana para definir el error de tal forma que: q 2 2 error = (s1 − y1 ) + (s2 − y2 ) √ Para mínimizar cualquier función de la forma f = g, se toma la derivada y se iguala a cero: g0 f 0 = √ = 0, entoncesg 0 = 0 2 g Para ahorrar calculo computaciónal y para n4 = 2 capas en la salida, definimos el error de la forma: 1 2 2 · (s1 − y1 ) + (s1 − y2 ) 2 Como el error esta en funcion de 2 variables {y1 , y2 }, su derivada con respecto a cualquier variable, será de la forma: error =
∂error ∂error ∂y1 ∂error ∂y2 = · + · ∂m ∂y1 ∂m ∂y2 ∂m ∂y1 ∂y2 ∂error = [− (s1 − y1 )] · + [− (s2 − y2 )] · ∂m ∂m ∂m Expresando en terminos generales:
Deiner Zapata S.
6
2.2
Red de 2 capas ocultas
2
RED MULTICAPA
n4 ∂yi ∂error X − (si − yi ) · = ∂m ∂m i=1 2.2.2.
Derivadas parciales del error
La variacion del error con el cambio de los pesos, quedará de la siguiente forma: (3)
Derivada del error respecto a wji ∂error (3)
∂wji
= − (si − yi ) · ∂error (3) ∂wji
∂yi (3)
∂wji
h i (3) = [− (si − yi )] · aj · yi · (1 − yi )
(3)
= aj · yi · (1 − yi ) · (− (si − yi ))
(2)
Derivada del error respecto a wji " # n4 n4 h i X ∂error X ∂yi (2) (3) (3) (3) = − (s − y ) · = (− (s − y )) · a · a · 1 − a · w · y · (1 − y ) i i i i i i j k k ki (2) (2) ∂wji ∂wji i=1 i=1 Ordenando y sacando los terminos que no influyen en la sumatoria: ∂error (2)
∂wji
n4 h X i (3) (2) (3) (3) wki · yi · (1 − yi ) · (− (si − yi )) = aj · ak · 1 − ak · i=1 (1)
Derivada del error respecto a wji ∂error (1)
∂wji
=
n4 X
" − (si − yi ) ·
i=1
∂yi
#
(1)
∂wji
=
n4 X
" (− (si − yi )) ·
xj ·
(2) ak
· 1−
(2) ak
! 3 =4 h nX i (2) (3) (3) (3) · wkp · ap · 1 − ap · wpi · yi · (1 − yi ) p=1
i=1
Ordenando los terminos: ∂error (1)
∂wji
i=1
∂error (1)
∂wji
∂error (1)
∂wji
4 =2 n 3 =4 h nX i X (2) (2) (2) (3) (3) = xj · ak · 1 − ak · (− (si − yi )) · wkp · a(3) · 1 − a · w · y · (1 − y ) i i p p pi
p=1
3 =4 n 4 =2 h nX i X (2) (2) (2) (3) (3) = xj · ak · 1 − ak · wkp · a(3) · wpi · yi · (1 − yi ) · (− (si − yi )) p · 1 − ap
p=1
i=1
4 =2 h 3 =4 h nX i nX i (2) (3) (2) (2) (3) = xj · ak · 1 − ak · wkp · a(3) · wpi · yi · (1 − yi ) · (− (si − yi )) p · 1 − ap
p=1
i=1
Como se observa que hay expresiones que se repiten, introduciremos algunas variables: (3)
Derivada del error respecto a wji ∂error (3)
∂wji
(3)
(4)
= aj · δi
(4)
, donde δi
= yi · (1 − yi ) · [− (si − yi )]
Deiner Zapata S.
7
2.2
Red de 2 capas ocultas
2
RED MULTICAPA
(2)
Derivada del error respecto a wji ∂error (2)
∂wji
(2)
(3)
= aj · δk
n4 h X i (4) (3) (3) (3) (4) , donde δk = ak · 1 − ak · wki · δi i=1
(1)
Derivada del error respecto a wji ∂error (1)
∂wji
(2)
(2)
= aj · δk
3 =4 h nX i (2) (2) (2) (2) , donde δk = ak · 1 − ak · wkp · δp(3)
p=1
Para hallar las derivadas del error respecto al umbral, unicamente se cambian por 1, quedando: ∂error (3) ∂ui
(4)
= δi
∂error (2) ∂ui
(3)
= δi
∂error (1)
∂ui
n o (1) (2) (3) aj , aj , aj se reemplazan
(2)
= δi
Por tanto, los valores nuevos valores de los pesos {w, u} en general, viene dado por: wn+1 = wn +
∂error ∂wn
y
un+1 = un +
Deiner Zapata S.
∂error ∂un
8