Title: Redes Neuronales Evolutivas
1Redes Neuronales Evolutivas
- Combinan
- Redes Neuronales artificiales.
- Procedimientos de búsqueda evolutivos.
- Ej Algoritmo Genéticos.
- Adaptación de las RNE
- Aprendizaje (RN)
- Evolución (AG)
2Por qué evolucionar RN?
- Topología
- No siempre es la adecuada.
- Cantidad de capas y de neuronas por capa.
- Problema de overfitting.
- Aprendizaje
- La regla delta no siempre llega a un mínimo
global (aprendizaje limitado). - Velocidad de aprendizaje (adecuada?).
- Pesos de la red
- Valores iniciales (random?)
3Redes Neuronales Evolutivas
- Tipos de evolución
- Sólo aplicada a los pesos de conexión.
- Sólo aplicada a la arquitectura de la red.
- Evolución simultánea de pesos y arquitectura.
- Función de activación
- Regla de aprendizaje
4Evolución de los pesos
- El proceso de entrenamiento busca hallar un
conjunto de pesos óptimos de acuerdo a algún
criterio de optimización. - Entrenamiento Back-Propagation
- Busca minimizar el error cuadrático medio total
entre la salida actual y la salida esperada. - Este error guía la búsqueda en el espacio de
pesos. - Puede quedarse en un mínimo local.
5Evolución de los pesos
- El proceso de adaptación estará dado por la
evolución de los pesos de conexión en el entorno
definido por la arquitectura y el aprendizaje. - De esta forma no será necesario utilizar la
técnica del gradiente. - Cómo evaluar el fitness?
6Evolución de los pesos
- Función de fitness
- Deberá medir la diferencia entre el valor
obtenido y el valor esperado (aprendizaje
supervisado). Podría utilizarse el error total
cuadrático medio. - Ejemplo
- Nótese que las estrategias evolutivas no
requieren que la función de fitness sea
derivable. Ni siquiera tiene que ser continua.
7Evolución de los pesos
- Partes del entrenamiento evolutivo
- Analizar la representación a utilizar.
- Ej los pesos serán representados en forma
binaria o no? - Definir la estrategia evolutiva a aplicar.
Indicar los operadores genéticos de crossover y
mutación.
8Evolución de los pesos
- Un ciclo típico en la evolución de los pesos de
conexión - Decodificar cada individuo (genotipo) de la
generación actual convirtiéndolo en la RN
correspondiente. - Calcular el fitness de cada individuo en base al
error cuadrático medio total. A mayor error,
menor fitness. - Seleccionar los padres para la reproducción
- Aplicar los operadores de crossover y mutación.
Obtener los hijos que formarán la nueva
población. - La evolución termina cuando el fitness supera un
cierto valor o cuando la población ha convergido.
9Evolución de los pesos
- Representación binaria
- Cada peso está representado por un número de bits
con cierta longitud. - La concatenación de los pesos dará lugar al
cromosoma de la red neuronal. - Los pesos correspondientes a una misma neurona,
ya sea oculta o de salida, es aconsejable
codificarlos juntos. - (Efecto del crossover)
10Evolución de los pesos
- El siguiente ejemplo muestra el cromosoma de la
RN para una arquitectura fija
11Evolución de los pesos
- Ventajas de la representación binaria
- Simplicidad y generalidad.
- Los operadores genéticos (crossover y mutación)
se pueden aplicar directamente. - Desventaja
- La longitud del cromosoma está en estrecha
relación con la precisión del valor representado.
- Si son pocos, no llegará al valor esperado.
- Si son muchos, el tamaño de la red crece y la
evolución será ineficiente.
12Evolución de los pesos
- Problema de permutación hace que el crossover
sea ineficiente e ineficaz para obtener buenos
hijos.
Los cromosomas son distintos pero las RN son
funcionalmente iguales.
13Evolución de los pesos
- Representación con números reales
14Entrenamiento evolutivo vs. gradiente
- Evolución
- Permite obtener óptimos globales.
- Trabaja sobre superficies de error complejas.
- Puede aplicarse a cualquier arquitectura de RN,
no sólo las feed-forward. - Aprendizaje basado en Gradiente
- Aprende más rápido
- Puede caer en un óptimo local.
- Técnica híbridas 1ro. AG y luego BP.
15Arquitectura de una RNA
- Definición
- Técnica de prueba y error.
- Algoritmos constructivos.
- Comienzan con pocos nodos y van incorporando
nuevas capas, neuronas y conexiones. - Algoritmos destructivos
- Comienzan con una arquitectura máxima que van
reduciendo durante el entrenamiento.
16Evolución de la Arquitectura
- El diseño de la arquitectura óptima puede ser
visto como un problema de búsqueda dentro del
espacio de las arquitecturas, donde cada punto
representa una arquitectura. - Dada una medida de aptitud (menor error en la
solución, menor tiempo de aprendizaje, menor
tamaño, etc), el nivel de aptitud de todas las
arquitecturas forma una superficie discreta en el
espacio. - El diseño de la arquitectura óptima equivale a
encontrar el máximo de esta superficie.
17Evolución de la Arquitectura
- Características de la superficie de aptitudes que
justifica el uso de la evolución - Infinitamente larga dado que la cantidad de nodos
y conexiones no está acotado. - No es continua y por lo tanto, no es derivable.
- Deceptiva porque arquitecturas similares pueden
tener diferentes aptitudes (la combinación de dos
RN buenas puede dar una de menor fitness). - Multimodal porque arquitecturas diferentes pueden
tener aptitudes similares.
18Evolución de la Arquitectura
- Fases en la evolución de la arquitectura
- Representación del genotipo.
- Analizar el nivel de detalle que se desea dar a
la representación. - Algoritmo elegido para realizar la evolución.
19Evolución de la Arquitectura
- Ciclo típico de la evolución de la arquitectura
- Decodificar cada individuo de la generación
corriente para obtener la arquitectura de la red. - Entrenar cada RNA con una regla de aprendizaje
predefinida. - Calcular el fitness de acuerdo al resultado del
entrenamiento anterior y otros criterios de
performance (ej complejidad de la arq.). - Seleccionar los padres de acuerdo al fitness.
- Aplicar los operadores genéticos y generar los
hijos para la siguiente generación.
20Evolución de la Arquitectura
- Representación del genotipo.
- Codificación directa toda la información está
codificada en el cromosoma. - Codificación indirecta sólo se codifican los
parámetros más importantes (ej cant.de capas
ocultas, cant.de nodos en cada capa, etc). El
resto de la arquitectura se define mediante la
evolución.
21Codificación Directa
- Hay dos opciones
- Evolucionar sólo la arquitectura y dejar los
pesos fijos. - Evolucionar la arquitectura y los pesos de
conexión a la vez. - Por ahora trabajaremos con la primer opción.
22Codificación Directa
- Ejemplo
- Se puede utilizar un cromosoma binario con tantos
genes como combinaciones de conexiones de
neuronas tenga la red. - Una RN de N neuronas requerirá un cromosoma de
longitud NxN. Donde el valor 1 implica conexión.
23Codificación Directa
24Redes Recurrentes
- Contienen una realimentación hacia atrás o
retroalimentación, es decir algunas de sus
salidas son conectadas a sus entradas. - Las redes recurrentes son potencialmente más
poderosas que las redes con realimentación hacia
delante porque poseen memoria lo que les
permite tener un comportamiento dinámico.
25Redes Recurrentes
La red alcanzará su estado estable cuando la
salida para un instante de tiempo sea la misma
salida del instante de tiempo anterior.
26Codificación directa
Cromosoma de la red feedforward
Problemas escalabilidad y permutación
(distintos genotipos con igual funcionalidad).
27Codificación indirecta
- Características
- Reduce la longitud de la representación del
genotipo. - En el cromosoma sólo se codifican algunas
características de la arquitectura. - Desventaja puede no ser muy buena para encontrar
una RNA compacta con buena habilidad de
generalización.
28Codificación indirectaRepresentación paramétrica
- La RNA puede especificarse mediante un conjunto
de parámetros. - Ejemplos
- Cantidad de capas ocultas.
- Cantidad de neuronas ocultas en cada nivel.
- Número de conexiones entre dos capas.
- La evolución estará limitada a trabajar sobre
esta representación. - Ej RNA feedforward totalmente interconectada,
con una sola capa oculta, puede representarse por
la cantidad de neuronas ocultas.
29Codificación indirectaReglas de desarrollo
- Características
- Reduce la longitud del cromosoma.
- Minimiza el efecto destructivo del crossover.
- Ejemplo
30Codificación indirectaReglas de desarrollo
31Ej RN asociada a las reglas
32Codificación indirectaReglas de desarrollo
- En el ejemplo, los símbolos no terminales son
A.. Z y a.. p. - Se utilizan 16 reglas para generar las
submatrices binarias de 2x2 que comienzan con
a.. p. Estas NO se evolucionan para permitir
que exista diversidad de conexión.
33Codificación indirectaReglas de desarrollo
- Dado que hay 26 reglas cuyo lado izquierdo
comienza con A.. Z, la longitud del cromosoma
será 26x4104 alelos. - Ejemplo
- ABCD aaaa iiia iaac aeae
34Codificación indirectaReglas de desarrollo
- Limitaciones
- Es necesario predefinir el número de pasos de
reescritura. - No deben permitirse las reglas recursivas.
- Una representación genotípica compacta no implica
que ocurra lo mismo con la representación
fenotípica. Es decir que, de una notación
compacta pueden obtenerse RN muy grandes.
35Evolución de la arquitectura y de los pesos de
conexión
- Por qué evolucionar ambas cosas?
- Evolucionar la arquitectura SIN evolucionar los
pesos de conexión presenta una evaluación de
fitness ruidosa - Pesos iniciales diferentes producen fitness
distintos. - Diferentes algoritmos de entrenamiento producen
resultados diferentes aun para los mismos pesos
iniciales. - Esto puede resolverse entrenando a la red varias
veces y tomando como fitness del genotipo el
fitness promedio.
36Evolución de la arquitectura y de los pesos de
conexión
- Si se evolucionan ambas cosas
- Cada individuo en la población contiene la
información completa de la arquitectura y los
pesos de conexión. - Hay una relación uno-a-uno entre genotipo y
fenotipo, lo que permite una correcta evaluación
del fitness. - Operadores?
37Evolución de la arquitectura y de los pesos de
conexión
- Efecto del crossover
- Trabaja sobre la idea de buenos bloques de
construcción. - Qué son los bloques cuando se representan RN?
- Si la información está esparcida en la RN, el
crossover no dará buenos resultados.
38Evolución de la función de transferencia
- Trabajos realizados
- Se han realizado evoluciones de arquitectura y
función de transferencia al mismo tiempo
codificándolas en los cromosomas. - Algunos autores han evolucionado neuronas con
diferentes tipos de funciones de transferencia
(gaussiana y sigmoide) - Fijando la cantidad de neuronas de cada tipo. La
evolución define sólo la arquitectura. - La cant.de neuronas de cada tipo puede variar en
la evolución.
39Evolución de las reglas de aprendizaje
- El diseño de algoritmos de entrenamiento, en
especial las reglas utilizadas para ajustar los
pesos de conexión, dependen del tipo de
arquitectura. - Importancia de la evolución
- Mecanismo automático para la obtención de las
reglas de aprendizaje. - Puede ayudar a entender el proceso creativo en
los sistemas biológicos ya que a partir de un
entorno dinámico y complejo puede inferir reglas
de aprendizaje.
40Evolución de las reglas de aprendizaje
- Ciclo típico de evolución de reglas de
aprendizaje - Decodificar cada individuo de la generación
actual en una regla de aprendizaje. - Construir un conjunto de RNA con arquitecturas y
pesos iniciales aleatorios. Entrenarlos usando la
regla decodificada. - Calcular la función de fitness para cada
individuo de acuerdo al promedio del resultado. - Seleccionar padres para generar la próxima
generación. - Aplicar los operadores genéticos para obtener la
nueva población.
41Evolución de las reglas de aprendizaje
- Evolución de parámetros algorítmicos
- 1er. Intento La evolución de los parámetros del
algoritmo BP (velocidad de aprendizaje y
momento). - Si los parámetros son codificados en el cromosoma
junto con la arquitectura, se facilita la
interacción entre el aprendizaje y la
arquitectura. - Existen trabajos que sólo evolucionan los
parámetros para una arquitectura definida.
42Evolución de las reglas de aprendizaje
- Evolución de la regla que actualiza los pesos
- Cómo se codifica el comportamiento dinámico de
una regla de aprendizaje en un cromosoma? - Para reducir la longitud del cromosoma es
necesario definir el espacio de las reglas de
aprendizaje. - Se debe definir la forma básica de las reglas de
aprendizaje - Reduce la complejidad de la representación.
- Reduce el espacio de búsqueda.
43Evolución de las reglas de aprendizaje
- Suposiciones
- La actualización de los pesos depende sólo de
información local. - Ej activación del nodo de entrada, activación
del nodo de salida, valor actual de pesos de
conexión,etc. - La regla de aprendizaje es la misma para todas
las conexiones en la RNA.
44Evolución de las reglas de aprendizaje
- La actualización del peso de la conexión que va
de la neurona i a la neurona j es de la forma
- Ejemplo Aprendizaje de Hebb
-
- donde ? es el parámetro
- y(i) es la actividad de la
neurona presináptica. - x(j) es el potencial de la
neurona postsináptica
45Evolución de las reglas de aprendizaje
- Resumiendo
- La evolución de reglas de aprendizaje es
equivalente a evolucionar vectores de valores
reales formado por los ?s. - Diferentes ?s determinan diferentes reglas de
aprendizaje.
46Evolución de las reglas de aprendizaje
- Aspectos a considerar en la evolución
- Determinar el subconjunto de términos ?s.
- Representar estos valores reales dentro del
cromosoma. - Indicar el algoritmo evolutivo a utilizar.
47RN que resuelve el XOR
- Obtenerla por evolución SOLO de los pesos
- Cada cromosoma es una RN donde se representan los
9 pesos con una precisión de 5 dígitos binarios
(valores entre 1.0 y 1.0). - Usar el AG básico
- Sólo hay que cambiar la decodificación de
c/individuo ? fitness
48RN que resuelve el XOR
- se utilizaran 5 bits por peso. Hay 9 pesos en la
RN --gt - lchrom 45 long. del cromosoma
- popsize 70 tamaño de la poblacion
- pcross 0.65 prob.de crossover
- pmutation 0.05 prob. de mutacion
- elitismo 1 0 sin elitismo, 1 si
- maxgen 20 maxima cantidad de
generaciones - Construir la poblacion inicial
- Pop round(rand(lchrom,popsize))
- Aptitud de cada una de las RN
- Fitness EvaluarAptitud(Pop)
49EvaluarAptitud.m
- function y EvaluarAptitud(Poblacion)
- Decodifica cada RN y calcula el fitness
- long,cuantos size(Poblacion)
- entradas 2 ocultas 2 salidas 1
- y
- for i 1 cuantos, Obtener la RN del
individuo i - individuo Poblacion(,i)'
- w1 b1 w2 b2 CromToRNFF(individuo,
entradas, - ocultas,
salidas) - y(i) Fitness_XOR(w1, b1, w2, b2)
- end
50CromToRNFF
- function w1, b1, w2, b2 CromToRNFF(x,
entradas, - ocultas,
salidas) - x es un vector fila con los pesos de la RN
feedforward concatenados de la siguiente forma - w1_11, w1_21, w1_12, w1_22, b1_1, b1_2 , w2_1 ,
w2_2, b2 - x1,x2--gto1 x1,x2--gto2 x0--gto1,o2
o1,o2--gts o0--gts - w1 --- gt es de (entradas x ocultas)
- b1 --- gt es de (ocultas x 1)
- w2 --- gt es de (ocultas x salidas)
- b2 --- gt es de (salidas x 1)
51Fitness_XOR
- function y Fitnes_XOR(w1, b1, w2, b2)
- P 0 0 1 1
- 0 1 0 1
- T 0 1 1 0
- Falta calcular SALIDA
- SALIDA es un vector con la respuesta de la RN
para c/u de los patrones. Cada neurona de la red
es un perceptrón que utiliza como - función de activación la función umbral
(hardlim). -
- Calcular el error de la capa de salida
- ErrorSalida (T-salida)
- AVGError sum(ErrorSalida .2)
- y 1/(0.001AVGError) función de fitness