CNE_BPNevo Configuración de una red neuronal de propagación hacia atrás empleando un algoritmo genético y una estrategia evolutiva



Documentos relacionados
CAPÍTULO 4: ALGORITMOS DE APRENDIZAJE

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Centro de Capacitación en Informática

MATERIAL 2 EXCEL 2007

Puedes Desarrollar Tu Inteligencia

MODELOS DE RECUPERACION

Colegio Alexander von Humboldt - Lima. Tema: La enseñanza de la matemática está en un proceso de cambio

UN PROBLEMA CON INTERÉS Y CALCULADORA

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Conclusiones. Particionado Consciente de los Datos

Aprendizaje Automatizado. Redes Neuronales Artificiales

LABORATORIO Nº 3 PRÁCTICA DE FUNCIONES EN MICROSOFT EXCEL

Temas de electricidad II

Clases de apoyo de matemáticas Fracciones y decimales Escuela 765 Lago Puelo Provincia de Chubut

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S

Inteligencia artificial: todo comienza con una neurona.

Método para ganar dinero con YouTube y Clickbank sin tener que subir videos ni hacer comentarios

CAPITULO 3 REDES HIBRIDAS-COMPLEJAS. 3.1 Descripción de la Red Híbrida Compleja (HCNN)

Programación Genética

Interpolación polinómica

BLOG: PUNTADA A PUNTADA

Los estados financieros proporcionan a sus usuarios información útil para la toma de decisiones

Tema 5: Sistemas Monetarios Internacionales

x

Módulo II - PowerPoint

Líneas de espera. Introducción.

CAPÍTULO 10 Aplicaciones de la Derivada a Funciones Económicas

Wise Up Kids! En matemáticas, a la división de un objeto o unidad en varias partes iguales o a un grupo de esas divisiones se les denomina fracción.

Ambas componentes del sistema tienen costos asociados que deben de considerarse.

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

MICROECONOMÍA II PRÁCTICA TEMA III: MONOPOLIO

Capitulo V Administración de memoria

Contabilidad Orientada a los Negocios

Documentación de la Práctica 1 para la asignatura de Nuevas Tecnologías de la Programación (NTP)

TRABAJO Y ENERGÍA; FUERZAS CONSERVATIVAS Y NO CONSERVATIVAS

Introducción Cómo empezar a monetizar mi blog? Porqué son tan interesantes los ingresos por sistemas de afiliados?...

CAPÍTULO 1: INTRODUCCIÓN. Todas las personas sabemos que la gran mayoría de las actividades humanas conllevan lo

5. CONOCIENDO EL GESTOR DE

GUÍA PARA LA FORMULACIÓN PROYECTOS

VENTAJAS Y DESVENTAJAS DE LAS TECNOLOGIAS

Hoja1!C4. Hoja1!$C$4. Fila

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005

Itinerario Formativo en Innovación Docente

Diagnosis y Crítica del modelo -Ajuste de distribuciones con Statgraphics-

Sobre el Centro para préstamos responsables

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Evaluación Financiera de Proyectos

Guía del Usuario ANEXOS

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

4. METODOLOGÍA. 4.1 Materiales Equipo

Implementación de algoritmos genéticos paralelos de grano burdo en redes locales de computadoras. Resumen

DI Macarena Ponce- DI Belén Martin 1

ANÁLISIS FINANCIERO VERTICAL

Dando nuestros primeros pasos con 3DS Max. 1. Objetivos

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

2002 Emerson Process Management. Todos los derechos reservados. Vea este y otros cursos en línea en

Cadena de Palabras Manual de usuario

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.

Cadenas de Markov.

Fundamentos de los Sistemas Operativos (GII) Examen Final 15 de Junio de SEGUNDA PARTE - SOLUCIONES

Líneas Equipotenciales

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

SIIT SISTEMA INFORMÁTICO DE INSPECCIONES DE TRABAJO. Modulo de Planificación Manual de Usuario

SGIC. Propuesta para Plan de Telefonía y Perfiles de Consumo

El palacio de la Alhambra: La primera expansión. El favor de los visires

Selectividad Septiembre 2009 SEPTIEMBRE Opción A

PRODUCTIVIDAD. Contenido. 1. Introducción. 2. Importancia de la Productividad. 3. Que es productividad? 4. Como se mide la productividad?

6. Controlador del Motor

