Sei sulla pagina 1di 75

Universidad Nacional del Santa Bioinformática

-. Pág. 1 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

-. Pág. 2 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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

-. Pág. 3 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Codificación de parámetros -----------------------------------------------------------------------------------------------------26


Entrenamiento de redes neuronales basadas en programación evolutiva---------------------------------------------------26
Modelo matemático de una red neuronal: Perceptrón-------------------------------------------------------------------------27
Programa de una red neuronal--------------------------------------------------------------------------------------------------30
Guía de uso del programa: -----------------------------------------------------------------------------------------------------31
Notas adicionales----------------------------------------------------------------------------------------------------------------38
Un modelo simple de red neuronal---------------------------------------------------------------------------------------------39
Modelo del Perceptrón ----------------------------------------------------------------------------------------------------------42
Limitaciones del modelo---------------------------------------------------------------------------------------------------------43
Estrategias evolutivas (EE) -----------------------------------------------------------------------------------------------------44
EEs simples----------------------------------------------------------------------------------------------------------------------44
EEs múltiples --------------------------------------------------------------------------------------------------------------------45
Algunas aplicaciones de las estrategias evolutivas ----------------------------------------------------------------------------45
Resumen-------------------------------------------------------------------------------------------------------------------------45
Actividad de Aprendizaje Nº 03: Computación Evolutiva: Programación evolutiva y programación genética---51
Programación evolutiva----------------------------------------------------------------------------------------------------------51
Programas evolutivos (pe) ------------------------------------------------------------------------------------------------------52
Aplicaciones----------------------------------------------------------------------------------------------------------------------52
Historia----------------------------------------------------------------------------------------------------------------------------53
Resumen-------------------------------------------------------------------------------------------------------------------------53
Estrategias evolutivas vs programación evolutiva------------------------------------------------------------------------------54
Tendencias futuras---------------------------------------------------------------------------------------------------------------55
Programación genética----------------------------------------------------------------------------------------------------------55
Aplicaciones de la redes neuronales--------------------------------------------------------------------------------------------57
Estado de activación. ------------------------------------------------------------------------------------------------------------57
Conectividad entre neuronas y regla de propagación. ------------------------------------------------------------------------57
Calculo de la matriz de pesos. --------------------------------------------------------------------------------------------------58
Regla de aprendizaje------------------------------------------------------------------------------------------------------------59
Clasificación de las redes--------------------------------------------------------------------------------------------------------60
Actividad de Aprendizaje Nº 04: Computación Evolutiva: Sistemas Clasificatorios----------------------------------61
Sistemas Clasificatorios----------------------------------------------------------------------------------------------------------61
Red de Hopfield------------------------------------------------------------------------------------------------------------------61
Ejemplo 01------------------------------------------------------------------------------------------------------------------------64
Ejemplo 02------------------------------------------------------------------------------------------------------------------------67
Ejemplo 03------------------------------------------------------------------------------------------------------------------------69
Ejemplo 04------------------------------------------------------------------------------------------------------------------------70
Bibliografía----------------------------------------------------------------------------------------------------------------------75

-. Pág. 4 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Actividad de Aprendizaje Nº 01

Modelos evolutivos de aprendizaje


Objetivos:
 Definir modelos de Evolutivos de Aprendizaje.
 Diferenciar entre una Neurona Biológica y una Neurona Artificial.
 Aplicar Modelos para el aprendizaje de una Neurona Artificial.
 Definir los tipos de Neuronas Artificiales y sus Capas.
Contenidos:
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.
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.
Capas de la Red Neuronal Artificial.

INTRODUCCIÓN AL APRENDIZAJE EVOLUTIVO


El objetivo de un proceso de aprendizaje es obtener una cierta regla o sistema que permita clasificar
objetos de un modo automático, o predecir el valor de las variables de control de un sistema.

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.

-. Pág. 5 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

La figura muestra la estructura típica de una neurona biológica.


PARTES DE UNA NEURONA
Hay tres partes principales en una neurona:
1. El cuerpo de la neurona o soma.
2. Ramas de extensión llamadas dendrítas para recibir las entradas.
3. Un axón que lleva la salida de la neurona a las desdirías de otras neuronas.

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.

-. Pág. 6 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

FORMA DE COMUNICACIÓN ENTRE NEURONAS

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.

