Redes Neuronales Facil y Desde Cero PDF
Redes Neuronales Facil y Desde Cero PDF
Redes Neuronales Facil y Desde Cero PDF
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.
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:
−1
f (z) = 1 + e−z
−2
f 0 (z) = + 1 + e−z · e−z
e−z 1
f 0 (z) = −z
·
1+e 1 + e−z
(e−z + 1) − 1 1
f 0 (z) = ·
1 + e−z 1 + e−z
1 1
f 0 (z) = 1 − ·
1 + e−z 1 + e−z
∂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 z = u1 + x1 · w1 + x2 · w2 + x3 · w3
Por lo tanto:
∂z ∂z ∂z ∂z
=1, = x1 , = x2 , = x3
∂u1 ∂w1 ∂w2 ∂w3
Reemplazando:
∂y ∂y ∂y ∂y
= (1 − y) · y = (1 − y) · y · x1 = (1 − y) · y · x2 = (1 − y) · y · x3
∂u1 ∂w1 ∂w2 ∂w3
2. RED MULTICAPA
2.1. Red de 1 capa oculta
Sea la red neuronal multicapa 1:2:1 tal como se muestra acontinuación
Deiner Zapata S. 2
2.1 Red de 1 capa oculta 2 RED MULTICAPA
∂y1
Figura 2.2: Analisis de la derivada (1) de forma visual
∂w11
∂y1 h
(2)
(2)
i
(2)
(1)
= x1 · a1 · 1 − a1 · w11 · [y1 · (1 − y1 )]
∂w11
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 , seguimos
(2)
avanzando y nos topamos con w11 y finalmente nos topamos con la última neurona «real» en la capa externa,
por lo tanto agregamos y · (1 − y)
∂y2 h
(2)
(2)
i
(2)
(1)
= x1 · a1 · 1 − a1 · w21 · [y2 · (1 − y2 )]
∂w12
(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 2 RED MULTICAPA
∂y1 ∂y2
Para los casos (2) y (2) , unicamente se cambia los terminos x1 y x2 por 1, quedando:
∂u1 ∂u2
∂y1 h
(2)
(2)
i
(2)
(2)
= 1 · a1 · 1 − a1 · w11 · [y1 · (1 − y1 )]
∂u1
∂y2 h
(2)
(2)
i
(2)
(2)
= 1 · a1 · 1 − a1 · w21 · [y2 · (1 − y2 )]
∂u2
Deiner Zapata S. 4
2.2 Red de 2 capas ocultas 2 RED 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 nX
3 =4 h i
(2) (2) (2) (3)
(1)
= xj · ak · 1 − ak · wkp · a(3) (3)
p · 1 − ap · wpi · yi · (1 − yi )
∂wjk p=1
(2)
Para analizar las derivadas parciales de yi con respecto a wjk , los caminos posibles se muestran en la figura
acontinuación:
(2)
En este caso partimos desde aj hacia yi , por lo tanto la primera neurona es «falsa»
∂yi (2)
h
(3)
(3)
i
(3)
(2)
= aj · ak · 1 − ak · wki · [yi · (1 − yi )]
∂wjk
(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
(3)
Esta vez partimos desde aj hacia yi , por lo tanto la ecuación quedaría como :
∂yi (3)
(3)
= aj · yi · (1 − yi )
∂wjk
Para el caso de los umbrales, como ya se vio anteriormente, unicamente se cambia el primer termino por «1»,
es decir:
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 )
error =
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 ∂y1 ∂error ∂y2
= · + ·
∂m ∂y1 ∂m ∂y2 ∂m
∂error ∂y1 ∂y2
= [− (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
∂error X ∂yi
= − (si − yi ) ·
∂m i=1
∂m
∂error (3)
(3)
= aj · yi · (1 − yi ) · (− (si − yi ))
∂wji
(2)
Derivada del error respecto a wji
n4
" # n4 h
∂error X ∂yi X
(2) (3)
(3)
(3)
i
(2)
= − (si − y i ) · (2)
= (− (si − y i )) · aj · ak · 1 − ak · wki · yi · (1 − y i )
∂wji i=1 ∂wji i=1
n4 h
∂error (2) (3)
(3)
X
(3)
i
(2)
= aj · ak · 1 − ak · wki · yi · (1 − yi ) · (− (si − yi ))
∂wji i=1
(1)
Derivada del error respecto a wji
n4
" # n4
" !
∂error ∂yi nX
3 =4 h i
(2) (2) (2) (3)
X X
(3) (3)
(1)
= − (si − yi ) · (1)
= (− (si − yi )) · xj · ak · 1− ak · wkp · ap · 1 − ap · wpi · yi · (1 − yi )
∂wji i=1 ∂wji i=1 p=1
∂error nX
4 =2 n 3 =4 h i
(2) (2) (2) (3)
X
(1)
= xj · ak · 1 − ak · (− (si − yi )) · wkp · a(3)
p · 1 − a(3)
p · w pi · y i · (1 − yi )
∂wji i=1 p=1
∂error nX
3 =4 n 4 =2 h i
(2) (2) (2) (3)
X
(1)
= xj · ak · 1 − ak · wkp · a(3) (3)
p · 1 − ap · wpi · yi · (1 − yi ) · (− (si − yi ))
∂wji p=1 i=1
∂error nX
3 =4 h i nX
4 =2 h i
(2) (2) (2) (3)
(1)
= xj · ak · 1 − ak · wkp · a(3) (3)
p · 1 − ap · wpi · yi · (1 − yi ) · (− (si − yi ))
∂wji p=1 i=1
Como se observa que hay expresiones que se repiten, introduciremos algunas variables:
(3)
Derivada del error respecto a wji
Deiner Zapata S. 7
2.2 Red de 2 capas ocultas 2 RED MULTICAPA
(2)
Derivada del error respecto a wji
n4 h
∂error (2) (3) (4) (3)
(3)
X
(3) (4)
i
(2)
= aj · δk , donde δk = ak · 1 − ak · wki · δi
∂wji i=1
(1)
Derivada del error respecto a wji
∂error nX
3 =4 h i
(2) (2) (2) (2) (2) (2)
(1)
= aj · δk , donde δk = ak · 1 − ak · wkp · δp(3)
∂wji p=1
n o
(1) (2) (3)
Para hallar las derivadas del error respecto al umbral, unicamente se cambian aj , aj , aj se reemplazan
por 1, quedando:
Por tanto, los valores nuevos valores de los pesos {w, u} en general, viene dado por:
∂error ∂error
wn+1 = wn + y un+1 = un +
∂wn ∂un
Deiner Zapata S. 8