1. Un banco quiere clasificar los clientes potenciales en fiables... tiene un dataset de clientes antiguos, con los siguientes atributos:

Anuncio
Universidad Rey Juan Carlos
Curso 2014–2015
Hoja de Problemas
Tema 11
Aprendizaje II: Redes neuronales
1. Un banco quiere clasificar los clientes potenciales en fiables o no fiables. El banco
tiene un dataset de clientes antiguos, con los siguientes atributos:
Estado civil: {casado/a, soltero/a, divorciado/a}
Género: {varón, mujer}
Edad: { [18 − 30], [30 − 50], [50 − 65], [65+]}
Ingresos: { [10K − 25K], [25K − 50K], [50K − 65K], [65K − 100K], [100K+]}
Diseñar una red neuronal que se podrı́a entrenar para predecir si un cliente es fiable
o no.
Solución
Una red neuronal trabaja con entradas y salidas simbólicas, es decir cada neurona
tendrá como entrada o salida un bit, 0 o 1.
Como tenemos que clasificar clientes fiables o no, nuestra red tendrá una sola neurona
de salida, 0 = no f iable, 1 = f iable.
Por lo que se refiere a las entradas, tenemos
Estado civil: 3 valores, que se pueden expresar con dos entradas (de un bit cada
uno), 00 = casado/a, 01 = soltero/a, 10 = divorciado/a
Género: 2 valores, que se pueden expresar con una entrada, 0 = varón, 1 =
mujer
Edad: 4 valores, que se pueden expresar con dos entradas,00 = [18 − 30], 01 =
[30 − 50], 10 = [50 − 65], 11 = [65+]
Ingresos: 5 valores, que se pueden expresar con tres entradas,000 = [10K −
25K], 001 = [25K − 50K], 010 = [50K − 65K], 011 = [65K − 100K], 100 =
[100K+]
La red resultante será:
Página 1 de 7
Hoja de Problemas Tema 11
Aprendizaje II: Redes neuronales
Página 2 de 7
Hoja de Problemas Tema 11
Aprendizaje II: Redes neuronales
2. Una empresa de videojuegos está desarrollando un FPSG (first person shooting game). Para implementar los personajes artificiales del juego, el jefe de proyecto, ex
estudiante del curso de IA en la URJC, ha pensado que podrı́a ser interesante e innovador utilizar una red neuronal. Dicha red tendrá que implementar el algoritmo de
control de los personajes artificiales, usando los siguientes inputs:
Salud: de 0 (débil) a 2 (fuerte)
Tiene cuchillo: 0 si no lo tiene, 1 si lo tiene
Tiene arma: 0 si no la tiene, 1 si la tiene
Enemigos: número de enemigos en el campo visual
Las acciones que el personaje puede ejecutar son:
Atacar
Escapar
Andar
Esconderse
(a) Diseñar una red neuronal (sin capa oculta) que se podrı́a entrenar para implementar el algoritmo de control de los personajes artificiales.
Solución
Las entradas son 2 bits para salud (00=débil, 01=medio, 10=fuerte), 1 bit para
Tiene cuchillo, 1 bit para Tiene arma y 3 bits para Enemigos (podemos tener
de 000=0 enemigos a la vista hasta 111=8 o más enemigos).
Tenemos que representar 4 acciones (=clases), por lo tanto necesitamos 2 neuronas de salida, donde 00=esconderse, 01=atacar, 10=escapar, y 11=andar.
Una posible red podrı́a ser la que se presenta en la figura a.
Página 3 de 7
Hoja de Problemas Tema 11
Aprendizaje II: Redes neuronales
(b) Considera el siguiente vector de input:
x=[Salud=2, Tiene cuchillo=0, Tiene arma=1, Enemigos=2]
y la salida deseada
y=Atacar
Inicializa los pesos y los sesgos de las neuronas de tu red de manera aleatoria
entre [−0,5, 0,5], y usando el elemento de entrenamiento definido arriba indica
como cambian los pesos.
Solución
Inizialisamos los pesos de la red y de los sesgos de activación de las neuronas
todos al valor 0 (otros valores serı́an posibles).
Analizamos el caso:
La entrada corresponde al vector x=1001010, y la salida esperada al vector
yesperada = 01. La salida actual con esta entrada y la red actual serı́a yactual = 00.
Por tanto, el error serı́a para la primera neurona e = yesperada −yactual = 0−0 = 0
y en el caso de la segunda neurona: e = yesperada − yactual = 1 − 0 = 1.
Con estos valores, los pesos de las entradas de la primera neurona no cambian.
Respecto a la segunda neurona los pesos de entrada nuevos serán los siguientes (desde arriba hacia abajo). Suponemos un factor de aprendizaje α = 0, 2.
∆w1 = α ∗ entrada1 ∗ error = 0, 2 ∗ 1 ∗ 1 = 0, 2 por tanto w1 (new) = w1 (old) +
∆w1 = 0 + 0, 2 = 0, 2
∆w2 = α∗entrada2 ∗error = 0, 2∗0∗1 = 0 por tanto w2 (new) = w2 (old)+∆w2 =
0+0=0
∆w3 = α∗entrada3 ∗error = 0, 2∗0∗1 = 0 por tanto w3 (new) = w3 (old)+∆w3 =
0+0=0
∆w4 = α ∗ entrada4 ∗ error = 0, 2 ∗ 1 ∗ 1 = 0, 2 por tanto w4 (new) = w4 (old) +
∆w4 = 0 + 0, 2 = 0, 2
∆w5 = α∗entrada5 ∗error = 0, 2∗0∗1 = 0 por tanto w5 (new) = w5 (old)+∆w5 =
0+0=0
∆w6 = α ∗ entrada6 ∗ error = 0, 2 ∗ 1 ∗ 1 = 0, 2 por tanto w6 (new) = w6 (old) +
∆w6 = 0 + 0, 2 = 0, 2
∆w7 = α∗entrada7 ∗error = 0, 2∗0∗1 = 0 por tanto w7 (new) = w7 (old)+∆w7 =
0+0=0
El peso de sesgo de la primera neurona no cambiarı́a (porque no se produce
ningún error en ella). El peso de sesgo de la segunda neurona cambiarı́a como
sigue: ∆w0 = α ∗ error = 0, 2 ∗ 1 = 0, 2 por tanto w0 (new) = w0 (old) + ∆w0 =
0 + 0, 2 = 0, 2
3. Sea la red neuronal en figura, supón que la función de activación de las neuronas
1,2,3,4 y 5 sea la función umbral, que devuelve 1 si la suma pesada de las entradas
es mayor que 0. T denota el sesgo de cada neurona.
Las entradas de una red neuronal no necesariamente tienen que tener valores binarias,
también podrı́an ser de valores continuos en el intervalo [0..1]. Para neuronas con una
Página 4 de 7
Hoja de Problemas Tema 11
Aprendizaje II: Redes neuronales
función de activación por umbral, la salida, sin embargo, si será binaria.
Dado el siguiente elemento del conjunto de entrenamiento:
(x,y) = (x=[E1=0.6, E2=0.1], y=[4=0, 5=1])
donde el valor la entrada 1 es 0,6, el valor de la entrada 2 es 0,1, la salida de la
neurona 4 es 0 y la salida de la neurona 5 es 1.
Sea 0,1 la constante de aprendizaje, aplica la propagación hacia atrás del error usando
el elemento del conjunto de entrenamiento, indicando como cambian los pesos.
Solución
Calculamos la salida de las neuronas de la capa oculta
1 → 0,1 · 0,6 − 0,2 · 0,1 − 0,1 = −0,06 < 0 → 0
(1)
2 → 0 · 0,6 + 0,2 · 0,1 − 0,2 = −0,18 < 0 → 0
(2)
3 → 0,3 · 0,6 − 0,4 · 0,1 − 0,5 = −0,36 < 0 → 0
(3)
Calculamos la salida de las neuronas de salida
4 → −0,4 · 0 + 0,1 · 0 + 0,6 · 0 + 0,1 = 0,1 > 0 → 1
Página 5 de 7
(4)
Hoja de Problemas Tema 11
Aprendizaje II: Redes neuronales
5 → 0,2 · 0 − 0,1 · 0 − 0,2 · 0 − 0,6 = −0,6 < 0 → 0
(5)
Calculamos el error de la capa de salida
e4 → 0 − 1 = −1
(6)
e5 → 1 − 0 = 1
(7)
Calculamos los errores de la capa oculta
e1 → −0,4 · e4 + 0,2 · e5 = 0,6
(8)
e2 → 0,1 · e4 − 0,1 · e5 = −0,2
(9)
e3 → 0,6 · e4 − 0,2 · e5 = −0,8
(10)
Calculamos los nuevos pesos de la capa de salida:
Los pesos wi,4/5 se deberı́an actualizar con la regla
wi,4/5 := wi,4/5 + xi · 0,1 · e4/5
(11)
pero como todos los xi son 0, los pesos de la capa de salida no se modifican.
Los sesgos de las neuronas si cambian:
T4/5 = w0,4/5 := w0,4/5 + 0,1 · e4/5
(12)
por tanto se obtienen los nuevos sesgos: T4 = 0 y T5 = −0, 5
Respecto a la capa oculta podemos observar que el error e1 es positivos, mientras
que e2 y e3 son negativos. Entonces los pesos wE1/E2,1 deberı́an aumentar, y los pesos
wE1/E2,2 y wE1/E2,3 deberı́an disminuir.
Calculamos los nuevos pesos de la capa oculta:
wE1,1 := 0,1 + 0,6 · 0,1 · e1 = 0,136
(13)
wE2,1 := −0,2 + 0,1 · 0,1 · e1 = −0,194
(14)
Página 6 de 7
Hoja de Problemas Tema 11
Aprendizaje II: Redes neuronales
wE1,2 := 0 + 0,6 · 0,1 · e2 = −0,012
(15)
wE2,2 := 0,2 + 0,1 · 0,1 · e2 = 0,198
(16)
wE1,3 := 0,3 + 0,6 · 0,1 · e3 = 0,252
(17)
wE2,3 := −0,4 + 0,1 · 0,1 · e3 = −0,408
(18)
Los pesos correspondientes al sesgo de las neuronas de esta capa se actualizan como
sigue:
T1 := T1 + 0,1 · e1 = −0,1 + 0,1 · 0,6 = −0,04
(19)
T2 := T2 + 0,1 · e2 = −0,2 + 0,1 · −0,2 = −0,22
(20)
T3 := T3 + 0,1 · e3 = −0,5 + 0,1 · −0,8 = −0,58
(21)
Página 7 de 7
Descargar