-. Pág. 7 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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].

REDES NEURONALES DE TIPO BIOLÓGICO


Se le llama una red neuronal a conexiones entre millones de neuronas formadas en nuestro cerebro.

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.

-. Pág. 8 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

REDES NEURONALES ARTIFICIALES


Las redes neuronales artificiales (RNA) son modelos matemáticos que intentan reproducir el
funcionamiento del sistema nervioso. Como todo modelo, realizan una simplificación del sistema real
que simulan y toman las características principales del mismo para la resolución de una tarea
determinada.
Una red neuronal es un método de resolución de problemas basado en un modelo informático de la
manera en que están conectadas las neuronas del cerebro. Una red neuronal consiste en capas de
unidades procesadoras, llamadas nodos, unidas por conexiones direccionales: una capa de entrada,
una capa de salida y cero o más capas ocultas en medio. Se le presenta un patrón inicial de entrada a
la capa de entrada, y luego los nodos que se estimulan transmiten una señal a los nodos de la
siguiente capa a la que están conectados. Si la suma de todas las entradas que entran en una de
estas neuronas virtuales es mayor que el famoso umbral de activación de la neurona, esa neurona se
activa, y transmite su propia señal a las neuronas de la siguiente capa. El patrón de activación, por
tanto, se propaga hacia delante hasta que alcanza a la capa de salida, donde es devuelto como
solución a la entrada presentada. Al igual que en el sistema nervioso de los organismos biológicos,
las redes neuronales aprenden y afinan su rendimiento a lo largo del tiempo, mediante la repetición
de rondas en las que se ajustan sus umbrales, hasta que la salida real coincide con la salida deseada
para cualquier entrada dada. Este proceso puede ser supervisado por un experimentador humano, o
puede correr automáticamente utilizando un algoritmo de aprendizaje, se han utilizado algoritmos
genéticos para construir y entrenar a redes neuronales.

ENTRENAMIENTOS PARA EL APRENDIZAJE DE REDES NEURONALES


Uno de los aspectos más importantes en el uso de las redes neuronales es el del entrenamiento o
aprendizaje: a partir de unos vectores de muestra o entrenamiento, se ajustan los pesos de los
enlaces entre las diferentes capas de neuronas que componen la red para minimizar una función de
error, es decir, para ajustar las salidas producidas por la red, a las esperadas.
Sin embargo el método de aprendizaje más comúnmente usado, la propagación hacia atrás y en
general todos los métodos basados en el gradiente, tienen unas limitaciones muy conocidas:
convergencia a mínimos locales muy dependientes de la solución inicial, y por lo general, muy
alejados de los óptimos globales.

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.

-. Pág. 9 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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 DE NEURONA ARTIFICIAL


La neurona artificial es un elemento de procesamiento simple que a partir de un vector de entradas
produce una única salida. En general podemos encontrar tres tipos de neuronas artificiales, donde
cada una de las cuales tiene su contraparte en el sistema nervioso:
1. Las que reciben información directamente desde el exterior, a las cuales se las denomina neuronas
de entrada.
2. Las que reciben información desde otras neuronas artificiales, a las cuales se las denomina
neuronas ocultas. Es en estas neuronas, en particular en sus sinapsis, donde se realiza la
representación de la información almacenada.
3. Las que reciben la información procesada y las devuelven al exterior.
A estas neuronas se las denomina neuronas de salida.
La figura muestra los elementos que componen una neurona artificial:

-. Pág. 10 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

-. Pág. 11 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

FUNCION DE ACTIVACION MÁS UTILIZADAS


Veremos una tabla que muestra un listado de algunas de las funciones de activación más utilizadas
en los distintos modelos de redes neuronales artificiales.

Aquí tenemos otro modelo

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.

-. Pág. 12 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

Función de activación, fi(ai(t-1), hi(t)). Provee el estado de activación actual de la neurona i.


Función de salida, Fi(ai(t)). Representa la salida actual 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:

A continuación se estudian cada uno de los puntos introducidos anteriormente.


Entradas y salidas
Las entradas y salidas de una neurona pueden ser clasificadas en dos grandes grupos, binarias o
continuas.
Las neuronas binarias (digitales) sólo admiten dos valores posibles. En general en este tipo de
neurona se utilizan los siguientes dos alfabetos {0,1} o {-1,1}. Por su parte, las neuronas continuas
(analógicas) admiten valores dentro de un determinado rango, que en general suele definirse como [-
1, 1].
La selección del tipo de neurona a utilizar depende de la aplicación y del modelo a construir.

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:

