Definición

Interés

Contribuciones

Preguntas

Algoritmos

Asignatura

Aprendizaje Automático (AA)

 Links con Pgms., datos,  compañías, conferencias, journals, etc.
*El material completo de esta página se encuentra en la BibliografíaPágina en construcción
¿Qué significa AA? Decimos que un agente o un programa de computación aprende de la experiencia E con respecto a cierta clase de tareas T con la medida de performance P, si su performance en la tarea T, medida por P, mejora con respecto a la experiencia E. 

Por ejemplo, un programa de computación que aprende a jugar al ajedrez debería mejorar su performance, medida por su habilidad de ganar en la clase de tareas correspondientes a jugar partidas de ajedrez, a través de la experiencia obtenida jugando partidas. 

Algunos ejemplos de Problemas de AA:
  • Tarea: Jugar ajedrez
  • Medida de Performance: Porcentaje de partidas ganadas a oponentes
  • Experiencia de Entrenamiento: Partidas jugadas.
  • Tarea: Reconocer y clasificar palabras manuscritas.
  • Medida de Performance: Porcentaje de palabras bien reconocidas o clasificadas
  • Experiencia de Entrenamiento: Una base de datos de palabras manuscritas reconocidas o clasificadas previamente.
  • Tarea: Conducir un vehículo en autopistas publicas utilizando sensores de visión 
  • Medida de Performance: Distancia promedio hasta que se produzca un error (desde el punto de vista de un juez humano)
  • Experiencia de Entrenamiento: Secuencia de imágenes y comandos de conducción del vehículo extraídos de un conductor humano.
volver

Asignatura AA 
DC-FCEyN-UBA

Key Resource
Links2Go Key Resource
Tópico Aprendizaje


 
 
 
Interés 

d
 
 

¿Por qué puede interesarme el AA si mi área es ... ?

volver
Influencia
Multi-           
disciplinaria   
a

Disciplinas que contribuyeron al AA 

  • Inteligencia Artificial
Contribuciones Principales: Aprendizaje de la representación simbólica de conceptos. Aprendizaje como un problema de búsqueda. Aprendizaje como enfoque en el mejoramiento de la resolución de problemas. Utilización de conocimiento previo conjuntamente con datos de entrenamiento para guiar el aprendizaje.
  • Probabilidades y Estádistica
Contribuciones Principales:Teorema de Bayes como base del calculo de probabilidades de hipótesis. Clasificador Bayesiano Ingenuo. Algoritmos para estimar valores de variables inobservadas. Caracterización de errores (por ej. sesgo y varianza) que ocurren cuando se estima la precisión de una hipótesis basada en una muestra limitada de datos. Intervalos de confianza y test estadísticos.
  • Teoría de Complejidad Computacional
Contribuciones Principales: Límites teóricos sobre la complejidad inherente de diferentes tareas de aprendizaje, medida en términos de esfuerzo computacional, número de ejemplos de entrenamiento, número de errores, etc. requeridos para aprender. 
  • Teoría de Control
Contribuciones Principales: Procedimientos que aprenden  a controlar procesos para optimizar objetivos predefinidos, y que aprenden a predecir el próximo estado de un proceso al que controlan.
  • Teoría de la Información
Contribuciones Principales: Medidas de entropía y de contenido de información. Método de Longitud de Codificación Mínima en aprendizaje. Codifigos óptimos y su relación con secuencias de entrenamiento óptimas para codificación  de hipótesis.
  • Filosofía
