Inteligencia Artificial “Aprendizaje evolutivo” Ing. Sup. en Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani Aprendizaje Resumen: 3. Aprendizaje automático 3.1 Introducción al aprendizaje automático 3.2 Árboles de decisión 3.3 Redes neuronales 3.4 Algoritmos genéticos 3.5 Aprendizaje por refuerzo Motivación • La evolución es un principio exitoso para la seleccionar individuos capaces de sobrevivir en un entorno. • Idea: imitar la selección natural para aprender hipótesis de un determinado concepto objetivo 1) Una posible hipótesis se formaliza como un individuo que lucha para la sobrevivencia dentro de una población de individuos 2) Solo los mejores sobreviven y se reproducen Motivación combinación de dos soluciones (cruce) espacio de hipótesis (o soluciones) soluciones iniciales soluciónes posibles Motivación modificación de una solución (mutación) espacio de hipótesis (o soluciones) soluciones iniciales soluciónes posibles Terminología Cromosoma Individuo Gen Selección Cruce Inserción Mutación Operadores Genéticos Generación N Generación N+1 Cromosoma 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 Alelo • Cada cromosoma representa una hipótesis, codificada como un conjunto de valores discretos (binarios, enteros …) • El valor de cada gen se llama alelo • Un cromosoma aislado no tiene significado, necesita una decodificación Algoritmos Genéticos: Estructura Inicializa población inicialización Selecciona padres selección Crea hijos cruce Muta hijos mutación Inserta hijos en la población inserción Generación N+1 Criterio de stop? no sí Devolver el mejor individuo encontrado a lo largo de la ejecución Crear un AG • • • Definir una representación (estructura y decodificación) del cromosoma Definir una función de fitness Definir los operadores genéticos – Inicialización, selección, cruce, mutación, inserción 1. Ejecutar el algoritmo – Monitorizar la fitness media – Evaluar el mejor individuo 2. Tunear el algoritmo – Ajustar la selección, estrategia de inserción, porcentajes de mutación Representación de un cromosoma Genotipo Fenotipo codificación decodificación Biología: UCGAACCGU bloques de ADN L Diseño: 100101010010 H cromosoma radio Representación de un cromosoma Satisfacción de restricciones: Genotipo Fenotipo codificación decodificación 2203 cromosoma Dependiendo del problema, se pueden usar diferentes representaciones – binaria {0, 1} – ternaria {0, 1, 2}, {A, B, C} – enteros {1, 2, 4,..., 16, 17, ...} – reales {1.2, 4.5, 5.77777, -0.566 } Fitness y probabilidad de selección • Típicamente la selección de los individuos candidatos a la reproducción (padres), es el paso más importante y más costoso computacionalmente solución candidata 100101010010 cromosoma La fitness determina la probabilidad de ser seleccionado P(seleccionado) F = f(x) fitness x decodificación F Evaluar x respeto al objetivo del problema Función de fitness • Cada cromosoma tiene un valor de fitness asociado – Mapear el objetivo del problema en una función de fitness • 4-Reinas: número de reinas amenazadas • Problema del viajero: longitud del camino • Asignación obras a empresas: coste total de la asignación • ... • Elegir una apropiada función de fitness es muy importante • Si el problema tiene vínculos de factibilidad, se pueden incluir: – En la función de fitness (penalidad por violación) – En la representación – En los operadores de cruce y mutación (crean individuos que no violan vínculos) Función de fitness • En general, a valores de fitness altos corresponden individuos que son buenos candidatos para la reproducción • Problemas de maximización: – F = g(x) – F = a · g(x) + b | a > 0, b tal que F > 0 – F = g(x)k • Problemas de minimización – F = 1/g(x) – F = K – g(x), K >> g(x) g(x) = objetivo Selección • El objetivo de un operador de selección es seleccionar los padres para la creación de los individuos de la generación sucesiva • Un operador de selección debería favorecer la selección de los individuos con valor de fitness alto pero también preservar la diversidad en la población • Operadores de selección – Ruleta – Ranking – Torneo – … Selección de la ruleta • La probabilidad de una individuo x ∈ población de ser seleccionado está dada por: F(x) P(x) = ∑i F( xi ) Probabilidad proporcional al valor de fitness Todos los individuos tienen probabilidad de ser seleccionados • Favorece los individuos con fitness mucho más alta de los demás • Converge más rápidamente (no siempre es bueno) Selección con ranking • Los individuos son ordenados según su valor de fitness del mejor al peor. El lugar ocupado en esta lista se denomina su ranking. • El ranking determina la probabilidad de ser seleccionado, de manera que individuos con alto ranking tengan más probabilidad P(x) = 1 rank(x) ∑i 1/rank( xi ) Selección con ranking • Si las diferencias entre los valores de fitness son muy grandes, la selección con ranking evita el mejor individuo sea costantemente seleccionado • Ejemplo: • F( x1 ) = 1000, F( x2 ) = 10, F( x3 ) = 1 Selección con ranking • Usando la selección por ranking, el individuo de ranking r en cualquier generación tendrá la misma probabilidad de ser seleccionado • En las primeras generaciones, esto es bueno porque evita la convergencia prematura, asignando a individuos de bajo ranking suficiente probabilidad de ser seleccionados • Cuando la desviación de la fitness media es pequeña (i.e., la población está formada por individuos medianamente aptos), es mejor asignar más probabilidad a los mejores individuos – Aumentar la presión selectiva a lo largo de las generaciones Selección con ranking • Calcular una fitness F' con la fórmula: F'(x) = min + (Max - min) · N - rank( xi ) N-1 • Aplicar la selección de la ruleta • Variar los valores min y Max para generar más o menos presión selectiva • Ejemplo: min=100, Max=110 • F’(r1) = 110, F’(r2) = 100+10·1/2=105, F’(r3) = 100 o P(x1)=110/315=0.34, P(x2)=105/315=0.33, P(x3)=100/315=0.32 Selección con ranking • Calcular una fitness F' con la fórmula: F'(x) = min + (Max - min) · N - rank( xi ) N-1 • Aplicar la selección de la ruleta • Variar los valores min y Max para generar más o menos presión selectiva • Ejemplo: min=10 , Max=110 • F’(r1) = 110, F’(r2) = 10+100·1/2=105, F’(r3) = 10 o P(x1)=110/180=0.61, P(x2)=60/180=0.33, P(x3)=10/180=0.06 Selección con distribución de Boltzmann (soft-max ) • La probabilidad de una individuo x ∈ población de ser seleccionado está dada por: eF(x)/T P(x) = ∑i eF(x)/T • Variando el parámetro T (temperatura), se puede controlar la presión selectiva • Primeras generaciones → T alta → todos los individuos tienen buena probabilidad de ser seleccionados • Ultimas generaciones → T baja → los mejores tienen mucha más probabilidad de ser seleccionados Selección con torneo • Seleccionar k individuos aleatoriamente (k es el tamaño del torneo) y elegir el mejor Población Ganador Concursantes (k=3) f=2 f=3 f=9 f=2 f=1 f=9 f=8 f=2 f=9 f=2 f=5 f=7 f=8 f=8 1 2 f=2 3 Cruce cruce ??? ??? ¿Como se puede operar sobre x1 e x2 para crear dos hijos con la misma representación (longitud, decodificación, estructura de gen) ? Cruce en un solo punto Padres Hijos El punto de cruce se selecciona de manera aleatoria Cruce en dos (o más) puntos Padres Hijos Cruce: ejemplo • 4 reinas [ x1 x2 x3 x4 ] 3 3 1 3 f=4–3=1 [ x1 x2 x3 x4 ] 2 4 2 4 f=4–2=2 [ x1 x2 x3 x4 ] 2 4 1 3 f=4–0=4 Cruce • Un operador de cruce debe producir hijos consistentes con la representación • E.g.: el problema del viajero [ ciudad1 Bilbao [ ciudad1 Lugo [ ciudad1 Bilbao ciudad2 Sevilla ciudad2 Madrid ciudad2 Sevilla ciudad3 ... Madrid ciudad3 ... Sevilla ciudad3 ... Sevilla ciudadN ] Soria ciudadN ] Vigo ciudadN ] Vigo Hijo no consistente con la representación Cruce • Cruce para el problema del viajero [ ciudad1 Selecciono aleatoriamente un subcamino ciudad2 ciudad3 ciudad4 ciudad5 ciudad6 ciudad7 ] Lugo Madrid Sevilla Vigo Soria Bilbao Mostoles Madrid Lugo Sevilla Mostoles Bilbao Vigo Soria Completo el subcamino añadiendo la ciudades del segundo padre, que ya no están en el subcamino, según el orden en que aparecen [ ciudad1 ciudad2 ciudad3 ciudad4 ciudad5 ciudad6 ciudad7 ] Lugo Mostoles Sevilla Vigo Bilbao Soria Madrid Mutación • Dilemma – Poca mutación conduce a poblaciones con un pobre patrimonio genético a lo largo de las generaciones – Demasiada mutación ralentiza la convergencia • Características: – Actúan sobre un único cromosoma. • Modificar los cromosomas para recuperar diversidad genética (exploración) – Como los operadores de cruce, debe producir cromosomas validos Mutación • Ejemplo: juego genético. – La fitness de un invididuo es dada por el numero de “1” en el cromosoma Generación k Generación m 11000 01001 ... 10011 11011 11011 ... 11011 Fitness media: 3.4 Fitness media: 4 Sin mutación nunca aparecerá “1”, por lo tanto nunca se alcanzará la máxima fitness posible Mutación • Ejemplo: 4 reinas Sin mutación nunca se llegará a una solución Individuo 1 Individuo 2 Individuo 3 Individuo N Mutación • Posibles operadores: – Cada cromosoma tiene una probabilidad de mutar. Si un cromosoma ha sido seleccionado para la mutación, modificar cada gen con probabilidad Pm << 1 – Mutar un gen aleatoriamente en todos los cromosomas – Intercambiar dos genes de un cromosoma Inserción • El operador de inserción se encarga de crear la población de la generación K+1 • Posibles estrategias: – Remplazar la población entera • Seleccionar N/2 parejas de padres N=tamaño de la población • Crear N hijos y remplazar todos los padres • Un padre puede ser seleccionado más veces – Remplazar la población dos a dos • Seleccionar una pareja de padres • Crear un hijo y remplazar un padre (¿el peor?) – Elitismo • Los mejores individuos (e.g., 1%) son preservados en la generación K+1, los otros se crean con una de las dos estrategias anteriores Inicialización • Para poder ejecutar un algoritmo genético, hay que inicializar la población de la generación 0 • En general se inicializa de manera aleatoria, usando una distribución uniforme • Se pueden insertar en la primera generación algunos buenos individuos, por ejemplo ejecutando una algoritmo heurístico que rápidamente pueda encontrar algunas buenas soluciones Criterio de parada • No existe un criterio obvio • Algunas opciones: – Max número de generaciones (e.g. 100) – Desviación de la fitness media por debajo de un umbral (poca diversidad genética en la población) – Estancamiento (ninguna mejora evidente entre una generación y la succesiva) – Se ha encontrado un estado particular del espacio de búsqueda (e.g., en caso se sepa cual es el máximo valor de fitness posible, una vez encontrado un individuo con tal valor, el algoritmo puede parar) Convergencia Óptimo (desconocido) Convergencia demasiado rápida (poca mutación, demasiado elitismo?) La fitness promedia debería crecer, porqué los individuos buenos se preservan y se reproducen, mientras que los malos desaparecen Algoritmos genéticos • Buenas noticias – No se necesita mucho conocimiento sobre el problema • Representación del cromosoma y funcion de fitness – Aplicables a muchos problemas • Malas noticias – No existe una “best practice” (ensayo-y-error) • Probar diferentes operadores de selección, cambiar los porcentajes de mutación... – Diseño de la función de fitness puede ser problemático – No maneja muy bien los problemas con vínculos de factibilidad – Criterio de parada