redes neuronales: facil y desde cero

Upload: deiner-zapata-silva

Post on 07-Jul-2018

219 views

Category:

Documents


1 download

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