-. Pág. 13 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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:

Arquitectura de una red neuronal


Una vez definida el tipo de neurona que se utilizará en un modelo de redes neuronales artificiales es
necesario definir la topología de la misma.
La organización y disposición de las neuronas dentro de una red neuronal se denomina topología, y
viene dada por el número de capas, la cantidad de neuronas por capa, el grado de conectividad, y el
tipo de conexión entre neuronas.
Las neuronas suelen agruparse en unidades funcionales denominadas capas.
Capa de entrada:
Se denomina capa de entrada a aquella que está compuesta por neuronas de entradas y por lo tanto
recibe información procedente desde el exterior. Análogamente, se denomina capa oculta.
Capa de salida:
Aquellas capas que están compuestas por neuronas ocultas y de salida respectivamente.
Una red neuronal artificial está compuesta por una o más capas, las cuales se encuentran
interconectadas entre sí.
Entre un par de neuronas de la red neuronal artificial pueden existir conexiones. Estas conexiones
son las sinapsis, tienen asociadas un peso sináptico, y son direccionales.
Cuando la conexión se establece entre dos neuronas de una misma capa hablamos de conexiones
laterales o conexiones intra-capa. Por el contrario, si la conexión se establece entre neuronas de
distintas capas se la denomina conexión inter-capa. Si la conexión se produce en el sentido inverso al
de entrada-salida la conexión se llama recurrente o realimentada.
Una red puede estar formada por una única capa de neuronas. En este caso hablamos de redes
monocapa, y las neuronas que conforman dicha capa cumplen la función de neuronas de entrada y
salida simultáneamente.
Cuando la red está compuesta por dos o más capas hablamos de redes multicapa.

-. Pág. 14 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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

-. Pág. 15 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

LA RED NEURONAL ARTIICIAL PERCEPTRÓN.


Este modelo tiene gran importancia histórica ya que fue el primer modelo en poseer un mecanismo de
entrenamiento que permite determinar automáticamente los pesos sinápticos que clasifican
correctamente a un conjunto de patrones a partir de un conjunto de ejemplos.
La arquitectura del perceptrón está compuesta por dos capas de neuronas, una de entrada y una de
salida. La capa de entrada es la que recibe la información proveniente del exterior y la transmite a las
neuronas sin realizar ningún tipo de operación sobre la señal de entrada.
En general la información entrante es binaria. La función de activación de las neuronas de un
perceptrón es del tipo escalón, dando de esta manera sólo salidas binarias. Cada neurona de salida
del perceptrón representa a una clase. Una neurona de salida responde con 1 si el vector de entrada
pertenece a la clase a la que representa y responde con 0 en caso contrario. Como se muestra en la
figura anterior en la tabla Funciones de activación.

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

representar no es linealmente separable el proceso de entrenamiento oscilará y nunca alcanzará la


solución. Las funciones no separables linealmente no pueden ser representadas por un perceptrón.

La operación de un perceptrón con n neuronas de entrada y m neuronas de salidas puede ser


resumida de la siguiente manera:

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).

-. Pág. 17 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

(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)

-. Pág. 18 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Siendo η la constante de aprendizaje, ai la salida de la unidad i, t la salida deseada y por último x la


salida de la unidad Adaline. No obstante la variante de esta regla más utilizada considera el valor de
la suma ponderada S en vez del valor de la salida de la unidad Adaline.

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.

-. Pág. 19 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

REDES NEURONALES ARTIFICIALES DE UNA CAPA


La capacidad de cálculo y potencia de la computación neuronal proviene de las múltiples conexiones
de las neuronas artificiales que constituyen las redes ANN.
La red más simple es un grupo de neuronas ordenadas en una capa como se muestra en la Figura.
Los nodos circulares sólo son distribuidores de las entradas y no se consideran constituyentes de una
capa.

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.

-. Pág. 20 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

LA RED NEURONAL ARTIICIAL PERCEPTRON DE TRES CAPAS