TEMA 3: EN QUÉ CONSISTE?

Estructuras de Datos y Algoritmos. Árboles de Expresión

Problemas fáciles y problemas difíciles. Cuando a los niños les planteamos problemas de suma y resta, Laura dejó sin resolver el siguiente problema:

Práctica 10. Redes Neuronales

El reto de la Gestión Documental

Selectividad Septiembre 2013 OPCIÓN B

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN

2.1 Funcionamiento del MPLS

A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones avanzadas de Excel II

LAS FRACCIONES DE CARLOS

Manual para Declaración Anual

Aproximación local. Plano tangente. Derivadas parciales.

Modulo 1 El lenguaje Java

Publicación del sitio web en internet. Equipo 6

PROPORCIONALIDAD - teoría

ENSAYOS CLÍNICOS. Guía para padres y tutores

Tema 5. Aproximación funcional local: Polinomio de Taylor. 5.1 Polinomio de Taylor

PROBLEMAS RESUELTOS DE TEORÍA DE COLAS. (M/M/1: Un servidor con llegadas de Poisson y tiempos de servicio Exponenciales)

UNIVERSIDADES DE ANDALUCÍA PRUEBA DE ACCESO A LA UNIVERSIDAD OPCIÓN A

POR QUÉ EL VALOR PRESENTE NETO CONDUCE A MEJORES DECISIONES DE INVERSIÓN QUE OTROS CRITERIOS? ( Brealey & Myers )


Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

Tienda Virtual Synergy (Parte 2)

TEMA 5. MUESTREO PARA LA ACEPTACIÓN.

5- Uso de sentencias avanzadas

OPCIÓN A 0 1 X = Podemos despejar la matriz X de la segunda ecuación ya que la matriz. 1 1 ; Adj 0 1 X =

APUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows

Matrices Invertibles y Elementos de Álgebra Matricial

10. La organización de las niñas y de los niños Criterios para la organización de las niñas y de los niños

INTERPOLACIÓN POLINÓMICA Y LA DIVISIÓN DE SECRETOS

Transcripción:

CNE_BPNevo Configuración de una red neuronal de propagación hacia atrás empleando un algoritmo genético y una estrategia evolutiva Stop_condition mutate recombine select para Computación Neuronal y Evolutiva Ernesto Staffetti Universidad Rey Juan Carlos, Móstoles Michael Leben Getafe (Madrid), 27//27 Índice. Prerrequisitos para ejecutar el programa CNE_BPNevo.EXE. 2. Introducción a las redes neuronales de contrapropagación. 3. Proyecto. Modelo de clases y representación de las redes. 4. Procedimiento. Resultados. 5. Bibliografía.

I Prerrequisitos Como el programa CNE_BPNevo.EXE está escrito con Microsoft Visual Basic.Net., para su ejecución es preciso haber instalado el paquete Microsoft Common Runtime Library., que se puede descargar de manera gratuita desde el enlace siguiente: http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-857-34de7cf3a3&displaylang=en Para sistemas de Open-Source existe Mono para ofrecer la plataforma de.net: http://www.mono-project.com/ El fichero iris.data tiene que estar ubicado en la capeta de ejecución porque contiene la base de datos del problema de la red neuronal artificial. 2

II Introducción a las redes neuronales de propagación hacia atras Las redes neuronales artificiales están inspiradas por la naturaleza, por el funcionamiento de nuestro cerebro. La intención es la simulación de una célula nerviosa - una neurona para conseguir una arquitectura informática tan adaptable y con tanta capacidad de aprendizaje como nuestro sistema nervial. Los modelos de McCulloch, Pitts y Rosenblatt Se supone que una celula nerviosa funciona de la manera siguiente: Tiene n entradas llamadas dendritas que aplican un voltaje x a la célula i. Cada dendrita tiene un peso (como una resistencia negativa de voltaje) denominado w. El voltaje que llega a la célula por una dendrita es el producto del voltaje y el peso. La activación a i de la neurona i es la suma de todos estos productos: a i ús (w i * x i ) La neurona i tiene un voltaje de salida y i (en biología se supone que se trata de una señal química), dado por la función de activación f. y i ú f(a i ). Dada una función de activación que es la de paso ( f: R -> {,} ), una red simple de neuronas puede implementar cualquiera operación binaria. Por lo tanto, dispone del mismo poder de cálculo que una máquina Turing; aunque una sola neurona no puede resolver el problema XOR porque puede solamente resolver problemas de separabilidad lineal. El proceso de aprendizaje consiste en adaptar el peso de la neurona para que dé la señal de salida que corresponde a la señal de salida deseada d p. Habitualmente, se usa el metódo de descenso del gradiente para adaptar los pesos aquí está denominado por la regla de aprendizaje de Hebb. Suponiendo que para el conjunto de patrones de entrada posibles disponemos de un conjunto de salidas deseadas P = { x,.., x n } D= { d,.., d m m n y n,m son enteros positivos } se aplica la regla siguiente de actualización de los pesos w i (t) al tiempo t, siendo w i (t+) el peso actualizado: w i (t+) = w i (t) + w i w i = α * e p * x i e p =d p x p El peso actualizado w i (t+) El cambio de peso w i, α la razón de aprendizaje El error producido e p 3