Contribuciones Principales: Navaja de Occam, lo que sugiere que la las hipótesis más simple es la mejor. Análisis de la justificación de la generalizacion sobre datos observados.
  • Psicología y Neurobiología
  • Contribuciones Principales: La ley potencial de la práctica, que enuncia que para un número muy grande de problemas de aprendizaje,  el tiempo de respuesta de las personas mejora con la práctica según la ley potencial . Estudios Neurobiológicos motivan modelos de aprendizaje basados en redes neuronales artificiales.
    volver
    Preguntas

    ¿Que debería saber para comenzar  a aplicar AA?

    • ¿ Qué algoritmos existen para aprender funciones de objetivo general, a partir de ejemplos de entrenamiento específicos ? ¿ Bajo qué parámetros los algoritmos mencionados convergen hacia dicha función, dada una cantidad suficiente de datos ?  ¿ Qué algoritmos funcionan mejor para cierto tipo de problemas y representaciones ?
    • ¿ Cuántos datos de entrenamiento son suficientes ? ¿ Qué límites generales pueden ser encontrados para relacionar la confianza en las hipótesis aprendidas con la cantidad de experiencia de entrenamiento y el carácter del espacio de la hipótesis del que aprende  ?
    • ¿ Cuándo y cómo un conocimiento previo puede guiar el proceso de generalización a partir de ejemplos ?  ¿ Puede ser útil el conocimiento previo aún cuando es aproximadamente correcto ?
    • ¿ Cuál es la mejor estrategia para elegir una próxima experiencia de entrenamiento, y como la elección de esta estrategia altera la complejidad del aprendizaje del problema? 
    • ¿ Cuál es la mejor manera de reducir la tarea de aprendizaje a uno o más problemas de aproximación de funciones ? O bien,  ¿ Qué funciones especificas debe intentar aprender el sistema ? ¿Puede ser automatizado este proceso ?
    • ¿ Cómo puede alterar su propia representación el que aprende, para mejorar su habilidad de representar y aprender la función objetivo ?
     
     
    volver
    Algoritmos 

    Breve comentario sobre los algoritmos más utilizados en AA

    volver
    Historia 

    Finalmente, un poco de historia ... y Quién es quién en AA 

    Durante años la investigación en aprendizaje automático se a ha realizado con distinto grado de intensidad, utilizando diferentes técnicas y haciendo énfasis en  distintos aspectos y objetivos. Dentro de la relativamente corta historia de esta disciplina, es posible distinguir tres periodos importantes, cada uno de los cuales esta centrado en distintos paradigmas: 
    •  Técnicas de modelado neuronal y de decisión
    •  Aprendizaje orientado a conceptos simbólicos
    •  Sistemas de aprendizaje de conocimiento con exploración de varias tareas de aprendizaje
    La característica distintiva del primer paradigma fue el interés de construir sistemas de aprendizaje de propósito general que partan con poco o ningún conocimiento inicial de la estructura. La investigación estuvo orientada a la construcción de una gran variedad de maquinas basadas en modelos  neuronales, con una estructura inicial aleatoria o parcialmente aleatoria. Estos sistemas fueron denominados Redes Neuronales o Sistemas Auto-organizativos. El aprendizaje en estos sistemas consiste en la realización de cambios incrementales en las probabilidades de que elementos del tipo neurona (típicamente unidades lógicas con umbral) puedan transmitir una señal. 
    Debido a la primitiva tecnología computacional de los primeros años, la mayoría de las investigaciones en esta área eran teóricas o relativas a la especifica construcción de sistemas de hardware con propósito especifico, tal como perceptrones [Rosenblatt, 1958],  pandemonium [Selfridge, 1959] and adelaine [Widrow, 1962]. El fundamento de estos trabajos fue hecho en la década de los cuarenta por Rashevsky y sus seguidores del área de biofísica [Rashevsky, 1948], y McCulloch y Pitts [1943], quienes descubrieron la aplicabilidad de la lógica simbólica para el modelado de actividades del sistema nervioso. Sobre una gran actividad de investigación en esta área, es posible mencionar los trabajos de [Ashby, 1960; Rosenblatt, 1958, 1962; Minsky y Papert, 1969; Block, 1961;  Yovits, 1962; Widrow, 1962; Culberson, 1963; Kazmierczak, 1963]. 
    Otro tipo de investigación relacionada con el área es la concerniente a la simulación de procesos evolutivos, que a través de operaciones aleatorias de mutación   y  de “selección” natural pueden crear un sistema capaz de realizar un comportamiento inteligente [Friedberg, 1958, 1959; Holland, 1980]. 
    La experiencia adquirida en estas áreas engendro la nueva disciplina de Reconocimiento de Patrones y condujo al desarrollo sistemas de decisión en aprendizaje automático.  En dichos casos, el aprendizaje es igualado con la adquisición de funciones lineales, polinomiales, o formas relacionadas con funciones discriminantes a partir de un conjunto de ejemplos de entrenamiento [Nilsson, 1965; Koford, 1966; Uhr, 1966; Highleyman, 1967]. Uno de los sistemas mas exitosos y conocidos dentro de esta clase fue el programa de juego de damas de Samuel  [Samuel, 1959, 1963]. Este programa estaba capacitado para adquirir por medio de aprendizaje, un mejor nivel de performance. Algo diferente, pero relacionado,  son las técnicas que utilizan métodos de decisión estadística para el aprendizaje de reglas de reconocimiento de patrones [Sebestyen, 1962; Fu, 1968; Watanabe, 1960; Arkadev, 1971; Fukananga, 1972; Ruspini, 1969, Duda & Hart, 1973, Bezdek, 1973; Kanal, 1974]. 
    Como investigación paralela al modelado a través de redes neuronales y sistemas d e decisión, se realizaron investigaciones relacionadas con teoría de control,  sistemas  de control adaptativos capaces de ajustar automáticamente sus parámetros con el objetivo de mantener una performance estable en presencia de perturbaciones [Truzal, 1955; Davies, 1970; Mendel, 1970; Tsypkin, 1968; Fu, 1971, 1974]. 
    Posteriormente, los resultados prácticos realizados por modelos basados en redes neuronales y sistemas de decisión encontraron ciertas limitaciones. Las altas expectativas mantenidas por los trabajos originales no se cumplieron, y la investigación en estas áreas comenzó a declinar.  Algunos resultados teóricos revelaron fuertes limitaciones, como por ejemplo en el aprendizaje del tipo perceptron simple [Minsky y Papert, 1969]. 
    Un segundo paradigma comenzó a emerger en los sesenta, a partir de los trabajos de psicólogos e investigadores en inteligencia artificial, sobre el modelado del aprendizaje humano [Hunt et al., 1963, 1966]. El paradigma utilizaba estructuras lógicas o de grafos en vez de métodos numéricos o estadísticos. Los sistemas aprendían descripciones simbólicas que representaban un mayor nivel de conocimiento de las estructuras y conceptos adquiridos [Hunt & Hovland, 1963; Feigenbaum, 1963; Hunt et al., 1966; Hilgard, 1966; Simon & Lea, 1974; Bongard, 1970; Uhr, 1966; Karpinsky & Michalski, 1966]. 
    Una influencia importante en esta área de trabajo fue el sistema de aprendizaje estructural de Winston [Winston, 1975],  como así también los trabajos realizados con el objetivo de aprender conceptos estructurales a partir de ejemplos, incluyendo los programas de aprendizaje basados en lógica inductiva [Michalski, 1972, 1973, 1978; Hayes-Roth 1974; Hayes-Roth & McDermott 1978; Mitchell, 1978]. 
    El tercer paradigma representa el periodo de investigación mas reciente, comenzando a partir de mediado de los setenta. Las investigaciones en este sentido han sido orientadas al aprendizaje de conceptos a partir de ejemplos, utilizando una amplia variedad de técnicas, muchas de las cuales se orientan a los sistemas basados en conocimiento.  Se ha hecho especial énfasis en el uso de conocimiento orientado a tareas y en las restricciones que este provee, que guían el proceso de aprendizaje. Además del énfasis en el aprendizaje a partir de ejemplos, se trabaja en aprendizaje a partir de instrucciones, por analogía y descubrimiento de conceptos y clasificaciones. En contraste con esfuerzos previos, las nuevas investigaciones tienden a incorporar heurísticas, y utilizar ejemplos de entrenamiento para el aprendizaje de conceptos 
    volver

    Aprendizaje basado en árboles de decisión 

    Es uno de los métodos más ampliamente utilizados para inferencias inductivas. Es un método para la aproximación de funciones de valores discretos, robusto frente a datos con ruido y capaz de aprender expresiones disjuntas. Existe una familia de algoritmos de aprendizaje de árboles de decisión que incluye los ampliamente utilizados: ID3, C4.5, y ASSISTANT. Estos métodos buscan un espacio de hipótesis completamente expresivo y de esta manera evitan las dificultades que surgen de espacios de hipótesis restringidos. Su sesgo inductivo es la preferencia de árboles pequeños por sobre los grandes. 
    volver
    Aprendizaje basado en redes neuronales artificiales

    Proveen un método practico y general para el aprendizaje a partir de ejemplos de funciones reales, discretas e intervalares. Algoritmos como el Backpropagation utilizan el gradiente descendente para ajustar los parámetros de la red de forma que se ajusten mejor a los datos de entrenamiento de entrada-salida. Este aprendizaje es robusto frente a la aparición de errores en los datos de entrenamiento y han sido aplicados con éxito a problemas tales como la interpretación de escenas visuales, reconocimiento del habla y estrategias de control de robots. 
    Charla del 18/5
    volver
    Aprendizaje probabilístico y Bayesiano

    El razonamiento Bayesiano provee un acercamiento probabilístico a la inferencia. Esta basado en asumir que las cantidades de interés están gobernadas por distribuciones de probabilidad y que las decisiones optimas pueden ser realizadas por medio de razonamientos sobre estas probabilidades y datos observables. Provee una visión cuantitativa para pesar la evidencia que soporta distintas hipótesis. El razonamiento Bayesiano provee las bases para el aprendizaje de algoritmos que manipulan directamente probabilidades, y un ámbito para analizar  como operan otros algoritmos que no las manipulan explícitamente. 
    volver
    Aprendizaje basado en instancias

    A diferencia de aquellos métodos de aprendizaje que construyen una descripción general, y explícita d la función objetivo a partir de los datos de entrenamiento, estos métodos simplemente guardan dichos datos.  La generalización sobre estos ejemplos se pospone hasta que una nueva instancia debe ser clasificada. Cada vez que una nueva instancia  es encontrada, se calcula su relación con los ejemplos previamente guardados con el propósito de asignar un valor de la función objetivo para la nueva instancia. El aprendizaje basado en instancias incluye el vecino mas cercano y métodos de regresión pesados localmente que asumen que las instancias pueden ser representadas como puntos en el espacio euclideo. Incluyen también a los métodos de razonamiento basado en  casos, que utilizan una representación mas compleja y simbólica de los datos. Los métodos de aprendizaje basados en instancias son denominados “perezosos” pues dilatan el procesamiento hasta que una nueva instancia deba ser clasificada.  Una ventaja de este retraso es que  no se estima la función objetivo una vez para todo el espacio  de instancias, sino que se hace en forma local y diferente para cada nueva instancia a clasificar. 
    volver
    Aprendizaje evolutivo

    Uno de los representantes de esta clase de algoritmos son los algoritmos genéticos. El aprendizaje de estos algoritmos esta basado en la simulación de  la evolución. Las hipótesis que se aprenden originalmente fueron representadas como cadenas de bits, cuya interpretación depende del tipo de aplicación. Dichas hipótesis pueden llegar a ser descriptas por expresiones simbólicas   o aun por programas de computación. La búsqueda de una hipótesis apropiada comienza con una población, o colección, de hipótesis iniciales. Los miembros de la actual población pasan a la próxima generación,  por medio de operaciones tales como mutación randomica o cruce,  asociadas a procesos de evolución biológica. En cada paso, la hipótesis es evaluada en base a una medida de aptitud, y las mejores son seleccionadas en forma probabilistica para pasar a la próxima generación. Estos algoritmos han sido aplicados en forma exitosa a una variada gama de tareas de aprendizaje y a otros problemas de optimización. Por ejemplo, han sido utilizados para aprender una colección de reglas de control de un robot y para optimizar la topología y los parámetros de una red neuronal. 
    volver
    Aprendizaje lógico inductivo

    Una de las mas expresivas y humanamente legibles representaciones para las hipótesis aprendidas son las reglas Si-Luego-Entonces. Existen varios  algoritmos que  utilizan este tipo de representación. En particular, uno de ellos que emplea reglas que contienen variables, llamadas cláusulas de Horn de primer orden.  Debido a que un conjunto de estas cláusulas puede ser considerado un programa en el lenguaje lógico de programación Prolog, su aprendizaje es generalmente denominado programación lógica inductiva. 
    volver
    Aprendizaje por refuerzo

    Este tipo de aprendizaje se refiere a como un agente autónomo que actúa en un entorno, puede aprender a elegir acciones optimas que lo conduzcan a alcanzar objetivos. Este problema genérico cubre tareas tales como el aprendizaje del control de un robot movil, aprendizaje de cómo optimizar operaciones en una factoría, y aprendizaje de cómo realizar jugadas en juegos de tableros. Cada vez que un agente realiza una acción en su entorno, un entrenador provee un premio o penalización que indica la bondad del estado resultante. Por ejemplo, cuando se entrena a un agente para jugar un juego, el entrenador debe proveer una recompensa positiva cuando el juego es ganado, negativa si se pierde y cero en los otros estados. La tarea del agente es la de aprender a partir de esta recompensa indirecta y retrasada, a elegir secuencias de acciones que produzcan la mayor acumulación de recompensas. Un ejemplo de estos tipos de algoritmos es el Q-learning, que permite adquirir estrategias de control optimas a partir de recompensas retrasadas, aun cuando el agente no posee un conocimiento inicial del efecto de las acciones en el entorno. Estos algoritmos están relacionados con  la programación dinámica, frecuentemente empleada en la resolución de problemas de optimización. 

      volver
     
     
     Biología Molecular 

     
    • Análisis inductivo de la estructura super-secundaria de proteínas: Propiedades, Base de Datos PRL,  -hélices y pares de alfa-hélices, de plegamientos B.
    • Inducción simbólica en secuencias de DNA y proteínas: Arboles de decisión sobre patrones regulares, Búsqueda de patrones Peptides en un espacio de hipótesis lógicas de predicados.
    • Regulación molecular de  alfa-Virus en Prolog
    • Codificación basada en conocimiento de la topología de proteínas en Prolog
    • Predicción de la topología proteica a través de satisfacción de restricciones
    • Programación Lógica Inductiva en Biología Molecular: “Trimethroprim Analogues”, Diseño de drogas de “Termolysin Inhibitors”, Predicción de alfa-hélices
    • Modelos de proteínas 2-D para la búsqueda de su conformación
    • Simulación de “protein folding” por medio de técnicas de optimización: Resultados de predicción y localización de cadenas secundarias.
    • Optimización multicriterio para la conformación de proteínas
    • Protein “Docking”: Restricciones de distancia y Energía.
    • Predicción de estructura secundaria
    • Predicción de ángulos de torsión
    • Reconocimiento de límite “Exon-Intron”
    • Detección de estructuras super-secundarias
    • Representación basada en conocimiento de materiales y métodos
    • Exploración basada en conocimiento en patologías moleculares
    • Planeamiento de experimentos de clonado con Molgen
    • Sistemas expertos para la purificación de proteínas
    • Predicción basada en conocimiento de la estructura de genes
    • Inteligencia Artificial para la interpretación del  "NMR spectra": Resonancia magnética nuclear, Asistencia a proteínas NMR

     
     
      volver
      Economía, Marketing y Finanzas
    • Tendencias geográficas de ventas
    • Análisis de canasta de compras (“market basket”)
    • Perfiles demográficos
    • Perfiles de comportamiento de clientes
    • Series Temporales 
    • Manejo de Portfolio
    • Fraudes e intromisiones no deseadas
    Por medio de ...
    •  Análisis de patrones de clientes que permitan detectar los productos mas rentables que satisfagan sus necesidades.
    • Ventas cruzadas de nuevos productos en  base al análisis de perfiles de clientes, preferencias y predicciones sobre sus futuros patrones de compras.
    • Retención de clientes por medio de prevención  temprana de insatisfacciones.
    • Reducción del fraude detectando en forma temprana conductas  y transacciones fraudulentas.
    • Análisis de datos por medio de búsquedas que permitan determinar anticipadamente tendencias y anomalías con el objetivo de obtener conocimiento e ideas sobre futuras acciones.
    • Modelado de datos que habilita al sistema aprendido a buscar automáticamente una combinación de datos que prediga exitosamente un resultado.
    • Modelización de sistemas de riesgo no-normales y aplicación de sistemas de decisión.
    • Modelización, preparación y predicción para demandas de servicios.
      volver
     
    Ingeniería, Control y Robótica 
    • Detección y predicción de fallas 
    • Monitoreo de procesos de manufactura 
    • Modelado de sistemas altamente no lineales 
    • Robótica, localización y sistemas de almacenamiento
      volver
     
     
    Medicina y Salud 
     
    • Tendencias de salud 
    • Descubrimiento de patrones geográficos 
    • Clasificación y caracterización de pacientes 
    • Sistemas expertos de apoyo en diagnósticos 
    • Análisis causal (ej. Patrones de posibles causas de mortalidad) 
      volver
     
     
    Bibliografía Principal
       
    • Mitchell, T. M. Machine learning, Boston, McGraw-Hill, 1997. 
    Bibliografía Adicional

     

     

    • Holland, J.H., Holyoak, K.J., Nisbett, R. E., Thagard, P. R. Induction – Processes of Inference, Learning, and Discovery, Cambridge, MIT Press, 1989. 
    • Michalewicz, A. Genetic algorithms + data structures = evolution programs, Nueva York, Springer, 1999, 3a ed. 
    • Michalski, R.S., Bratko, I., Kubat, M. Machine learning and data mining, New York, Wiley, 1998. 
    • Michalski, R.S., Carbonell, J.G. y Mitchell, T.M. (comps.) Machine Learning: An Artificial Intelligence Approach, Vol. 1, San Mateo, 1983. 
    • Nienhuys, S.-H., de Wolf, R.: Foundations of Inductive Logic Programming, Berlin, Springer Verlag, 1997. 
    • Nilsson, N.J. Introduction to Machine Learning (draft), 1996. 
    • Russell, S., Norvig, R.: Artificial Intelligence - A modern approach, Upper Saddle River, New Jersey, Prentice-Hall, 1995. 
    • Steffen Schulze-Kremer, Molecular Bioinformatics, Algorithms and Applications, Walter de Gruyter, Berlin, 1996.
    • Deboeck Guido J., Trading on the Edge, John Wiley & Sons, Inc., USA, 1994.
    • Z. Michalewicz, D. B. Fogel, How to Solve It: Modern Heuristics, Springer, 2000
    • R. Hecht-Nielsen, Neurocomputing, Addison-Wesley, 1990 (Redes Neuronales)
    • J. Hertz, A. Krogh, R. Palmer, Introduction to the theory of Neural Computation, Addison-Wesley, 1991 (Redes Neuronales)
    • J. Freeman, D. Skapura, Neural networks, Addison-Wesley, 1991 (Redes Neuronales)

    •  
  •  
  •    volver
     
      Comentarios por mail a jalvarez@dc.uba.ar