Title: SANE
1SANE
- Symbiotic Adaptive NEuroevolution
2SANE - Symbiotic Adaptive NEuroevolution-
- SANE coevoluciona dos poblaciones, una de
neuronas (unidades) y otra de redes neuronales
(blueprints) - SANE se mostró más eficiente y adaptativo
manteniendo un mayor nivel de diversidad que las
evoluciones basadas en redes neuronales
completas. - Se desarrolló para redes feedforward de una capa
oculta.
3SANE Población de Unidades
- Cada individuo representa sólo una solución
parcial al problema. - La solución completa debe formarse por la
interacción cooperativa de varios individuos. - El objetivo de los individuos es optimizar
diferentes partes de la solución cooperando con
otras soluciones parciales. - Se asegura la diversidad genética
4SANE Población de Unidades
5SANE Población de Blueprints
- Evoluciona el registro de las combinaciones más
efectivas de neuronas encontradas en la población
de unidades corriente. - Mientras que la población de unidades busca
optimizar redes neuronales parciales de una sola
neurona la población de blueprints busca la
mejor combinación de ellas para optimizar una RNA
completa.
6SANE Población de Blueprints
7SANEDecodificación fenotípica
- Si e gt 127 ? la conexión es hacia la neurona de
salida (e mod nS) - Si e lt127 ? la conexión es desde la neurona de
entrada (e mod nE)
8Algoritmo SANE
- 1. Crear las RNA a partir de cada blueprint
- 2. Evaluar la performance de las redes en la
resolución de la tarea dada. - 3. Asignar el valor de fitness a los blueprints
- 4. Asignar el valor de fitness a las neuronas
- 5. Obtener la siguiente generación en la
población de unidades - 6. Obtener la siguiente generación en la
población de blueprints - 7. Si no se cumple alguna condición de
terminación volver al punto 1.
9SANEAsignación de fitness
- Los blueprints reciben directamente el valor de
fitness de acuerdo a la performance de la RNA que
codifican. - Las neuronas reciben la suma de los 5 mejores
fitness conseguidos por las RNA en las que han
intervenido.
10SANESelección y reemplazo
11SANE Reproducción
- Se utiliza crossover de un punto para obtener un
descendiente, el otro es la copia directa de uno
de los padres. - Mutación binaria en la población de unidades con
probabilidad 0.001 por bit - Mutaciones en la población de blueprints
- Reemplazo de puntero por otro válido elegido al
azar con probabilidad 0.01 por gen. - Reemplazo de puntero por otro a alguno de sus
descendientes, con probabilidad 0.5 por gen.
12ESP
13ESP Enforced Sub Population
- Al igual que en SANE se evolucionan individuos
que representan neuronas individuales, en lugar
de redes completas. - Aplica una serie de restricciones en la forma de
seleccionar las neuronas para construir las redes
neuronales. - Fue desarrollado para conseguir redes recurrentes
totalmente conectadas con capacidad de memoria a
corto plazo
14ESP Enforced Sub Population
- A diferencia de SANE se mantienen subpoblaciones
separadas en la población de unidades sin
cruzamiento entre ellas . - Se crean tantas poblaciones como neuronas que no
sean de entrada, tenga la red neuronal que se
desea hallar. - Alguna de estas neuronas codificadas se
considerarán de salida y otras ocultas.
15ESP Enforced Sub Population
16ESP Enforced Sub Population
- En cada una de las subpoblaciones se lleva a cabo
un proceso evolutivo independiente igual al que
utiliza SANE en la población de neuronas - No hay población de blueprints
- El fitness de las unidades se calcula promediando
el valor de aptitud obtenido por cada red
neuronal en la que haya participado.
17ESP Ventajas respecto de SANE
- Las especies en la población de unidades son
circunscriptas explícitamente por el diseño en
ESP. - No hay cruces perjudiciales entre distintas
especializaciones con roles muy diferentes en las
RNA. - La red se forma siempre con un representante de
cada especialización. - Asignación de fitness más justa (evaluación
respecto al mismo rol dentro de la red neuronal).
18ESP Desventaja respecto de SANE
- No existe ningún mecanismo adicional para
mantener la diversidad genética en cada una de
las subpoblaciones. - Se subsana
- Mecanismo de evolución incremental que introduce
diversidad (delta-coding) a medida que la
evolución avanza hacia el próximo sub-objetivo
19PSO
- Particle Swarm Optimization
20PSO
- Es una técnica heurística poblacional donde cada
individuo representa una posible solución del
problema y realiza su adaptación teniendo en
cuenta tres factores - su conocimiento sobre el entorno (su valor de
fitness) - su conocimiento histórico o experiencias
anteriores (su memoria) - el conocimiento histórico o experiencias
anteriores de los individuos situados en su
vecindario
21PSO
22PSO
- Cada partícula pi está compuesta por tres
vectores y dos valores de fitness - xi (xi1, xi2, , xin) almacena la posición
actual de la partícula en el espacio de búsqueda. - pBesti (pi1, pi2, , pin) guarda la posición de
la mejor solución hallada por la partícula hasta
el momento. - vi (vi1, vi2, , vin) almacena el gradiente
(dirección) según el cual se moverá la partícula. - fitness_xi almacena el valor de aptitud de la
solución actual (vector xi). - fitness_pBesti almacena el valor de aptitud de la
mejor solución local encontrada hasta el momento
(vector pBesti)
Vectores
Valores
23PSO
- La posición de una partícula se actualiza se la
siguiente forma - xi(t1) xi(t)
vi(t1) - El vector velocidad vi se modifica teniendo en
cuenta su experiencia y la de su entorno. - vi(t1) w . vi(t) ?1 . rand1 . (pBesti
xi(t)) - ?2 . rand2 . (gi xi(t))
Factor de inercia
24PSO
- La posición de una partícula se actualiza se la
siguiente forma - xi(t1) xi(t)
vi(t1) - El vector velocidad vi se modifica teniendo en
cuenta su experiencia y la de su entorno. - vi(t1) w . vi(t) ?1 . rand1 . (pBesti
xi(t)) - ?2 . rand2 . (gi xi(t))
Constantes de aceleración
25PSO
- La posición de una partícula se actualiza se la
siguiente forma - xi(t1) xi(t)
vi(t1) - El vector velocidad vi se modifica teniendo en
cuenta su experiencia y la de su entorno. - vi(t1) w . vi(t) ?1 . rand1 . (pBesti
xi(t)) - ?2 . rand2 . (gi xi(t))
Mejor solución según el criterio de vecindad
26PSO
- Movimiento de una partícula en el espacio de
soluciones
27PSO - Algoritmo básico
- S ? InicializarCumulo()
- while no se alcance la condición de terminación
do - for i 1 to size(S) do
- evaluar la partícula xi del cúmulo S
- if fitness(xi) es mejor que fitness(pBesti)
then - pBesti ? xi fitness(pBesti) ?
fitness(xi) - end if
- end for
- for i 1 to size(S) do
- Elegir gi según el criterio de vecindad
utilizado - vi ? w . vi ?1 . rand1 . (pBesti xi)
- ?2 . rand2 . (gi xi)
- xi ? xi vi
- end for
- end while
- SALIDA la mejor solución encontrada