Redes de capas múltiples el algoritmo de propagación hacia atrás Mientras solamente haya una única capa de neuronas, esto funcionará bien y la neurona se podrá adaptar para resolver todos los problemas de separabilidad lineal. Esto quiere decir que usando la red como clasificador - es posible separar las clases en el espacio de soluciones de manera lineal. Si eso no es posible es decir, hay que describir una curva dentro del espacio de soluciones para separar las clases - harán falta más capas de neuronas para que la red tenga más parámetros que pueda emplear para la separación de soluciones. Sin embargo, en una arquitectura de más de una capa faltan las salidas deseadas para que cada capa no sea una capa de salida. Para lograr el aprendizaje en tal entorno, se emplea el algoritmo de contrapropagación. Eso consiste en calcular el error que comete toda la red para minimizarlo. El aprendizaje funciona así: después de propagar la señal de las entradas hacia delante, se calcula Arquitectura de una red neuronal de capas multiples de mediante las salidas deseadas el error cometido en la capa de salida. Entonces este error se propaga hacia detrás, adaptando los pesos de las conexiones intermedias. Para calcular el cambio de peso de las neuronas de capas intermedias, hay que usar la derivación de la función de activación. Por lo tanto, la función de activación tiene que ser derivable. Normalmente, se usan funciones como la sigmoide, dada por y en las capas intermedias su derivación, dada por sigmoide Su nonlinealidad ayuda a la separación de problemas linealmente no separables. Una red debería además contener para cada neurona un peso adicional, llamado bias. Se denomina habitualmente como w i para la neurona i. Este peso cuenta como entrada adicional de la misma manera que las otras, con la única diferencia de que su voltaje siempre es. Sirve para resolver problemas como el siguiente: La función de negación: X W = Y * w = * w = Claro que un peso w para solucionar eso no existe. Si añadimos un peso adicional adaptable como el bias, resulta lo siguiente: * w + * w = * w + * w = Esto tiene una solución: w = -, w =. Por desgracia, este algoritmo de aprendizaje supervisado converge bastante despacio respecto al problema dado. O mejor dicho la simulación por ordenador de este tipo de aprendizaje pertenece a una clase de complejidad alta, dependiendo de la cantidad de neuronas y capas y del problema. 4

