FUNDACION UNIVERSITARIA KONRAD LORENZ
TRABAJO FINAL DE SISTEMAS BASADOS EN EL CONOCIMIENTO CONOCIMIENTO 2
PREVYS RENGIFO RENGIFO DOCENTE
DIEGO ALEJANDRO ESPITIA VILLALOBOS 643003 MATEMATICAS
Bogotá D.C. 3 de Diciembre de 2007.
REDES NEURONALES vs. ÁRBOLES DE DESICION
El propós propósito ito del del presen presente te trabaj trabajo o es observ observar ar,, estudi estudiar ar y analiz analizar ar como como se comporta una red neuronal frente a un problema de asignación de reglas, cómo trabaja sabiendo que las redes se utilizan principalmente para problemas de clasificación. Para esto se proceder a estudiar dos ejemplos: uno con pocos datos relativamente sencillo de trabajar y el otro con muchos más datos y datos de validación para determinar si la red efectivamente está aprendiendo y está apre aprend ndie iend ndo o las las regl reglas as de fond fondo o o si por por el cont contra rari rio o simp simple leme ment nte e está está “memorizando” la información presentada.
El primer problema es el siguiente:
Se desea construir un árbol de decisión que permita determinar si se juega o no tenis, a partir del valor de los atributos: Ambiente, Temperatura, Humedad y Viento, teniendo en cuenta que se han observado y registrado los siguientes casos:
PATRON
AMBIENTE
TEMPERATURA
HUMEDAD
viento
Jugar tenis
1 2 3 4 5 6 7 8 9 10 11 12 13 14
soleado soleado nublado lluvioso lluvioso lluvioso nublado soleado soleado lluvioso soleado nublado nublado lluvioso
caliente caliente caliente moderada fría fría fría moderada fría moderada moderada moderada caliente moderada
alta alta alta alta Normal Normal Normal alta Normal Normal Normal alta Normal alta
débil fuerte débil débil débil fuerte fuerte débil débil débil fuerte fuerte débil fuerte
n n s s s n s n s s s s s n
El cual cual,, medi median ante te el méto método do de cons constr truc ucci ción ón del del árbo árboll de deci decisi sión ón ha presentado el siguiente resultado:1
Es decir, que los datos presentados fueron reducidos a 5 reglas de decisión que son:
1) SI AMBIEN AMBIENTE TE =SOLEADO =SOLEADO Y HUMEDAD HUMEDAD=AL =ALT TA, ENTONCES ENTONCES NO JUGAR JUGAR TENIS. 2) SI AMBIEN AMBIENTE TE =SOLEADO =SOLEADO Y HUMEDA HUMEDAD=NO D=NORMAL RMAL,, ENTONCES ENTONCES SI JUGAR JUGAR TENIS. TENIS. 3) SI AMBIENTE AMBIENTE =NUBL =NUBLADO, ADO, ENTONCES ENTONCES SI JUGAR JUGAR TENIS. TENIS. 4) SI AMBIEN AMBIENTE TE =LLUVIOSO =LLUVIOSO Y VIENTO VIENTO=FUE =FUERTE RTE,, ENTONCES ENTONCES NO JUGAR TENIS. TENIS. 5) SI AMBIEN AMBIENTE TE =LLUVIOS =LLUVIOSO O Y VIENTO= VIENTO=DEBI DEBIL, L, ENTONCES ENTONCES SI JUGAR JUGAR TENIS. TENIS.
Lo cual es una ganancia significativa en cuanto a que para tomar nuevas decisiones simplemente se debe seguir las reglas.
Para la red neuronal se ha decidido realizar la siguiente codificación de los datos:
soleado 1 1 0 0 0 0 1
Ambiente nublado 0 0 1 0 0 0
lluvioso 0 0 0 1 1 1
Árbol realizado con el applet de http://www.cs.ubc.ca/nest/lci/CIspace/V http://www.cs.ubc.ca/nest/lci/CIspace/Version4/dTree/. ersion4/dTree/.
0 1 1 0 1 0 0 0
alta 1 1 1 0 0 0 0 0 0 0 0 0 1 0
1 0 0 0 0 1 1 0
Temperatura moderada 0 0 0 1 0 0 0 1 0 1 1 1 0 1
Humedad alta baja 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0
Viento
0 0 0 1 0 0 0 1
baja 0 0 0 0 1 1 1 0 1 0 0 0 0 0
fuerte 0 1 0 0 0 1 1 0 0 0 1 1 0 1
débil 1 0 1 1 1 0 0 1 1 1 0 0 1 0
Jugar Tenis 0 0 1 1 1 0 1 0 1 1 1 1 1 0
Donde 1 significa que se presenta el atributo y 0 que no se presenta; además, para la decisión de Jugar Tenis se ha decidido que 1 significa que se juega tenis y 0 que la decisión es que no se debe jugar.
Primero se ha decidido utilizar una red que consta de 1 capa oculta formada por 3 neuronas y una sola neurona de salida; la función de activación que se utilizó para la primera capa es la función logística y la función para la segunda capa es la función identidad; la red se entrenó con el método del gradiente y se han producido las siguientes salidas:
simulada
salida 0,0016799 -0,043144 10.221 0,927 0,99134 -0,0034466 0,98245 0,041324 0,99889 10,448 0,97676 0,96479 10,514 0,0066269
Jugar tenis 0 0 1 1 1 0 1 0 1 1 1 1 1 0
Los resultados obtenidos por la red son los presentados al lado izquierdo de la anterior tabla, mientras que los datos del lado derecho se han hecho según la siguiente regla:
Si el valor presentado por la red es menor que 0.5 entonces la decisión es 0, en caso contrario la decisión es 1.
Salida Deseada Simulada 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0
Si se observa las tablas de la salida esperada y de la salida obtenida, se ve que
la
red red
ha
encont contra rado do
satis tisfac factori toria ament mente e
todo todos s
los los
resu result lta ados dos;
desgraciadamente, como el ejemplo posee pocos datos no se puede hacer algún tipo de validación de de los resultados obtenidos, obtenidos, es decir que no se puede verificar si la red efectivamente extrajo los patrones que poseen estos datos o
si los memorizo. Sin embargo, se puede observar en un primer intento de hacer que una red reemplace a un árbol de decisión se ha logrado.
Ahora se presenta el problema de entrenar la red con 2 neuronas de salida, por lo cual estos datos se han clasificado de la siguiente manera:
Salidas s 0 0 1 1 1 0 1 0 1 1 1 1 1 0
n 1 1 0 0 0 1 0 1 0 0 0 0 0 1
Entr Entren enan ando do de nuev nuevo o la red red ahor ahora a con con esto estos s dato datos s y con con los los mism mismos os parámetros de entrenamiento se obtienen las siguientes salidas:
Salidas s 0 0 1 1 1 0 1 0 1 1 0 1 1 0
n 1 1 0 0 0 1 0 1 0 0 1 0 0 1
Salidas dato
Deseada
Simulada
1 2 3 4 5 6 7 8 9 10 11 12 13 14
s 0 0 1 1 1 0 1 0 1 1 1 1 1 0
n 1 1 0 0 0 1 0 1 0 0 0 0 0 1
S 0 0 1 1 1 0 1 0 1 1 0 1 1 0
n 1 1 0 0 0 1 0 1 0 0 1 0 0 1
Si se observa la tabla se podrá ver que en el dato numero 11 la red no clasifico bien la información presentada, por lo tanto se puede pensar que al cambiar los datos de espacio, el problema se complica para la red y no le permite procesar debidamente esta información y llegar a una respuesta r espuesta adecuada.
Se debe entonces analizar que tal se comporta una red si el problema es más complejo.
Se presenta ahora el siguiente problema2:
Se desea desea clasific clasificar ar de 1 a 7
los animal animales es de acuerdo acuerdo con las siguien siguientes tes
características:
1) Hair 2) Feathers 3) Eggs 4) Milk 5) Airbo rborne 6) Aquatic 7) Predator tor 8) Teeth 9) Backbone 2
Tomado de http://www.cs.ubc.ca/nest/lci/CIspace/Version4/dTree/
10)Breathes 11) Venemous Venemous 12)Fins 13)Legs 14)Tails 15)Domestic 16)Catsize
Atributos que se clasifican como 1 si poseen esa característica o 0 si no la poseen, aunque el atributo 13 se clasifica con el número de patas que posea el animal (p.e.: 2 si es bípedo, 4 si es cuadrúpedo, etc.).
Los datos que se presentan son 51 de entrenamiento y 50 de validación. Como en el primer ejemplo al generar el árbol de decisión con el método de ganancia de información se obtuvo la siguiente respuesta3:
Al compr comprob obar ar como como se compo comport rta a el árbol árbol de decis decisió ión n
con con los los dato datos s de
validación se obtiene que la efectividad de éste fue de 96%, es decir, que de los 50 datos de validación únicamente falló en 24.
3 4
Árbol generado con el applet de la página http://www.cs.ubc.ca/nest/lci/CIspace/V http://www.cs.ubc.ca/nest/lci/CIspace/Version4/dTree/ ersion4/dTree/ Resultados obtenidos de la página http://www.cs.ubc.ca/nest/lci/CIspace/V http://www.cs.ubc.ca/nest/lci/CIspace/Version4/dTree/ ersion4/dTree/
Para resolver este problema por medio de redes neuronales se ha decidido entrenarlas por medio de MatLab de manera análoga al ejemplo anterior, anterior, con el método de entrenamiento del gradiente mejorado (traingda) debido a que al entrenar entrenar la red con el método método trainlm trainlm se obtiene obtiene el error de que la matriz matriz de entrada de los datos esta mal condicionada, es decir que es casi singular. singular.
Se obtuvieron los siguientes resultados:
•
Red Neuronal con entradas discretas (0 o 1) y 7 neuronas en la capa de salida con valor discreto (0 o 1).
Funciones de activación purelin tansig logsig logsig
purelin pu purelin pu p urelin pu p urelin
Numero de neuronas Iteraciones en la capa oculta 3 3 3 3
20000 20000 20000 40000
errores
Porcentaje de error
Entrenamiento Validación Entren renamiento Validación 5 15 9.8% 30.0% 5 12 9.8% 24.0% 5 12 9.8% 24.0% 5 12 9.8% 24.0%
purelin tansig logsig logsig purelin tansig logsig logsig
purelin pu purelin purelin pu purelin purelin pu purelin pu p urelin pu purelin
•
4 4 4 4 5 5 5 5
20000 20000 20000 40000 20000 20000 20000 40000
2 2 34 4 1 4 2 1
17 11 11 8 12 9 12 9
3.9% 3.9% 66.7% 7.8% 2.0% 7.8% 3.9% 2.0%
34.0% 22.0% 22.0% 16.0% 24.0% 18.0% 24.0% 18.0%
Red Neuronal con entradas continúas y una neurona en la capa de salida con valor continuo.
Funciones de Numero de neuronas Iteraciones errores Porcentaje de error activación en la capa oculta Entrenamiento Validación Entrenamiento Validación purelin purelin 2 20000 2 12 3.9% 24.0% tansig purelin 2 20000 0 13 0.0% 26.0% logsig purelin 2 20000 0 14 0.0% 28.0% logsig purelin 2 40000 0 11 0.0% 22.0% purelin purelin 3 20000 2 14 3.9% 28.0% tansig purelin 3 20000 0 13 0.0% 26.0% logsig purelin 3 20000 0 7 0.0% 14.0% logsig purelin 3 40000 0 12 0.0% 24.0% purelin purelin 4 20000 2 12 3.9% 24.0% tansig purelin 4 20000 0 10 0.0% 20.0% logsig purelin 4 20000 0 12 0.0% 24.0% logsig purelin 4 40000 0 12 0.0% 24.0%
•
Red Neuronal con entradas continuas, 7 neuronas en la capa de salida con valor discreto (0 o 1).
Funciones de Numero de neuronas Iteraciones errores Porcentaje de error activación en la capa oculta Entrenamiento Validación Entrenamiento Validación purelin purelin 3 20000 5 12 9.8% 24.0% tansig purelin 3 20000 10 17 19.6% 34.0% logsig purelin 3 20000 9 16 17.6% 32.0% purelin purelin 4 20000 2 13 3.9% 26.0% tansig pu purelin 4 20000 2 12 3.9% 24.0% logsig pu p urelin 4 20000 2 13 3.9% 26.0% purelin purelin 5 20000 1 11 2.0% 22.0% tansig pu purelin 5 20000 1 12 2.0% 24.0% logsig pu p urelin 5 20000 1 11 2.0% 22.0%
•
Red neuronal con entradas discretas y una neurona en la capa de salida
Funciones de Numero de neuronas Iteraciones errores Porcentaje de error activacion en la capa oculta Entrenamiento Validación Entrenamiento Validación purelin purelin 3 20000 2 12 3.9% 24.0% tansig pu purelin 3 20000 0 11 0.0% 22.0% logsig pu purelin 3 20000 0 9 0.0% 18.0% log sig purelin 3 40000 0 13 0.0% 26.0% purelin purelin 4 20000 2 12 3.9% 24.0% tansig pu purelin 4 20000 0 10 0.0% 20.0% logsig pu p urelin 4 20000 0 12 0.0% 24.0% purelin purelin 5 20000 2 12 3.9% 24.0% tansig pu purelin 5 20000 0 10 0.0% 20.0% logsig pu p urelin 5 20000 0 10 0.0% 20.0% loigsig pu purelin 5 40000 0 5 0.0% 10.0%
Como se observa en las anteriores tablas el modelo que mejor se aproxima a la inferencia hecha por el árbol de decisión es cuando se entrena la red con valores discretos y salida continua, con 5 neuronas en la capa oculta y con funciones de activación logsig y purelin; sin embargo, se observa también que el error de los datos de validación con el árbol de decisión es menor que el error obtenido por el método de la red, aunque la diferencia no es muy grande, lo cual sugiere que si se realizan más iteraciones o se aumenta el número de capas ocultas de la red puede que se obtenga un error aún más pequeño.
Conclusiones •
Aunq Aunque ue no se pued puede e gene genera rali liza zarr los los resu resulta ltado dos s obte obteni nido dos s en los los anteriores ejemplos, se puede percibir que mediante una red neuronal es posible aproximar la salida producida mediante un árbol de decisión de una manera exitosa siempre y cuando el problema sea relativamente sencillo.
•
Cuando el problema que se trabaja es complejo se puede encontrar una red que aproxime adecuadamente la inferencia realizada por el árbol de decisión, y si bien no siempre se podrá encontrar una red que no deje
errores, si existe la probabilidad de que exista una red que por lo menos iguale el error cometido por el árbol.
•
Al observar los errores generados por las redes neuronales se puede ver que se obtien obtienen en los errore errores s más más pequeñ pequeños os cuand cuando o las salida salidas s son continuas que cuando son discretas; por lo tanto, en algunas ocasiones el trasladar los datos del espacio en que se encuentran a uno de mayor dimensión puede provocar que el problema se vuelva mas complicado de resolver para la red, debido a que , si bien se tiene mayor libertad, se debe ahora entrenar la red para que se acomode a una mayor cantidad de restriccio restricciones; nes; luego, debe hacerse esta transform transformación ación siempre y cuando se esté suficientemente seguro que en este espacio el problema se facilitará y por consiguiente la solución se obtendrá de una manera más sencilla.