Está en la página 1de 24

18/04/2023

Redes Neuronales Artificiales


Programación de Sistemas
Adaptativos
Unidad 3: Sistemas inteligentes

El mejor aprendizaje es conocerse Sistemas


a uno mismo.
Programación de
Adaptativos:
Clasificación

1
18/04/2023

Programación de
Sistemas Adaptativos:
Redes neuronales

Contenidos
• Misión interestelar
• Conceptos básicos
• Perceptrón
• Otros tipos de redes

Programación de
Sistemas Adaptativos:
Redes neuronales

Misión interestelar

• Clasificación de suelo
extraterrestre con redes
neuronales

2
18/04/2023

Inteligencia Artificial:
Redes neuronales

Proceso

Ajustes Inteligencia Artificial:


Redes neuronales

Hacer
Conjunto de Clasificador modificaciones
entrenamiento sin
entrenar No
¿Pasó?

Conjunto de
prueba Clasificador Clasificador
entrenado probado

Etiquetas
Datos sin
Aprendizaje etiquetar

Supervisado

3
18/04/2023

Inteligencia Artificial:
Redes neuronales

Ajustar los valores de los parámetros del


clasificador para que reproduzcan
1 Entrenamiento correctamente las etiquetas del conjunto
de entrenamiento.

Revisar si el clasificador se entrenó


2 Prueba correctamente—es decir, que puede
generalizar y que no se sobreentrenó
(overfit)

Utilizar el clasificador (modelo


3 Uso generado) para obtener etiquetas de
datos nuevos (i.e., nunca antes
observados).

Inteligencia Artificial:
Redes neuronales

Conjunto de entrenamiento
• Ejemplos, objetos, instancias, vectores de
características, entradas

• Se conoce la etiqueta de cada ejemplo.

• Se utiliza para encontrar los valores de los


parámetros del clasificador.

4
18/04/2023

Inteligencia Artificial:
Redes neuronales

Conjunto de prueba
• También son ejemplos.

• También se conoce su etiqueta.

• Se utilizan para evaluar.

10

Inteligencia Artificial:
Redes neuronales

Modelo

• Conjunto de valores correspondientes a los


parámetros del clasificador.

5
18/04/2023

11

Inteligencia Artificial:
Redes neuronales

Generalidades

12

Programación de
Sistemas Adaptativos:
Redes neuronales

Dos partes importantes


Cómo funcionan Cómo se entrenan

6
18/04/2023

13

Programación de
Sistemas Adaptativos:
Redes neuronales

¿Qué son las redes neuronales?


• Técnica de aprendizaje automático
supervisado

• que sirve para hacer tareas de predicción y


reconocimiento de patrones

• se basa en el funcionamiento del cerebro


(específicamente, las neuronas).

Presentadas por McCulloch y Pitts en 1943.

14

Programación de
Sistemas Adaptativos:
Redes neuronales

¿Cómo funcionan las redes neuronales?

Nuestro cerebro
aprende a través
de modificar los
pesos en las
conexiones de las
neuronas.

Fuente: http://www.thestudentroom.co.uk/showthread.php?t=1056916

7
18/04/2023

15

Programación de
Sistemas Adaptativos:
Redes neuronales

¿En qué consiste una red neuronal?


• Sistema que contiene unidades de
procesamiento (neuronas) ligadas por
conexiones con pesos.

Fuente:
http://lowercolumbia.edu/students/academics/
facultyPages/rhode-cary/intro-neural-net.htm

16

Programación de
Sistemas Adaptativos:
Redes neuronales

Visualizando redes neuronales


•Se tienen entradas
externas y una serie
de capas.

•Las salidas se
consideran la última
capa.

•Las capas que no


son de salida se
denominan internas.
Entradas Capas Salidas
•Las entradas no se
ocultas toman como capa.

8
18/04/2023

17

Programación de
Sistemas Adaptativos:
Redes neuronales

Componentes de una red neuronal (NN)

• Unidades de • Función de activación


procesamiento
(neuronas) • Sesgo (bias)

• Conexiones pesadas • Método de ajuste


entre las unidades (depende del tipo de
red)
• Función de núcleo

18

Inteligencia Artificial:
Redes neuronales

Una sola neurona

9
18/04/2023

19

Programación de
Sistemas Adaptativos:
Redes neuronales

Perceptrón
• Tipo más simple de red