III Proyecto. Modelo de clases y representación de las redes El objetivo es encontrar una combinación de pesos tal que una tasa muy alta de los patrones sea clasificada correctamente. Por eso, los individuos de la población en el algoritmo genético son redes neuronales artificiales, es decir, su configuracion dada por una lista de pesos. La contrapropagación es un algoritmo de aprendizaje para una red neuronal artificial de múltiples capas. El algoritmo de aprendizaje debe encontrar una combinación de pesos valida para la tarea. Usando un algoritmo genético para la configuración, no hace falta un algoritmo de aprendizaje. Pero el hecho de que se trata de una red de contrapropagación es importante porque así se puede usar el error medio cuadrado cometido por la red como valor invertido de la función de aptitud. Sin embargo, como disponemos de las BpnNetwork +MAXITERATIONS : Integer = System.Integer.MaxValue +WeightCount() : Integer +setweight(zoll viindex : Integer, Zoll viweight : Double) +getweight(zoll viindex : Integer) : Double +GetCorrectClassificationPercentage(Zoll vopatterns : Patterns) : Single +Correct_Classified_Probes_Percentage() : Single +Layers() : BpnLayers +InputLayer() : BpnLayer +OutputLayer() : BpnLayer +IterationsNeeded() : Integer +epsilonequals(zoll a : Double, Zoll b : Double, Zoll epsilon : Double) : Boolean +ProbePattern(Zoll voinputpattern : Pattern, Zoll error_tolerance : Double) : Boolean +consult(zoll voinputpattern : Pattern) : Pattern +GetMseForPatternSystem(Zoll voinputpatterns : Patterns) : Double +train_dontadjustweights(zoll voinputpattern : Pattern) +train(zoll voinputpattern : Pattern) +tostring() : String +train(zoll voinputpatterns : Patterns) : Double +ProbePatternCount() : Long +MSE() : Double +New(Zoll errthreshold : Double) +gethighestweight() : Double +connectlayers(zoll L : BpnLayer, Zoll L2 : BpnLayer) +createinputs(zoll L : BpnLayer) +createoutputs(zoll L : BpnLayer) La implementación de la red de propagación hacia atrás Zoll (aduane) quiere decir call by reference salidas deseadas de cada patrón, para la función de aptitud también podemos usar el procentaje de patrones clasificados correctamente. El problema dado a la red neuronal es lo que Oswaldo Velez-Langs nos dió como prática de redes neuronales artificiales: la clasificación de flores en tres clases []. La Iris Plants Database nos da como patrones de entrada los siguientes valores: sepal length, sepal width, petal length y petal width. La salida deseada también está dada por la clase a la que pertence la flor: Iris Setosa, Iris Versicolour o Iris Virginica. Voy a usar redes de la arquitectura 4-N-3 como individuos. Esto quiere decir que tiene cuatro entradas (una para cada uno de los valores) y N neuronas en las capas intermedias y tres neuronas de salida, para codificar la clase a la que pertence la flor así: Clase y y 2 y 3 Iris-setosa.9 Iris-versicolor.9 Iris- virginica.9 Voy a considerar un patrón como clasificado correcto, si el índice del valor más alto de la salida deseada el mismo que el de la salida actual, así que por ejemplo.6.3. vale como Iris-setosa. La base de datos dispone de 5 patrones, 5 ejemplos para cada clase. 5

Representación El UML de la clase BpnNetwork de la página anterior muestra que son accesibles los pesos de la red de manera lineal, así que se puede obtenerlos de la forma getweight(i) y alterar con setweight(i, weightvalue). Así, el individuo la combinación de pesos está representado simplemente por una instancia de la clase BpnNetwork. Debido a ese procedimiento está la forma de representación lógica: Una combinación de pesos como Evo::EvoIndividuum +ADAPTO_AMPLITUDE : Double = 5 +INITIAL_MUTATO : Integer = +tag : Boolean +HandleNetwork() : BpnNetwork +Mutato() : Integer +clone() : EvoIndividuum +mutate() +New() +setadapto(zoll v : Double) +getadapto() : Double +getrecombinatedchild(zoll a : EvoIndividuum, Zoll b : EvoIndividuum) : EvoIndividuum +Age() : Integer +Name() : String +getfitnessvalue() : Double +CompareTo(Zoll obj : Object) : Integer * -Population Evo::EvolutiveAlgorithm +MIN_COUNT : Integer = +MAX_COUNT : Integer = 5 +MAX_ITERATIONS : Integer = +getmaximumitem() : EvoIndividuum +isoptimized() : Boolean +Items() : Population +New(Zoll InitialSetSize : Integer) +optimize(zoll mutationvalue : Single, Zoll recombinationvalue : Single, Zoll selectionvalue : Single) +IterationsNeeded() : Long - configuración de la red aparece como tupla (ordenada) de reales: un individuo representa una configuración de pesos P = (w,..., w n ). Sin embargo, tradicionalmente la representación lógica de los pesos está dada por una matriz. Matriz de pesos de una red de cuatro neuronas Neuronas N N 2 2 N 3 3 N 4 4 N U W W W Eso nos abriría la posibilidad de mutar los valores respecto a la neurona a la que N 2 W 2 U W 23 W 24 pertenecen. Y también la multiplicación / recombinación se podría formar de N 3 W 3 W 32 U W 34 N 4 W 4 W 42 W 43 U una manera, de forma que se quede con neuronas de buena calidad. Sin embargo, aparece el problema de que en las redes se pueden intercambiar las neuronas (con pesos del alrededor) y obtener una red con un comportamiento igual. Por lo tanto, se pierde variedad genética. Problema de la simetría 2 2 2 y - y 2 - Este esquema muestra que por intercambiar varios pesos resulta una red que da la misma repuesta. Eso lo hay que tener en cuenta al diseñar la función de recombinación. El efecto mostrado va a aparecer usando crossover como operador de recombinación, porque por la organización lineal de los pesos sería muy probable que se quedasen juntos 6

