Está en la página 1de 27

Tarea 2 RN & DL

Presentado por Valentina López Maldonado - 2170238

1. Realice manualmente (sin usar ninguna herramienta de simulación) la actualización de pesos


de una red Adaline que resuelva el problema de la función lógica OR (ver tabla). Pruebe al
menos una vez cada una de las combinaciones de entrada, luego de hacer esto, calcule el
valor de la pérdida (loss) con que quedó la red entrenada. Use como valores de pesos iniciales
w1=0.5 w2=-0.5 b=-1.5. Seleccione un valor del parámetro de aprendizaje entre 0.5 y 1.0

Tabla 1. Tabla de verdad de la compuerta OR

Ecuaciones:

𝑤𝑖(𝑡 + 1) = 𝑤𝑖(𝑡) + α(𝑑 − 𝑦)𝑥𝑖


𝑦 = 𝑥𝑖𝑤𝑖 + 𝑥𝑛𝑤𝑛 + 𝑏
𝑃 𝑀
1 2
𝐿= 𝑀𝑃
∑ ∑ (𝑑𝑘 − 𝑦𝑘)
𝑝=1 𝑘=1
𝑒= 𝑑−𝑦
𝑏(𝑡 + 1) = 𝑏(𝑡) + 𝑒𝑀

Donde:

𝑀 = 𝑁𝑒𝑢𝑟𝑜𝑛𝑎𝑠 𝑑𝑒 𝑠𝑎𝑙𝑖𝑑𝑎
𝑃 = 𝑃𝑎𝑡𝑟𝑜𝑛𝑒𝑠
𝑑 = 𝑉𝑎𝑙𝑜𝑟 𝑑𝑒 𝑠𝑎𝑙𝑖𝑑𝑎
𝑦 = 𝑆𝑎𝑙𝑖𝑑𝑎
𝐿 = 𝐿𝑜𝑠𝑠
𝑥𝑖 = 𝐸𝑛𝑡𝑟𝑎𝑑𝑎
𝑤𝑖 = 𝑃𝑒𝑠𝑜

Valores iniciales
𝑤1 = 0. 5
𝑤2 =− 0. 5
𝑏 =− 1. 5
α = 0. 7
Combinación 1

X1 X2 D

0 0 0

● Primera iteración

𝑑=0 𝑥1 = 0 𝑥2 = 0
𝑤1 = 0. 5 𝑤2 =− 0. 5 𝑏 =− 1. 5 α = 0. 7

Salida

𝑦 = 𝑥1𝑤1 + 𝑥2𝑤2 + 𝑏
𝑦 = 0 * 0. 5 + 0 *− 0. 5 + (− 1. 5)
𝑦 =− 1. 5

Error

𝑒1 = 𝑑 − 𝑦
𝑒1 = 0 − (− 1. 5)
𝑒1 = 1. 5

Pesos

𝑤1(𝑡 + 1) = 0. 5 + (0. 7)(1. 5)(0)


𝑤1(𝑡 + 1) = 0. 5

𝑤2(𝑡 + 1) =− 0. 5 + (0. 7)(1. 5)(0)


𝑤2(𝑡 + 1) =− 0. 5

𝑏(𝑡 + 1) =− 1. 5 + 1. 5(1)
𝑏(𝑡 + 1) = 0
Segunda combinación

X1 X2 D

0 1 1

● Segunda iteración

𝑑=1 𝑥1 = 0 𝑥2 = 1
𝑤1 = 0. 5 𝑤2 =− 0. 5 𝑏 = 0 α = 0. 7

Salida

𝑦 = 𝑥1𝑤1 + 𝑥2𝑤2 + 𝑏
𝑦 = 0 * 0. 5 + 1 *− 0. 5 + (0)
𝑦 =− 0. 5

Error

𝑒2 = 𝑑 − 𝑦
𝑒2 = 1 − (− 0. 5)
𝑒2 = 1. 5

Pesos

𝑤1(𝑡 + 1) = 0. 5 + 0. 7(1 − (− 0. 5)(0))


𝑤1(𝑡 + 1) = 0. 5

𝑤2(𝑡 + 1) =− 0. 5 + 0. 7(1 − (− 0. 5)(1))


𝑤2(𝑡 + 1) = 0. 55

𝑏(𝑡 + 1) = 0 + 1. 5(1)
𝑏(𝑡 + 1) = 1. 5

Tercera combinación

X1 X2 D

1 0 1

● Tercera iteración

