Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INTRODUCCION
El presente modulo se ha diseñado para facilitar el aprendizaje a los alumnos del curso de
Bioinformática perteneciente a II Unidad, de la escuela de ingeniería de Sistemas e Informática, ya
que en esta unidad tocaremos el tema de los Algoritmos Genéticos y Programación Evolutiva, para
estos contenidos se requiere del uso y manejo de Lenguajes de Programación para la construcción
de Algoritmos Genéticos como: Lenguaje C, Java, Matlab etc. y Dentro de la programación evolutiva
tenemos a los Algoritmos evolutivos de aprendizaje, para la cual estudiaremos a las Redes
Neuronales.
El presente modulo brinda la información necesaria para que el alumno pueda comprender mejor la
segunda unidad.
El modulo consta de 4 Actividades de Aprendizaje las cuales se detalla a continuación:
Actividad de Aprendizaje Nº 01: Modelos Evolutivos de Aprendizaje.- Aquí en primer lugar se define
los modelos Evolutivos de Aprendizaje, La Neuronal Biológica y sus Partes, Redes Neuronales
Biológicas, La Neuronales Artificial, Redes Neuronales Artificiales y su entrenamiento, Historia de la
Computación Neuronal y Modelo de la Neurona Artificial, la Función de Activación, Peso sinápticos,
Regla de propagación, Función de activación, Función de salida, Ajuste de Pesos.
La Red Neuronal Artificial Perceptrón, Adaline y Madaline, y Capas de la Red Neuronal Artificial.
Al finalizar los temas se mostrará una conclusión final, luego los alumnos observaran videos y
elaboraran 4 conclusiones e investigaran sobre las diferentes redes Neuronales que existen.
Actividad de Aprendizaje Nº 02: Computación Evolutiva: Algoritmos Genéticos para Redes
Neuronales y Estrategias Evolutivas.-. Aquí el alumno empieza a conocer su clasificación de la
computación Evolutiva, Enfoques en computación evolutiva , Algoritmo genético para entrenamiento
de redes neuronales, Entrenamiento de redes neuronales basados en programación evolutiva,
Modelo matemático de una red neuronal perceptrón, Programa de una Red Neuronal: Problemas y
Guía de uso del programa, Ejemplos, modelo simple de red neuronal Perceptrón, Estrategias
evolutivas (simples y múltiples) y Aplicaciones de las estrategias evolutivas y al final se mostrará un
resumen.
Actividad de Aprendizaje Nº 03: Computación Evolutiva: Programación Evolutiva y Programación
Genética, Aquí el alumno conocerá y creará aplicaciones referente a la Programación evolutiva,
aplicaciones y historia, Estrategias evolutivas vs programación evolutiva, Aplicaciones de las redes
neuronales, estado de activación, conectividad entre neuronas y regla de propagación, cálculo de la
matriz de pesos, Regla de aprendizaje y clasificación de redes.
El alumno desarrollará un trabajo grupal sobre Programación Evolutiva y Programación Genética.
Actividad de Aprendizaje Nº 04: Computación Evolutiva: Sistemas Clasificatorios, Aquí el alumno
conocerá y creará aplicaciones usando la Red de Hopfield, Calculo de matriz de pesos y desarrollará
diferentes Ejemplos y estudiará otras Redes Neuronales, Luego el alumno realizará un Trabajo de
investigación usando Reden Neuronales.
INDICE
Pág
Introducción------------------------------------------------------------------------------------------------------------------------2
Índice-------------------------------------------------------------------------------------------------------------------------------3
Actividad de Aprendizaje Nº 01: Computación Modelos evolutivos de aprendizaje ----------------------------------5
Introducción al aprendizaje evolutivo---------------------------------------------------------------------------------------------5
Modelado o predicción------------------------------------------------------------------------------------------------------------5
La neuronal biológica--------------------------------------------------------------------------------------------------------------5
Partes de una neurona------------------------------------------------------------------------------------------------------------6
Sinapsis----------------------------------------------------------------------------------------------------------------------------6
Forma de comunicación entre neuronas ----------------------------------------------------------------------------------------7
Redes neuronales de tipo biológico----------------------------------------------------------------------------------------------8
Redes neuronales artificiales------------------------------------------------------------------------------------------------------9
Entrenamientos para el aprendizaje de redes neuronales ---------------------------------------------------------------------9
Modelo de neurona artificial------------------------------------------------------------------------------------------------------10
Modelo completo-----------------------------------------------------------------------------------------------------------------11
Umbral----------------------------------------------------------------------------------------------------------------------------11
Función de activación más utilizadas-------------------------------------------------------------------------------------------12
Entradas y salidas----------------------------------------------------------------------------------------------------------------13
Pesos sinápticos-----------------------------------------------------------------------------------------------------------------13
Ajuste de pesos ------------------------------------------------------------------------------------------------------------------13
Regla de propagación-----------------------------------------------------------------------------------------------------------13
Función de activación------------------------------------------------------------------------------------------------------------14
Función de salida-----------------------------------------------------------------------------------------------------------------14
El proceso de aprendizaje -------------------------------------------------------------------------------------------------------15
Fase de operación. --------------------------------------------------------------------------------------------------------------15
Redes neuronales con conexión hacia delante--------------------------------------------------------------------------------16
La red neuronal Artificial Perceptrón. --------------------------------------------------------------------------------------------16
Arquitectura-----------------------------------------------------------------------------------------------------------------------17
La red neuronal Artificial Adaline / Madaline-------------------------------------------------------------------------------------18
Estructura Madaline--------------------------------------------------------------------------------------------------------------19
Redes neuronales Artificiales de una capa -------------------------------------------------------------------------------------20
La red neuronal artificial Perceptrón de dos capas-----------------------------------------------------------------------------20
La red neuronal artificial Perceptrón de tres capas-----------------------------------------------------------------------------21
La red neuronal artificial Perceptrón multicapa---------------------------------------------------------------------------------21
Resumen-------------------------------------------------------------------------------------------------------------------------22
Actividad de Aprendizaje Nº 02: Computación evolutiva: algoritmos genéticos para redes neuronales y EE- - -24
Computación evolutiva ----------------------------------------------------------------------------------------------------------24
Clasificación de la computación evolutiva---------------------------------------------------------------------------------------24
Algoritmo genético para entrenamiento de redes neuronales ----------------------------------------------------------------25
Actividad de Aprendizaje Nº 01
MODELADO O PREDICCIÓN
El problema fundamental de la predicción está en modelar la relación entre las variables de estado
para obtener el valor de la variable de control.
LA NEURONAL BIOLÓGICA
El cerebro es el elemento principal del sistema nervioso humano y está compuesto por un tipo
especial de célula llamada neurona. Una neurona es una célula viva y como tal posee todos los
elementos comunes de las células biológicas. A su vez, las neuronas tienen características propias
que le permiten comunicarse entre ellas, lo que las diferencia del resto de las células biológicas.
De la figura anterior se observa que la neurona biológica está compuesta por un cuerpo celular o
soma, del cual se desprende árbol de ramificaciones llamado árbol dendrítico, compuesto por las
dendritas. Del soma también parte una fibra tubular, llamada axón, el cual suele ramificarse cerca de
su extremo. Las dendritas actúan como un canal de entrada de señales provenientes desde el
exterior hacia la neurona, mientras que el axón actúa como un canal de salida. El espacio entre dos
neuronas vecinas se denomina sinapsis.
SINAPSIS
La sinapsis es una unión intercelular especializada entre neuronas. En estos contactos se lleva a
cabo la transmisión del impulso nervioso. Éste se inicia con una descarga química que origina una
corriente eléctrica en la membrana de la célula presináptica (célula emisora); una vez que este
impulso nervioso alcanza el extremo del axón (la conexión con la otra célula), la propia neurona
segrega un tipo de proteínas (neurotransmisores) que se depositan en el espacio sináptico (espacio
intermedio entre esta neurona transmisora y la neurona postsináptica o receptora). Estas proteínas
segregadas o neurotransmisores (noradrenalina y acetilcolina) son los encargados de excitar o inhibir
la acción de la otra neurona.
La intensidad de una sinapsis no es fija, sino que puede ser modificada en base a la información
proveniente del medio. De esta manera la estructura del cerebro no permanece fija sino que se va
modificando por la formación de nuevas conexiones, ya sean excitadoras o inhibidoras, la destrucción
de conexiones, la modificación de la intensidad de la sinapsis, o incluso por muerte neuronal.
Desde un punto de vista funcional, las neuronas conforman un procesador de información sencillo.
Constan de un subsistema de entrada (dendritas), un subsistema de procesamiento (el soma) y un
subsistema de salida (axón) Como se menciono antes, una de las características principales de las
neuronas, y que la distinguen del resto de las células, es su capacidad de comunicarse. Las señales
nerviosas pueden ser eléctricas o químicas. La transmisión química se da principalmente en la
comunicación entre neuronas, mientras que la eléctrica se produce dentro de una neurona [García
Martínez, 2003]. En general, una neurona recibe información de cientos de neuronas vecinas y la
transmite a otras tantas neuronas.
La comunicación entre neuronas se lleva a cabo de la siguiente manera: en el soma de las neuronas
transmisoras o presináptica se genera un pulso eléctrico llamado potencial de acción. El pulso
eléctrico se propaga a través del axón en dirección a las sinapsis. La información se transmite a las
neuronas vecinas utilizando un proceso químico, mediante la liberación de neurotransmisores. Estos
neurotransmisores se transmiten a través de la sinapsis hacia la neurona receptora. La neurona
receptora o postsináptica toma a señal enviada por cientos de neuronas a través de las dendritas y la
transmite al cuerpo celular.
Estas señales pueden ser excitadoras (positivas) o inhibidoras (negativas) [Gurney, 1997]. El soma es
el encargado de integrar la información proveniente de las distintas neuronas. Si la señal resultante
supera un determinado umbral (umbral de disparo) el soma emite un pulso que se transmite a lo largo
del axón dando lugar a la transmisión eléctrica a lo largo de la neurona. Al llegar la señal al extremo
del axón se liberan neurotransmisores que permiten transmitir la señal a las neuronas vecinas.
[Nascimiento, 1994].
Estudios sobre la anatomía del cerebro humano concluyen que hay más de 1000 sinápsis a la
entrada y a la salida de cada neurona. Es importante notar que aunque el tiempo de conmutación de
la neurona (unos pocos milisegundos) es casi un millón de veces menor que en las actuales
elementos de las computadoras, ellas tienen una conectividad miles de veces superior que las
actuales supercomputadoras.
El objetivo principal de de las redes neuronales de tipo biológico es desarrollar un elemento sintético
para verificar las hipótesis que conciernen a los sistemas biológicos.
Las neuronas y las conexiones entre ellas (sinápsis) constituyen la clave para el procesado de la
información.
Técnicas más recientes de optimización global como Algoritmos Genéticos, Temple Simulado o
Búsqueda Tabú son usados como métodos de aprendizaje alternativos y en muchos casos consiguen
mejorar notablemente las soluciones obtenidas.
Ejemplo del uso de redes neuronales que no requieran un método de aprendizaje rápido es el
"predecir" o determinar si un determinado cliente que pide un crédito a un banco va a ser capaz de
pagar ese crédito o no. Otros ejemplos muy típicos, en nuestro campo o en campos próximos, de este
tipo de aplicaciones son el uso de las redes como métodos de clasificación o predicción en estudios
econométricos o estadísticos tales como: Predicción de Quiebra o Solvencia de determinadas
entidades financieras o empresas, Análisis de valores bursátiles, etc...
Por el contrario no es fácil encontrar aplicaciones de redes neuronales en las que se requiera un
método de aprendizaje rápido. Sin embargo un tipo de estas aplicaciones que está surgiendo muy
recientemente es la optimización de simulaciones. Los métodos para obtener una óptima o pseudo-
óptima solución o combinación de parámetros tienen el inconveniente de que determinar o estimar la
función objetivo de cada solución puede requerir un tiempo de computación.
Modelo Completo
Lo que tiene que hacer la neurona artificial es multiplicar cada entrada por su respectivo peso, lo
mismo que el peso umbral, que normalmente su entrada es -1 (pero se puede utilizar otro valor,
según sea el caso, pero eso se verá más adelante), y sumar esos resultados, esa sumatoria se llama
la “regla de propagación”, ese resultado pasa a ser evaluado por otra función que es la “función de
activación” cuyo resultado es efectivamente la salida de la neurona artificial, esta función de salida
dependerá del tipo de neurona que se utilice.
La regla de propagación más común, es la vista en la figura.
UMBRAL
θi representa un desplazamiento o umbral de activación (sesgo o bias).
Se puede pensar θi como el peso w0i que conecta una neurona imaginaria x0 con a0(t) = 1.
Conjunto de entradas, xj(t). Estas pueden ser provenientes del exterior o de otras neuronas
artificiales.
Peso sinápticos, wij. Representan el grado de comunicación entre la neurona artificial j y la neurona
artificial i. Pueden ser excitadores o inhibidores.
Regla de propagación, σi(wij, xj(t)). Integra la información proveniente de las distintas neuronas
artificiales y proporciona el valor del potencial postsináptico de la neurona i.
De esta forma, la salida producida por una neurona i, para un determinado instante de tiempo t puede
ser escrita en forma general de la siguiente manera:
Pesos sinápticos
El peso sináptico wij define la fuerza de una conexión sináptica entre dos neuronas, la neurona
presináptica i y la neurona postsináptica j. Los pesos sinápticos pueden tomar valores positivos,
negativos o cero. En caso de una entrada positiva, un peso positivo actúa como excitador, mientras
que un peso negativo actúa como inhibidor. En caso de que el peso sea cero, no existe comunicación
entre el par de neuronas.
Ajuste de Pesos
Mediante el ajuste de los pesos sinápticos, la red es capaz de adaptarse a cualquier entorno y realizar
una determinada tarea.
Regla de propagación
La regla de propagación determina el potencial resultante de la interacción de la neurona i con las N
neuronas vecinas. El potencial resultante hi se puede expresar de la siguiente manera:
La regla de propagación más simple y utilizada consiste en realizar una suma de las entradas
ponderadas con sus pesos sinápticos correspondientes:
Función de activación
La función de activación determina el estado de activación actual de la neurona en base al potencial
resultante hi y al estado de activación anterior de la neurona ai(t-1). El estado de activación de la
neurona para un determinado instante de tiempo t puede ser expresado de la siguiente manera:
Sin embargo, en la mayoría de los modelos se suele ignorar el estado anterior de la neurona,
definiéndose el estado de activación en función del potencial resultante hi:
Función de salida
La función de salida proporciona el valor de salida de la neurona, en base al estado de activación de
la neurona. En general se utiliza la función identidad, es decir:
A su vez, hablamos de redes neuronales con conexión hacia delante (redes feedforward) cuando las
conexiones entre las distintas neuronas de la red siguen un único sentido, desde la entrada de la red
hacia la salida de la misma.
Cuando las conexiones pueden ser tanto hacia delante como hacia atrás hablamos de redes
recurrentes (redes feedback).
Aprendizaje
Durante la operatoria de una red neuronal podemos distinguir claramente dos fases o modos de
operación:
La fase de aprendizaje o entrenamiento
La fase de operación o ejecución.
Durante la primera fase, la fase de aprendizaje, la red es entrenada para realizar un determinado tipo
de procesamiento. Una vez alcanzado un nivel de entrenamiento adecuado, se pasa a la fase de
operación.
En la fase de operación es donde la red es utilizada para llevar a cabo la tarea para la cual fue
entrenada.
Fase de entrenamiento.
Una vez seleccionada el tipo de neurona artificial que se utilizará en una red neuronal y determinada
su topología es necesario entrenarla para que la red pueda ser utilizada. Partiendo de un conjunto de
pesos sinápticos aleatorio, el proceso de aprendizaje busca un conjunto de pesos que permitan a la
red desarrollar correctamente una determinada tarea. Durante el proceso de aprendizaje se va
refinando iterativamente la solución hasta alcanzar un nivel de operación suficientemente bueno.
EL PROCESO DE APRENDIZAJE
Se puede dividir en tres grandes grupos de acuerdo a sus características [Isasi Viñuela y Galván
León, 2004], [Yao, 1999]:
Aprendizaje supervisado. Se presenta a la red un conjunto de patrones de entrada junto con la
salida esperada. Los pesos se van modificando de manera proporcional al error que se produce entre
la salida real de la red y la salida esperada.
Aprendizaje no supervisado. Se presenta a la red un conjunto de patrones de entrada. No hay
información disponible sobre la salida esperada. El proceso de entrenamiento en este caso deberá
ajustar sus pesos en base a la correlación existente entre los datos de entrada.
Aprendizaje por refuerzo. Este tipo de aprendizaje se ubica entre medio de los dos anteriores. Se le
presenta a la red un conjunto de patrones de entrada y se le indica a la red si la salida obtenida es o
no correcta. Sin embargo, no se le proporciona el valor de la salida esperada. Este tipo de
aprendizaje es muy útil en aquellos casos en que se desconoce cuál es la salida exacta que debe
proporcionar la red.
FASE DE OPERACIÓN.
Una vez finalizada la fase de aprendizaje, la red puede ser utilizada para realizar la tarea para la que
fue entrenada. Una de las principales ventajas que posee este modelo es que la red aprende la
relación existente entre los datos, adquiriendo la capacidad de generalizar conceptos. De esta
manera, una red neuronal puede tratar con información que no le fue presentada durante de la fase
de entrenamiento.
REDES NEURONALES CON CONEXIÓN HACIA DELANTE
Las redes neuronales artificiales con conexión hacia delante son el tema central. Este tipo de red, que
se caracteriza por su organización en capas y conexiones estrictamente hacia delante, utiliza
algoritmos de entrenamiento del tipo supervisado.
Este grupo de red es el más utilizado en aplicaciones prácticas que utilicen redes neuronales,
obteniéndose muy buenos resultados fundamentalmente como clasificadores de patrones y
estimadores de funciones.
Dentro de este grupo de redes neuronales encontramos al perceptrón, la red ADALINE/MADALINE, y
perceptrón multicapa.
El algoritmo de entrenamiento del perceptrón se encuentra dentro de los denominados algoritmos por
corrección de errores. Este tipo de algoritmos ajustan los pesos de manera proporcional a la
diferencia entre la salida actual proporcionada por la red y la salida objetivo, con el fin de minimizar el
error producido por la red.
Se puede demostrar que este método de entrenamiento converge siempre en un tiempo finito y con
independencia de los pesos de partida, siempre que la función a representar sea linealmente
separable. El principal problema de este método de entrenamiento es que cuando la función a
-. Pág. 16 .- Ing. Lizbeth Dora Briones Pereyra
Universidad Nacional del Santa Bioinformática
ARQUITECTURA
La arquitectura del Perceptron, llamada mapeo de patrones (pattern-mapping), aprende a clasificar
modelos mediante un aprendizaje supervisado. Los modelos que clasifica suelen ser generalmente
vectores con valores binarios (0,1) y las categorías de la clasificación se expresan mediante vectores
binarios.
El Perceptron presenta dos capas de unidades procesadoras (PE) y sólo una de ellas presenta la
capacidad de adaptar o modificar los pesos de las conexiones. La arquitectura del Perceptron admite
capas adicionales pero éstas no disponen la capacidad de modificar sus propias conexiones.
La Figura muestra la unidad procesadora básica del Perceptron. Las entradas ai llegan por la parte
izquierda, y cada conexión con la neurona j tiene asignada un peso de valor wji.
La unidad procesadora del Perceptrón realiza la suma ponderada de las entradas según la ecuación
(1).
Un aspecto común en muchas de las ANN es la entrada especial llamada "bias" representada en la
parte superior izquierda de la figura (entrada a0). Esta entrada siempre presenta un valor fijo, +1 y
funciona como una masa en un circuito eléctrico donde no varía de valor (se puede utilizar como un
valor constante de referencia).
El Perceptrón comprueba si la suma de las entradas ponderadas es mayor o menor que un cierto
valor umbral y genera la salida " xj" según la ecuación (2).
(2)
La salida xj es transmitida a lo largo de la línea de salida y constituye uno de los componentes del
vector de salida de la red.
LA RED NEURONAL ARTIFICIAL ADALINE / MADALINE
Otro de los modelos que tienen gran importancia es la red neuronal ADALINE. La topología de la red
ADALINE es similar a la del perceptrón sólo que en este caso la función de salida de las neuronas es
lineal. Dado que las señales de entrada pueden ser continuas, la red ADALINE es un dispositivo de
entrada/salida analógica (continua) a diferencia del perceptrón que de acuerdo a lo dicho
anteriormente es un dispositivo entrada/salida digital (binaria).
La Figura muestra una Adaline básica. La unidad procesadora representada por un círculo con el
símbolo sumatorio implementa una función umbral. Las conexiones de cada una de las entradas
tienen asociadas un valor de ponderación llamado también peso
wi. El mecanismo de ajuste de los pesos representado en la Figura (b), consiste en Utilizar la
diferencia entre el valor de la salida y el valor esperado. La unidad procesadora actúa como un
sumador y después realiza la función umbral según la ecuación (4)
(4)
La salida de la unidad Adaline es ±1 a diferencia de la arquitectura del Perceptron que sólo permite
los valores 0 y 1.
El entrenamiento se realiza presentando repetidamente una serie de parejas de entradas y salidas. El
objetivo de la Adaline durante el proceso de la adaptación es producir la salida deseada como propia
suya. La regla de aprendizaje en la arquitectura de la Adaline es la regla de Widrow-Hoff expresada
en la ecuación (5)
(5)
ESTRUCTURA MADALINE
El sistema Madaline tiene una capa de unidades Adaline que están conectadas a una simple unidad
Madaline. La Figura muestra cuatro unidades en la capa de entrada, tres unidades Adaline en la
segunda capa y una unidad Madaline en la tercera capa.
Las conexiones entre la capa de entrada y la capa de las unidades Adaline tienen asociadas un peso
ajustable por cada una de ellas. Sin embargo, las conexiones entre la capa de Adaline y la unidad
Madaline no tienen asociado ningún peso. Cada unidad Adaline transmite su salida (-1 ó +1) a la
unidad Madaline. La Madaline emplea una regla de mayorías para obtener su salida: si la mitad o más
de las unidades Adaline presentan un valor de salida +1, entonces la salida de la Madaline es +1. En
caso contrario el valor de salida de la red Madaline es -1. El entrenamiento de los sistemas Madaline
es similar al entrenamiento de las Adaline. El conjunto de entrenamiento es un conjunto de patrones
de entrada emparejados con las salidas deseadas. Una vez que se presenta el patrón a la entrada, el
sistema Madaline calcula su salida y a continuación se compara con la salida deseada. Los pesos son
modificados después de que cada patrón sea presentado a la entrada del sistema.
La operación de una red ADALINE con n neuronas de entrada y m neuronas de salidas puede ser
resumida de la siguiente manera:
Sin embargo, la principal diferencia entre la red ADALINE y el perceptrón consiste en la regla de
aprendizaje que utilizan. En el caso de la red ADALINE implementa como método de aprendizaje la
regla de Widrow-Hoff, también conocida como regla LMS (Least Mean Squares, mínimos cuadrados),
que realiza una actualización continua de los pesos sinápticos de acuerdo a la contribución de cada
neurona sobre el error total de la red.
Este método produce un conjunto de pesos sinápticos óptimos desde el punto de vista de los mínimos
cuadrados (un conjunto de pesos que minimiza el error cuadrático que comete la red), y en caso de
que los vectores de entrada sean linealmente independientes produce una asociación perfecta entre
entradas-salidas.
Existe una versión multicapa de la ADALINE denominada MADALINE (Multiple ADALINE, múltiples
Adalides) que consiste en una red neuronal con neuronas similares a las de la ADALINE pero que
contiene capas de neuronas ocultas.
Cada una de las entradas está conectada a través de su peso correspondiente a cada neurona
artificial. En la práctica existen conexiones eliminadas e incluso conexiones entre las salidas y
entradas de las neuronas de una capa. No obstante la figura muestra una conectividad total por
razones de generalización.
Normalmente las redes más complejas y más grandes ofrecen mejores prestaciones en el
Cálculo computacional que las redes simples. Las configuraciones de las redes construidas presentan
aspectos muy diferentes pero tienen un aspecto común, el ordenamiento de las neuronas en capas o
niveles imitando la estructura de capas que presenta el cerebro en algunas partes.
LA RED NEURONAL ARTIFICIAL PERCEPTRON DE DOS CAPAS
Las redes multicapa se forman con un grupo de capas simples en cascada. La salida de una capa es
la entrada de la siguiente capa. Se ha demostrado que las redes multicapa presentan cualidades y
aspectos por encima de las redes de una capa simple. La Figura
Muestra una red de dos capas.
RESUMEN
Actividad de Aprendizaje Nº 02
Contenidos:
Computación evolutiva y su clasificación de la computación Evolutiva
Enfoques en computación evolutiva
Algoritmo genético para entrenamiento de redes neuronales
Entrenamiento de redes neuronales basadas en programación evolutiva
Modelo matemático de una red neuronal perceptrón
Programa de una Red Neuronal: Problemas y Guía de uso del programa:
Ejemplos, modelo simple de red neuronal Perceptrón
Estrategias evolutivas (simples y múltiples)
Aplicaciones de las estrategias evolutivas y resumen
COMPUTACION EVOLUTIVA
La Computación Evolutiva interpreta la naturaleza como una inmensa máquina de resolver problemas
y trata de encontrar el origen de dicha potencialidad para utilizarla en nuestros programas.
De los cuales en esta Unidad de Aprendizaje veremos solo las dos primeras.
CODIFICACIÓN DE PARÁMETROS
Cada individuo (cromosoma) de la población se definirá como una cadena binaria. La longitud de
dicha cadena dependerá de la topología de la red. Dentro del cromosoma cada peso de la red
neuronal estará representado por 32 bits consecutivos. Así, la cantidad de genes dentro del
cromosoma será proporcional a la cantidad de pesos (y umbrales) que tenga la red. A lo largo de este
capítulo se utilizará indistintamente el término peso y gen para facilitar la explicación de los distintos
operadores. Sin embargo, es importante destacar que 32 genes serán la representación en el
genotipo de un peso sináptico, existiendo una función que transforma un conjunto de 32 bits en el
peso sináptico que representa (y viceversa).
Este esquema de codificación del genotipo está directamente relacionado con el esquema de cruza
que se utilizará, y que se describe en el gráfico.
En este trabajo se estudia un método alternativo para el entrenamiento de redes neuronales con
conexión hacia delante. Una vez determinada la topología de la red neuronal se utiliza un algoritmo
genético para ajustar los pesos de la red neuronal. Se evalúan diferentes variantes de los operadores
genéticos para el entrenamiento de las redes neuronales. Los resultados obtenidos por el algoritmo
genético son contrastados con los resultados obtenidos por el algoritmo de retropropagación de
errores.
X1 W1
X2 W2 ∑ Y
∑
X0 W3
X1 X2 X1 v X2
V V V
V F V
F V V
F F F
X1 X2 X1 v X2
1 1 1
1 -1 1
-1 1 1
-1 -1 -1
3) Función de Activación:
- Ingresar Aleatoriamente
- Ingresar desde el Teclado
W1 = 1,2 X0 = -1
W2 = -1,2
W0 = -0,4
X1 W1=1,2
X2 W2 =-1,2 ∑ Y
∑
-. Pág. 27 .- Ing. Lizbeth Dora Briones Pereyra
Universidad Nacional del Santa Bioinformática
X0 =-1 W3 = -0,4
II Iteración:
Y = W1X1 + W2X2 + W0X0
Y = (1,2)(1) + (-1,2)(-1) + (-0,4)(-1)
Y = 2,8 ≥ 0 Y=1
III Iteracion:
Y = W1X1 + W2X2 + W0X0
Y = -2 < 0 Y = -1
W2 = W2 + 2E(ti)(X2)
W2 = (-1,2) + 2(0,5)(1)(1)
W2 = -0,2
W0 = W0 + 2E(t1)(X0)
W0 = (-0,4) + 2(0,5)(1)(-1)
W0 = -1,4
X1 W1=0,2
X2 W2 =-0,2 ∑ Y
∑
X0 W3 = -1,4
I Iteracion
Y = W1X1 + W2X2 + W0X0
II Iteración:
Y = W1X1 + W2X2 + W0X0
Y = (0,2)(1) + (-0,2)(-1) + (-1,4)(-1)
Y = 1,8 ≥ 0 Y=1
III Iteración:
Y = W1X1 + W2X2 + W0X0
Y = (0,2)(-1) + (-0,2)(1) + (-1,4)(-1)
Y=1≥0 Y=1
IV Iteración:
Y = W1X1 + W2X2 + W0X0
Y = (0,2)(-1) + (-0,2)(-1) + (-1,4)(-1)
Y = 1,4 ≥ 0 Y=1
PASO 04: Ajuste de Pesos Factor de Aprendizaje
∆Wij(t) = Wi(0) + 2E(ti)(Xj) E=0,5
W1 = W1 + 2E(ti)(X1)
W1 = 0,2 + 2(0,5)(-1)(-1)
W1 = 1,2
W2 = W2 + 2E(ti)(X2)
W2 = (-0,2) + 2(0,5)(-1)(-1)
W2 = 0,8
W0 = W0 + 2E(t1)(X0)
W0 = (-1,4) + 2(0,5)(-1)(-1)
W0 = -0,4
PASO 05: Repetir el Paso 1
I Iteracion
Y = W1X1 + W2X2 + W0X0
Y = (1,2)(1) + (0,8)(1) + (-0,4)(-1)
Y = 2,4 ≥ 0 Y=1
II Iteración:
Y = W1X1 + W2X2 + W0X0
Y = (1,2)(1) + (0,8)(-1) + (-0,4)(-1)
Y = 0,8 ≥ 0 Y=1
III Iteracion:
Y = W1X1 + W2X2 + W0X0
Y = (1,2)(-1) + (0,8)(1) + (-0,4)(-1)
Y=0≥0 Y=1
IV Iteracion:
Y = W1X1 + W2X2 + W0X0
Y = (1,2)(-1) + (0,8)(-1) + (-0,4)(-1)
Y = -1,6 < 0 Y=-1
X1 W1=1,2
X2 W2 =0,8 ∑ Y
∑
X0 W3 = -0,4
Y, cada neurona de la capa de entradas está conectada con todas las neuronas de la capa de salidas.
Estas conexiones presentan pesos sinápticos variables: Wij, siendo i el número de la neurona de
entrada (Xi) y j el de la neurona de salida (Xj).
Además, cada neurona de la capa de salidas presenta un valor umbral (Tj), que, para facilitar la rutina
de entrenamiento, se expresa como si fuera un peso sináptico más, asociado a una neurona bias
(siempre activa).
De esta manera, los valores umbrales quedan: Tj = -W0j, siendo j el número de la neurona de salida
(Xj) y X0 la neurona bias.
El programa permite también trabajar con la red una vez esta ha sido entrenada, de forma que
introduciendo unos datos de entrada, la red genera unos datos de salida. Y las tablas con los
resultados de la red pueden exportarse en formato texto (.TXT).
- Problemas:
Debido a los problemas que presentan los modelos de redes neuronales de 2 capas (ver el apartado
"Limitaciones del modelo de Perceptrón" en el documento de Conceptos Teóricos), es posible que en
determinadas situaciones la red neuronal no pueda llegar a una eficacia del 100% (cuando la red
genera las salidas correctas para todas las entradas de la tabla de entrenamiento).
Para evitar que, debido a esta causa, el programa entre en un bucle sin fin (quedando bloqueado), en
la pantalla de Entrenamiento existe un botón Stop, que detendrá el entrenamiento de la red. Además,
la eficacia que se desea obtener de la red es regulable, de forma que se pueda entrenar la red incluso
en los casos descritos anteriormente (aunque obteniendo unos resultados nada exactos).
Así, para conocer la función de un botón, sólo hay que situar el puntero del ratón sobre dicho botón, y
en la barra de estado aparecerá una pequeña descripción.
Aparecerá una ventana donde se pueden elegir: el número de neuronas en la capa de entrada y el
número de neuronas en la capa de salidas. Pulsar el botón Aceptar para crear la red.
Una vez hecho esto, el programa definirá internamente la red (mediante 3 matrices de variables; una
para las neuronas de entrada, otra para las de salidas y otra para los pesos sinápticos), y presentará
un esquema de la red que se acaba de crear.
Aparecerá también la pantalla de Datos de Entrenamiento, que permitirá introducir los pares
entrada/salida que se usarán para entrenar la red.
Estado Valor
Activo 1
Inactivo 0
De manera que los datos que se introducirán en la red serán siempre vectores, formados por tantas
columnas como neuronas presente la capa en la que se introducen.
Así, en una red de 2 neuronas en la capa de entrada y una en la capa de salidas, el vector introducido
en la capa de entrada tendría 2 columnas y el introducido en la capa de salidas 1.
Pero, para simplificar el tratamiento de los datos y acelerar su escritura, los vectores se introducirán
siempre de la siguiente forma: 0101, que equivaldría al vector (0, 1, 0, 1).
Para introducir los datos entrada/salida de la tabla de entrenamiento, se usarán las cajas de texto, en
las que se introducirán los valores para el estado de cada neurona de la capa siguiendo la notación
descrita. Una vez introducido el par de datos entrada/salida, habrá que pulsar el botón Ok, y estos
pasarán a formar parte de la tabla de entrenamiento.
Ejemplo:
Entrada: Salida:
01 1
Una muestra de una tabla de entrenamiento seria la siguiente:
Si guardamos la red en este punto (opción Guardar... del menú Red), se guardará por un lado el
archivo que describe la estructura de la red (extensión .NN), y por otro un archivo que contiene los
datos de la tabla de entrenamiento (extensión .ENN).
- Entrenar la red:
Una vez introducida toda la tabla de entrenamiento, sólo hay que pulsar el botón Entrenar para pasar
a la pantalla de Entrenamiento.
Si guardamos la red después del entrenamiento, la red se guardara ya entrenada (el archivo .NN
contendrá además los pesos sinápticos resultantes del entrenamiento), de manera que cuando se
carge el fichero más adelante, no hará falta volver a entrena la red neuronal.
Aparecerá así la pantalla de Datos de Trabajo, que nos permite introducir datos de entrada a partir de
los cuales la red generará la salida.
Además, podemos indicar para cada dato de entrada cual es el resultado esperado (caja de texto
Salida esperada).
Una vez introducidos los datos para que la red trabaje, hay que pulsar el botón Generar resultados >.
Aparecerá entonces la pantalla de Resultados, donde, además de los resultados se muestran las
discrepancias entre las salidas esperadas y las proporcionadas por la red:
Una vez aquí, se puede guardar la tabla de resultados en formato texto (opción Guardar datos de
trabajo... del menú Datos).
Si al principio de la sesión de trabajo no deseamos introducir los datos de entrada a mano, también se
puede importar un archivo de texto (opción Cargar datos de trabajo... del menú Datos).
El archivo de texto ha de contener en cada línea: el dato de entrada, una coma, un espacio en blanco
(representa la salida que queremos obtener), otra coma, y el dato de salida que esperamos (no
obligatorio).
Ejemplo (model1_1.txt):
11, , 1
10, , 0
01, , 0
00, , 0
Ejemplos suministrados:
En el archivo suministrado se encuentran 2 ejemplos de redes neuronales ya preparadas. Estos
ejemplos están en el directorio EJEMPLOS\
- MODEL1_1.NN:
La red neuronal que se ha creado es una red con 2 neuronas en la capa de entradas y 1 en la capa
de salidas.
La tabla de entrenamiento se ha diseñado de manera que la red ejecute la operación AND (Y lógico)
entre las neuronas de la capa de entradas. Así, la neurona de salida sólo se activa si las dos
neuronas de la capa de entradas están activas:
X1 X2 Capa de salida
Caso 1 0 0 0
Caso 2 0 1 0
Caso3 1 0 0
Caso 4 1 1 1
Esta es la red usada en el apartado "Un modelo simple de red neuronal" del documento de Conceptos
Teóricos.
Si se estrena esta red se obtendrán (tal como se indico en Conceptos Teóricos) los siguientes pesos sinápticos:
W11 1
W21 2
W01 -2
- MODEL2_1.NN:
Esta red neuronal, está entrenada para diagnosticar un resfriado a partir de los síntomas que se le
indiquen.
1 Dolor de cabeza No Sí
2 Fiebre No Sí
3 Tos No Sí
4 Dolor de rodilla No Sí
X1 X2 X3 X4 Capa de salida
0 0 0 0 0
1 1 1 1 1
1 1 1 0 1
0 0 0 1 0
0 1 1 0 1
0 1 1 1 1
0 0 1 0 0
0 0 1 1 0
1 0 1 0 1
1 0 1 1 1
W21 2 Fiebre
W31 0 Tos
W01 -1
Lógicamente este modelo es un modelo muy sencillo entrenado con pocos casos, de manera que si
usáramos más casos, obtendríamos que la tos recibe más importancia que el dolor de rodilla.
Notas Adicionales
- Desarrollo:
El programa ha sido realizado en Visual Basic 3 para Windows 3.x.
Puesto que esta grabado en formato ASCII, aunque no se disponga de Visual Basic 3, se puede
revisar el código (comentado), abriendo los archivos con extensión .FRM en un editor de textos como
el NOTEPAD.EXE de Windows.
- Instalación:
Para instalar el programa solo hay que descomprimir el archivo .ZIP (usando la opción de
descomprimir directorios) y ejecutar el programa SETUP.EXE, despues sólo hay que seguir las
instrucciones que aparecen en pantalla.
Por último, sólo queda mover los directorios FUENTES, EJEMPLOS y DOCUMENTACION al
directorio donde se ha instalado el programa.
- Consultas:
Para cualquier consulta, problema o comentario sobre el programa:
Un modelo simple de red neuronal
Consideremos una red neuronal formada por 2 capas:
Una capa de entradas formada por 2 neuronas: 1 y 2.
Una capa de salidas formada por una sola neurona: 3.
Las conexiones entre las dos neuronas de entrada y la neurona de salida presentan pesos sinápticos
ajustables mediante el entrenamiento. Y a su vez, el valor umbral (U) de la neurona 3 puede ser
ajustado como un peso sináptico más, al considerar U = -W0 asociado a una neurona bias (siempre
activa: X0 = 1).
Además, en este modelo, cada neurona de una capa "transmite" su estado de activación (0 o 1) a la
siguiente capa de neuronas, y después deja de estar activa.
Ahora, entrenaremos la red de manera que la neurona 3 se active sólo si las neuronas 1 y 2 están activas, y
permanezca inactiva en caso contrario. Hay así cuatro posibles casos:
Caso 1 0 0 0
Caso 2 0 1 0
Caso3 1 0 0
Caso 4 1 1 1
Para entrenar esta red, usaremos una regla de aprendizaje derivada del método de aprendizaje
Hebbiano.
- Regla de aprendizaje de Hebb:
También llamada aprendizaje de coincidencia o aprendizaje Hebbiano. Y fue sugerida por Donald
Hebb en 1949, a partir de estudios con neuronas reales.
Hebb observó que la sinapsis (conexión entre 2 neuronas reales) se reforzaba sí la neurona de
entrada (o presináptica) y la neurona de salida (o postsináptica) eran activadas de manera continua.
De esta forma, las conexiones que se usan son las que se refuerzan.
El problema de este método es que no tiene en cuenta la eficacia de la red. Así, aunque la red ya esta
entrenada y los valores de entrada generen valores de salida correctos, la regla de aprendizaje
continua incrementando los pesos sinápticos entre neuronas activas.
- Entrenamiento de la red:
Debido al problema de la regla de aprendizaje de Hebb, usaremos una regla de aprendizaje derivada,
y que si tenga en cuenta la eficacia de la red en cada momento:
1. Si la salida generada por la neurona 3 (para los valores de las otras dos neuronas) es la
correcta, no se realizan ajustes de los pesos sinápticos.
2. Si la salida es 1 pero debería ser 0, se reducen sólo los pesos de las conexiones activas
según una constante C.
3. Si la salida es 0 pero debería ser 1, entonces se aumentan sólo los pesos de las conexiones
activas según la misma constante C.
Y se realizan diferentes ciclos de entrenamiento con los valores de entrenamiento hasta que la red
responda correctamente a todos los datos de entrada (en todos los casos de entrenamiento) o hasta
que la red ya no pueda aprender más.
Así el valor de salida de la neurona 3 es 0, y como el valor de la neurona 3 tenia que ser 0
(según el caso 1 de entrenamiento), no se realizan ajustes de los pesos.
Introducimos el dato de entrada del caso 4: (X1, X2) = (1, 1).
o W1 = W1 + C = 0 + 1 = 1
o W2 = W2 + C = 0 + 1 = 1
o W0 = W0 + C = 0 + 1 = 1
Y se continuaría de esta manera hasta terminar el entrenamiento, en cuyo caso obtendríamos los
siguientes pesos sinápticos ajustados:
W1 1
W2 2
W0 -2
En el ojo, la imagen proyectada sobre la retina es convertida en señales eléctricas gracias a las
células sensitivas a la luz (conos y bastones). Estas señales, a través de los axones de las células
ganglionares, son transmitidas al cerebro, que interpreta la imagen.
El modelo del Perceptrón está basado en esta idea del ojo: las células sensibles de la retina serian
detectores conectados con neuronas de la capa de entrada; estas neuronas se activan (1) cuando se
activa el detector correspondiente. Cada neurona de la capa de entrada está conectada con
diferentes neuronas de la capa de detección de características. Y cada neurona de esta capa estaría
conectada a su vez con diferentes neuronas de la capa de salidas del Perceptrón (figura).
Y la regla de aprendizaje usada para entrenar la red es una versión simplificada de la regla de
aprendizaje del Perceptrón.
- Limitaciones del modelo:
El modelo simple de red neuronal (al igual que el modelo del Perceptrón en el que se basa), presenta
bastantes limitaciones en las tareas que puede llegar a aprender.
Así, por ejemplo, el modelo seria incapaz de aprender a realizar la operación XOR (O exclusivo): no
puede ser entrenado con éxito para que la neurona 3 se active si las neuronas 1 o 2 están activas,
pero no las dos a la vez.
Esto es debido a que el método de entrenamiento lo que hace es mover la siguiente recta sobre un
plano:
De manera que los puntos (X1, X2) del plano por encima de la recta hacen que la neurona 3 se
active, y los que quedan por debajo de la recta hacen que la neurona 3 permanezca inactiva:
Y no se puede dividir el plano en 2 partes de manera que solo los puntos (0,1) y (1,0) queden en la
zona de activación de la neurona 3.
Para realizar este tipo de tareas "complejas" es preciso una red neuronal que contenga más de una
capa de pesos sinápticos ajustables. Para ello, se añaden capas ocultas de neuronas entre la capa
de entradas y la capa de salidas.
Es una rama de la Inteligencia Artificial que tiene como objetivo el desarrollar técnicas que permitan
que las computadoras puedan aprender.
Es decir, crear programas que sean capaces de generalizar los comportamientos partiendo de una
información que no esté estructurada suministrada en forma de ejemplos.
Una máquina puede considerarse inteligente cuando cumple con los siguientes requisitos:
Si es capaz de percibir visualmente los objetos que la rodean y reconocer sus formas.
Si es capaz de “entender” el lenguaje natural, hablado o escrito, así como de producir
respuestas en dicho lenguaje.
Elaborar actuaciones de acuerdo con las condiciones cambiantes del entorno y llevarlas a
cabo mediante los correspondientes elementos físicos.
Cuando puede almacenar información y conocimientos a los que manipula mediante reglas y
algoritmos para alcanzar soluciones a los problemas que plantea su funcionamiento.
Esta técnica esta básicamente enfocada hacia la optimización paramétrica. En esencia son métodos
estocásticos con paso adaptativo, que permiten resolver problemas de optimización paramétrica. A
este método se le han agregado procedimientos propios de la computación evolutiva, que lo han
convertido en un paradigma más de dicha metodología. Con tal mezcla, las EEs pueden definirse
como algoritmos evolutivos enfocados hacia la optimización paramétrica, teniendo como
características principales que utilizan una representación a través de vectores reales, una selección
determinística y operadores genéticos específicos de cruce y mutación. Además, su objetivo
fundamental consiste en encontrar el valor real de un vector de N dimensiones.
Las EEs pueden dividirse en dos tipos: Estrategias Evolutivas Simples y Estrategias Evolutivas
Múltiples.
EES SIMPLES
Son consideradas como procedimientos estocásticos de optimización paramétrica con paso
adaptativo, esta característica las hace similares al temple simulado. En este caso, se hace
evolucionar un solo individuo usando únicamente a la mutación como operador genético. Son
relativamente sencillas, y se denominan también EEs de dos miembros. Debido a que evoluciona un
solo individuo a la vez, no son consideradas estrictamente como métodos evolutivos. A pesar de ser
muy sencillas, son de gran utilidad práctica y han sido utilizadas, con algunas mejoras, para resolver
problemas reales en diversas áreas.
EES MÚLTIPLES:
Surgen como respuesta a las debilidades de las EEs simples, las cuales tienden a converger hacia
subóptimos. En las EEs múltiples existen múltiples individuos (población), y se producen en cada
generación varios nuevos individuos, usando tanto mutación como cruce (también puede usarse
cualquier otro operador). Se usa normalmente e cruce promedio, el cual genera un único
descendiente de dos padres, promediando los vectores de estos. En cuanto a los criterios de
reemplazo, siempre se usa un esquema determinístico pudiéndose utilizar una estrategia de inserción
o de inclusión.
Algunas aplicaciones de las estrategias evolutivas son:
Problemas de ruteo y redes
Bioquímica
Óptica
Diseño en ingeniería
Magnetismo
RESUMEN
Recombinación en EE
Actividad de Aprendizaje Nº 03
PROGRAMACIÓN EVOLUTIVA
Estos valores se utilizan, como en un autómata finito, de la siguiente manera: Teniendo el valor del
estado actual en el que nos encontramos, tomamos el valor del símbolo actual y si es el símbolo de
nuestra terna, nos debemos mover al nuevo estado.
Básicamente así funciona y así se representan los individuos en la PE. Evidentemente las funciones
de selección, Cruce (crossover) y mutación deben variar para adaptarse y funcionar con una
población de individuos de este tipo.
Son una estrategia de optimización estocástica similar a los Ags, pero hacen un énfasis específico en
los operadores genéticos tal y como se observan en la naturaleza y en la estructura de datos que
utilizan adaptada al problema. Por esto, a diferencia de los AGs, los PEs no son restrictivos en cuanto
a la representación del problema. Mientras en los AGs se hace necesario una codificación de las
soluciones del problema; en los PEs, tal representación se hace de forma directa.
APLICACIONES
Predicción
Generalización
Juegos
Control automático
Problema del viajero
Planeación de rutas
Diseño y entrenamiento de redes neuronales
Reconocimiento de patrones.
Historia
Los programas evolutivos fueron presentados en 1994 por Michalewicz, cuando propuso incorporar
conocimiento específico del problema a resolver en las estructuras de datos. Así, los PEs son
métodos que incorporan directamente conocimiento específico a los AGs, puesto que permiten la
utilización de estructuras de datos naturales. Esto permite, a su vez, la utilización de operadores
genéticos sensibles al contexto, con el fin de mejorar la eficiencia del algoritmo de búsqueda sin
perder gran parte de la propiedad de generalización. Además, de perder un poco de generalización,
con la incorporación de conocimiento específico, también se pierde el paralelismo implícito (basado
en alfabetos de símbolos mínimos). Sin embargo, esta pérdida se compensa con el procesamiento de
información más útil.
En este autómata pueden ahora aplicarse cinco diferentes tipos de mutaciones: cambiar un símbolo
de salida, cambiar una transición, agregar un estado, borrar un estado y cambiar el estado inicial. El
objetivo es hacer que el autómata reconozca un cierto conjunto de entradas (o sea, una cierta
expresión regular) sin equivocarse ni una sola vez.
RESUMEN
La Programación Evolutiva usa normalmente selección estocástica, mientras que las estrategias
evolutivas usan selección deterministica.
Ambas técnicas operan a nivel fenotipico (es decir, no requieren codificación de las variables del
problema).
La programación evolutiva es una abstracción de la evolución al nivel de las especies, por lo que no
se requiere el uso de un operador de recombinación (diferentes especies no se pueden cruzar entre
si). En contraste, las estrategias evolutivas son una abstracción de la evolución al nivel de un
individuo, por lo que la recombinación es posible.
Tendencias futuras
Las limitaciones de la representación binaria en algunas aplicaciones ha hecho de esta una ruta
interesante de investigación, sobre todo en el contexto de problemas de manufactura y definición de
rutas, en los cuales la respuesta se expresa en forma de permutaciones. Idealmente, debiera existir
un tipo de representación suficientemente flexible como para permitir su utilización en una amplia
gama de problemas de forma sencilla y natural.
Filho [77] desarrollo un sistema llamado GAME (Genetic Algorithms Manipu-lation Environment), que
constituye un paso importante en esta dirección. GAME usa una codificación de árbol en la que las
hojas pueden ser enteros, caracteres,números reales o cadenas binarias.
Gibson [101] también propuso una codificación híbrida similar a la de Filho.
Su propuesta se basa en el uso de componentes de diferentes tipos en el contexto de modelado de
procesos industriales.
Existe amplia evidencia en la literatura especializada [159, 155, 190, 100, 115] de que el usar una
representación adecuada puede simplificar tremendamente el proceso de búsqueda de un algoritmo
genético, pero a pesar de eso, muchos investigadores suelen pasar por alto este importante hecho.
Por lo tanto, es vital no únicamente reconocer que se requieren codificaciones mas poderosas.
PROGRAMACIÓN GENÉTICA
Aquí se programaran diferentes aplicaciones Bioinformáticas tomando como referencia lo leído
anteriormente.
_ Las señales que llegan, son las entradas a las neuronas (Xi).
_ Son ponderadas (Atenuadas o amplificadas). A través de un parámetro llamado Peso (Wi).
_ Estas señales pueden excitar a la neurona (peso positivo) o inhibir (peso negativo).
_ El efecto es la suma de las entradas ponderadas. Si la suma es mayor al umbral de la neurona,
entonces la neurona se activa produciendo una salida.
W _ Informar de las neuronas que aprende la red (valor que se calcula mediante una ecuación
Matemática).
_ Las conexiones que unen a las neuronas tiene asociado un peso que hacer que la red adquiera
conocimiento.
_ Cada conexión entre la neurona i y j esta ponderada por un peso Wji
_ Netj es la suma del producto de cada señal por el valor de la sinopsis que conecta ambas neuronas.
REGLA DE PROPAGACION: Combina los valores de entrada a una unidad con los pesos de las
conexiones
CALCULO DE LA MATRIZ DE PESOS.
Wji _ Refleja la influencia que la neurona j tiene en la neurona i.
W _ Conjunto de elementos positivos, negativos o nulos.
W (+) _ i esta activada y la neurona j tendera a activarse
W (–) _i esta activada y enviara la señal a j que tendera a desactivarla
Wji = 0_ No hay conexión entre ambas.
Función de salida o transferencia
Es la función que transforma la salida de la red a un estado de activación.
REGLA DE APRENDIZAJE
Biológica
La información memorizada en el cerebro está más relacionada con las conexiones que en las
neuronas mismas (sinapsis).
Artificial
El conocimiento se encuentra en los pesos de las conexiones entre neuronas.
Todo proceso de aprendizaje implica cierto número de cambios en estas conexiones (se aprende
Modificando los valores de la red y la red ha aprendido cuando los valores de los pesos son estables)
Las redes asocian o aprenden con relaciones de entrada – salida que han sido dadas de un colección
de ejemplos (patrones).
Existen 2 grupos de redes.
Supervisado. Aprendizaje con maestro, cuenta con una salida con cada uno de los patrones
No supervisado. Aprendizaje sin maestro, organiza los patrones en categorías, clustering.
Actividad de Aprendizaje Nº 04
Objetivos:
Conocer un Red de Hopfield
Aplicar Matriz de pesos, valores de entrada y salida de una Red de Hopfield
Desarrollar diferentes ejemplos usando Red de Hopfield
Crear aplicaciones con otras Redes Neuronales
Contenidos:
Red de Hopfield
Calculo de matriz de pesos
Ejemplos 1, 2, 3,4 y 5
Estudiar otras Redes Neuronales
Sistemas Clasificatorios
Aquí n los modelos clasificatorios se encuentran todas las aplicaciones que puedan surgir de los
modelos Evolutivos.
RED DE HOPFIELD
EJERCICIO:
Queremos almacenar dos patrones ejemplares C0 y C1 que tengan 3 elementos en una red de
Hopfield de 3 neuronas (patrones binarios).
4) Itera hasta que la red converja (la red converge cuando el valor de la energía no baja más)
Convergencia: el valor de la salida de la red no cambia por iteración.
5) Condición de convergencia
EJEMPLO 1:
Almacena 2 patrones en la memoria de la red neuronal de Hopfield y los patrones que almacena son:
EJEMPLO 2:
EJEMPLO 3
EJEMPLO 4:
EJEMPLO 5
BIBLIOGRAFÍA.