los pesos que pertenecen a la misma neurona. Pero por otra parte, sería desfavorable perder por la recombinación una combinación buena de pesos aunque contenga el riesgo de perder variedad. [2] Una función deceptiva. El problema que aparece por la simetría de la función de error en respeto a cambiar los pesos se llama "problema de la función deceptiva". En respeto a la recombinación de dos segmentos, es más probable que quedarán juntos los pesos que están vecinos en la cadena genética que encodifica la red. Por eso pesos que son vecino (que pertenecen a la misma neurona) deberían ser vecino también en su representación genética sequencial. El esquemo utilizado para la enumeración está dado por los dos siguientes dibujo: 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 2 22 23 Arriba la sequencia genética, abajo la red que sus pesos y umbrales 7

6 9 2 3 5 7 8 3 4 Esquema de enumeración de los pesos. Resulta como individuo un vector I = (w,..., w n ). En el caso de la red 4-2-3 está n=23. Neuronas de una red 4-N-3: 4 + N + 3 Pesos / parámetros adaptables de una red 4-N-3: 7 + N + (4*N + N*3) Con esa enumeración se quedarán juntas las neuronas y sus pesos durante la recombinación. 2 4 2 8 6 22 2 23 5 7 9 Función de aptitud Para medir la calidad de una red se pueden usar dos valores:. El error medio cuadrático (MSE) cometido por la red eso es lo que el proceso de propagación de atrás aprovecha como objeto de minimización usando el descenso de gradiente. Así el error está disponible en la red de propagación hacia atrás. 2. El porcentaje de patrones clasificados correctamente. Ambos valores se pueden usar para la función de aptitud. Tradicionalmente, se usa [2] el error medio cuadrático. La diferencía más importante entre las funciones de aptitud es la siguiente: Debido al reconocimiento de la clase de flor, que depende del índice más grande del vector de salida, se considera como clasificado un patrón como este:.3.3. cuando el deseado era.9.. Sin embargo, el error que comete la red es muy alto. Sería menor si la salida de la red fuera.5.5.5 cuando la deseada era.9.. aún respecto a la funcionalidad de la clasificación esto no sirve de nada. Eso es porque el algoritmo intenta fijar los posibles valores de las salidas en. y en.9. Por lo tanto, voy a usar el porcentaje de patrones clasificados correctamente como función de aptitud. A partir de ese punto, el hecho de que se trata de una red de propagación hacia atrás da igual, porque funciona como cualquiera red neuronal. Pero yo quiero investigar las diferencias en el uso de estos dos tipos de funciones de aptitud. Recombinación Como funciones de recombinación he probado estas dos: Shuffle crossover y segmented crossover con solamente 2 segmentos. El último funciona mucho mejor. 8

Estrategia evolutiva en la mutación La clase EvoIndividuum (ver UML en página 6) contiene dos parámetros de estrategia. Esos se llaman Mutato y Adapto. En realidad provienen del hecho de que se desconoce el valor del cambio del peso que toma lugar como mutación. Rojas [2] propone realizar la mutación así: w i (t+) = w i (t) + a a es un valor aleatorio Pero cuando la evolución converge alrededor de un máximo de aptitud, solamente serán útiles cambios muy pequeños, así que a debería depender del progreso de la evolución. Por lo tanto, escogí a como parámetro de estrategia. El mi modelo, a se llama adapto, y se determina así: como inicialización y a= -ADAPTO_AMPLITUDE + (R * 2 * ADAPTO_AMPLITUDE) a(t+) = a(t) + (R * a) + (-R * a) en cada paso de mutación, siendo R valores aleatorios entre y. Considero también R en el cálculo, para que pueda decrecer. Como cambiar un único peso en una operación de mutación puede resultar en un desarrollo muy lento si el algoritmo todavía se encuentra muy alejado del óptimo, hay otro parámetro de estrategia llamado Mutato y es un entereo positivo. Ese parámetro determina cuántos pesos se cambian por mutación. Se cambia en cada mutación. Int devuelve el numero entero más cerca. Mutato = Mutato + Int((-R * _mutato) + (R * _mutato)) Estrategia evolutiva en la recombinación Como uso segmented crossover con 2 segmentos, no hace falta que la estrategia influya en la recombinación. Los parámetros que obtiene el individuo nacido por la recombinación son los siguientes: Mutato = (Mutato + Mutato 2 ) / 2 y a = (a + a 2 ) / 2. 9

