Universidad de Oviedo Centro de Inteligencia Artificial SISTEMAS INTELIGENTES T7: Introducción al Aprendizaje Automático {jdiez, juanjo} @ aic.uniovi.es Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Índice • Definición de Aprendizaje Automático • Objetivos • Aplicaciones: características, ejemplos • Diseño de sistemas de aprendizaje inductivo ° Experiencia de entrenamiento Función objetivo: representación Aprendizaje: aproximación de la función objetivo ° Evaluación ° ° • Técnicas de aprendizaje: tipos, conceptos básicos y ejemplos Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Definiciones • Inducción: generalizar a partir de observaciones para sintetizar conocimiento de más alto nivel • Aprendizaje Inductivo: razonamiento hipotético de casos particulares a casos generales • Aprendizaje: ° ° ° es la identificación de patrones, de regularidades, existentes en la evidencia es la predicción de observaciones futuras con plausibilidad es eliminación de redundancia = compresión de información Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Una Definición de Aprendizaje Automático Un programa de ordenador APRENDE a partir de una experiencia E a realizar una tarea T (de acuerdo con una medida de rendimiento P), si su rendimiento al realizar T, medido con P, mejora gracias a la experiencia E [Mitchell, 97] Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Objetivos • Producir programas capaces de mejorar su rendimiento a través de la experiencia Mejorar al realizar una tarea T ° Respecto a una medida de rendimiento P ° Gracias a la utilización de la experiencia E Construir sistemas capaces de adquirir el conocimiento necesario para realizar tareas, usando la experiencia acumulada ° • Proporcionar a los expertos de un dominio conocimiento explícito de cómo se resuelve un determinado problema Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Disciplinas relacionadas • Inteligencia Artificial: representación simbólica de conceptos, búsquedas, sistemas expertos,… • Estadística: caracterización de errores, muestras, intervalos de confianza, test estadísticos,… • Métodos bayesianos: el teorema de Bayes es clave para el cálculo de la probabilidad de las hipótesis, … • Teoría de Control: procedimientos para el control de procesos • Teoría de la Información: medidas de entropía, codificación de hipótesis, MDL, … • Teoría Computacional: límites teóricos de la complejidad de las tareas de aprendizaje, … • Psicología: ley de la energía de la práctica, más experto, más tiempo, más difícil mejorar, … • Neurología: inspira las redes neuronales artificiales, … • Filosofía: la navaja de Ocamm, la hipótesis más simple es la mejor, … Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Algunas aplicaciones (clásicos) (I) • Conducir un vehículo. ALVINN 100 Km/hora durante 150 Kms en autopista, RALPH, más de 4500 kms desde Pittsburgh hasta San Diego • Reconocimiento del habla. SPHINX Reconocimiento de fonemas y de palabras • Jugador de backgammon de nivel mundial TD-Gammon Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Algunas aplicaciones (clásicos) (II) • Clasificación de estructuras astronómicas Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Aplicaciones típicas • Problemas donde no hay expertos humanos ° Importancia económica de qtls en secuencias genéticas • Tareas que los humanos hacemos pero no podemos describir cómo las hacemos ° Reconocimiento de caracteres • Problemas donde la función objetivo cambia frecuentemente ° Predicciones bursátiles • Situaciones donde cada usuario tiene su propia función objetivo ° Adaptación de interfaces, spam, gestión de correo electrónico • Problemas donde el volumen de datos hace imposible a los humanos realizar cualquier análisis ° Técnicas de Data-Mining capaces de encontrar relaciones dentro de grandes BDs intratables a ojo Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Más ejemplos de aplicaciones de AA • Carciogénesis de compuestos químicos • Perfil de clientes • Concesión de créditos hipotecarios • Sistemas automáticos de filtrado (correo, noticias) • Entornos personalizados (buscadores, ventas,…) • Construcción automática de portales web • Análisis de textos • Sistemas de reconocimiento de texto y voz • Robots (conductores, carteros, jugadores de fútbol,…) • Juegos (DEEP-BLUE) • … Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Algunos problemas que no son de AA • Aprender a ordenar una lista de números ° Podemos hacerlo más rápido sin necesidad de la experiencia, conocemos el concepto de orden y sabemos aplicarlo • Aprender la velocidad a la que cae un objeto desde una cierta altura ° Conocemos el modelo físico que sigue ese proceso, podemos calcularlo precisa y eficientemente AA: resuelve problemas que no se pueden modelar, pero de los que tenemos (o podemos adquirir) experiencias sobre su resolución Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Etapas para el diseño de sistemas de AA 1. Elegir la experiencia que usaremos para entrenar el sistema de aprendizaje 2. Definir el tipo de función objetivo que pretendemos aprender 3. Determinar la representación que utilizaremos para la función objetivo 4. Seleccionar el algoritmo de AA a utilizar y aplicarlo para aprender la función objetivo 5. Evaluar el sistema Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Diagnóstico de una enfermedad T = diagnosticar la presencia de una enfermedad P = % diagnósticos correctos E = datos médicos de pacientes y el diagnóstico correcto realizado por un médico Habrá que considerar: – ¿Qué parámetros médicos usaremos para describir el estado de los pacientes? ° Seguramente dispondremos de mucha información y no toda será útil – ¿Qué tipo de conocimiento es más útil para aprender a diagnosticar la enfermedad? ° Queremos aprender a diferenciar pacientes de dos clases: los que padecen la enfermedad y los que no – ¿Es una herramienta consultiva o predictiva? Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Producción lechera T = predecir la producción de leche de vacas P = diferencia entre la predicción y la producción real E = datos genéticos de vacas y su producción lechera Habrá que considerar: – ¿Qué información genética usaremos para describir los animales? ° La selección de la información genética que creemos influye en la producción lechera será decisiva – ¿Qué tipo de conocimiento es más útil para aprender a predecir la producción futura? ° Queremos aprender a asignar un valor numérico a cada animal que será la leche que producirá Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Calidad cárnica de una canal T = valorar la calidad de acuerdo a una escala definida P = grado de acierto de las calidades propuestas E = canales y la calificación asignada por los expertos Habrá que considerar: – ¿Cómo representamos las características de la canal de un animal? ° Podemos usar imágenes, medidas, o variables físicoquímicas de la carne – ¿Qué tipo de conocimiento es el adecuado para valorar la calidad de acuerdo a una escala? ° Situación intermedia entre aprender clases y asignar valores numéricos: tenemos clases pero entre ellas existe una relación de orden Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Organizador de correo electrónico T = ordenar el correo electrónico entrante de acuerdo a su importancia para el usuario P = concordancia entre el orden propuesto y el orden de lectura del usuario E = gestión diaria del correo por parte del usuario Habrá que considerar: – ¿Cómo representamos las características de un correo electrónico? ° Usar el título, el remitente, el contenido, … – ¿Qué tipo de conocimiento es el adecuado para ordenar los correos de acuerdo a su importancia? ° El sistema se presta a valorar numéricamente cada correo, o a determinar si uno es más importante que otro. Enfoques distintos, diferentes sistemas de AA – ¿Cómo medir la utilidad y el rendimiento del sistema? Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Tipos de clientes de una empresa T = descubrir distintos grupos de clientes P = eficacia de la campaña de publicidad posterior E = hábitos de consumo de los clientes Habrá que considerar: – ¿Cómo representamos las características de un cliente? ° Selección de las características que sean más útiles para diferenciarlos – ¿Qué tipo de conocimiento necesitamos generar? ° En este caso pretendemos agruparlos sin disponer previamente de otros clientes que han sido agrupados ° No hay clases predefinidas ni valores numéricos que asignar Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Jugador de damas T = jugar a las damas P = % partidas ganadas frente a oponentes E = ¿partidas jugadas? Habrá que considerar: ° ¿Cómo representamos las situaciones de una partida? » No resulta fácil describir un tablero o al menos hay muchas formas posibles de hacerlo ° ¿Qué tipo de conocimiento es más útil para aprender a jugar partidas de damas? » Queremos aprender a decidir cuál es el movimiento más apropiado dada una posición del tablero » No aprendemos ni clases ni asignaremos números » ¿Hay otra forma de hacerlo? Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Elegir la experiencia de entrenamiento (I) • Clave en el proceso de aprendizaje: es a partir de lo que generalizamos. Si es mala, incompleta,…, saldrá seguro mal! • Hay problemas en los que nos vendrá dada ° Diagnóstico de enfermedades: la experiencia procederá de los datos médicos de pacientes junto al diagnóstico que los médicos hicieron • ¿Es representativa del problema? ¿Hasta que punto estamos modelando bien el problema con la experiencia utilizada? • Podemos usar maestros como modelos o no: ° ° ° ° A veces carne A veces A veces A veces correo los tenemos: diagnóstico de enfermedades, calidad procede de una variable medible: producción de leche no lo necesitamos para la tarea: agrupar clientes necesitaremos procesos para capturarla: gestor de Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Elegir la experiencia de entrenamiento (II) • Diagnóstico de enfermedades: < variables médicas > <SI | NO> • Producción lechera: < descripción genética de una vaca > <Producción anual en litros> • Organizador de correo electrónico: < remitente, título, tamaño > < Valoración del usuario > < palabras [en/no en] el correo> < Orden de lectura > < este correo > lo leyó antes que < este correo > Dependiendo de la representación de la experiencia elegida, estaremos enfocando el problema hacia un tipo de aprendizaje Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Elegir la experiencia de entrenamiento (III) • Calidad cárnica de una canal: < foto de la canal > < categoría: S | E | U | R | O | P > < medidas de la canal > < categoría: numérica > • Tipos de clientes: < datos del cliente > No hay clase, ni número que aprender a predecir • Jugador de damas < posición del tablero > < movimiento elegido > < descripción de una posición > < valoración de la posición > Hay representaciones que resultarían más difíciles de aprender que otras Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Etapas para el diseño de sistemas de AA 1. Elegir la experiencia que usaremos para entrenar el sistema de aprendizaje 2. Definir el tipo de función objetivo que pretendemos aprender 3. Determinar la representación que utilizaremos para la función objetivo 4. Seleccionar el algoritmo de AA a utilizar y aplicarlo para aprender la función objetivo 5. Evaluar el sistema Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Definir el tipo de la función objetivo (I) • ¿Qué queremos aprender exactamente? Definimos cómo es la función objetivo que queremos aprender • Una misma tarea se puede aprender de distintas formas, hay que concretar! • Existe una función objetivo (perfecta) f que desconocemos • El aprendizaje aproximará esta función mediante una función del mismo tipo que denominaremos hipótesis, h • Sencillez, aprender lo necesario Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Definir el tipo de la función objetivo (II) • Diagnóstico de enfermedades ° f : Paciente → {SI , NO} • Producción de leche ° f : Vaca → ℜ • Calidad de la carne ° f : Canal → { S,E,U,R,O,P} • Jugador de damas ° ° ° f1 : Tablero → Movimiento (difícil de calcular) f2 : Tablero → ℜ (más operativa) Si determinamos f2, es fácil decidir el mejor movimiento dada una posición (es decir, tener f1) Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Datos de entrenamiento (I) • La experiencia a utilizar y el tipo de función objetivo se plasma en la definición de los datos que se emplearán para aprender • El proceso de aprendizaje también se denomina entrenamiento • Los datos usados durante el aprendizaje (entrenamiento) se denomina conjunto de entrenamiento Atributos Atr-1 … Atr-n Clase(opcional) ejemplo 1 clase ej-1 … … ejemplo m clase ej-m Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Datos de entrenamiento (II) • Atributos: describen los ejemplos ° ° Numéricos: nº reales o enteros Simbólicos o Nominales: etiquetas sin relación de orden • Clase: según su tipo estaremos ante distintos tipos de aprendizaje – Aprendizaje supervisado: disponemos de una clase asociada a cada ejemplo ° Conjunto finito de clases simbólicas: clasificación (Ej: diagnóstico enfer) ° Conjunto finito de clases simbólicas con una relación de orden entre ellas o valores enteros: regresión ordinal (Ej: calidad carne) ° Numérica (real): regresión (Ej: producción de leche) – Aprendizaje no-supervisado: sin clase ° No tenemos o nos interesa (Ej: tipos de clientes) Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Datos de entrenamiento (III) Sepal length 5.1 4.9 7.0 6.4 6.3 5.8 Age Sepal width 3.5 3.0 3.2 3.2 3.3 2.7 Young Pre-presbyopic Pre-presbyopic Presbyopic Spectacle prescription Myope Myope Myope Hypermetrope Cycle time (ns) 125 29 480 480 Main memory (Kb) 256 6000 8000 32000 512 8000 1000 4000 Petal length 1.4 1.4 4.7 4.5 6.0 5.1 Astigmatism No No Yes No Cache (Kb) 256 32 32 0 Petal width 0.2 0.2 1.4 1.5 2.5 1.9 Tear production rate Reduced Normal Normal Reduced Channels MIN 16 8 0 0 MAX 128 32 0 0 Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Type Iris setosa Iris setosa Iris versicolor Iris versicolor Iris virginica Iris virginica Recommended lenses None Soft Hard None Performance 198 269 67 45 Universidad de Oviedo Centro de Inteligencia Artificial Problemas con los datos de entrenamiento • Mal de la dimensionalidad: muchos sistemas de AA sufren (se ralentizan) con la dimensión (nº de atributos) del cjto de entrenamiento • Ruido: ejemplos con la clase mal etiquetada, o atributos con valores con ruido ° Sensores poco fiables, captura manual de datos, manipulación de datos, etc • Atributos mal elegidos: ° ° Atributos irrelevantes para el problema: no influyen en el conocimiento que trata de inducirse Atributos redundantes (mal de la dimensionalidad) • Missing values: puede ocurrir que para algunos ejemplos desconozcamos el valor de alguno de sus atributos • Relación entre el nº de atributos y el nº de ejemplos disponibles ° Muchos atributos y pocos ejemplos: el conocimiento inducido puede ser poco fiable Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Técnicas de Aprendizaje • Aprendizaje no supervisado: el conjunto de observaciones no tienen clases asociadas ° ° ° Se emplea para la Descripción Objetivo: detectar regularidades en los datos Agrupaciones (clustering), contornos, asociaciones, valores anómalos • Aprendizaje supervisado: cada observación incluye un valor de la clase a la que corresponde ° ° ° Se emplea para la Predicción Se aprende un clasificador Sirven para explicar las causas que llevan a tomar una decisión • Aprendizaje por refuerzo: el sistema recibe recompensas en función de las decisiones que toma Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Aprendizaje Inductivo No Supervisado Datos de Entrenamiento Sistema de Aprendizaje Procesos Inductivos Agrupamiento Análisis Dependencias Conocimiento Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Visualización Centro de Inteligencia Artificial Universidad de Oviedo Aprendizaje No Supervisado ¿Podemos agrupar los ejemplos en base a sus características? Atributo 2 Atributo 1 Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Aprendizaje Inductivo Supervisado Datos de Entrenamiento Sistema de Aprendizaje Proceso Inductivo Nuevos casos Modelo Conocimiento Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Predicción Universidad de Oviedo Centro de Inteligencia Artificial Tipos de Aprendizaje Supervisado Dependiendo del número y tipo de clases: • clase discreta: se conoce como clasificación ° Ejemplos: » determinar la variedad de una especie de flores » estimar el partido al que voto de una persona ° Si sólo hay dos clases (V y F) se conoce como aprendizaje de conceptos » determinar si una persona tiene cáncer • clase continua o discreta ordenada: se denomina regresión (o estimación) y regresión ordinal ° Ejemplos: » estimar la pureza en la producción de zinc » clasificar productos agroalimentarios en escalas discretas Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Hipótesis del Aprendizaje Inductivo Si una hipótesis aproxima bien la función objetivo sobre un conjunto de entrenamiento suficientemente grande, también aproximará bien la función objetivo sobre los ejemplos no observados Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Aprendizaje Supervisado ¿Podemos aprender a clasificar ejemplos de estas tres clases? Atributo 2 Atributo 1 Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Aprendizaje Inductivo Supervisado Clase Descripción de los objetos Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Etapas para el diseño de sistemas de AA 1. Elegir la experiencia que usaremos para entrenar el sistema de aprendizaje 2. Definir el tipo de función objetivo que pretendemos aprender 3. Determinar la representación que utilizaremos para la función objetivo 4. Seleccionar el algoritmo de AA a utilizar y aplicarlo para aprender la función objetivo 5. Evaluar el sistema Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Representación de la función objetivo (I) • Existen diferentes tipos de funciones dependiendo de la clase de problema que estemos tratando: clasificación, regresión, agrupación, … • Diferentes modelos: ° ° Simbólicos (reglas, árboles de decisión, PLI,…) Subsimbólicos (redes neuronales, svm, …) • La elección depende del uso que vaya a tener ° ° Predicción: puede ser simbólico o subsimbólico Explicación: debe ser simbólico Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Representación de la función objetivo (II) • Diagnóstico de enfermedades ° Necesitamos conocimiento simbólico, si queremos ofrecer explicaciones. Podemos usar reglas o árboles de decisión • Producción de leche ° Es un problema de regresión, podemos optar por representarla mediante una red neuronal • Calidad de la carne ° Podemos usar métodos bayesianos para determinar la probabilidad de que pertenezca a cada una de las clases en función del valor de los atributos • Organizador de correo ° Podemos usar una solución basada en máquina de vectores soporte que nos permita ordenar los correos de acuerdo a su importancia Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Representación de la función objetivo (III) • Jugador de damas ° Podemos elegir una combinación lineal de los atributos empleados para describir la posición del tablero » » » » » » ° ° x1: x2: x3: x4: x5: x6: nº nº nº nº nº nº de de de de de de piezas negras que quedan piezas blancas que quedan damas negras que quedan damas blancas que quedan piezas negras que están atacadas piezas blancas que están atacadas ¿Demasiado simple? Podría no ser lineal, por ejemplo, un polinomio de un cierto grado Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Representación de la función objetivo (IV) • Al fijar la representación, estamos definiendo un espacio de búsqueda para la función h (hipótesis) con la que pretendemos aproximar la función objetivo f • A este espacio se le denomina espacio de hipótesis • El espacio de hipótesis puede no contener a la función objetivo ° Si es así, nuestra hipótesis está condenada a equivocarse sobre algunos ejemplos (lo cual no siempre es grave) • Cuanto más complejo sea el espacio de hipótesis: ° ° ° Más difícil será aprender la función h Más ejemplos de entrenamiento serán necesarios Pero más capacidad tendrá para aproximar la función objetivo f • En muchas ocasiones, cuando no se tiene muy claro que tipo de representación es más adecuada, se prueban varias y se evalúa la calidad de las soluciones alcanzadas (evaluación) Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Técnicas de Aprendizaje Supervisado Separadores lineales Redes Neuronales Multicapa RBF Reglas/árboles de decisión Naive Bayes Classifier Basadas en ejemplos Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Etapas para el diseño de sistemas de AA 1. Elegir la experiencia que usaremos para entrenar el sistema de aprendizaje 2. Definir el tipo de función objetivo que pretendemos aprender 3. Determinar la representación que utilizaremos para la función objetivo 4. Seleccionar el algoritmo de AA a utilizar y aplicarlo para aprender la función objetivo 5. Evaluar el sistema Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Seleccionar y aplicar el algoritmo de AA (I) • Para cada tipo de función objetivo, o espacio de hipótesis o tipo de conocimiento tendremos distintos algoritmos que pueden aplicarse ° Ej: si queremos obtener un separador lineal, podríamos usar: una red neuronal, una máquina de vectores soporte, el algoritmo OC1, y otros muchos… • Es posible utilizar varios algoritmos distintos o diferentes implementaciones y comparar posteriormente su rendimiento ° Ej: hay muchas implementaciones diferentes de máquinas de vectores soporte con distintos sistemas de optimización • A veces se selecciona el algoritmo o la implementación en función de la plataforma o de otras herramientas con las que deba utilizarse Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Seleccionar y aplicar el algoritmo de AA (II) • Parámetros: todos los sistemas tienen algún tipo de parámetro • Básicamente sirven para evitar dos factores: ° ° El ruido de los datos de entrenamiento El grado de ajuste a los datos • Es habitual ejecutar el algoritmo de AA con distintos parámetros para evaluar y comparar su rendimiento • A veces se utilizan algoritmos genéticos para ajustar los parámetros de un AA Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Técnicas de Aprend. No Supervisado • Técnicas de clustering: ° ° ° ° ° Clustering jerárquicos k-means Mapas auto-organizados (SOM) [Kohonen, 95] EM [Dempster et al. 77] Cobweb [Fisher, 87] • Análisis exploratorios: ° ° ° ° Estudios de correlaciones Detección datos anómalos Asociaciones y dependencias Análisis de dispersión Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Técnicas de Aprendizaje Supervisado • Árboles de Decisión: ° ° Clasificación: ID3, C4.5, CART Regresión: CUBIST • Sistemas basados en reglas: ° C4-5rules, CN2, ABANICO, INNER, … • Aprendizaje basado en instancias ° ° ° k-NN (Nearest Neighbor) IB Múltiples sistemas de reducción de instancias: DROP, CNN, BETS, … • Híbridos: ° RISE • Redes de Neuronas Artificiales (ANN): ° ° Perceptron Redes Multicapa (backpropagation) • Clasificadores Estadísticos ° Naive Bayes • Basados en kernels: ° SVM (Máquina de vectores soporte) Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Etapas para el diseño de sistemas de AA 1. Elegir la experiencia que usaremos para entrenar el sistema de aprendizaje 2. Definir el tipo de función objetivo que pretendemos aprender 3. Determinar la representación que utilizaremos para la función objetivo 4. Seleccionar el algoritmo de AA a utilizar y aplicarlo para aprender la función objetivo 5. Evaluar el sistema Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Evaluación • ¿El sistema funciona bien en la práctica? ¿Generaliza bien en situaciones no vistas durante el entrenamiento? • Tratamos de analizar si las regularidades observadas en la muestra (finita) usada en el entrenamiento se mantiene en la distribución que representa • Aprendizaje supervisado: – Normalmente se separan algunos ejemplos, no se utilizan para entrenar, y con ellos se evalúa la calidad de la hipótesis inducida – Hay distintas técnicas de evaluación: ° Entrenamiento-test: dos conjuntos separados ° Hold-out: 66% ejemplos para entrenar, 33% para test ° Cross-Validation: se generan distintos cjtos de entrenamientotest ° Leave-one-out: se entrenan con todos los ejemplos menos uno y luego se evalúa sobre ese ejemplo Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Precisión de hipótesis: planteamiento (I) • Dado un espacio de ejemplos posible X, asumimos que cada ejemplo puede ser encontrado con una determinada frecuencia • Luego, tenemos una distribución de probabilidad D que define la probabilidad de encontrar cada elemento de X (D no dice nada sobre la clase de cada ejemplo) • El aprendizaje consiste en encontrar una función objetivo f considerando un espacio de hipótesis H • El sistema de aprendizaje empleado sintetizarán una hipótesis h de entre las del espacio de hipótesis H • Disponemos de una muestra de ejemplos S generado con elementos de X siguiendo la distribución D, a los que un maestro añade la clase correspondiente <x ∈ X, f(x)> Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Precisión de hipótesis: planteamiento (II) • Dada la hipótesis h obtenida a partir un sistema de aprendizaje, nos gustaría conocer varias cosas: ° ° ° ° ¿Cuál es el mejor estimador que podemos utilizar para medir la precisión de h sobre ejemplos futuros, generados con la misma distribución D? ¿Cuál es el error probable de ese estimador? Dado que el conjunto de datos disponible siempre será limitado, ¿cuál es el mejor método para aprender la hipótesis y evaluar su precisión? Si empleamos dos sistemas de aprendizaje diferentes, que generan hipótesis distintas, ¿cuál de ellas se comportará mejor? • Surge una necesidad evidente de disponer de estimadores que midan la calidad de las hipótesis sintetizadas por los sistemas de aprendizaje Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Error de una hipótesis: verdadero • Es la probabilidad de que una hipótesis h clasifique mal un ejemplo cualquiera generado a partir de la distribución D del espacio de instancias X errorD (h) = Pr [ f ( x) ≠ h( x)] x∈D Espacio de Instancias X - f Error - - + + + + + - + + + - + - h - - No podemos calcularlo Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Error de una hipótesis: una muestra • No podemos calcular el error verdadero, pero podemos medir el error en una muestra S: errorS (h) = 1 S ∑ ∂( f ( x) ≠ h( x)) x∈S • ¿Cómo de bueno es el error en una muestra como estimador del error verdadero? • ¿Dependemos de algún factor para hacer estimaciones del error verdadero a partir del error en una muestra? • ¿Podemos acotar el error verdadero de una hipótesis h, conocido su error en una muestra? • La estadística nos ayuda a responder a estas preguntas Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Evaluación de hipótesis: error (I) • Una opción es estimar el error verdadero • La evaluación se puede realizar: ° ° Durante el aprendizaje, para seleccionar una hipótesis adecuada Al final del aprendizaje, para indicar el nivel de confianza de la hipótesis elegida • Usar el error sobre los ejemplos del conjunto de entrenamiento (error de reescritura) para seleccionar la hipótesis es peligroso • El sistema de aprendizaje tenderá a ajustarse en exceso a los datos de entrenamiento Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Sobre-ajuste (overfitting) Clase • Una hipótesis h1 ∈ H se sobre-ajusta a una muestra S de datos si existe una hipótesis alternativa h2 ∈ H tal que: errorS (h1 ) < errorS (h2 ) y errorD (h1 ) > errorD (h2 ) Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Sub-ajuste (underfitting) Clase • Una hipótesis h1 ∈ H se sub-ajusta a una muestra de datos si existe una hipótesis alternativa h2 ∈ H tal que: errorS (h1 ) > errorS (h2 ) y errorD (h1 ) > errorD (h2 ) Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Evaluación de hipótesis: error (II) • Si disponemos de muchísimos ejemplos, no hay problema en usar sólo una parte de los ejemplos para entrenar y el resto como conjunto de test para estimar el error ° Hold-out (2/3 para entrenar, 1/3 para test) • Lamentablemente, lo normal es disponer de un conjunto de datos con pocos ejemplos • No podemos lastrar el proceso de aprendizaje usando pocos ejemplos • ¿Qué alternativas tenemos? ° ° Una opción intermedia es separar parte de los ejemplos (conjunto de validación) y utilizarlos para optimizar parámetros o tomar decisiones a la hora de seleccionar la hipótesis más adecuada Usar métodos de resampling para generar distintos conjuntos de entrenamiento/test Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Centro de Inteligencia Artificial Universidad de Oviedo Evitar el sobreajuste • Empíricos ° Validación Cruzada › K-fold CV › Leave-One-Out CV ° Usar datos no etiquetados • Teóricos ° ° ° ° Técnicas bayesianas PAC Minimum description length (MDL) Minimización del Riesgo Estructural (SRM) Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Entrenamiento, validación, test • La manera más adecuada de aprender, seleccionar hipótesis y obtener una estimación adecuada del error verdadero es: • Separar los ejemplos disponibles en 3 conjuntos: ° ° ° Conjunto de entrenamiento: para aprender hipótesis Conjunto de validación: seleccionar hipótesis, ajustar parámetros,… Conjunto de test: obtener un estimador no sesgado y con poca varianza del error verdadero • Los conjuntos de validación y test deben cumplir las condiciones que indicamos antes para poder aproximar sus estimaciones mediante una distribución normal ° Tendremos estimadores no sesgados y con poca varianza Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial K-fold CV • Es una manera de obtener conjuntos de entrenamiento (validación) y test cuando tenemos pocos ejemplos • Evita perder muchos ejemplos para entrenar y además podemos obtener un buen estimador del error K-fold CV es Divide los n ejemplos en k cjtos disjuntos (folds) Para i=1 hasta k Entrenar usando todos los folds menos i Emplear el fold i para estimar el error Devolver la media de los errores de los k folds Fin • Es habitual usar k=10 y repetir el proceso para obtener un estimador aún mejor Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Leave-One-Out CV • Cuando k=n, es decir, tantos folds como ejemplos • Permite entrenar con muchos ejemplos • Tiene un coste computacional muy alto • Hay situaciones en que es inadecuado ° ° ° Ejemplo: clasificador clase mayoritaria Si tenemos un conjunto de datos con dos clases y balanceado El error estimado será del ¡¡¡100%!!!! Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Comparación de sistemas de aprendizaje • Supongamos que hacemos CV con dos sistemas de aprendizaje • ¿Es significativa la diferencia entre sus medias? • Dado que son pocos datos, usamos test-t pareado de Student • Nos permite asegurar con un cierto nivel de confianza si uno de los sistemas es mejor que el otro Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático Universidad de Oviedo Centro de Inteligencia Artificial Terminología • Función objetivo: Es la función verdadera f que pretendemos aprender • Ejemplo (de entrenamiento): <x , f(x)> donde x es un vector de atributos y f(x) es la clase o etiqueta a la que pertenece x, en base a la función objetivo f • Atributo: cada una de las componentes que permite representar los objetos x • Espacio de ejemplos: espacio X de todos los posibles ejemplos • Conjunto de Entrenamiento: conjunto de ejemplos de entrenamiento, representan una determinada muestra del espacio de ejemplos • Hipótesis: función propuesta h para aproximar la función objetivo f • Espacio de hipótesis: H conjunto de todas las hipótesis h que puede seleccionar un algoritmo de aprendizaje al tratar de aprender una función objetivo f Sistemas Inteligentes - T7: Introducción al Aprendizaje Automático