𝑑=1 𝑥1 = 1 𝑥2 = 0
𝑤1 = 0. 5 𝑤2 = 0. 55 𝑏 = 1. 5 α = 0. 7

Salida

𝑦 = 𝑥1𝑤1 + 𝑥2𝑤2 + 𝑏
𝑦 = 1 * 0. 5 + 0 * 0. 55 + (1. 5)
𝑦=2

Error

𝑒3 = 𝑑 − 𝑦
𝑒3 = 1 − (2)
𝑒3 =− 1

Pesos

𝑤1(𝑡 + 1) = 0. 5 + 0. 7(1 − (− 1)(1))


𝑤1(𝑡 + 1) = 1. 9

𝑤2(𝑡 + 1) = 0. 55 + 0. 7(1 − (− 0. 5)(0))


𝑤2(𝑡 + 1) = 0. 55

𝑏(𝑡 + 1) = 1. 5 + (− 1)(1)
𝑏(𝑡 + 1) = 0. 5

Cuarta combinación

X1 X2 D

1 1 1

● Cuarta iteración

𝑑=1 𝑥1 = 1 𝑥2 = 1
𝑤1 = 1. 9 𝑤2 = 0. 55 𝑏 = 0. 5 α = 0. 7

Salida

𝑦 = 𝑥1𝑤1 + 𝑥2𝑤2 + 𝑏
𝑦 = 1 * 1. 9 + 1 * 0. 55 + (0. 5)
𝑦 = 2. 95

Error
𝑒4 = 𝑑 − 𝑦
𝑒4 = 1 − (2. 95)
𝑒4 =− 1. 95

Pesos

𝑤1(𝑡 + 1) = 1. 9 + 0. 7(1 − (2. 95)(1))


𝑤1(𝑡 + 1) = 0. 535

𝑤2(𝑡 + 1) = 0. 55 + 0. 7(1 − (2. 95)(1))


𝑤2(𝑡 + 1) =− 0. 815

𝑏(𝑡 + 1) = 0. 5 + (− 1. 95)(1)
𝑏(𝑡 + 1) =− 1. 45

Pérdida

𝑤1 = 0. 535 𝑤2 =− 0. 815 𝑏 =− 1. 45 α = 0. 7
𝑒1 = 1. 5 𝑒2 = 1. 5 𝑒3 =− 1 𝑒4 =− 1. 95
𝑃 𝑀
1 2
𝐿= 𝑀𝑃
∑ ∑ (𝑑𝑘 − 𝑦𝑘)
𝑝=1 𝑘=1
𝑀=1 𝑃=4
1 2 2 2 2
𝐿= 4
(𝑒1) + (𝑒2) + (𝑒3) + (𝑒4)

1 2 2 2 2
𝐿= 4
((1. 5) + (1. 5) + (− 1) + (− 1. 95) )
𝐿 = 2. 325625

2. Encuentre una red neuronal multicapa superficial compuesta de neuronas con función de
activación tipo escalón que permita realizar la separación de los patrones mostrados en la
figura.

Figura 1. Patrones
Línea 1

Figura 2. Desarrollo de los patrones línea 1


𝑤1 𝑏
𝑥2 =− 𝑤2
𝑥1 − 2

𝑥2 = 𝑚𝑥1 + 𝐼
𝑃1 = (0, 2) 𝑃2 = (1, 3)
3−2 1
𝑚= 1−0
= 1
=1
𝑥2 = 𝑥1 + 𝐼 → 2 = 0 + 𝐼
𝐼=2

𝑤1 −𝑏
𝑥2 = 𝑥1 + 2 → − 𝑤2
=1 𝑤2
=2

𝑤1 = − 𝑤2
𝑏 =− 2𝑤2
Asumo el valor de 𝑤2 = 1
𝑤1 =− 1 𝑏 =− 2

(−1) (−2)
Finalmente obtenemos el valor de 𝑥2 =− 1
𝑥1 − 1
𝑥2 = 𝑥1 + 2
Coordenadas de los pesos

P1=(-1,1) P2=(1,-1)

Al haber asumido el valor de 𝑤2 = 1 obtenemos una recta que apunta hacia los ceros (0) del
sistema en el punto (-1,1) por lo que ahora se asume que su valor es 𝑤2 =− 1 obteniendo
finalmente el punto de (1,-1) el cual apunta hacia los unos (1).
Teniendo ahora los valores de:

𝑤1 = 1 𝑤2 =− 1 𝑏 = 2
Figura 3. Vectores de los pesos línea 1