Pautas en el proceso evolutivo Mutación Por la cantidad alta de simetrías e individuos iguales aunque tengan los pesos intercambiados, hace falta mucha mutación Mutato=4 Adapto=-. index mutato para que haya mucha diversidad. Así que hay que usar una constante alta. Todos los individuós tiene la misma propabilidad de.3.2.4. -.6.5 -. adapto adapto adapto adapto 2. Original mutación. Para proteger los indivduós mejores, se añade un clone de ellos a población antes de.3.2.4. -.7.4 -. 2. Mutated mutar. Recombinación Los mejores 25% de individuos tienen probabilidades de recombinarse de forma normal. Los 2% peores tienen 33% probabilidad, los demás 5%. El individuo recien nacido muta inmediatamente. Popsize too big For each mama in items For each papa in items CUT Papa Evaluate Fitness of mama and papa Mama Child Compute Propability of Recombination El punto de corte está elegido por azar. Recombination Next Step A = new recombinated child. Mutate(a) Add(a) Selección El mejor individuo no puede morir. Los mejor % tienen la probabilidad de selección un 75% por ciento más bajo que un indivduo normal. Los peor 2% tienen la probabilidad un % más alta. La selección es del tipo (m+l). Pest En el caso de que el mejor individuo tenga una edad de más de 3 iteraciones, supongo que no se mejora el conjunto por falta de diversidad. Entonces mueren los 75% peores individuos, y son reemplazados por nuevos objetos al azar. Como lo que cuesta más es calcular la función de aptitud, porque incluye el desempeño de la red por cada de los 5 patrones, es mejor eligir constantes de mutación, selección y recombinación altas. (solamente por razones del tiempo de computación)

IV.a Resultados tests a corto plazo Generaciones de redes tipo 4-3-3. Población inicial: individuos Estrategia evolutiva: ninguna Función de aptitud: porcentaje de patrones clasificados correctamente Constante de mutación:,5 Constante de recombinación:,5 Constante de selección:,5 Generación Supervivientes mejor valor % su error de la red 2 67 35,33,4745953 4 64 66,6666,63768452454 6 65 66,6666,63768452454 8 67 66,6666,63768452454 68 66,6666,63768452454 Generaciones de redes tipo 4-3-3. Población inicial: individuos Estrategia evolutiva: ninguna Función de aptitud: error cometido por la red (invertido) Constante de mutación:,5 Constante de recombinación:,5 Constante de selección:,5 Generación Supervivientes Mejor valor % Su error de la red 2 65 34,6666,28997466528 4 69 66,2575648333 6 7 66,6666,2555599227838 8 62 66,6666,2552542499669 6 66,6666,2548782333 Generaciones de redes tipo 4-3-3. Población inicial: individuos Estrategia evolutiva: adapto, mutato Función de aptitud: porcentaje de patrones clasificados correctamente Constante de mutación:,5 Constante de recombinación:,5 Constante de selección:,5 Generación Supervivientes Su mejor valor % Error de la red 2 69 35,33,37545973886 4 68 66,6666,372785849448 6 7 66,6666,346927948977 8 66 66,6666,34692833946 6 66,6666,34692829764 Generaciones de redes tipo 4-3-3. Población inicial: individuos Estrategia evolutiva: adapto, mutato Función de aptitud: error cometido por la red (invertido) Constante de mutación:,5 Constante de recombinación:,5 Constante de selección:,5 Generación Supervivientes Su mejor valor % Error de la red 2 64 33,3333,2272957839592 4 63 4,66,274934335655 6 66 66,6666,22965465229964 8 63 33,33,263579993389 66 56,2567963 Usando el porcentaje de patrones clasificados correctamente como función de aptitud, la red alcanza un mínimo local (el de 66%). Usando la estrategia evolutiva lo alcanza más rápido. Si se usa el error cometido por la red como función de aptitud, la evolución va muy despacio, pero impide la trampa del mínimo local.

