Download Solución - Universidad Rey Juan Carlos
Document related concepts
Transcript
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