Entradas
neuronal

• Consiste de una sola capa. Capa


de
salida

• Para clasificación binaria de


datos linealmente
separables.

20

Programación de
Sistemas Adaptativos:
Redes neuronales

Datos linealmente separables


• Pueden dividirse por un hiperplano.

No
Fuente:
http://neuron.eng.wayne.edu/tarek/MITbook/chap1/1_1.html

10
18/04/2023

21

Programación de
Sistemas Adaptativos:
Redes neuronales

Entrenamiento de un perceptrón
• El perceptrón va tratar de “dibujar” una línea
que separe los datos en diferentes clases.

• Para aproximar esta línea, va a ser entrenado


con un conjunto de datos. A este conjunto de
datos le llamaremos conjunto de
entrenamiento.

22

Programación de
Sistemas Adaptativos:
Redes neuronales

Entrenamiento de un perceptrón
• Para el conjunto de entrenamiento, SIEMPRE
debemos tener las salidas esperadas (respuestas
correctas).

• El conjunto de entrenamiento son nuestras


entradas al perceptrón.

• Cada entrada es un vector de características y


lo denotaremos por X. A la entrada también le
podemos llamar ejemplo.

11
18/04/2023

23

Programación de
Sistemas Adaptativos:
Redes neuronales

Entrenamiento de un perceptrón
• X=<x0…xn>, donde xi es una característica.

• A la x0 le llamaremos sesgo (es una característica


añadida)

• W=<w0…wn> es el vector de pesos, donde cada


peso wi indica la importancia de la característica
xi.

24

Programación de
Sistemas Adaptativos:
Redes neuronales

Entrenamiento de un perceptrón
• Cada entrada será introducida a la función de
núcleo, donde cada característica xi será
relacionada con un peso wi .

• La salida de la función de núcleo será


introducida a la función de activación.

12
18/04/2023

25

Programación de
Sistemas Adaptativos:
Redes neuronales

Entrenamiento del perceptrón


• Si la salida obtenida por la función de activación
no coincide con la salida deseada, se deben
corregir los pesos.

26

Programación de
Sistemas Adaptativos:
Redes neuronales

A cada característica La característica x0


xi le corresponde un será el sesgo. Su valor
peso wi es constante.

Entrada
Salida

g(W,X)

Función
Función de Utiliza el
núcleo
activación resultado de la
función núcleo
Relaciona entradas para calcular la
y pesos. salida.

13
18/04/2023

27

Programación de
Sistemas Adaptativos:
Redes neuronales

Algoritmo
1. Fijar pesos iniciales con valores aleatorios.
2. Por cada entrada:
a. Calcular la salida y=f(g(W,X)) de la neurona.
b. Si y  resultado deseado (d)
i. Actualizar los pesos con wi_nuevo= wi + hxi e
donde e = d - y
3. Ejecutar 2 hasta un valor e de tolerancia o
hasta que los pesos varíen poco.

28

Programación de
Sistemas Adaptativos:
Redes neuronales

Funciones que utilizaremos


• Núcleo
El sesgo siempre
▫ Suma ponderada tendrá valor x0 = -1
 X=(x0…xn), W=(w0…wn)
 g((w0…wn ), (x0…xn)) = w0x0 + w1x1 + … wnxn

▫ Ejemplo:
 g((w0, w1, w2), (x0, x1, x2)) = w0x0 + w1x1 + w2x2

14
18/04/2023

29

Programación de
Sistemas Adaptativos:
Redes neuronales

Funciones que utilizaremos


• Activación
▫ Escalonada

umbral
1, 𝑔(𝑊, 𝑋) ≥ 0
▫ 𝑓 𝑔 𝑊, 𝑋 =ቊ
0, de otra manera

30

Programación de
Sistemas Adaptativos:
Redes neuronales

Actualización de los pesos


Característica
correspondiente al peso
(depende de la entrada)

wi _ nuevo = wi +hxi e
Tasa de
aprendizaje
e=d −y h[0,1]
(0.1 sugerido)

Salida deseada (depende de


la entrada)

15
18/04/2023

31

Programación de
Sistemas Adaptativos:
Redes neuronales

Queremos entrenar un perceptrón para predecir si un personaje de


videojuegos ganará una batalla.

Descripción del personaje


¿Sin ¿Muere ¿Ganará?
armamento? rápido?
Link No No Sí
Mario No Sí Sí
Pac Man Sí Sí No