Generaciones de redes tipo 4-4-3. Población inicial: individuos Estrategia evolutiva: adapto, mutato Función de aptitud: porcentaje de patrones clasificados correctamente Constante de mutación:,5 Constante de recombinación:,5 Constante de selección:,5 Generación Supervivientes mejor valor % Su error de la red 2 67 6,3333,4286244348 4 63 66,425553589779 6 67 7,425553589779 8 68 72,425553589779 6 74,425553589779 Ejemplo de la calidad de la red 4-4-3 después de generaciones: Patrón de entrada Salida deseada Salida actual correcto IN[,725,65,5,48 ] DES=[,,9, ] OUT=[,73586,73589,73587 ] sí IN[,6375,95,2,8 ] DES=[,9,, ] OUT=[,73586,73586,73586 ] no IN[,575,8,75,8 ] DES=[,9,, ] OUT=[,73587,73586,73586 ] sí IN[,8625,775,675,84 ] DES=[,,,9 ] OUT=[,73586,73586,73589 ] sí Generaciones de redes tipo 4-4-3. Población inicial: individuos Estrategia evolutiva: adapto, mutato Función de aptitud: error cometido por la red (invertido) Constante de mutación:,5 Constante de recombinación:,5 Constante de selección:,5 Generación Supervivientes Su mejor valor % error de la red 2 66 33,333,2244523726327 4 64 33,33333,289996233595 6 64 66,66,2737567768 8 6 33,33,2456764259662 66 64,66,24537866387 Ejemplo de la calidad de la red 4-4-3 después de generaciones: Patrón de entrada Salida deseada Salida actual correcto IN[,625,575,425,4 ] DES=[,,9, ] OUT=[,352324,395622,32378 ] sí IN[,8375,825,725 ] DES=[,,,9 ] OUT=[,354,43958,3577789 ] no IN[,8375,75,65,92 ] DES=[,,,9 ] OUT=[,3548949,434967,3562726 ] no IN[,7875,625,625,76 ] DES=[,,,9 ] OUT=[,3543798,42993,3524643 ] no IN[,825,75,65,8 ] DES=[,,,9 ] OUT=[,3552922,3567,4298 ] sí Se muestra que la capacidad de optimización depende muchísimo de la arquitectura de la red. Desde el punto de vista evolutivo, la diferencia más importante es el número de parámetros: mientras la red 4-3-3 tiene 3 parámetros / genes en forma de pesos, la red de 4-4-3 tiene 39 pesos. Si se usa el error cometido por la red como función de aptitud, la diferencia entre las salidas y,2,3 es mucho más grande que cuando se use la del porcentaje. En estos casos, se da el efecto de que la red deja espacio a otros patrones, por generalización. La optimización con respecto al porcentaje no va a producir una red que haya generalizado muy bien las clases. 2

