Download Aprendizaje evolutivo - Grupo de Inteligencia Artificial

Document related concepts

Programación genética wikipedia , lookup

Programación de expresiones de genes wikipedia , lookup

Mutación wikipedia , lookup

Haplotipo wikipedia , lookup

Aptitud (biología) wikipedia , lookup

Transcript
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