Teniendo finalmente el diseño de la red neuronal multicapa con los primeros datos

Figura 4. Red neuronal multicapa línea 1

Línea 2

Figura 5. Desarrollo de patrones línea 2


𝑤1 𝑏
𝑥2 =− 𝑤2
𝑥1 − 2

𝑥2 = 𝑚𝑥1 + 𝐼
𝑃1 = (1, 3) 𝑃2 = (2, 2)
2−3 −1
𝑚= 2−1
= 1
=− 1
𝑥2 =− 𝑥1 + 𝐼 → 2 =− 1 + 𝐼
𝐼=3

𝑤1 −𝑏
𝑥2 =− 𝑥1 + 3 → − 𝑤2
=− 1 𝑤2
=3

𝑤1 = 𝑤2

𝑏 =− 3𝑤2
Asumo el valor de 𝑤2 = 1
𝑤1 = 1 𝑏 =− 3

(1) (−3)
Finalmente obtenemos el valor de 𝑥2 =− 1
𝑥1 − 1
𝑥2 =− 𝑥1 + 3

Coordenadas de los pesos

P1=(1,1) P2=(-1,-1)

Al haber asumido el valor de 𝑤2 = 1 obtenemos una recta que apunta hacia los ceros (0) del
sistema en el punto (1,1) por lo que ahora se asume que su valor es 𝑤2 =− 1 obteniendo
finalmente el punto de (-1,-1) el cual apunta hacia los unos (1).

Teniendo ahora los valores de:

𝑤1 =− 1 𝑤2 =− 1 𝑏 = 3

Figura 6. Vectores de peso línea 2


Figura 7. Red neuronal multicapa línea 2

Línea 3

Figura 8. Desarrollo de los patrones línea 3

𝑤2 𝑏
𝑥1 =− 𝑤1
𝑥2 − 𝑤1

𝑥1 = 𝑚𝑥2 + 𝐼
𝑃1 = (2, 3) 𝑃2 = (2, 1)
1−3 −2
𝑚= 2−2
= 0
=0
𝑥1 = 𝐼 → 2 = 𝐼
𝐼=2
𝑤2 −𝑏
𝑥1 = 0𝑥2 + 2 → − 𝑤1
=0 𝑤1
=2
𝑤2 =− 0𝑤1
𝑏 =− 2𝑤1
Asumo el valor de 𝑤1 = 1
𝑤2 = 0 𝑏 =− 2

(0) (−2)
Finalmente obtenemos el valor de 𝑥1 =− 1
𝑥1 − 1
𝑥1 = 0𝑥2 + 2

Coordenadas de los pesos

P1=(1,0) P2=(-1,0)

Al haber asumido el valor de 𝑤1 = 1 obtenemos una recta que apunta hacia los ceros (0) del
sistema en el punto (1,0) por lo que ahora se asume que su valor es 𝑤1 =− 1 obteniendo
finalmente el punto de (-1,0) el cual apunta hacia los unos (1).
Teniendo ahora los valores de:

𝑤1 =− 1 𝑤2 = 0 𝑏 = 2

Figura 9-10. Vectores de fuerza línea 3 y red neuronal multicapa línea 3


Línea 4

Figura 11. Desarrollo de los patrones línea 4


𝑤2 𝑏
𝑥1 =− 𝑤1
𝑥2 − 𝑤1

𝑥1 = 𝑚𝑥2 + 𝐼
𝑃1 = (1, 3) 𝑃2 = (1, 1)
1−3 −2
𝑚= 1−1
= 0
=0
𝑥1 = 𝐼 → 2 = 𝐼
𝐼=2
𝑤2 −𝑏
𝑥1 = 0𝑥2 + 2 → − 𝑤1
=0 𝑤1
=2

𝑤2 =− 0𝑤1
𝑏 =− 2𝑤1
Asumo el valor de 𝑤1 = 1
𝑤2 = 0 𝑏 =− 2

(0) (−2)
Finalmente obtenemos el valor de 𝑥1 =− 1
𝑥1 − 1
𝑥1 = 0𝑥2 + 2

Coordenadas de los pesos

P1=(1,0)
Al haber asumido el valor de 𝑤1 = 1 obtenemos una recta que apunta hacia los unos (1) del
sistema en el punto (1,0) por lo que se tienen los valores de:

𝑤1 = 1 𝑤2 = 0 𝑏 =− 2
Figura 12. Vectores de peso línea 4