IV.b Tests con un número largo de generaciones Test B% - Porcentaje de patrones clasificados correctamente Generaciones de redes tipo 4-4-3. Población inicial: 2 individuos Estrategia evolutiva: adapto, mutato Función de aptitud: porcentaje de patrones clasificados correctamente Constante de mutación:,7 Constante de recombinación:,8 Constante de selección:,2 Generación Supervivientes mejor valor % su error de la red 2 62 92,66666,845347 4 59 93,33333,8258 6 56 93,33333,8258 8 6 93,33333,8258 69 93,33333,8258 (azúl: mínimo local) Ejemplo de la calidad de la red 4-4-3 después de generaciones ( minutos): Patrón de entrada Salida deseada Salida actual (todos correctos) IN[,6,75,75,2 ] DES=[,9,, ] OUT=[,999994854637,99998892485,9999765554433 ] IN[,8375,825,725 ] DES=[,,,9 ] OUT=[,99999763764959,999999232225,99999923244522 ] IN[,6375,625,375,44 ] DES=[,,9, ] OUT=[,999997582369756,99999954476,99999959225 ] IN[,725,7,525,52 ] DES=[,,9, ] OUT=[,9999975989438,99999978728,9999997627648 ] IN[,8375,75,65,92 ] DES=[,,,9 ] OUT=[,999997636545384,999999232643,999999235657 ] Test B-MSE - Error cometido por la red (invertido) Generaciones de redes tipo 4-4-3. Población inicial: 2 individuos Estrategia evolutiva: adapto, mutato Función de aptitud: error cometido por la red (invertido) Constante de mutación:,7 Constante de recombinación:,8 Constante de selección:,2 Generación Supervivientes mejor valor % su error de la red 2 64 66,66,87446562236369 4 62 38%,833432757932 6 62 33,333,742697785554 8 67 62%,67774598976844 6 7,333,576339925 Ejemplo de la calidad de la red 4-4-3 después de generaciones ( minutos): Patrón de entrada Salida deseada Salida actual IN[,6875,5,75,8 ] DES=[,9,, ] OUT=[,5335754373887,326886592746,24526929264485 ] IN[,6875,6,475,44 ] DES=[,,9, ] OUT=[,322547275822,3722697877237,3733348247388 ] IN[,7625,75,625,72 ] DES=[,,,9 ] OUT=[,2595789283289,39785927782,42492434 ] IN[,925,7,7625,76 ] DES=[,,,9 ] OUT=[,237649222793,39989786675,449743579854 ] IN[,9875,95,8,8 ] DES=[,,,9 ] OUT=[,233466258423,3993728537,4487245575868 ] IN[,8,7,7,88 ] DES=[,,,9 ] OUT=[,22697398538994,457436573962,4544973453576 ] IN[,75,675,6375,64 ] DES=[,,9, ] OUT=[,268494249,388824569445,467869229729 ] El resultado es que el uso del porcentaje de patrones clasificados correctamente como función de aptitud es apropiado para buscar muy rápido una combinación de pesos que de la repuesta de la red, pero de una manera muy borrosa. Por el contrario, el uso del 3

error medio cuadrado como función de aptitud precisa mucha más generaciones para alcanzar un resultado aceptable. Sin embargo, resulta una red mucho más razonable, que tiene generalizado el sistema que divide los patrones en clases diferentes. El test B% muestra que la evolución por la porcentaje como función de apitud guía el desempeño a un mínimo local de que no sale la población. Al contrario usando el MSE (Test B-MSE) se muestra un decenso muy constante. Eso será porque la función de error es más continúo que la de la porcentaje. Además, la porcentaje ofrece muy pocos matices: f : I f con [[]] [; ] û f y f = P El numero de valores distintos que puede tomar la función de aptitud f corresponde al numero de patrones P de que ya sabemos clasificar. Así que habrán mucho individuós con el mismo valor de aptitud. Con respecto a la motivación de esta investigación, que era que el algoritmo de propagación hacia atrás converge bastante despacio, el algoritmo genético muestra una velocidad aún más baja. Error de la mejor red de las primeras, generaciones. En verde: porcentaje de patrones clasificados correctamente (abajo: %, arriba: %; Al final: 66%). Rojo: el error medio cuadratico (abajo: ; arriba:,2. Al final, se encuentra a,593). Tiempo de computación: h:23min (AMD Athlon,2 GHz). (Una linea = 45 generaciones) 4

V Bibliografía [] UCI Machine Learning Repository de la University of California http://www.ics.uci.edu/~mlearn/mlrepository.html http://www.ics.uci.edu/~mlearn/databases/iris/ [2] Theorie der neuronalen Netze Eine systematische Einführung Prof. Dr. Raúl Rojas-González (FU-Berlin), 996; Springer-Verlag ISBN 3-54-56353-9 p. 392 7.3. Genetische Algorithmen für neuronale Netze http://page.mi.fu-berlin.de/~rojas/ http://page.mi.fu-berlin.de/~rojas/neural/ contiene una versión en inglés del libro. http://page.mi.fu-berlin.de/~rojas/neural/chapter/k7.pdf Algoritmos genéticos para redes neuronales. [3] Wikipedia Backpropagation y Redes neuronales y Estrategia evolutiva. [4] www.no-free-lunch.org [5] Evolutionary Computation Basic Algorithms and Operators ; Edited by T. Bäck, D.B.Fogel, T. Michalewicz; 2 Institute of Physics Publishing, Bristol and Philadelphia, www.iop.org ISBN -753-664-5 [6] Práctica II de Redes Neuronales, Michael Leben 5