Las topologías con tres o más capas se caracterizan porque la regla de aprendizaje del perceptrón
sólo adapta los pesos o valores de las conexiones de una capa. Una aplicación típica de un sistema
de tres capas es la que muestra la Figura donde la entrada es la imagen de la letra E y la salida es la
categorización de la entrada en dos clases.

LA RED NEURONAL ARTIICIAL PERCEPTRON MULTICAPA


Es una extensión del perceptrón simple. La topología de un perceptrón multicapa está definida por un
conjunto de capas ocultas, una capa de entrada y una de salida. No existen restricciones sobre la
función de activación aunque en general se suelen utilizar funciones sigmoideas.
La operación de un perceptrón multicapa con una única capa oculta puede ser resumida de la
siguiente manera:

-. Pág. 21 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Este modelo es el más utilizado en la actualidad. El espectro de aplicaciones del perceptrón


multicapa es muy amplio lo que hace muy difícil enumerar sus aplicaciones más relevantes. Sin
embargo, podemos mencionar algunas áreas de aplicación:
• Codificación de información
• Traducción de texto en lenguaje hablado
• Reconocimiento óptico de caracteres (OCR)
La popularidad de este modelo de redes neuronales no se debe únicamente al éxito obtenido en
aplicaciones prácticas del mismo. Existen demostraciones teóricas que permiten explicar el éxito de
dichas aplicaciones. En [Funahashi, 1989] se demuestra que un perceptrón multicapa cuya función de
activación sea no constante, acotada y monótona creciente es un aproximador universal de funciones.
En [Hornik et alt, 1989] se llega a un resultado similar utilizando funciones de activación sigmoideas,
no necesariamente continuas.

RESUMEN

-. Pág. 22 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 23 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Actividad de Aprendizaje Nº 02

Computación Evolutiva: Algoritmos Genéticos para Redes


Neuronales y Estrategias Evolutivas
Objetivos:
 Conocer la Computación Evolutiva y su clasificación.
 Crear algoritmos genéticos para el entrenamiento de redes neuronales.
 Conocer los modelos matemáticos y realizar ejemplos con la red neuronal perceptrón

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.

Con el término de Computación Evolutiva se engloba al conjunto de técnicas que basándose en la


simulación de los procesos naturales y la genética se utiliza para resolver problemas complejos de
búsqueda y aprendizaje.

CLASIFICACION DE LA COMPUTACION EVOLUTIVA


Dentro de la Computación evolutiva se puede clasificar de la siguiente manera:

-. Pág. 24 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

De los cuales en esta Unidad de Aprendizaje veremos solo las dos primeras.

ALGORITMO GENÉTICO PARA ENTRENAMIENTO DE REDES NEURONALES


El método propuesto consiste en una adaptación del algoritmo genético canónico. Se estudiará la
manera de adaptar distintas variantes de los operadores clásicos para poder utilizar a los algoritmos
genéticos como método de entrenamiento de redes neuronales.

-. Pág. 25 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

Entrenamiento de redes neuronales basado en algoritmos evolutivos

ENTRENAMIENTO DE REDES NEURONALES BASADOS EN PROGRAMACIÓN EVOLUTIVA

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.

-. Pág. 26 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Modelo Matemático de una Red Neuronal: Perceptrón


1) Modelo de una Neurona perceptrón Simple:

X1 W1
X2 W2 ∑ Y

X0 W3

2) Representación de un compuerta lógica OR:

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

Verdadero = Positivo (1)


Falso = Negativo (-1)

3) Función de Activación:

1 si W1X1 + W2X2 + W0X0 ≥ 0


Y=
-1 si W1X1 + W2X2 + W0X0 < 0
4) Ingresar los valores de los pesos y el umbral

- 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

PASO 01: I Iteracion


Y = W1X1 + W2X2 + W0X0
Y = (1,2)(1) + (-1,2)(1) + (-0,4)(-1)
Y = 1,2 – 1,2 + 0,4
Y = 0,4 ≥ 0 Y=1

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

PASO 02: Ajuste de Pesos Factor de Aprendizaje


∆Wij(t) = Wi(0) + 2E(ti)(Xj) E=0,5
W1 = W1 + 2E(ti)(X1)
W1 = 1,2 + 2(0,5)(1)(-1)
W1 = 0,2

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

PASO 03: Repetir el Paso 1

I Iteracion
Y = W1X1 + W2X2 + W0X0