Figura 13. Red neuronal multicapa línea 4

Línea 5

Figura 14. Desarrollo de los patrones línea 5


𝑤2 𝑏
𝑥1 =− 𝑤1
𝑥2 − 𝑤1

𝑥1 = 𝑚𝑥2 + 𝐼
𝑃1 = (0, 1) 𝑃2 = (0, 1)
1−2 −1
𝑚= 0−0
= 0
=0
𝑥1 = 𝐼 → 2 = 𝐼
𝐼=2
𝑤2 −𝑏
𝑥1 = 0𝑥2 + 2 → − 𝑤1
=0 𝑤1
=2

𝑤2 =− 0𝑤1
𝑏 =− 2𝑤1
Asumo el valor de 𝑤1 = 1
𝑤2 = 0 𝑏 =− 2

(0) (−2)
Finalmente obtenemos el valor de 𝑥1 =− 1
𝑥1 − 1
𝑥1 = 0𝑥2 + 2

Coordenadas de los pesos

P1=(1,0)
Al haber asumido el valor de 𝑤1 = 1 obtenemos una recta que apunta hacia los unos (1) del
sistema en el punto (1,0) por lo que se tienen los valores de:

𝑤1 = 1 𝑤2 = 0 𝑏 =− 2

Figura 15. Vectores de peso línea 5


Figura 16. Red neuronal multicapa completa
Salidas

Neurona línea 1

𝑦 = 𝑥1𝑤1 + 𝑥2𝑤2 + 𝑏
𝑦 = 0 + 2 *− 1 + 2
𝑦=0

Neurona línea 2

𝑦 = 𝑥1𝑤1 + 𝑥2𝑤2 + 𝑏
𝑦 =− 1 *− 1 + 2 *− 1 + 3
𝑦=2

Neurona línea 3

𝑦 = 𝑥1𝑤1 + 𝑥2𝑤2 + 𝑏
𝑦 = 2 *− 1 + 0 + 2
𝑦=0

Neurona línea 4

𝑦 = 𝑥1𝑤1 + 𝑥2𝑤2 + 𝑏
𝑦 = 2 * 1 + 0 + (− 2)
𝑦=0

Neurona línea 5

𝑦 = 𝑥1𝑤1 + 𝑥2𝑤2 + 𝑏
𝑦 =− 1 *− 1 + 2 *− 1 + 3
𝑦=0

Neurona de salida

𝑏=1
𝑦=0+2+0+0+0+1
𝑦=3

3. Al modificar el parámetro de aprendizaje a un valor mayor, el error disminuye notablemente,


por lo que se llevará a cabo la tarea deseada de la mejor manera posible.

Parámetro de Gráfica Loss


aprendizaje

0.01

0.1
0.5

Figura 17 . Grafo de la red neuronal creada de la compuerta OR


4.
Parámetro de Gráfica Loss
aprendizaje

0.01
0.1

0.5

5000 épocas
Figura 18. Grafo de la red neuronal creada de la compuerta XOR

5.
Circle

● Se tienen 2 entradas lineales con 1 capa oculta con 2 neuronas y una tasa de
aprendizaje de 0.03 con función de activación tangencial hiperbólica (tanh). Se puede
observar que la red neuronal identifica la mayoría de los puntos naranjas pero no lo
consigue del todo

Figura 19. Entrenamiento de la red circular en tensorflow

● Se tienen 2 neuronas de entrada lineales con 1 capa oculta de 4 neuronas tasa de


aprendizaje de 0,03 y Fact tanh. Se observa que el sistema puede identificar y clasificar
entre puntos azules y naranjas
Figura 20. Entrenamiento de la red circular en tensorflow

● Al aumentar las capas ocultas a 4 y las neuronas de cada una de estas se puede observar que
finalmente el sistema clasifica de manera exacta el área de puntos azules y naranjas a una
velocidad mayor.

Figura 21. Entrenamiento de la red circular en tensorflow

Espiral

● Se puede observar que al tener 2 entradas lineales y una capa oculta con 8 neuronas, el
sistema no responde a la clasificación (Tasa de aprendizaje 0.03, Fact tanh)
Figura 22. Entrenamiento de la red espiral en tensorflow

● Al aumentar las capas ocultas y la cantidad de neuronas dentro de estas se puede observar
que empieza a clasificar notoriamente los puntos en forma de espiral pero aún no es suficiente

Figura 23. Entrenamiento de la red espiral en tensorflow