32

Programación de
Sistemas Adaptativos:
Redes neuronales

Entradas (vectores de características)

X
Sesgo → x0 x1 x2 d
Link -1 0 0 1
Mario -1 0 1 1 Entradas
Pac Man -1 1 1 0 (ejemplos)

El peso del sesgo (w0) es inicialmente


0.5. w1=-0.5, w2=1. h=0.1

16
18/04/2023

33

Programación de
Sistemas Adaptativos:
Redes neuronales

1.- Asignar pesos iniciales aleatorios

w0=0.5, w1=-0.5 y w2=1

2.- Por cada entrada:


a.- Calcular la salida y=f(g(X,W)) de la neurona

Entrada Link

y=f (g(X,W))
=f (g((x0, x1, x2),(w0, w1, w2))

g((x0, x1, x2),(w0, w1, w2)) = w0x0 + w1x1 + w2x2


g((-1, 0, 0),(0.5, -0.5, 1)) = (0.5)(-1) + (-0.5)(0) + (1)(0)
g((-1, 0, 0),(0.5, -0.5, 1)) = -0.5

y = f (-0.5) = 0

34

Programación de
Sistemas Adaptativos:
Redes neuronales

b.- Si y != d:
actualizar pesos

x0 x1 x2 d
Link -1 0 0 1

¿0=1? No. El perceptrón se equivocó.

ACTUALIZACIÓN DE PESOS

w0= w0 + hx0(d-y) w2 = w2 + hx2(d-y)


= 0.5 + (0.1)(-1)(1-0) = 1 + (0.1)(0)(1-0)
= 0.4 = 1 (No cambia)

w1= w1 + hx1(d-y)
= -0.5 + (0.1)(0)(1-0)
= -0.5 (No cambia)

17
18/04/2023

35

Programación de
Sistemas Adaptativos:
Redes neuronales

2.- Por cada entrada:


a.- Calcular la salida y=f(g(X,W)) de la neurona

Entrada Mario

y=f (g(X,W))
=f (g((x0, x1, x2),(w0, w1, w2))

g((x0, x1, x2),(w0, w1, w2)) = w0x0 + w1x1 + w2x2


g((-1, 0, 1), (0.4, -0.5, 1)) = (0.4)(-1) + (-0.5)(0) + (1)(1)
g((-1, 1, 1), (0.4, -0.5, 1)) = 0.6

y = f (0.6) = 1

36

Programación de
Sistemas Adaptativos:
Redes neuronales

b.- Si y != d:
actualizar pesos

x0 x1 x2 d
Mario -1 0 1 1

¿1=1? Sí. El perceptrón obtuvo la respuesta


correcta. No es necesario actualizar los pesos.

18
18/04/2023

37

Programación de
Sistemas Adaptativos:
Redes neuronales

2.- Por cada entrada:


a.- Calcular la salida y=f(g(X,W)) de la neurona

Entrada Pac Man

y=f (g(X,W))
=f (g((x0, x1, x2),(w0, w1, w2))

g((x0, x1, x2),(w0, w1, w2)) = w0x0 + w1x1 + w2x2


g((-1, 1, 1), (0.4, -0.5, 1)) = (0.4)(-1) + (-0.5)(1) + (1)(1)
g((-1, 1, 1), (0.4, -0.5, 1)) = 0.1

y = f (0.1) = 1

38

Programación de
Sistemas Adaptativos:
Redes neuronales

b.- Si y != d:
actualizar pesos

x0 x1 x2 d
Pac Man -1 1 1 0

¿1=0? No. El perceptrón se equivocó.

ACTUALIZACIÓN DE PESOS

w0= w0 + hx0(d-y) w2 = w2 + hx2(d-y)


= 0.4 + (0.1)(-1)(0-1) = 1 + (0.1)(1)(0-1)
= 0.5 = 0.9

w1= w1 + hx1(d-y)
= -0.5 + (0.1)(1)(0-1)
= -0.6

19
18/04/2023

39

Programación de
Sistemas Adaptativos:
Redes neuronales

3.- Ejecutar paso 2 hasta un valor e de tolerancia o hasta que


los pesos varíen poco.

Por tanto, volvemos al paso 2

2.- Por cada entrada:


a.- Calcular la salida y=f(g(X)) de la neurona

Entrada Link

y=f (g(X,W))
=f (g((x0, x1, x2),(w0, w1, w2))

g((x0, x1, x2),(w0, w1, w2)) = w0x0 + w1x1 + w2x2


g((-1, 0, 0), (0.5, -0.6, 0.9)) = (0.5)(-1) + (-0.6)(0) + (0.9)(0)
g((-1, 0, 0), (0.5, -0.6, 0.9)) = -0.5

y = f (-0.5) = 0

40

Programación de
Sistemas Adaptativos:
Redes neuronales

b.- Si y != d:
actualizar pesos

x0 x1 x2 d
Link -1 0 0 1

¿0=1? No. El perceptrón se equivocó.

ACTUALIZACIÓN DE PESOS

w0= w0 + hx0(d-y) w2 = w2 + hx2(d-y)


= 0.5 + (0.1)(-1)(1-0) = 0.9 + (0.1)(0)(1-0)
= 0.4 = 0.9 (No cambia)

w1= w1 + hx1(d-y)
= -0.6 + (0.1)(0)(1-0)
= -0.6 (No cambia)

20
18/04/2023

41

Programación de
Sistemas Adaptativos:
Redes neuronales

2.- Por cada entrada:


a.- Calcular la salida y=f(g(X,W)) de la neurona

Entrada Mario

y=f (g(X,W))
=f (g((x0, x1, x2),(w0, w1, w2))

g((x0, x1, x2),(w0, w1, w2)) = w0x0 + w1x1 + w2x2


g((-1, 0, 1),(0.4, -0.6, 0.9)) = (0.4)(-1) + (-0.6)(0) + (0.9)(1)
g((-1, 0, 1),(0.4, -0.6, 0.9)) = 0.5

y = f (0.5) = 1

42

Programación de
Sistemas Adaptativos:
Redes neuronales

b.- Si y != d:
actualizar pesos

x0 x1 x2 d
Mario -1 0 1 1

¿1=1? Sí. El perceptrón obtuvo la respuesta


correcta. No es necesario actualizar los pesos.

21
18/04/2023

43

Programación de
Sistemas Adaptativos:
Redes neuronales

2.- Por cada entrada:


a.- Calcular la salida y=f(g(X,W)) de la neurona

Entrada Pac Man

y=f (g(X,W))
=f (g((x0, x1, x2),(w0, w1, w2))

g((x0, x1, x2),(w0, w1, w2)) = w0x0 + w1x1 + w2x2


g((-1, 1, 1),(0.4,-0.6,0.9)) = (0.4)(-1) + (-0.6)(1) + (0.9)(1)
g((-1, 1, 1),(0.4,-0.6,0.9)) = -0.1

y = f (-0.1) = 0

44

Programación de
Sistemas Adaptativos:
Redes neuronales

b.- Si y != d:
actualizar pesos

x0 x1 x2 d
Pac Man -1 1 1 0

¿0=0? Sí. El perceptrón obtuvo la respuesta correcta. No


es necesario actualizar los pesos.

22
18/04/2023

45

Programación de
Sistemas Adaptativos:
Redes neuronales

Ahora éste…

X
x0 x1 x2 d
Ejemplo 1 -1 0 0 0
Ejemplo 2 -1 0 1 1
Ejemplo 3 -1 1 0 1
Ejemplo 4 -1 1 1 1

El peso del sesgo es inicialmente 1.Todos


los demás pesos son 0. h=0.1

73

Programación de
Sistemas Adaptativos:
Redes neuronales

Resumen
• Las redes neuronales representan
una técnica de aprendizaje
supervisado.
▫ Entrenamiento--Prueba

• Consisten en capas de neuronas


interconectadas.

• Las conexiones tienen pesos.

23
18/04/2023

74

Programación de
Sistemas Adaptativos:
Redes neuronales

Resumen
• Los pesos se ajustan para que la red
aprenda a reconocer un patrón.

• El perceptrón es la red neuronal


más sencilla.

• Cuando la red tiene más de una capa,


se puede entrenar con retro-
propagación.

75

Programación de
Sistemas Adaptativos:
Redes neuronales

Resumen
• Existen varios tipos de redes
neuronales.
▫ Recurrentes, mapas auto-organizados
(SOM), redes profundas

• Existen otras técnicas para hacer


reconocimiento de patrones.

24

También podría gustarte