-. Pág. 28 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Y = (0,2)(1) + (-0,2)(1) + (-1,4)(-1)


Y = 1,4 ≥ 0 Y=1

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)

-. Pág. 29 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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

Programa de una Red Neuronal


Simula una red neuronal sencilla basada en el modelo del Perceptrón.
- Descripción general:
Las redes neuronales que puede crear y simular el programa están formadas por 2 capas de
neuronas:
 Una capa de entradas, con un máximo de 8 neuronas.
 Una capa de salidas, con un máximo de 8 neuronas.

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.

Así, uno de los modelos que puede manejar el programa sería:

-. Pág. 30 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Y la condición de activación para las neuronas de la capa de salida quedaría:

Para el entrenamiento se usa la regla de entrenamiento del Perceptrón simplificada:

 Si la salida generada por la neurona de salida es la correcta (según la tabla de datos de


entrenamiento), no se realizan ajustes de los pesos sinápticos.
 Si la salida es 1 pero debería ser 0, se reducen sólo los pesos de las conexiones activas
sobre la neurona de salida según una constante de entrenamiento C.
 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.

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).

Guía de uso del programa:


Para facilitar su utilización, el programa presenta ayudas contextuales mediante una barra de estado
en la parte inferior de la pantalla.

-. Pág. 31 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

- Crear una red neuronal:


Elegir la opción Nueva del menú Red.

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.

- Introducir Datos de Entrenamiento:


Las neuronas de las redes neuronales creadas por el programa, sólo pueden tener 2 estados:

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.

-. Pág. 32 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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:

Supongamos una red de 2 neuronas en la capa de entradas y 1 en la de salidas. Si queremos


entrenar la red de manera que la neurona de salida se active (1) si la neurona de entrada 1 esta
activa (1) y la neurona 2 esta inactiva (0), introduciríamos los siguientes valores en las cajas de texto:

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.

-. Pág. 33 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

La pantalla de Entrenamiento presenta diferentes opciones:

 Constante de entrenamiento: es el valor que usa la regla de entrenamiento para


incrementar/decrementar los pesos sinápticos durante el entrenamiento.
 Eficacia deseada (%): indica el porcentaje de valores de salida correctos respecto al total que
se coloca como límite mínimo para concluir el entrenamiento.
 Repetir entrenamiento: desprecia los pesos sinápticos obtenidos después de un
entrenamiento, y permite volver a entrenar la red.
 Cancelar entrenamiento: desprecia los pesos sinápticos obtenidos y vuelve a la pantalla de
Datos de Entrenamiento.
 Stop: en caso de estar realizando el entrenamiento rápido, detiene el proceso.
 Ciclos de entrenamiento: informa sobre el número de veces que la red neuronal a sido
entrenada con un dato de entrenamiento.
 Lista de pesos sinápticos: informa del valor del peso sináptico (Wij) desde la neurona i de la
capa de entradas a la neurona j de la capa de salidas.

Además, existen dos opciones de entrenamiento:


 Entrenamiento rápido: entrena la red sin mostrar información sobre el estado del
entrenamiento por pantalla. Es el método recomendado en la mayoría de casos.
 Entrenamiento paso a paso: muestra información (en forma de explicación y mediante
colores) sobre cada paso de un ciclo de entrenamiento. Esta opción es útil para saber que
hace la red neuronal en cada ciclo 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.

-. Pág. 34 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

- Trabajar con la red entrenada:


Después de entrenar la red, si se quiere trabajar con la red neuronal (introducirle datos y que genere
resultados a partir de lo que ha aprendido), hay que pulsar el botón Trabajar con la Red.

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).

-. Pág. 35 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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:

Peso sináptico Valor

W11 1

W21 2

-. Pág. 36 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

W01 -2

En caso de no querer realizar el entrenamiento de la red, en el archivo MODEL1_2.NN se encuentra


la misma red neuronal ya entrenada.

- MODEL2_1.NN:
Esta red neuronal, está entrenada para diagnosticar un resfriado a partir de los síntomas que se le
indiquen.

La red consta de 4 neuronas en la capa de entrada, con las siguientes equivalencias:

Neurona de Síntoma Valor 0 Valor 1


entrada

1 Dolor de cabeza No Sí

2 Fiebre No Sí

3 Tos No Sí

4 Dolor de rodilla No Sí

