Download nociones de inteligencia artificial
Document related concepts
Transcript
CAPITLO XII: NOCIONES DE INTELIGENCIA ARTIFICIAL.1 Introducción. Árboles de decisión. Redes neuronales. Prof: Andrés E Reyes Polanco. ¨El autor se reserva todos los derechos de reproducción total o parcial de su obra por cualquier medio” INTRODUCCIÓN. Inteligencia y entendimiento son dos términos que suelen usarse indistintamente en el campo de la Filosofía, el concepto ha evolucionado en la historia del pensamiento remontándose desde los presocráticos como Anaxágora y Parménides siguiendo luego con Platón y Aristóteles, en todos ellos lo común es definirlo como la capacidad de limitar, ordenar y medir las cosas. Esta forma de concebir el entendimiento se hace extensiva en pensadores como Tomás de Aquino; en los siglos XVII y XVIII se centra más en el origen del conocimiento con Descartes y sus “ideas innatas” compartidas por Leibniz y cuestionadas por Locke, racionalismo versus empirismo, el idealismo alemán con sus diferentes representantes como Kant con su Crítica a la Razón Pura, o Hegel con su Fenomenología del Espíritu hasta nuestros días, que con la influencia de la Neurociencia, Psicología entre otras disciplinas, se ha ido conformando una visión sobre el entendimiento y la posibilidad real de conocer, en donde hay más preguntas que respuestas.2 La inteligencia es, en todo caso, un atributo humano que abarca desde la intuición, lo operativo y la comprensión del mundo exterior y de sí mismo. La concepción del entendimiento como intuición fue presentado por Aristóteles y luego por Kant, para el primero consiste en formular los primeros principios que se utilizan en la ciencia demostrativa y de predecir su evidencia, para el segundo su tarea es juzgar. La visión operativa se debe a Bergson, para él, el entendimiento es la facultad de fabricar objetos artificiales, en particular utensilios y de variar indefinidamente la fabricación y finalmente, la comprensión significa apresar el significado de un símbolo, la fuerza de un argumento, el valor de una acción etc3. La Inteligencia Artificial (IA) trata de emular la inteligencia humana mediante el desarrollo computacional o robótico. Es un nuevo paradigma que aspira crear máquinas que puedan resolver problemas de la forma más parecida a la humana, pero tratando de disminuir cualquier ruido que retarde sus respuestas. Stuart Russell y Peter Norving (2004) recogen en su obra, ochos definiciones de Inteligencia Artificial de diferentes autores. Estas definiciones las dividen en dos grandes grupos; el primer grupo lo conforman las definiciones que se refieren a la IA como la forma de emular el comportamiento humano, esto es, como sistemas que piensan o actúan como humanos y el segundo grupo representa el ideal de la Inteligencia Artificial, es decir, el deber ser que consiste en pensar y actuar 1 Este capítulo corresponde a la nueva edición del libro: Herramientas cuantitativas en la Toma de Decisiones en la Empresa. 2 Hirschberger J.(1969)-Historia de La Filosofía-Vol 2, Editorial: Herder; Barcelona. 3 Abbagnano N.(1960)-Diccionario de Filosofía- Fondo de Cultura Económica-México. 1 racionalmente. La Inteligencia Artificial está ligada a disciplinas como la Matemática, Neurociencia, Psicología, Ingeniería Computacional, Teoría del Control y Cibernética, Lingüística y Economía. Su actuar se puede dividir en tres grandes etapas: 1.-Búsqueda de la información 2.-Aprendizage y reforzamiento del aprendizaje 3.-Solución y verificación de la solución. Una pregunta que se hace es: ¿Se podrá obtener en algún momento un objeto, llámese supercomputador o robot que sea capaz no sólo de resolver problemas de cierta complejidad, sino además, llegar a la autoconciencia, esto es, no sólo resolver problemas sino saber que lo está resolviendo? La inteligencia entendida como capacidad para identificar, memorizar, asociar y resolver problemas, no es un atributo exclusivo de los humanos aunque es en esta especie donde alcanza su máxima expresión, pero lo que sí parece ser exclusivo de los humanos es la autoconciencia o reflexión: el volverse a sí mismo, el término inteligencia proviene del vocablo latino: intelligere que resulta una voz compuesta de dos palabras: intus legere que quieren decir leer dentro. ¿Se logrará vía IA obtener algún objeto que sea capaz de lo mismo? Si se sigue el planteamiento hecho ya algún tiempo por Horgan (1996) sobre el futuro de las ciencias en su obra El Fin de La Ciencia, este objeto nunca se alcanzará4. Para otros, esta pregunta está mal formulada, no se puede preguntar hasta donde se puede llegar si aún estamos en un inicio embrionario pese a los avances actuales y por tanto resulta difícil establecer claramente sus límites y, aún quedan otras preguntas más importantes por responder. Una de estas preguntas es: ¿Se puede evaluar la inteligencia de una máquina? Una respuesta a esta pregunta la dio por primera vez Alan Turing en 1950, desarrollando un test con esa finalidad, éste consiste en someter a la máquina a la siguiente prueba: el programa debe mantener una comunicación online con un interlocutor durante cinco minutos, si la máquina no es descubierta como tal en el 30% del tiempo fijado y el interlocutor cree que es otro humano, entonces la máquina pasa la prueba. A la pregunta general: ¿Puede una máquina actuar con inteligencia? pero podríamos añadir unas preguntas adicionales: ¿Podrá la supermáquina construida con el don de la inteligencia artificial tener la capacidad de intuir? ¿De inspirarse para crear una obra de arte o formular una nueva teoría científica? Hay respuestas cuestionadoras que provienen de diferentes disciplinas, entre ellas está la matemática que aduce los trabajos de Gödel y el test de Turing, la relación cuerpo mente, la psicología etc. El desarrollo de la Inteligencia Artificial data de por lo menos desde 1956 fecha cuando se acuñó este término en el Congreso de Dartmouth, sin embargo sus antecedentes son muchos más antiguos (ver Stuart Russell y Peter Norving (2004)). Desde ese año a nuestro tiempo, la IA ha sufrido altos y bajos, se retomó en la década de los 70 pero no hubo un repunte tan significativo, su importancia la recobró a partir de 1986 hasta el momento. Dentro de la Inteligencia Artificial como indicamos, puede distinguirse dos enfoques. Un primer enfoque está en desarrollar tecnologías que permita que los computadores puedan emular el razonamiento humano, su fin es utilitario, entre este enfoque están Jhon McCrrthy y Marvin Minsky, su objetivo es la representación y gestión del conocimiento. El segundo enfoque, más que la utilidad, se propone descubrir cuál es el mecanismo de la inteligencia humana que se usa en la simulación para validar teorías, el problema se centra en el aprendizaje, en este enfoque están Newell y Simon de la Carnegie Mellon University. 4 En el capítulo tres: El Fin de La Física da por fracasado todo intento de lograr el supercolisionador superconductor que daría respuesta a varias preguntas relacionadas con la física de partículas. Sin embargo, los hechos actuales con el LHC apuntan hacia otro norte. 2 Las aplicaciones de la Inteligencia Artificial son de lo más variadas, desde Medicina, Astronomía, Geología, hasta labores industriales y domésticas. La Inteligencia Artificial está ligada también a la Minería de Datos, disciplina que tiene como objetivo principal encontrar patrones de comportamientos, tendencias, relaciones entre variables o categorías, grupos homogéneos subyacentes en una base de datos, y que inicialmente no están al descubierto, obteniendo así nuevos conocimientos. La Inteligencia Artificial da aportes importantes para definir la metodología de la Minería de Datos, entre estos aportes están los árboles de decisión, las redes neuronales, redes bayesianas, máquinas núcleo o máquina de vectores soporte (SMV), el algoritmo de k media para definir conglomerados. En este capítulo veremos sólo dos herramientas de la Inteligencia Artificial aunque sea muy resumidamente, que junto con lo estudiado en el capítulo IX sobre análisis multivariante permite una mejor comprensión de las bases metodológicas de la Minería de Datos, estas herramientas son árboles de decisión y redes neuronales. La inteligencia artificial supone una metodología que permita que una máquina pueda adquirir nuevas destrezas, es decir, sea capaz de aprender. Hay tres formas fundamentales de aprendizaje en la inteligencia artificial partiendo de las observaciones disponibles: la supervisada, la no supervisada y la de refuerzo. De acuerdo al tipo de aprendizaje que se proponga se tendrá un conjunto de herramientas. Se va entender como aprendizaje el incremento del conocimiento ya existente, permitiendo resolver los problemas con menor error, más eficientemente y enfrentar nuevos problemas. Esto es, si en el momento t0 se tiene una capacidad I 0 de inferir, se da el aprendizaje, si en el tiempo t k , existe un incremento k tal que la capacidad de inferir en t k es: I k I 0 k . El aprendizaje supervisado consiste en obtener un resultado una vez conocido un conjunto de ejemplos o casos que conforma lo que se denomina conjunto de entrenamiento o aprendizaje. Los ejemplos son vectores que contienen los diferentes grados de los atributos que definen el problema más un valor, generalmente booleano como respuesta o meta. El aprendizaje supervisado o inductivo consiste entonces, en obtener nuevos conocimientos mediante ejemplos o casos suministrados de la base de datos. Cada ejemplo o caso describe: Un conjunto de atributos y variables, por ejemplo: ingreso, egresos, edad, estado civil con sus diferentes modalidades. Su pertenencia o no a una determinada clase; por ejemplo: a la clase de clientes morosos o, cualquier otra característica como el comportamiento observado en el tiempo; por ejemplo: el precio de las acciones. Formalmente, un aprendizaje inductivo consiste en aprender mediante ejemplos una función desconocida f (x) que puede ser una tabla de verdad, una función de utilidad, la mejor estrategia en un juego, una función de pertenencia, un árbol etc. Cada ejemplo se construyen partiendo de un valor de entrada x0 R donde se sabe exactamente el valor f ( x0 ) , por tanto tendremos el conjunto de ejemplos formado por ( xi , f ( xi ); i N que permite proponer como hipótesis una función g (x) que sea la mejor aproximación de f (x) , esto es: g ( x) f ( x). En general se puede hablar no de una única hipótesis sino de un conjunto de hipótesis que conforman el espacio de hipótesis H y seleccionar en este espacio un subconjunto de hipótesis para ser evaluadas. 3 El manejo iterativo de los ejemplos tal que mediante ellos se pueda hacer alguna inferencia a cerca de la función f (x) se llama algoritmo de aprendizaje. Un buen algoritmo de aprendizaje es aquel que permite no solo predecir bien los ejemplos del conjunto de entrenamiento, sino que también haga lo propio con cualquier grupo de ejemplos no observados durante el proceso de aprendizaje, es decir, sea capaz de generalizar. Así como se considera un conjunto de entrenamiento, también se considera un conjunto test que permite evaluar el algoritmo de aprendizaje, este conjunto es disjunto con el conjunto de entrenamiento, hay que evitar que se “colee” algún ejemplo de este conjunto durante el proceso de aprendizaje al conjunto test. Lo que suele hacerse es seleccionar según una distribución de probabilidad FX ( x; ) un conjunto de datos de la base de datos, suficientemente grande, y dividirlo en dos grupos, uno servirá para formar el conjunto de entrenamiento y el otro el del test. El algoritmo por tanto será bueno en la medida que su error en predecir sea lo menor posible, tanto para los ejemplos del conjunto de entrenamiento, como los del test. Se puede establecer una relación funcional para medir el aprendizaje de la siguiente forma: g : n 0,1 Donde n es el número de ejemplos de un conjunto de aprendizaje y el resultado de dividir el número de los aciertos entre el total de ensayos dará la tasa de aprendizaje. De esto se deriva la función de aprendizaje, para cada valor de n se tiene un valor de la tasa de aprendizaje. Se espera que esta tasa aumente mientras aumenta el número de ejemplos, es por tanto una función monótona no decreciente. Se puede contar con varios algoritmos de aprendizaje y graficar sus respectivas funciones de aprendizaje, este gráfico ayudará a seleccionar el mejor algoritmo. Hay dos problemas cruciales con respecto al conjunto de entrenamiento y el conjunto de hipótesis. El primer problema se traduce en cual debe ser el tamaño del conjunto de entrenamiento, es decir cuantos ejemplos debe tener, en principio mientras mayor sea el conjunto de entrenamiento menor será el error y en consecuencia mayor la tasa de aprendizaje, pero aún está pendiente una respuesta a cuan tan grande puede ser, esto se resuelve considerando dos probabilidades: la primera es la probabilidad de clasificar mal o aproximarse inadecuadamente a la función f (x) mediante un ejemplo y, la segunda probabilidad, es de 4 que dada una hipótesis gi (x) no correcta, sin embargo, ésta clasifica bien los n primeros ejemplos del conjunto de entrenamiento. La primera probabilidad se expresa así: error( g ) P( fi ( x) f ( x) x FX ( x; )) Donde FX ( x; ) es la función de distribución a partir de la cual se seleccionan los ejemplos, si se verifica que el error de que el ejemplo no predice bien a f (x) , esto es: error( fi ) , siendo un número no negativo tan pequeño como se quiera, se dice que fi (x) es aproximadamente correcta. Para el caso de la probabilidad de una hipótesis gi (x) que es errónea, pero que clasifica bien los primeros ejemplos, partimos de lo que sigue. Consideremos H como el conjunto de todas las hipótesis, en el entorno de la función f estarán las hipótesis correctas o aproximadamente correctas: H corr y fuera de ese entorno, las demás: H e ,consideremos que gi (x) pertenece a este último grupo, entonces: P( gi ( x) f ( xi ) gi ( x) H e ) Donde H e es el conjunto de hipótesis erróneas y un infinitesimal no negativo. Entonces, considerando estas dos probabilidades, se demuestra que el número de ejemplos necesario N debe ser: N 1 (ln 1 ln H ) . El otro problema es sobre el conjunto de hipótesis H , la idea es seleccionar un buen número de hipótesis y quedarse con aquellas que tienen un mejor comportamiento, esto es que los errores sean lo más pequeños posibles. Con ellas se define una combinación ponderada de las mejores hipótesis. Consideremos entonces el conjunto de mejores hipótesis: H mej g1 , g 2 ,...g m1 g m y un conjunto de pesos W w1, w2 ,...wm 1 wm , ahora definimos una nueva función que es combinación lineal de las mejores hipótesis: m g ( x) w j g j i 1 Esta función es la hipótesis final del aprendizaje. Para realizar esto se utiliza un método conocido como boosting (propulsión, impulso) y entre los algoritmo que se emplean para desarrollarlo está AdaBoost. El desarrollo de este algoritmo y sus diferentes aplicaciones puede verse en: Meir R and G Rätsch G (2003) y Bühlmann P and Hothorn T(2007). La idea de este método es trabajar ponderando los ejemplos del conjunto de entrenamiento, mientras mayor sea el peso del ejemplo, mayor importancia tendrá en el proceso de aprendizaje de una determinada hipótesis, si la hipótesis clasifica mal algunos ejemplos, entonces estos se ponderan con un peso mayor que aquellos que han sido bien clasificado, con este nuevo conjunto de entrenamiento probamos con una segunda hipótesis, y así sucesivamente hasta lograr un error tan pequeño como se quiera. Hasta ahora hemos visto someramente lo que trata el aprendizaje supervisado, este es utilizado en varias herramientas de la IA como veremos más adelante, de los otros tipos de aprendizaje nos ocuparemos en seguida. El aprendizaje no supervisado consiste en “aprender de patrones de entrada para lo que no se especifica los valores de salida” Rusell S; Norvig P (2004) pág. 740. Entre estos aprendizaje está por ejemplo la obtención de conglomerado usando el algoritmo k medias. 5 Hay un aprendizaje híbrido, que consiste en una combinación del aprendizaje supervisado con el no supervisado. Aprendizaje por refuerzo: es el aprendizaje resultante al poder identificar una recompensa positiva o pérdida por las acciones tomadas, previa la información suministrada por el entrenador que consiste en indicar si la información dada es o no correcta. Ahora haremos un breve comentario sobre las herramientas de IA que abordaremos en este capítulo, estos son como ya indicamos: árboles de decisión, redes neuronales. Los árboles de decisiones es una estructura jerárquica que permite ordenar repuestas que se deben dar a un conjunto de preguntas sobre diferentes situaciones para alcanzar una solución óptima al final del árbol. Los nodos internos del árbol corresponden a los test y las ramas a las posibles respuestas. El aprendizaje está basado en el concepto de ganancia de la información y por tanto en la función de entropía que vimos en el capítulo anterior. En principio, se pueden formular un gran número de árboles de decisión sin embargo, al implementar un algoritmo “inteligente” se puede reducir este número significativamente. Esta herramienta se desarrolla mediante el aprendizaje supervisado. Entre los algoritmos que se emplean está el ID3. Las redes neuronales (o neurales) son redes compuestas por diferentes capas de neuronas también llamadas nodos o elementos que emulan las neuronas del cerebro humano con sus respectivos enlaces, estos enlaces o conexiones tienen asociados cada una de ella un valor o peso que indica la fuerza de los enlace entre una neurona y otra, es decir el equivalente a la fuerza sináptica de las neuronas, los algoritmos de aprendizaje permitirán modificar estos pesos con la finalidad de dar una mejor repuesta al problema que se plantee, el aprendizaje en este caso, puede clasificarse como aprendizaje supervisado, no supervisado e híbrido. Las redes neuronales que veremos son; redes de una capa, redes multicapa, redes de función de base radial y finalmente redes SOM (Mapas auto organizativos). Cada una de estas redes tiene asociado un algoritmo de aprendizaje. Como se puede observar, tan sólo se tocaran las herramientas de IA que más se emplean en la Minería de Datos. Para ampliar lo relativo a las herramientas de IA se recomienda a parte de lo señalado en la bibliografía consultada, dos revistas de acceso libre en internet: Journal of Artificial Intelligence Research y Journal of Machine Learning Research. La primera herramienta que veremos es el árbol de decisión, en el capítulo III hicimos una breve introducción a los grafos, esta introducción nos permitirá entrar directamente en el tema junto con el concepto de la función de entropía y sus propiedades vistos en el capítulo XI. Los primeros trabajos de los arboles de decisión se encuentran en Quilan (1986) y Minger J (1989). De ahí en adelante abunda la bibliografía de diferentes enfoques y aplicaciones incluyendo los árboles borrosos. I.-ÁRBOLES DE DECISIÓN. Un árbol de decisión es un grafo con un conjunto de nodos, arcos y hojas. La raíz del árbol representa la entrada de un objeto con un conjunto de categorías generales, que se va desglosando de acuerdo a un criterio jerárquico en la medida que se pasa de un nodo a otro hasta llegar a obtener las hojas que son las salidas o decisiones. Su virtud es que con él se puede tratar problemas complejos de toma de decisiones dividiéndolos en secuencias de decisiones simples encadenadas que proporciona un esquema razonamiento de fácil interpretación. 6 La entrada o atributos iniciales pueden ser variables continuas o discretas. La salida es aprender una función y pueden ser continuas o discretas. En el caso de ser discretas se habla de árbol de clasificación y en el caso continuo de árbol de regresión. Un árbol de decisión se caracteriza por: 1. Cada nodo no terminal está etiquetado con un atributo. 2. Cada arco, saliente de un nodo, tiene un valor numérico correspondiente al atributo asociado al nodo. 3. Cada nodo terminal (hoja) está etiquetado con un conjunto de casos, y cada caso satisface los valores de todos los atributos que etiquetan el camino desde ese nodo hasta el nodo inicial. Los pasos para empezar a construir un árbol de decisión son los siguientes: Definición del problema u objeto Determinar cuál es el predicado que lo define mejor Hacer la lista de atributos que definen el problema. Ordenar y depurar el conjunto de atributos. Construir el árbol. Para visualizar estos pasos daremos un ejemplo, que además nos permitirá introducir nuevos conceptos. Ejemplo 1. Supongamos que un gerente de crédito quiere desarrollar una metodología considerando varios atributos que le permita decidir si da o no un crédito hipotecario a los clientes que lo soliciten. Entonces, su problema es si puede lograr una metodología que le permita predecir si a un cliente cualquiera que pida tal préstamo, se le pueda clasificar, de acuerdo a la base de datos que posee, entre lo que se le aprueba el crédito o no. El predicado que lo define o meta es dar el crédito, la meta también se llama variable repuesta o variable dependiente. La lista de atributos que elabora es como sigue: 1.-Riesgo: es la probabilidad de incumplimiento con el crédito, para ello puede observar cual es el historial del cliente en cuanto al manejo de otros créditos, incluyendo las tarjetas de crédito. El riesgo se clasifica: como alto (A), medio (M) o bajo (B). 2.-El tipo de cliente: Lo define por el número de los movimientos financiero, si es un cliente consuetudinario o no. 3.-Ahorro: Consiste en todos los activos en cuenta de ahorro, corriente y otros instrumentos financieros. Lo clasifica como bajo (B), medio (M) y alto (A). 4.-Monto del crédito solicitado: lo clasifica como bajo (B) y alto (A). 5.-Ingreso personal: Consiste el ingreso promedio mensual de las diferentes fuentes que posea. Lo clasifica como bajo (B), medio (M) y alto (A). El árbol que se deriva en este ejemplo, por las características de las variables es: un árbol de clasificación. Como el aprendizaje del árbol es supervisado daremos un conjunto de aprendizaje o conjunto de entrenamiento con la salida o respuesta conocida y luego, construiremos un árbol y estudiaremos la calidad del mismo. No usaremos ningún algoritmo de los conocidos para este caso tales como ID3, ASSISTANT y C4.5. 7 El conjunto de entrenamiento, que llamaremos E se muestra a continuación: Ejemplos X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 Riesgo A M B M B M A M B A M B Ingreso A M B A A M B B A A A B Ahorro A A B M A M B M A B A B Cliente SI SI NO SI SI SI NO NO SI NO SI NO Monto A B B B A B A A B A B A Meta NO SI NO SI SI SI NO NO SI NO SI NO Se puede observar que se utilizaran doce ejemplos, estos están construidos con cinco atributos con sus respectivas modalidades y al final se tiene la respuesta deseada o meta, conocido también como atributo objetivo A0 . Para todo ejemplo del conjunto de entrenamiento hay un valor del atributo objetivo A0 , esto es: Ei E entonces: Ei ( A0 ) v j (si o no). Esto dará como resultado que se tiene un conjunto de valores del atributo meta que pertenecen al conjunto de entrenamiento: V ( A0 ) E . Se pueden obtener subconjunto Evj de E que cumplan con la condición V ( A ) v j , siendo A uno de los atributos, esto define una partición de E , es decir: E vj vj y E vj E . Un ejemplo es: el atributo riesgo vj origina tres subconjuntos: Evj (alto ) , Evj (medio) y Evj (bajo) , el primer subconjunto está formado por los ejemplos: Evj (alto ) X1, X 7 , X10 y de estos ejemplos todos son negativos para el atributo objetivo o meta Ei ( A0 ) no . El árbol que se propone o primera hipótesis empieza con raíz el atributo riesgo. 8 Mientras mayor sea el tamaño del conjunto de entrenamiento menor será los errores de estimar la verdadera función a partir de este conjunto. Se ha podido usar otro atributo como raíz, de hecho se pueden formular una cantidad enorme de arboles; para encontrar el árbol que mejor discrimine se han propuestos varios mecanismos, entre los algoritmos que se han desarrollado para abordar este problema está el ID3. Un algoritmo buscará como primer atributo aquel que discrimine mejor los ejemplos del conjunto de aprendizaje y del conjunto test y que además partiendo de este atributo se requiera pocas ramas dando origen a un árbol lo más pequeño posible, consistente además, con el conjunto de aprendizaje. Ia.- SELECCIÓN DEL ORDEN DE LOS ATRIBUTOS. La construcción de un árbol supone definir en primer lugar la raíz, que corresponde al atributo que más discrimina, bien sea como variable continua o como categoría, luego los atributos de los demás nodos, asignándoles los atributos de mayor a menor capacidad discriminatoria y finalmente las hojas que pueden ser booleanas. Las ramas en este árbol representan conjunto de decisiones. La función de entropía se emplea como criterio para seleccionar los atributos o variables más relevantes en un árbol de decisión. La razón fundamental es que ella es una buena medida para saber el grado de impureza de cada atributo, o lo que es lo mismo, la dificultad que tiene cada atributo para hacer una buena discriminación. La entropía toma el valor cero, si todos los ejemplos pertenecen a la misma clase en el atributo meta, es decir el conjunto 9 de ejemplo es totalmente homogéneo, en este caso se dice que es puro, por tanto bastaría ese solo atributo para construir el árbol. Entonces, en la medida que la entropía aumenta en el intervalo 0, log a m es mayor su impureza. La selección se jerarquiza en la medida que se gana información y por tanto disminuye la incertidumbre. De acuerdo a la teoría de la información, la cantidad de información de una variable aleatoria X contenida en otra n n variable aleatoria Y es: I y x H ( x) H y ( x) 0 , donde: H y ( x) pij log a ( pij / p. j ) . i 1 j 1 En nuestro caso, tenemos la función de entropía H ( A0 ) y hay que determinar la ganancia de información dado un atributo A esto es I A ( A0 ) . Para esto se sigue los siguientes pasos: 1.-Supongamos que tenemos que la variable de clasificación es dicotómica. De un total de valores booleanos m en el conjunto de ejemplos, p valores son positivos y n valores son negativos. Entonces la entropía del conjunto de ejemplo con base cualquiera es: H ( A9 ) p / m log a ( p / m) n / m log a (n / m) Si se quiere en bit se sustituye a=2. En nuestro caso se tiene, que el conjunto de aprendizaje E tiene seis valores afirmativos y seis negativos para la función objetivo A0 : H ( A0 ) 6 / 12 log a (6 /12) 6 /12 log a (6 / 12) 1bit El segundo paso es: 2.-Para cada atributo del conjunto de aprendizaje se calcula su función de entropía de acuerdo a las modalidades que presenta, si hay v modalidades, habrán v funciones de entropía, cada función se pondera por ( pi ni ) / m donde pi , ni son los resultados positivos y negativos asociados a la modalidad i, mi pi ni i 1,2...v Por tanto se tiene: v v i 1 i 1 [( pi ni ) / m]H (i) P(i)H (i) H (i) pi / mi log 2 pi / mi ni / mi log 2 ni / mi Ejemplo 2. En nuestro caso se selecciona como primer atributo o raíz del árbol el riesgo. El riesgo tiene tres modalidades cada una con dos resultados: positivo o negativo tal como se muestra en el gráfico y en la siguiente tabla: 10 RIESGO ALTO MEDIO BAJO TOTAL SI 1 4 2 NO P1 P2 H(X) pondH(X) 2 0,33333333 0,66666667 0,91829583 0,38262326 1 0,8 0,2 0,72192809 0,18048202 2 0,5 0,5 1 0,33333333 0,89643862 H ( ALTO) 1 / 3 log 2 1/ 3 2 / 3 log 2 2 / 3 0,9182 H (MEDIO) 4 / 5 log 2 4 / 5 1/ 5 log 2 1/ 5 0,7219 H ( BAJO ) 2 / 4 log 2 2 / 4 2 / 4 log 2 2 / 4 1 v [( p n ) / m]H (i) (3 /12).0,9282 (5 /12).0,7219 (4 /12).1 0,8964 i i 1 i 3.-Como tercer paso obtenemos la ganancia para cada atributo definida como: v I ( A0 ) H ( A0 ) ( pi ni ) / mH (i) i 1 En el ejemplo: v 1 [( pi ni ) / m]H (i) 1 (3 / 12).0,9282 (5 / 12).0,7219 (4 / 12).1 1 0,8964 0,1035 i 1 Lo que se ha hecho con este atributo se le aplica al resto, y se selecciona como aquel que será la raíz del árbol, el que tenga mayor ganancia, es decir, reduzca el nivel de incertidumbre del conjunto de aprendizaje. Los resultados de cada uno es: INGRESO ALTO MEDIO BAJO TOTAL SI 4 2 0 NO P1 P2 H(X) pondH(X) 2 0,66666667 0,33333333 0,91829583 0,45914792 0 1 0 0 0 4 0 1 0 0 0,45914792 0,54085208 H ( ALTO) 4 / 6 log 2 4 / 6 2 / 6 log 2 2 / 6 0,9182 H (MEDIO) 0 H ( BAJO ) 0 v 1 [( pi ni ) / m]H (i) 1 (6 / 12).09182 1 0,4591 0,5408 i 1 AHORRO SI NO P1 P2 H(X) pondH(X) 11 ALTO MEDIO BAJO TOTAL 4 2 0 1 0,8 0,2 0,72192809 0,30080337 1 0,66666667 0,33333333 0,389975 0,09749375 4 0 1 0 0 0,39829712 0,60170288 H ( ALTO) 4 / 5 log 2 4 / 5 1/ 5 log 2 1/ 5 0,7219 H (MEDIO) 2 / 3log 2 2 / 3 1/ 3 log 2 1/ 3 0,3899 v 1 [( pi ni ) / m]H (i) 1 (5 / 12).0,7219 (3 / 12).0,7219 1 0,3982 0,6017 i 1 MONTO ALTO BAJO TOTAL SI 1 5 NO P1 P2 H(X) pondH(X) 5 0,16666667 0,83333333 0,65002242 0,32501121 1 0,83333333 0,16666667 0,43082708 0,21541354 0,54042475 0,45957525 v 1 [( pi ni ) / m]H (i) 1 (6 / 12).0,65 (6 / 12).0,4308 1 0,5402 0,4595 i 1 CLIENTE SI NO TOTAL SI 6 0 NO P1 P2 H(X) pondH(X) 1 0,85714286 0,14285714 0,59167278 0,34514245 5 0 1 0 0 0,34514245 0,65485755 Resumiendo las ganancias por atributos son: Riesgo: 0,1035; Ingreso: 0,5408; Ahorro: 0,6017; Monto: 0,4595 y Cliente: 0,6548 Por tanto el árbol debe empezar como raíz cliente, luego como nodos: Ahorro, ingreso, monto y finalmente riesgo. En cada uno de los nodos a su vez debe estudiarse la entropía y la ganancia en cada arco. En este caso se toma el valor de la función de entropía en el nodo. En el punto siguiente veremos uno de los algoritmos propuestos para construir árboles. Algoritmo ID3. Elaborar un árbol si contar con un algoritmo puede ser muy engorroso, porque para discriminar tomando en cuenta varios atributos, puede conducir no a un solo árbol sino a muchos. Para resolver este problema daremos al menos un algoritmo. La idea de cualquier algoritmo que permita encontrar un árbol mediante el conjunto de ejemplos es que el árbol encontrado sea lo suficientemente pequeño y que además sea consistente con el conjunto de ejemplos y pase la prueba con el conjunto de test. Hay varios algoritmos tales como el ID3, ASSISTANT y C4.5.Uno de los algoritmo más utilizado es el ID3 que comprende los siguientes pasos: Algoritmo ID3 ( E, A0 , Atributos ) : Entrada: E es el conjunto de entrenamiento, A0 es el atributo cuyo valor el árbol debe predecir, es decir la meta, finalmente el conjunto de atributos que puede ser probado por el árbol. Salida: Un árbol de decisión. 1) Crear un nodo raíz para el árbol. 12 2) Ei E , Ei ( A0 ) v j , retornar el árbol de único nodo raíz con rótulo v j 3) Si Atributos retornar el árbol de único nodo raíz con rótulo vmce( A0 ) (vmce es el valor más común de V ( A0 ) E ) 4) A el atributo que mejor clasifica a E (esto es, el que tiene mayor ganancia). 5) Raíz A 6) Por cada valor posible v j V (A) : 6ª.-Agregar una nueva rama debajo de la raíz, correspondiente al test A v j 6b.-Sea Evj el subconjunto de E que tiene valor v j para A 6c.-Si Evj 6c1.- Entonces debajo de esta nueva rama agregar un nodo hoja con rótulo vmce( A0 ) 6c2,-Sino debajo de de esta rama colocar el subárbol: ID3( Evj , A0 , Atributos A) 7) Retornar a la raíz. Fin función. Este algoritmo se explica como sigue: el primer paso es crear el nodo raíz, el paso dos asume que todos los ejemplos de entrenamiento pertenecen a la misma clase con un solo valor común. Si en el paso tres no existen atributos que se puedan probar se toma como clasificación el dado por el valor más común. Calculadas las ganancias de los atributos se selecciona como raíz aquel que tenga mayor ganancia. Una vez definida la raíz, se evalúa v j V (A) y se agrega una nueva rama debajo de la raíz. El algoritmo trata el espacio de hipótesis empezando con un árbol vacío, y luego va considerando hipótesis más complejas, tratando de obtener un árbol que clasifique adecuadamente los ejemplos del conjunto de entrenamiento o aprendizaje. La medida de evaluación y guía del algoritmo es la función de ganancia. El otro algoritmo es el C4.5 que es una versión mejorada del ID3, ambos algoritmos fueron desarrollados por Ross Quinlan. Ib.-PODA DEL ARBOL. La poda de un árbol de decisión, es decir eliminar los atributos y modalidades pocos 2 relevantes se hacen mediante un estadístico persson que se distribuye como una con 2 grado de libertad. La irrelevancia puede darse por una mala definición del atributo y sus modalidades tal que en el conjunto de aprendizaje sus resultados metas son ambiguos, también puede darse que el mismo conjunto de aprendizaje esté saturado o sobre ajustado. La presencia de alguno o todos los aspectos mencionados traen lo que se llama ruido. Esto trae como consecuencia que el algoritmo de aprendizaje fallará para encontrar un árbol de decisión que sea consistente con todos los ejemplos del conjunto de aprendizaje. Para esto se parte de una tabla de contingencia en donde siempre se considera el atributo meta versus los otros atributos. El conjunto de hipótesis es: H 0 : pij pi. p. j H1 : pij pi. p. j 13 En donde pi. es la distribución marginal del atributo meta, en el caso de ser booleano, entonces i 1,2 , p. j es la distribución marginal del otro atributo considerado como variable discriminante. Si la hipótesis nula no se rechaza, entonces el atributo discriminante no es relevante. El estadístico es: n m 2 (oij eij ) 2 / eij i 1 j 1 Como ya es sabido por lo visto en el capítulo IX de simulación, oij es el valor observado de la celda (i, j ) y de acuerdo a la hipótesis nula eij Npi. p. j . Se descartarán los atributos que 2 tengan el menor valor del estadístico persson . Índice de Gini. Otro índice que permite desechar atributos que no son relevantes es el coeficiente de Gini, que se define como: n m n G pi p j 1 pi2. i 1 j 1 i 1 Se selecciona aquel atributo que tenga un mayor valor en el coeficiente de Gini. Hay otras medidas para determinar la impureza de los atributos que son variaciones a las vistas y se pueden consultar en Mingers; J (1989). Ic.-ARBOLES DE DECISIÓN BORROSOS. Hay un tipo especial de árboles de decisión conocido como árboles de decisión borrosos, el concepto de borrosidad se debe entre otros a Zadeh, la idea consiste en que se define una función de pertenencia comprendida en el intervalo 0,1 , entonces dado un conjunto S y dado un elemento s si el valor de la función de pertenecía toma el valor cero, entonces s S y cuando toma valor uno entonces s S , pero cuando toma algún valor distinto a los extremos entonces la función indica un grado de pertenencia. En el caso de los arboles borrosos la determinación de las modalidades de los atributos y la pertenecía de los ejemplos a una determinada modalidad o clasificación quedaran definido por esta función de pertenecía. Por ejemplo un cliente puede ser a más o menos moroso. En el árbol anterior no puede existir ambigüedad en la definición de las modalidades ni en cuanto a la pertenecía de los ejemplos a una determinada clase, esto es porque habrá un experto que definirá claramente cada modalidad y la pertenecía de los ejemplos del conjunto de aprendizaje a una determinada clase. En éste por lo contrario se maneja con cierto grado de incertidumbre. Para tratar el aprendizaje en este caso se ha propuesto un algoritmo conocido como ID3f+A Ic.-APLICACIONES. Las aplicaciones de los arboles de decisión son de las más variadas, desde un análisis que puede acompañar a cualquier técnica de estadísticas donde estén 14 involucrados un gran número de atributos con muchas modalidades tal como el análisis de ecuaciones estructurales. Su utilidad reside en que es posible determinar la relevancia de cada uno de los atributos y de esta forma filtrar la dimensión de atributos que servirán para obtener los constructos. Otra aplicación es su uso para resolver problemas de decisión tales como se plantean el modelo discriminante. Compite con el análisis discriminante clásico porque no parte de una distribución como la normal multivariante, además es robusto frente a valores atípicos. Es frecuente que en las bases de datos existan datos faltantes, el árbol de decisión puede ser una buena alternativa para resolver este problema. En el próximo punto trataremos el problema de redes neuronales con aprendizaje supervisado, no supervisado e híbrido. II. REDES NEURONALES. Las redes neuronales son relativamente de vieja data, desde los inicios de los años cuarenta ya existía la idea de construir un sistema que permitiera emular el comportamiento del cerebro. El neurofisiólogo McCulloch y el matemático Pitt crearon un modelo abstracto de neuronas cuyas conductas se explica mediante el álgebra de Boole. En el año 50 Frank Rosenblatt propuso un modelo computacional para la retina, al que denominó perceptrón. Desde los años sesenta hasta el inicio de la década de los ochentas hubo un receso en la investigación en este campo, hasta que en 1982 Hopfield presentó su trabajo sobre computación neuronal a la Academia Nacional de Ciencias de EEUU, a partir de este momento se retomó la investigación en redes neuronales, se empezó a sumar los trabajos sobre retropropagación de autores como Rumelhart, Hinton, David Parker, los mapas auto organizados de Kohonen, el asociador lineal de J Anderson etc, más recientemente se han dado aportes donde se combina redes neuronales recurrentes con aprendizaje Bayesiano Póczos B; L˝orincz A (2009) o el estudio de redes neuronales especiales Larochelle Hugo et al (2009)5 No ha sido poca las críticas surgidas sobre esta idea, críticas que van desde el punto de vista filosófico hasta las que provienen de la idea de la limitación intrínseca de la ciencia. Las redes neuronales es una herramienta de la Inteligencia Artificial, que permite hacer predicciones y clasificaciones. Sus aplicaciones son de lo más variadas, se emplea para estimar parámetros de modelos causales y de serie de tiempo no lineales, clasificación y discriminación, reconocimiento de patrones etc, es una de las herramientas más extensas dentro de la IA. Una de sus ventajas es la capacidad de hacer aproximaciones de cualquier función continua o las derivadas de una función arbitraria, lo que amplía su aplicación para resolver problemas de optimización6. Es una herramienta que ha ido madurando gracias al desarrollo algorítmico como computacional, respaldado por las múltiples aplicaciones exitosas. 5 Larochelle Hugo et al (2009) Exploring Strategies for Training Deep Neural Networks Journal of Machine Learning Research 1 (2009) 1-40 6 Anderson J.A (2007) Redes Neuronales. Capítulo 12 paginas 387-416. 15 Hemos dividido las redes neuronales en tres grandes grupos dependiendo del tipo de aprendizaje. Las redes neuronales con aprendizaje supervisado donde se extraen los ejemplos de la base de datos con el resultado de la clasificación y redes neuronales no supervisadas, además la de aprendizaje híbrido que combina los dos aprendizajes anteriores. Ahora veremos la comparación entre los términos empleados en el análisis de redes neuronales y estadística clásica. Términos neuronales Entrada Salida Datos de aprendizaje Aprendizaje supervisado Aprendizaje no supervisado Arquitectura Ejemplo, caso Binario Errores Generalización Pesos Sesgo Época Pesos sinápticos Entrenamiento, aprendizaje Ruido Términos Estadísticos Variables independientes Valores predicho Muestra Modelos lineales y no lineales (causales) Conglomerado Modelo Observación Dicotómico Residuos Predicción Estimadores Intercepto Iteración Estimadores Estimación Residuo Siguiendo el asociador lineal de Anderson veremos un ejemplo de aprendizaje tomando en cuenta conceptos básicos de vectores y matrices, con la intensión de comprender mejor lo que se espera que haga una red neuronal bajo aprendizaje supervisado. En este ejemplo está la idea de asociación tal como se supone ocurre a nivel cerebral, al menos de forma muy simplificada. Una de las asociaciones más sencillas es la asociación del tipo lineal o función asociativa lineal; con los ejemplos que siguen explicaremos en qué consiste. Ejemplo 3. Este ejemplo está construido siguiendo la regla hebbiana7 de producto externo, que consiste en considerar dos vectores uno de entrada y otro de salida: v y w con una matriz que representa la fuerza de conexión A y una constante de aprendizaje tal que: A wT v Para ilustrar, consideremos ahora los siguientes vectores: 7 La regla hebbiana consiste en postular que el cambio en el acoplamiento de pesos sinápticos entre dos neuronas es alguna función de la actividad presináptica y postsináptica. (ver Anderson(2007) página 165 y siguientes) 16 v1 1/ 2(1,1,1,1) , v2 1/ 2(1,1,1,1) , w1 (1,0,1,1) y w2 (1,0,0,1) Los vectores v1 y w1 son los vectores de entrada y salida respectivamente y forman el conjunto de entrenamiento, los vectores v2 y w2 son vectores de prueba. Se puede comprobar que los vectores de entrada son ortogonales entre sí, esto es: vi vTj 0; i j y además su producto interno: vi viT 1 . La matriz de conexión A1 w1T v1 con 1 está dada como: 1 1 1 1 0 0 0 0 A1 1 / 2 1 1 1 1 1 1 1 1 En el aprendizaje debe darse una función asociativa entre la entrada y la salida, esto es conocida o aprendida la entrada se debe reproducir la salida. Si el vector v1 de entrada es aprendido, mediante la matriz A de fuerza sináptica debe reproducirse el vector de salida w1 . En efecto, el lector puede verificar que se cumple lo siguiente: 1.- A1v1T w1T 2.-Dado que el sistema no aprendió del vector de entrada v2 , entonces: A1v2T w2T En el primer caso se dio la asociación lineal mientras que en el otro no. Ejemplo 4. Para que el vector v2 sea aprendido dando como salda el vector w2 , calculemos la matriz A2 asociada al vector de entrada v2 y el de salida w2 , en este caso la matriz es A2 w2T v2 , se puede comprobar que esta matriz es: 1 1 1 1 0 0 0 0 A2 1 / 2 0 0 0 0 1 1 1 1 De la misma forma que en ejemplo anterior se cumple: A2v2T w2T En el siguiente ejemplo veremos como construir la matriz A tal que sirva para un conjunto de vectores de entrada y un conjunto de vectores de salida, es decir exista asociaciones múltiples, con la condición que los vectores de entradas sean ortogonales y además su producto interno sea igual a la unidad, tal como se asumió en los anteriores ejemplos. Ejemplo 5. En los dos ejemplos anteriores, se ilustró como funciona la asociación lineal para cada vector de entrada. En este ejemplo veremos como puede funcionar las asociaciones 17 múltiples considerando simultáneamente los dos vectores de salida y los dos de entrada vistos en los ejemplos anteriores. En primer lugar definimos la suma de las dos matrices: 1 1 1 1 1 1 1 1 0 2 0 2 0 0 0 0 0 0 0 0 1 / 2 1 / 2 0 0 0 0 A A1 A2 1 / 2 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 2 0 2 Entonces se cumple las siguientes igualdades: 1.- Av1T w1T 2.- Av2T w2T Esto es fácil de comprobar teniendo presente que: vi vTj 0; i j y vi viT 1 , entonces: Av1T A1v1T A2v2T w1T v1v1T w2T v2v1T w1T Av2T A1v2T A2v2T w1T v1v2T w2T v2v2T w2T En general, para las asociaciones múltiples tenemos: dado el conjunto de vectores de entradas vi con la condiciones de: vi vTj 0; i j y vi viT 1 , y dado el conjunto de vectores de salida wi con y respectivas matrices Ai wiT vi . Entonces la matriz de fuerza sináptica A es: A Ai i Consideremos un vector de entrada cualquiera vk asociado con un vector de salida wk , usaremos la matriz A como la matriz de fuerza sináptica del enlace: dado entonces el vector de entrada vk , obtendremos el vector de salida wk , en efecto tenemos: AvkT Ai vkT Ai vkT Ak vkT wiT vi vkT wkT vk vkT wkT i ik ik El desarrollo teórico que fundamenta estos ejemplos se encuentra ampliamente explicado en la obra de Anderson (2007) donde se conecta el aprendizaje habbeliano con el aprendizaje de asociador lineal (Capítulo 6). IIa.-REDES NEURONALES CON APRENDIZAJE SUPERVISADO. Hay tres tipos fundamentales de redes neuronales según el aprendizaje: la supervisada, la no supervisada de Kohonen y la híbrida de función de base radial. Los ejemplos anteriores mostraron un tipo de aprendizaje supervisado donde se conocía el vector de entrada y el vector de salida. La supervisada consiste en poseer un patrón de entrada y de salida que permite hacer clasificaciones o predicciones. ¿Cómo se forman? Las redes están constituidas por varias capas de neuronas y su aprendizaje consiste en contrastar los resultados con la experiencia en el caso de las supervisadas, cada capa de neurona se conecta con la capa siguiente. Cada capa está formada por un grupo de neuronas en ocasiones inconexas entre sí, cada una de las neuronas recibe señales provenientes de las neuronas de las capas anteriores mediante conexiones, estas conexiones por analogía a las 18 neuronas del cerebro se llaman sinapsis, a cada una de las conexiones se les asocia un peso que representan el sentido e intensidad de la conexión entre dos neuronas, si el peso es positivo entonces representará una conexión excitadora y si es negativo una conexión inhibidora, la fuerza de la conexión está dada por el valor absoluto del peso. Este tipo de redes se denominan modelo con percepción multicapa (MLP). Una red neuronal multicapa se caracteriza fundamentalmente por: 1.-Hay una capa de entrada que recibe toda la información del exterior. En esta capa debe haber tantas neuronas como variables explicativas. 2.-Una capa o varias que no se conecta con el exterior y se llaman capas ocultas, ellas son las encargadas de procesar la información. Generalmente se considera suficiente una sola capa oculta. 3.-Una capa de salida que contiene la respuesta de la red. El número de neuronas en este caso, son tantas como variables a predecir. Las redes neuronales en cuanto a la orientación del flujo de la información se pueden dividir en redes multicapas alimentada hacia delante y redes recurrentes. Las conexiones entre las neuronas tienen asociados unos pesos, además hay unas funciones de activación que relacionan la salida de una neurona con su entrada. La posibilidad de emplearlas en un determinado problema depende de la eficiencia del algoritmo de aprendizaje que va modificando los pesos. La determinación del número de capas y la cantidad de neurona de una capa se define de una forma heurística. Para la mayoría de los problemas es suficiente una sola capa oculta y en cuanto al número de sus neuronas se recomienda que sea un poco menor al número de entradas, pero eso no impide que una red pueda tener varias capas ocultas o que tenga más neuronas en la capa oculta que en la de entrada como es el caso de las redes de base radial. Para ilustrar lo expuesto veamos dos ejemplos gráficos: Ejemplo 6. Este gráfico corresponde a una red neuronal con alimentación hacia delante (“feedforward”), se puede observar que los nodos de cada capa están conectados con los nodos de las siguientes capas. Ejemplo 7. 19 El siguiente gráfico muestra una red neuronal retroalimentada (”feedback”) y además recurrente, esto es que hay conexión en ambos sentidos entre los nodos de diferentes capas, además hay conexión entre los nodos de una misma capa, esto significa que la información dada por una capa oculta puede usarse nuevamente en la capa de entrada. La estructura de una red neuronal multicapa se muestra en el siguiente gráfico: Las conexiones de entrada tienen pesos W ji que indican el efecto que produce una unidades sobre otras, el signo del peso indica si el efecto es excitador o inhibitorio, la efectividad de la entradas está definida por la fuerza de la conexión que se mide como la suma de los valores absolutos de los pesos, por tanto sirven para propagar la activación a j de la unidad j a la unidad i , esta última unidad calcula la suma ponderada de su entrada como: n ini W ji a j (Recordemos los ejemplos 4 y 5) y finalmente se obtiene una función de j 0 n activación no lineal de esta suma, esto es: h(ini ) h(W ji a j ) , para producir la salida si , j 0 entonces podemos escribir: n si h(ini ) h(W ji a j ) j 0 Esta función puede ser una logística tal como: si h(ini ) 1/(1 exp ini ) donde si 0,1 o tener alguna de esta dos formas (Shalkoff Robert (1992)): 20 a) si 1 si ini 0 y si 0 si ini 0 b) si 1 si ini 0 y si 1 si ini 0 Se puede considerar también una función de activación dinámica tal como: dini (t ) / dt (1/ i )ini (t ) (1/ i )ini* (t ) Donde ini (t ) corresponde a la definición dada en b), ini* (t ) es la activación más reciente, i es la cantidad de tiempo en la unidad i o la función: si tan ghh(ini ) (exp ini exp ini ) /(exp ini exp ini ) Las funciones de activación deben tener como características la posibilidad de indicar cuando la unidad está activa y cuando inactiva. En el primer caso el valor de la función debe estar cerca a uno, entonces las entradas son correctas, en el segundo caso, la función debe estar cercana a cero, es decir las entradas son incorrectas. Además, es deseable que sean diferenciables, pues esta característica ayuda en el algoritmo de aprendizaje de los pesos. Una red neural de una sola capa se caracteriza porque hay unas unidades de entradas y una capa de salidas. Su estructura es como se muestra a continuación: aj Para el caso de un perceptrón la función de salida es: dado los pesos W j entonces: n s in W j x j , s 1 si j 0 n W ji x j 0 y si 0 si j 0 n W j 0 ji x j 0 para cada salida Ejemplo 8. Veamos un ejemplo sencillo de aplicación de las redes neuronales multicapas tomado de Caballero M.V; Molera, L (2004) y Bonilla María, Marco Paulina e Olmeda Ignacio. Supongamos que la capa de entrada está formada por cuatro neuronas, tiene una capa oculta o intermedia formada por cinco neuronas y una capa de salida formada por una sola neurona. 21 Cada entrada tiene la forma: W ji x j W j 0 donde los W ji son los pesos asociados a la conexiones de las neuronas de entradas j a las neuronas i de la capa oculta, W j 0 son pesos de sesgo, en nuestro ejemplo hay cuatro neuronas de la capa de entrada, por tanto cada 4 neurona i de la capa oculta recibe como información: (W j 1 ji x j Wi 0 ) , en cada una de estas neuronas ocultas se opera una transformación no lineal de la información recibida: 4 hi ( (Wij x j Wi 0 )) para i 1,2...5 , es decir, una función de activación para cada neurona i 1 de la capa oculta que irán a la capa de salida. Así como podemos considerar pesos asociados a las conexiones de entradas, también podemos considerar pesos a las conexiones de salidas, llamemos estos pesos i , la información total que llega a la neurona de salida 5 4 i 1 j 1 es: 0 i hi ( (W ji x j W j 0 )) . Este ejemplo lo podemos generalizar como sigue: Consideremos que hay p neuronas en la capa de entrada y q neuronas en la capa oculta, entonces el vector de variables de entradas, una variable por cada neurona es: X (1, x1 , x2 ,..x p ) , el vector de peso de entradas Wi (W j 0 ,W j1 ,W j 2 ,..W jp ) para cada neurona de la capa oculta i 1,2...q y el vector de pesos de salida ( 0 ,1 , 2 ,.. q ) entonces, la salida de la red considerando las q neuronas de la q capa oculta la definimos como: S ( x; P) F ( 0 i H ( x;W j )) , donde F es la función de i 1 activación de la unidad de salida. H representa la transformación no lineal de la suma de las p funciones lineales de entrada a cada una de las neuronas de la capa oculta. Si la transformación es una logística entonces H exp xtW /(1 exp xtW ) y P es el vector de los pesos W y . Algoritmos de aprendizaje. El proceso de aprendizaje en las redes neuronales supervisadas consiste en ir modificando los pesos con el objeto de que la red tenga un comportamiento óptimo, esto es, puede usarse no sólo para los ejemplos suministrados sino para cualquier otro caso, es decir, sea capaz de generalizar. Básicamente, el aprendizaje consiste que si en el momento t se posee un conocimiento acumulado en el peso Wt , entonces este conocimiento debe aumentar en el 22 período t 1 , esto es Wt 1 Wt t , esto suele expresarse como: Wt Wt t Los algoritmos de aprendizaje deben garantizar que estas modificaciones se realicen en el menor tiempo posible, los más usuales son: el gradiente conjugado, el de retropropagación y los algoritmos de direcciones descendentes de Widrow y Hoff8. En cualquier caso se parte del espacio del error, definiendo como error el cuadrado de la diferencia entre la salida resultante del aprendizaje supervisado y el verdadero valor dado por el ejemplo de aprendizaje. Cada vez que se corre un ejemplo en la red deben actualizarse los pesos, cuando se han usado todos los ejemplos del conjunto de aprendizaje se dice que se ha cumplido una época. La actualización se hace sobre los pesos de tal forma que se minimice el error. En general el problema es: 1/ 2 min W ji y si 1 / 2 min W ji et e 1 / 2 min W ji n ( y s ) i 1 2 i Donde y f (x) es el verdadero valor dado por el ejemplo, y si es la salida obtenida en el aprendizaje. Analicemos en primer lugar el caso de una red con una sola capa. n 1 / 2 y si / W j ee / W j eh( y W j x j ) / W j e(in ).x j j 1 El aprendizaje o actualización de los pesos se obtiene como: W j W j eh(in ).x j El coeficiente se conoce como tasa de aprendizaje. Se asume entonces, que cada vez que se introducen ejemplos de uno en uno a la red se reducirá el error, por tanto hay un incremento en el aprendizaje. Después de varias corridas con todos los ejemplos (épocas) se para el procedimiento de acuerdo a un criterio preestablecido relacionado con el tamaño del error. Obsérvese que el incremento del aprendizaje está en función del error, del gradiente de la salida con respecto los pesos, el nuevo ejemplo y la tasa de aprendizaje. Por tanto el aprendizaje en función del valor anterior de peso más el incremento. Siguiendo a Stuart Russell y Peter Norving (2004) podemos hacer el siguiente esquema del aprendizaje con una capa: Primer paso: entrada de los ejemplos, cada uno es un vector que incluye la salida: X j ( x j1 , x j 2 , x j 3....x jn , yi ) , cada perceptrón con pesos W j y una función de activación h ; repetir. n in W j X j j 0 n Calcular el error e y h(W j X j ) j 0 W j W j eh(in ).X j 8 La dirección descendente o de descenso se basa en el concepto de gradiente y de derivada direccional. Como el aprendizaje es supervisado, comparamos el ejemplo con la salida, obteniendo el error. El algoritmo calcula la derivada del cuadrado del error por cada ejemplo a ser aprendido con respecto a su peso, originando el vector gradiente. La idea es ajustar todos los pesos para que los cambios se muevan en la dirección de descenso minimizando la suma de los cuadrados de los errores, esto se logra moviéndose en la dirección del negativo del gradiente. Ibídem Capítulo 9. 23 Reiterar hasta que satisfaga algún criterio de convergencia. En el caso de red neural multicapa se diferencia en que hay varias salidas y hay dos tipos de pesos, los de entradas W ji y los de salidas j , además la salida no es un valor sino un vector q dado por: S ( x; P) F ( 0 i H ( x;W j )) ,por otra parte no se conoce el error en la capa i 1 oculta, por tanto una solución es aplicar lo que se conoce como propagación hacia atrás del error de la capa de salida a la capa oculta para actualizar los pesos. La salida es el vector dado por: q S ( x; P) F ( 0 i H ( x;W j )) i 1 Hay que estimar los pesos de entrada y salida minimizando el error, esto es: q 1/ 2 y S / W j ee / W j e( y F ( 0 i H ( x;W j )) / W j i 1 q 1/ 2 y S / j ee / j e( y F ( 0 i H ( x;W j )) / j i 1 El problema es que no se conoce el error de la capa oculta, entonces, debemos ir ajustando los pesos de entradas, considerando las modificaciones que deben darse en los pesos de salida. Para ello procedemos de la siguiente manera: una proporción del error en la capa de salida es responsable la capa oculta dado por: i h(ini )( yi si ) para cada elemento del vector de salida S ( x; P) , pero para actualizar los pesos de entrada desde la capa oculta consideramos: j h(ini )W ji i por tanto la actualización de los pesos de entradas i tomará en cuenta la nueva entrada a j X j ( Ei ) ponderada por el efecto de la proporción del error de la capa oculta y la tasa de aprendizaje: W ji W ji a j i . Los pasos para el algoritmo de aprendizaje de una red multicapa es: Primer paso: Primer paso: entrada de los ejemplos Ei , cada uno es un vector que incluye la salida: X j ( x j1 , x j 2 , x j 3....x jn , yi ) ,una red multicapa con L capas , pesos W ji y una función de activación h . Repetir Para cada ejemplo Ei E hacer: a) para cada nodo en la capa de entrada hacer: a j X j ( Ei ) b) para l 2...M hacer: ini W ji a j ; y i h(ini ) j Para cada nodo i de la capa de salida hacer: i h(ini )( yi si ) a) Para l M 1 a 1 hacer j h(ini )W ji i i b) Para nodo i en la capa l 1 hacer: W ji W ji a j i Hasta que satisfaga algún criterio de convergencia. Este algoritmo actualiza los pesos entre la capa oculta y la de la entrada. 24 IIb.-REDES NEURONALES CON FUNCIÓN DE BASE RADIAL (RBN). Las redes neuronales con función de base radial se diferencian de las anteriormente vistas por ser el aprendizaje híbrido, es decir tiene una etapa no supervisada y otra supervisada, y por tener como funciones de activación en la capa oculta a funciones de activación con base radial no lineales, los parámetros de estas funciones son: localización y dispersión, además suelen requerir un número mayor de neuronas en la capa ocultas que en las anteriores, la clasificación se hace a partir de elipses o hiperelipses que parten el espacio de entrada en dos semiespacio. Se llaman redes neurales de base radial, porque su salida depende de la distancia del vector de entrada y un vector ya almacenado en la neurona de la capa oculta a donde llega la entrada, en este caso el vector almacenado suele ser el centro de gravedad de esta neurona, la expresión general de la salida con la función radial es: m si W j ( xi j ) j 1 Aquí xi es el vector de entrada y j es el centro de gravedad (ambos n-dimensionales) de cada una de las neuronas de las capas ocultas. La función de base radial para cada neurona oculta puede tener la forma: ( xi j ) exp xi j Además de los centros de gravedad se puede considerar la dispersión (anchura) en cada una de las neuronas dada por: j , entonces la función de base radial es: ( xi j ) exp ( xi j / j ) La salida considerando tanto el centro de gravedad como la dispersión es: si W j ( xi j ); si´ W j exp ( xi j / j ) j 1 j 1 En la medida que los valores de un vector de entrada sean cercanos al centro de gravedad de la neurona la función gaussiana tenderá a uno, en caso contrario, es decir: en la medida que se alejen la función tenderá a cero; cuando está cercano a uno la neurona se activa. La única función no es la gaussiana, pueden ser otras no lineales. Consideremos: Z xi j entonces, otras funciones de base radial son: 2 2 La función multicuadrádita generalizada (Z ) (Z ) donde 0;0 1 de esta se derivan la multicuadrática con 0; 1/ 2 , la mulicuadrática inversa 0; 1/ 2 ; la multicuadrática generalizada inversa (Z ) (Z 2 2 ) y finalmente 3 la cúbica: (Z ) Z . Estas funciones no lineales, cuando se usa para clasificar originan clases formadas por aquellos valores que están en las hiperelipses. En general se puede considerar la siguiente relación: ( xi j ) ij entonces, podemos formular el siguiente sistema de ecuaciones en notación matricial, en su forma más general: 25 11 21 . n1 . . 1m w1 s1 . . 2 m . . . . . . . . . nm wm sn Podemos escribir la expresión anterior como ij w s .Si la matriz ij es cuadrada e s. invertible, entonces tenemos: w ij 1 Hay varias coincidencias y diferencias entre las redes neuronales multicapas vistas anteriormente y ésta de función de base radial. En primer lugar ambas utilizan tres tipo de capas; una de entrada, la intermedia u oculta y la capa de salida, pero la multicapa puede tener varias capas ocultas, mientras que la de este tipo sólo tiene una. Si la capa de entrada el número de neurona es muy alto entonces el número de neurona de la capa oculta tiene que crecer exponencialmente para lograr un buen ajuste. En cuanto el aprendizaje la redes de función de base radial puede emplear tres tipos: aprendizaje supervisado, no supervisado e híbrido. Algoritmo de aprendizaje. Si se compara con los otros algoritmos de aprendizaje este resulta más rápido. Dado un vector de entrada x ( x1, x2 ,...xn ) a un nodo de la capa oculta, y dado el centro de gravedad del nodo: j (1 , 2 ,...n ) . El primer paso consiste en calcular la distancia euclidiana: d (x i 1 i ij )2 x j El valor obtenido, servirá para activar la función radial: ( x j ) exp x j . Para obtener esta distancia hay que estimar los centros de gravedad. Esta red puede trabajarse con algoritmo supervisado, algoritmo no supervisado y algoritmo híbrido. El algoritmo híbrido empieza con una fase no supervisada y la segunda parte con una supervisada. Este algoritmo es el que mostraremos a continuación. El algoritmo no supervisado determina los centros de gravedad y las dispersiones en las capas ocultas, para luego pasar a la segunda etapa supervisada donde el entrenamiento llevará a actualizar los pesos. La fase no supervisada consiste en dado el conjunto de entrenamiento: Se determina los centros de gravedad empleando el algoritmo de clasificación de k medias. Se calculan las desviaciones o amplitudes de las funciones de base radial. La fase supervisada tiene los siguientes pasos: Se asignan los primeros valores iniciales de forma aleatorios a los pesos y umbrales. 26 Se selecciona un ejemplo dentro del conjunto de aprendizaje y se calcula el error dada el valor real. W ji W ji 1e / W ji y ui ui 2e / ui donde: e / W ji ( yi si )y / W ji y e / ui ( yi si )y / ui Se toman cada uno de los ejemplos para ir actualizando los nuevos pesos. Hasta que satisfaga algún criterio de convergencia. IIc.-REDES NEURONALES CON APRENDIZAJE NO SUPERVISADO. La redes neuronales con el enfoque de Kohonen, conocidas también como mapa auto organizativo que sus siglas en ingles son SOM (Self-Organizing Map), se caracterizan por tener una capa de neuronas de entrada de datos y la capa de salida donde las neuronas están dispuestas rectangularmente, es decir, en un arreglo de nxm , esta disposición se llama mapa y pueden ser no sólo arreglos bidimensionales sino también arreglos tridimensionales. Son redes con aprendizaje no supervisado porque no usan ningún patrón de salida con el cual hacer el contraste, por eso su utilidad cuando en la práctica los valores de salida se desconocen. Se asume en estas redes la conectividad total, esto es, todas la información de entrada está conectada a todas las unidades, además es posible reconocer la vecindad que consiste en que las neuronas buscan agruparse de acuerdo a los elementos de información que le sea común, formándose así grupos y de esta forma subcapas especializadas de acuerdo a la semejanza con los patrones de entrada, la salida correcta no se conoce por tanto no pueden trabajar bajo un criterio de minimizar el error. Cada neurona de la capa de entrada representa una variable, estas distribuyen la información a las neuronas de la capa de salida, estas última se activan de acuerdo al parecido que tengan con la capa de entrada. En la capa de salida siempre habrá una neurona activada. Consideremos una entrada secuencial n dimensional, en cada instante t dada por el vector: x(t ) ( x1 (t ), x2 (t )...xn (t )) como elemento de una muestra seleccionada de la base de datos, consideremos ahora un modelo de pesos resultante del vector de entrada dado por: Wi (t ) (wi1 (t ), wi 2 (t ),...wn 2 (t )) de esto se deriva que tenemos una secuencia de modelos que podemos expresarlo como una secuencia suavizada dada por: Wi (t 1) Wi (t ) (t )kci (t )x(t ) W (t ) En la expresión anterior (t ) es un factor de corrección que disminuye en la medida que se incrementa t , kci (t ) representa el tipo de núcleo de suavizamiento, donde el subíndice c indica el modelo que está a menor distancia del vector de entrada, kci (t ) 1 cuando Wi (t ) Wc (t ) . En el aprendizaje, los pesos se van actualizando de acuerdo a la vecindad de las otras neuronas similares. 27 Algoritmo de aprendizaje. Podemos resumir el algoritmo de aprendizaje de Kohonen como sigue: Paso 1: Obtener un vector n dimensional de pesos Wi (t ) (wi1 (t ), wi 2 (t ),...wn 2 (t )) , un radio r , un factor (t ) y una función de vecindad kci (t ) . Paso 2: Seleccionar aleatoriamente un vector de entrada: x(t ) ( x1 (t ), x2 (t )...xn (t )) La unidad c que maximiza la excitación, es decir donde la distancia entre x(t ) y Wi (t ) es mínima: min d (t ) x(t ) Wi (t ) Paso 3: Las funciones de pesos se actualizan mediante la función de vecindad : Wi (t 1) Wi (t ) (t )kci (t )x(t ) W (t ) Paso 4: Detener el algoritmo si se piensa que se ha obtenido un buen resultado después de realizar varias veces los pasos anteriores, si no, redefinir (t ) y kci (t ) y volver al paso 1. IId.-APLICACIONES DE LAS REDES NEURONALES. En la práctica para resolver un problema, se suele seleccionar diferentes estructuras de redes neuronales aplicando diferentes algoritmos de aprendizaje, y se seleccionará como el mejor aquel que en el caso de un pronóstico o estimación tenga el menor error cuadrático medio. Se emplea también la correlación entre las observaciones reales el conjunto test y los obtenidos con el modelo mediante el conjunto de aprendizaje. Las aplicaciones son muy numerosas, basta consultar la referencia bibliográfica, pero entre algunas aplicaciones que se destacan están: En estudio de series de tiempo que tienen un comportamiento complejo, como complemento a los cálculos de los estadísticos BDS, dimensión de correlación, vistos en el capítulo anterior. En series altamente volátiles siempre las predicciones mediante redes neuronales multicapa con aprendizaje supervisado dan mejores resultados si se comparan con los obtenidos con los ARIMA, son casi similares o mejores cuando se compara con modelos ARCH o GARCH. Su capacidad de predicción en esos casos depende del número de neuronas que forman la capa oculta y de una buena selección de la transformación no lineal. Han mostrado su utilidad en el cálculo del coeficiente de Lyapunov, en el caso de series económicas cortas y con ruido que permite caracterizar sistemas dinámicos altamente sensibles a las condiciones iniciales. Igualmente resultan útiles en la estimación de los parámetros de modelos no lineales tanto causales como de serie de tiempo. Se emplean para resolver problemas de optimización no lineal. Para el caso de datos faltantes, las redes neuronales pueden ser una buena alternativa a las herramientas clásicas de imputación. Las redes neuronales SOM, puede obtener una buena discriminación, tanto o mejor que los métodos clásicos. 28 III.-USO DE LOS ÁRBOLES DE DECISIÓN Y REDES NEURONALES EN LA MINERÍA DE DATOS. En el capítulo IX en donde tratamos los métodos de análisis multivariante hicimos el comentario de que ese material era útil para su aplicación a la minería de datos, metodología que actualmente ayuda a la toma de decisiones. En este capítulo, hablamos en la introducción de que existe una relación entre inteligencia artificial y minería de datos. En este punto ahondaremos en este último aspecto. Los software de estadística con aplicación de minería de datos tales como SAS y SPSS tienen entre otros, un módulo de arboles de decisión y uno de redes neuronales, estos módulos como todos los demás que suelen ofrecer están identificado mediante un ícono, la tarea para obtener resultados es unir adecuadamente los diferentes módulos mediante flechas, en la práctica esto implica realizar un buen números de veces estas conexiones, porque rara veces se obtiene un resultado aceptable de forma inmediata, las primeras aplicaciones sirven para afinar las siguientes. Como puede deducirse por lo dicho, la forma de emplear las aplicaciones de minería de datos es fácil, el problema es de otra naturaleza, es conocer los conceptos subyacentes en cada una de las aplicaciones, esto es, saber que son, para que sirven, cuando se pueden usar, que se espera de sus aplicaciones. En el caso de SAS por ejemplo, el módulo de redes neuronales está construido sobre el concepto de redes neuronales de base radial, esto tiene cierta implicaciones que un gerente debe estar atento. En general, para un gerente resulta que estos módulos representados mediante íconos son unas cajas negras, él debe tener presente sólo conceptos fundamentales de que se tratan estas técnicas y sus aplicaciones tal como hemos tratado de abordar en este capítulo, incluso él puede por tanto obviar las reglas algorítmicas de aprendizajes de cada una de las técnicas más no la parte conceptual, por lo algorítmico no debe tener mayor preocupación. Si tiene claro en qué consisten estas técnicas, sus aplicaciones y limitaciones puede emplearlas inteligentemente cuando utiliza la minería de datos como una herramienta que le orientará a la hora de tomar decisiones en situaciones complejas. Hay que recordar que una de las características de la complejidad es la existencia de estructuras ocultas, la minería de datos ofrece una metodología para descubrir estas estructuras subyacentes en las bases de datos. Ejemplos de esto son los mercados de capitales, el precio de la energía, la inflación, el mercado de ciertas materias primas, el mercado laboral, el mercado financiero en general etc. En estas situaciones la minería de datos apoyada en las herramientas de inteligencia artificial y las técnicas estadísticas (clásicas o bayesianas) aclara el panorama, que facilita la planificación y toma de decisiones al menos a mediano plazo. 29 BIBLIOGRAFÍA. Anderson James A (2007) Redes Neuronales. AlfaOmega Grupo Editorial. México. Aprendizaje de árboles de decisión.(2006) Universidad Nacional de San Luis (UNSL). Departamento de Informática. San Luis. Argentina. Octubre de 2006 Baxter Jonathan(2000) A Model of Inductive Bias Learning Journal of Artificial Intelligence Research 12 (2000) 149–198 Bennett K and Campbell C (2000) Support Vector Machines: Hype or Hallelujah? Kigkdd Exploration Vol 2 Issue 2. Berry Michael, Linoff Gordon. (2000) Mastering Data Mining-The Art and Customer Relationship Management John Wiley& Sona,Inc. New York. Bonilla María, Marco Paulina e Olmeda Ignacio. Redes neuronales artificiales: predicción de la volatilidad del tipo de cambio de la peseta Marco: Dpto. Economía Financiera y Matemática, Universitat de València. Bühlmann P and Hothorn T(2007) Boosting Algorithms: Regularization, Prediction and Model Fitting. Statistical Science. Volume 22-4-pag 477-505 Caballero M.V; Molera , L (2004) Redes Neuronales y Sistemas Dinámicos Complejos. Universidad de Murcia-España. Catanzaro B ; Sundaram N and Keutzer K (2008) Fast Support Vector Machine Training and Classification on Graphics Processors Cardona Hernández Paola Andrea.(2004) Aplicación de árboles de decisión en modelos de riesgo crediticio. Revista Colombiana de Estadística. Volumen 27 No 2. P´ags. 139 a 151. Diciembre 2004 Larochelle Hugo ,Yoshua Bengio Jérôme Louradour Pascal Lamblin (2009) 30 Exploring Strategies for Training Deep Neural Networks Journal of Machine Learning Research 1 (2009) 1-40 Lewis, Roger J (2000) An Introduction to Classification and Regression Tree (CART) Análysis. UCLA-Medical Center. Meir R and G Rätsch G(2003) An Introduction to Boosting and Leveraging http//webee.technion.ac.il Advanced Lectures on Machine Learning Minger J (1989) Empirical Comparison of Selection measure for decision tree Induction. Kluwer Academic Publishers. Boston. Olmedo, E; Valdera, M.V; Mateos, R; Gimeno, R. (2005) Utilización de Redes Neuronales en la Caracterización, Modelización y Predicción de Series Temporales Económicas en un Entorno Complejo. Universidad Pontificia Comillas –Madrid España. Póczos B; L˝orincz A (2009) Identification of Recurrent Neural Networks by Bayesian Interrogation Techniques Journal of Machine Learning Research 10 (2009) 515-554 Quinlan J. R (1986) Induction of Decision Tree. Kluwer Academic Publishers. Boston Rojas R(1996) Neural Networks: Springer-Verlag, Berlin. Russell Stuart y Norvig Peter.(2004) Inteligencia Artificial. Un Enfoque Moderno. 2º Edición. Pearso Prentice Hall- Madrid. JOHN MINGERS Shalkoff Robert (1992) Patter Recognition-Statistical Structural and Neural Approaches. John Wiley& Sona,Inc. New York. Ted. Y.W (2004) Data Mining Techniques Using Decision Tree Model in Materialised Projection and Selection View. Mathwarc and Soft. Computing 11 (2004) 56-66 31 32