Redes Neuronales Facil y Desde Cero PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 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 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:
−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

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 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

Figura 2.1: Red de una capa oculta

Donde la salida, esta dada por:


   
(3) (3) (3) (2) (2) (2) (2)
y = a1 = f z1 = f u1 + w11 · a1 + w21 · a2

Cuyas derivadas parciales son:

(3) (3) (3)


∂a1 (3)

(3)
 ∂a1 (3)

(3)

(2) ∂a1 (3)

(3)

(2)
(3)
= a1 · 1 − a1 (2)
= a1 · 1 − a1 · a1 (2)
= a1 · 1 − a1 · a2
∂u1 ∂w11 ∂w21
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 RED MULTICAPA

(2) (2) (2) (2)


∂a1 (2)

(2)
 ∂a1 (2)

(2)

(1) ∂a2 (2)

(2)
 ∂a2 (2)

(2)

(1)
(1)
= a1 · 1 − a1 (1)
= a1 · 1 − a1 · a1 (1)
= a2 · 1 − a2 (1)
= a2 · 1 − a2 · a1
∂u1 ∂w11 ∂u2 ∂w12
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)
∂a1
(3) ∂f z 1 ∂z1
(3)
∂a1
(2) h  i h i h   i
(3) (3) (2) (2) (2)
(2)
= (3)
· (2)
· (2)
= a1 · 1 − a1 · w 11 · a 1 · 1 − a 1 ·1
∂u1 ∂z1 ∂a1 ∂u1
 
(3)
(3)
∂a1 ∂f z1 ∂z1
(3) (2)
∂a1 h  i h i h   i
(3) (3) (2) (2) (2) (1)
(1)
= (3)
· (2)
· (1)
= a1 · 1 − a1 · w 11 · a 1 · 1 − a1 · a1
∂w11 ∂z1 ∂a1 ∂w11
 
(3)
∂a1
(3) ∂f z1 ∂z1
(3)
∂a2
(2) h  i h i h   i
(3) (3) (2) (2) (2)
(2)
= (3)
· (2)
· (2)
= a1 · 1 − a1 · w 21 · a 2 · 1 − a 2 ·1
∂u2 ∂z1 ∂a2 ∂u2
 
(3)
(3)
∂a1 ∂f z1 ∂z1
(3) (2)
∂a2 h  i h i h   i
(3) (3) (2) (2) (2) (1)
(1)
= (3)
· (2)
· (1)
= a1 · 1 − a1 · w 21 · a 2 · 1 − a2 · a1
∂w12 ∂z1 ∂a2 ∂w12
Analizando y reescribiendo las fórmulas anteriores, tenemos que:

∂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

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 graficamente, partiendo desde x hacia y:


∂yi h
(2)

(2)
i
(2)
h  i
(3)
(1)
= xj · ak · 1 − ak · wkp · a(3) (3)
p · 1 − ap · wpi · [yi · (1 − yi )]
∂wjk
Recordar que:
n o
(1)
Unicamente se atravieza 1 neurona «falsa» : 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   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:

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)
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

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)
(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:

∂yi ∂yi ∂yi ∂yi ∂yi ∂yi


(2)
= b
(1) xj =1,k=j (3)
= b
(2) aj =1,k=j (4)
= b
(3) xj =1,k=j
∂uj ∂wjk ∂uj ∂wjk ∂uj ∂wjk

2.2.1. 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 )
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

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 ∂yi h
(3)
i
(3)
= − (si − yi ) · (3)
= [− (si − yi )] · aj · yi · (1 − yi )
∂wji ∂wji

∂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

Ordenando y sacando los terminos que no influyen en la sumatoria:

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

Ordenando los terminos:

∂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

∂error (3) (4) (4)


(3)
= aj · δi , donde δi = yi · (1 − yi ) · [− (si − yi )]
∂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:

∂error (4) ∂error (3) ∂error (2)


(3)
= δi (2)
= δi (1)
= δi
∂ui ∂ui ∂ui

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

También podría gustarte