La neurona de salida devuelve 1 si hay resfriado y 0 si no hay resfriado.

A partir de estos datos, se elabora la siguiente tabla de entrenamiento:

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

-. Pág. 37 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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

Los pesos sinápticos generados son:

Peso sináptico Valor Síntoma asociado

W11 2 Dolor de cabeza

W21 2 Fiebre

W31 0 Tos

W41 0 Dolor de rodilla

W01 -1

La red resultante, a la hora de diagnosticar un resfriado, da mayor importancia al hecho de padecer


fiebre o dolor de cabeza que no al hecho de sufrir tos.

El hecho de padecer dolor de rodilla tampoco recibe ninguna importancia.

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.

El código fuente se puede consultar en el directorio FUENTES\.

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.

-. Pág. 38 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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).

El esquema de este modelo seria el presentado en la figura 4:

Y la condición de activación de la neurona 3 sería:

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:

X1 X2 Capa de salida (X3)

-. Pág. 39 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

Así, según este método de aprendizaje aplicado a las redes


neuronales artificiales, las conexiones entre las neuronas de entrada
activas y las neuronas de salida activas se refuerzan durante el
entrenamiento: coincidencias entre actividad de entrada y actividad
de salida se intensifican. Mientras que las conexiones entre neuronas
de entrada inactivas y neuronas de salida (activas o inactivas) no se
refuerzan.
Este método de aprendizaje puede ser tanto supervisado como no supervisado.
Cuando es supervisado, la respuesta correcta para el dato de entrada es introducida para cada
neurona de salida, y los pesos sinápticos entre las neuronas activas se incrementan, mientras que los
pesos entre neuronas que no estén activas simultáneamente permanecen igual que estaban.

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.

-. Pág. 40 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Así, en cada ciclo de entrenamiento:


 Se presenta un dato de entrada (formado por los valores de las neuronas 1 y 2) del conjunto
de datos de entrenamiento.
 La red, a partir del dato de entrada generará un dato de salida.
 Se aplica la regla anterior, que mide la eficiencia de la red y actúa en consecuencia.

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.

De esta forma, si partimos de unos pesos sinápticos iguales a 0 (W1 = W2 = W0 = 0) y de una


constante de refuerzo igual a 1 (C = 1):

 Introducimos el dato de entrada del caso 1: (X1, X2) = (0, 0).

 Puesto que todos los pesos valen 0:

 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).

 Puesto que todos los pesos valen 0:


 Pero, como el valor de salida de la neurona 3 es 0, y tenia que ser 1 (según el caso 4 de
entrenamiento), los pesos de las conexiones activas se aumentan en un valor de C (tal como
indica el apartado 3 de al regla de aprendizaje):

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:

Peso sináptico Valor

W1 1

W2 2

W0 -2

-. Pág. 41 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

- Modelo del Perceptrón:


Este modelo de red simple, sería un modelo reducido del modelo del Perceptrón, desarrollado por
Rosenblatt entre 1958 y 1962, a partir de los modelos de red de McCullough-Pitts.

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:

-. Pág. 42 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

¿Qué es el aprendizaje automático?

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.

En el aprendizaje automático entra el término reconocimiento de formas en la cual se hace distinción


sobre dos aproximaciones:

-. Pág. 43 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Aproximaciones Paramétricas: Se asume un conocimiento a priori acerca de la forma funcional de las


distribuciones de probabilidad de cada clase sobre el espacio de representación, las cuales vendrán
determinadas por un conjunto finito de parámetros.

Aproximaciones no Paramétricas: No supone ninguna forma de las distribuciones de probabilidad


sobre el espacio de representación, de modo que el único conocimiento a priori será el
correspondiente a la información inducida a partir de un conjunto de muestras controladas.

ESTRATEGIAS EVOLUTIVAS (EE)

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

-. Pág. 44 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Magnetismo

RESUMEN

-. Pág. 45 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Otro Resumen de Estrategias Evolutivas

-. Pág. 46 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 47 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 48 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Recombinación en EE

-. Pág. 49 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 50 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Actividad de Aprendizaje Nº 03

Computación Evolutiva: Programación Evolutiva y


Programación Genética
Objetivos:
 Conocer conceptos sobre programación evolutiva
 Construir aplicaciones sobre programación evolutiva
 Conocer reglas de propagación y aprendizaje