● Finalmente al tener 2 salidas lineales, la red no puede clasificar ambos datos por lo que se
decide activar las diferentes entradas posibles y aumentar las capas y neuronas llevando esto
a formar una espiral pero no perfecta.
Figura 24. Entrenamiento de la red espiral en tensorflow

● Finalmente se cambia la función de activación a ReLu para una mejor respuesta obteniendo
así la espiral clasificando los datos perfectamente a una velocidad mayor.

Figura 25. Entrenamiento de la red espiral en tensorflow


7. Paisaje de costo 1

Figura 26. Paisaje de costo 1

Gráficas de optimización

● Con una tasa de aprendizaje de 0.001 para el descenso de gradiente y el impulso, se puede
observar que al agregarle un impulso (momentum) se requirieron de menos épocas para poder
estabilizar la red y entrenarla

Figura 27. Simulación del gradiente y momentum del paisaje de costo 1


Con una tasa de aprendizaje de 0.003 para el descenso de gradiente y el impulso, se puede
observar que al agregarle un impulso (momentum) se requirieron de las mismas épocas para
poder estabilizar la red y entrenarla

Figura 28. Simulación del gradiente y momentum del paisaje de costo 1 con taza de aprendizaje
diferente
Paisaje de costo 2

Figura 29. Paisaje de costo 2

Gráficas de optimización

● Con una tasa de aprendizaje de 0.003 para el descenso de gradiente y el impulso, se puede
observar que al agregarle un impulso (momentum) se requirieron de menos épocas para poder
estabilizar la red y entrenarla pero al ser un paisaje diferente, aún teniendo esta tasa, las
épocas fueron muy similares, aún así le tomó menos tiempo al momentum.
Figura 30. Simulación del gradiente y momentum del paisaje de costo 2

● Con una tasa de aprendizaje de 0.009 para el descenso de gradiente y el impulso, se puede
observar que al agregarle un impulso (momentum) se requirieron de más épocas para poder
estabilizar la red y entrenarla que con solo utilizar el descenso de gradiente

Figura 31. Simulación del gradiente y momentum del paisaje de costo 2 con taza de aprendizaje
diferente
● Se puede concluir que al aumentar la tasa de aprendizaje del momentum, esta se vuelve
menos precisa por lo que le tomará mucho más tiempo entrenar una red que con el gradiente
descendente.

6. Diferenciación automática

La diferenciación automática es un método entre la diferenciación simbólica y la diferenciación


numérica. La diferenciación numérica calcula una aproximación a la derivada de una función en
un punto utilizando los valores y propiedades de la misma; la diferenciación simbólica se basa
en que el álgebra se resuelve directamente y se sustituye en el valor del problema; la
diferenciación automática aplica la diferenciación simbólica a los operadores, como constantes,
funciones de potencia, funciones exponenciales, funciones logarítmicas, funciones
trigonométricas, etc. siendo estos los

más básicos, luego se sustituyen en valores numéricos, manteniendo los resultados


intermedios y finalmente se aplican a toda la función. Por lo tanto, su aplicación es bastante
flexible y puede ocultar completamente a los usuarios el proceso de resolución diferencial.

Dado que solo aplica la ley de diferenciación simbólica a funciones básicas o constantes,
puede combinar de manera flexible la estructura de bucle y la estructura condicional del
lenguaje de programación, utilizando diferenciación automática y debido a que su cálculo es
gráfico, se puede optimizar bastante siendo la razón por lo que se usa ampliamente en los
sistemas modernos de aprendizaje profundo.

Ejemplo:

Los problemas de mínimos cuadrados no lineales ponderados, surgen cuando las


incertidumbres (σ𝑖) los datos de entrada se han caracterizado adecuadamente.
Si sólo tenemos estimaciones aproximadas 𝑠𝑖 para σ𝑖 , puede ser apropiado considerar las σ𝑖
como incógnitas pero para las que tenemos algún modelo estadístico. Por ejemplo,
supongamos que el modelo es:

𝑇
donde ρi es conocida. La estimación de máxima verosimilitud de σ = (σ1, . . . , σ𝑚) y a se
determina minimizando una función de probabilidad logarítmica de la forma:

Figura 32. Función de probabilidad logarítmica [1]


Referencias:
[1] Eprintspublications.npl.co.uk. 2022. [en línea] Disponible en:
<https://eprintspublications.npl.co.uk/2828/1/cmsc26.pdf> [Consultado el 28 de febrero de
2022].

También podría gustarte