Contenidos:
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

PROGRAMACIÓN EVOLUTIVA

La programación evolutiva (PE) es una rama de la computación evolutiva. La programación evolutiva


es prácticamente una variación de los algoritmos genéticos, donde lo que cambia es la representación
de los individuos. En el caso de la PE los individuos son ternas (tripletas) cuyos valores representan
estados de un autómata finito. Cada terna está formada por:

 El valor del estado actual;


 un símbolo del alfabeto utilizado;
 el valor del nuevo estado.

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.

-. Pág. 51 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

PROGRAMAS EVOLUTIVOS (PE)

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.

-. Pág. 52 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

Veamos el ejemplo del funcionamiento de la programación evolutiva que se indica en la figura, La


tabla de transiciones de este autómata es la siguiente:

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

-. Pág. 53 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

ESTRATEGIAS EVOLUTIVAS VS PROGRAMACIÓN EVOLUTIVA

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.

-. Pág. 54 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

-. Pág. 55 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 56 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

APLICACIONES DE LA REDES NEURONALES

_ 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).

Elementos más importantes de una RNA


Unidades de procesamiento (Neurona Artificial)
Estado de activación de cada neurona
Conectividad entre neuronas y regla de propagación
Función de transferencia
Función o regla de activación
Regla de aprendizaje.
ESTADO DE ACTIVACION.
Representa el estado del sistema en un tiempo t.
Las neuronas tienen dos estados de activación binarios
1 _ Activo (Excitado)
0 _ Pasivo (Reposo)
Los valores pueden ser continuos o discretos [0,1][-1,1]
CONECTIVIDAD ENTRE NEURONAS Y REGLA DE PROPAGACIÓN.
_ La conectividad entre neuronas (nodos) de una red está relacionada con la forma en que las salidas
de las neuronas están canalizadas para convertirse en entradas de otras neuronas.

-. Pág. 57 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformá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.

-. Pág. 58 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

-. Pág. 59 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

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.

-. Pág. 60 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

Actividad de Aprendizaje Nº 04

Computación Evolutiva: Sistemas Clasificatorios

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

-. Pág. 61 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

1) Calcula de la matriz de pesos

EJERCICIO:
Queremos almacenar dos patrones ejemplares C0 y C1 que tengan 3 elementos en una red de
Hopfield de 3 neuronas (patrones binarios).

De acuerdo a la ecuación Wij

-. Pág. 62 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

2) Inicializa el valor del estado de cada neurona con el valor de entrada

Edo(Tiempo (cuando es 0 el edo = entrada))= Entrada

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

-. Pág. 63 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

6) Salida final de la red.


Cuando la red converja, la salida actual de la red es la salida de la red.

EJEMPLO 1:
Almacena 2 patrones en la memoria de la red neuronal de Hopfield y los patrones que almacena son:

-. Pág. 64 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 65 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 66 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

EJEMPLO 2:

-. Pág. 67 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 68 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

EJEMPLO 3

-. Pág. 69 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

EJEMPLO 4:

Almacenar un patrón C1C2C3 y ver funcionamiento de la red

-. Pág. 70 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 71 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 72 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

EJEMPLO 5

-. Pág. 73 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

-. Pág. 74 .- Ing. Lizbeth Dora Briones Pereyra


Universidad Nacional del Santa Bioinformática

BIBLIOGRAFÍA.

 RAFAEL LAHOZ-BELTRA; Bioinformática simulación, vida artificial e inteligencia artificial.


 Solomon, Berg y Martin, Biologia, Marzo 2005 Mexico, Editorial Mexicana.
 Marcos Gestal P. Introducción a las Redes Neuronales Artificiales, Universidad de Coruña,
http//sabia.tic.udc.es.
 Redes Neuronales y Cerebros Artificiales, http://www.artificialbrains.com.
 García Quiroz Adan l. Redes Neuronales. Mexico Marzo 2008.
 Carlos Alberto Ruiz, Marta Susana Basualdo, Redes Neuronales: Conceptos Básicos y
Aplicaciones, Marzo de 2001.
 Escuela Superior de Ingeniería de Bilbao, EHU 2., Redes Neuronales Artificiales y sus
Aplicaciones.

-. Pág. 75 .- Ing. Lizbeth Dora Briones Pereyra

Potrebbero piacerti anche