Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERA
UNIVERSIDAD DE BUENOS AIRES
TESISTA: Sr. Luis Federico Bertona
DIRECTORES: Prof. Dr. Ramn Garca Martnez
Prof. M. Ing. Paola Britos
Laboratorio de Sistemas Inteligentes
NOVIEMBRE 2005
ENTRENAMIENTO DE REDES NEURONALES
BASADO EN ALGORITMOS EVOLUTIVOS
NOVIEMBRE 2005
Resumen
En este trabajo se estudia un mtodo alternativo para el entrenamiento de
redes neuronales con conexin hacia delante. Una vez determinada la
topologa de la red neuronal se utiliza un algoritmo gentico para ajustar los
pesos de la red neuronal. Se evalan diferentes variantes de los operadores
genticos para el entrenamiento de las redes neuronales. Los resultados
obtenidos por el algoritmo gentico son contrastados con los resultados
obtenidos por el algoritmo de retropropagacin de errores.
Abstract
In this work an alternative method to train feedforward neural networks is
studied. Once the topology of the neural network is determined, a genetic
algorithm is used to adjust the neural networks weights. Different variations of
the genetic operators to train neural networks are evaluated. The results
reached by the genetic algorithm are contrasted with the results reached by the
Backpropagation Algorithm.
ndice de contenidos
Captulo 1: Introduccin ..................................................................................... 1
1.2. Organizacin de esta tesis....................................................................... 2
Captulo 2: Redes neuronales ............................................................................ 5
2.1. El modelo biolgico.................................................................................. 5
2.2. Estructura de un sistema neuronal artificial ............................................. 6
2.3. Modelo de neurona artificial..................................................................... 7
2.3.1. Entradas y salidas ............................................................................. 8
2.3.2. Pesos sinpticos ............................................................................... 8
2.3.3. Regla de propagacin ....................................................................... 8
2.3.4. Funcin de activacin........................................................................ 9
2.3.5. Funcin de salida .............................................................................. 9
2.4. Arquitectura de una red neuronal .......................................................... 10
2.5. Aprendizaje............................................................................................ 10
2.5.1. Fase de entrenamiento. .................................................................. 10
2.5.2. Fase de operacin........................................................................... 11
2.6. Redes neuronales con conexin hacia delante ..................................... 11
2.6.1. Perceptrn....................................................................................... 12
2.6.2. ADALINE / MADALINE.................................................................... 12
2.6.3. Perceptrn multicapa ...................................................................... 13
Captulo 3: Entrenamiento de redes neuronales .............................................. 15
3.1. Mtodos de gradiente descendente....................................................... 15
3.2. El algoritmo Backpropagation ................................................................ 16
3.2.1. Deduccin del algoritmo Backpropagation ...................................... 16
3.2.2. Modos de entrenamiento................................................................. 19
3.2.3. Aceleracin del aprendizaje ............................................................ 20
3.3. Generalizacin....................................................................................... 22
Captulo 4: Algoritmos genticos...................................................................... 25
4.1. Introduccin ........................................................................................... 25
4.2. El cromosoma........................................................................................ 26
4.3. Evaluacin y aptitud............................................................................... 27
4.4. Poblacin ............................................................................................... 27
4.5 Variantes de los operadores bsicos ...................................................... 28
4.5.1. Seleccin......................................................................................... 28
4.5.2. Cruza............................................................................................... 30
4.5.3. Mutacin.......................................................................................... 31
Captulo 5: Descripcin del problema............................................................... 33
5.1. Deficiencias del algoritmo ...................................................................... 33
5.2. Objetivo y marco de trabajo ................................................................... 35
Captulo 6: Solucin propuesta ........................................................................ 37
6.1. Algoritmo gentico para entrenamiento de redes neuronales................ 38
6.1.1. Codificacin de parmetros............................................................. 38
6.1.2. Del genotipo al fenotipo................................................................... 38
6.1.3. Evaluacin y aptitud ........................................................................ 38
6.1.4. Operadores de seleccin ............................................................... 39
6.1.5. Operadores de cruza....................................................................... 41
6.1.6. Operadores de mutacin................................................................. 43
6.1.7. Operadores de inicializacin ........................................................... 45
6.2. Problemas del mtodo propuesto .......................................................... 46
L. Federico Bertona i
Entrenamiento de redes neuronales basado en algoritmos evolutivos
ii L. Federico Bertona
Entrenamiento de redes neuronales basado en algoritmos evolutivos
Captulo 1: Introduccin
La Inteligencia Artificial es la disciplina que estudia la forma de disear
procesos que exhiban caractersticas que comnmente se asocian con el
comportamiento humano inteligente [Garca Martnez, 1997]. La Inteligencia
Artificial sintetiza y automatiza tareas intelectuales y es, por lo tanto,
potencialmente relevante para cualquier mbito de la actividad intelectual
humana [Russell y Norving, 2004]. Actualmente esta ciencia est
comprendida por varios subcampos que van desde reas de propsito general,
como el aprendizaje y la percepcin, a otras ms especficas como la
demostracin de teoremas matemticos, el diagnostico de enfermedades, etc.
Uno de los modelos que ha surgido para emular el proceso de aprendizaje
es la red neuronal artificial. Las redes neuronales son modelos que intentan
reproducir el comportamiento del cerebro humano [Hilera y Martnez, 1995].
Una red neuronal consiste en un conjunto de elementos de procesamiento,
llamados neuronas, los cuales se conectan entre s [Koehn, 1994]. La
organizacin y disposicin de las neuronas dentro de una red neuronal se
denomina topologa, y viene dada por el nmero de capas, la cantidad de
neuronas por capa, el grado de conectividad, y el tipo de conexin entre
neuronas.
Una vez determinada la topologa de la red neuronal es necesario
entrenarla. En la etapa de entrenamiento la red es capaz de aprender
relaciones complejas entre entradas y salidas mediante el ajuste de los pesos
de las conexiones entre neuronas.
Widrow y Lehr [Lehr y Widrow, 1990] identifican una cantidad
significativa de algoritmos de entrenamiento. La mayora de stos utilizan
informacin del gradiente de una funcin de error para ajustar los pesos de las
conexiones, y se los llaman algoritmos de gradiente descendente [Porto, 1998]
Las redes neuronales artificiales han sido aplicadas con xito en gran
cantidad de problemas como por ejemplo reconocimiento de patrones,
clasificacin, visin, control, prediccin, etc. [Zilouchian, 2001].
Sin embargo, los algoritmos de gradiente descendente poseen dos
problemas. Primero, suelen quedar atrapados en mnimos locales,
generndose de esta manera estimaciones subptimas de los pesos. Segundo,
suelen ser muy lentos por utilizar pasos infinitesimales para alcanzar la
solucin.
Los algoritmos evolutivos, dentro de los cuales los algoritmos genticos son
los ms conocidos, son una familia de modelos computacionales inspirados en
la evolucin y la supervivencia del ms apto [Bch, et. al., 1991; mer, 1995;
Whitley, 2001]. Se utilizan fundamentalmente en la resolucin de problemas de
bsqueda y de optimizacin [Holland, 1975]. El verdadero poder de estos
algoritmos radica en la bsqueda simultnea de la solucin en un conjunto de
posibles soluciones (individuos). Buscan una solucin del problema
reproduciendo genticamente una poblacin de individuos a lo largo de una
serie de generaciones [Koza, 1997].
En el contexto de los algoritmos evolutivos, el aprendizaje es formulado
como un problema de optimizacin. Dada una topologa fija, el entrenamiento
de una red neuronal puede ser visto como un proceso de optimizacin cuyo
La figura 2.2 muestra los elementos que componen una neurona artificial:
El peso sinptico wij define la fuerza de una conexin sinptica entre dos
neuronas, la neurona presinptica i y la neurona postsinptica j. Los pesos
sinpticos pueden tomar valores positivos, negativos o cero. En caso de una
entrada positiva, un peso positivo acta como excitador, mientras que un peso
negativo acta como inhibidor. En caso de que el peso sea cero, no existe
comunicacin entre el par de neuronas.
Mediante el ajuste de los pesos sinpticos la red es capaz de adaptarse a
cualquier entorno y realizar una determinada tarea.
hi (t ) = i ( wij , x j (t )) (2.2)
hi (t ) = wij * x j (t ) (2.3)
j
ai (t ) = f i (hi (t )) (2.5)
y = {+11
Escaln
si x 0 [-1,1]
si x <0
[-1,1]
x si -1 x 1
Lineal a tramos y = +1 si x >1
1 si x <-1
1 [0,1]
y= x
Sigmoidea 1+ e
y = tanh(x) [-1,1]
Sinusoidal y = Sen( .x + ) [-1,1]
Tabla 2.1. Funciones de activacin
y i (t ) = Fi (ai (t )) = ai (t ) (2.6)
2.5. Aprendizaje
Una vez seleccionada el tipo de neurona artificial que se utilizar en una red
neuronal y determinada su topologa es necesario entrenarla para que la red
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 relacin existente entre los datos,
adquiriendo la capacidad de generalizar conceptos. De esta manera, una red
neuronal puede tratar con informacin que no le fue presentada durante de la
fase de entrenamiento.
Las redes neuronales artificiales con conexin hacia delante son el tema
central de esta tesis. Este tipo de red, que se caracteriza por su organizacin
en capas y conexiones estrictamente hacia delante, utiliza algoritmos de
entrenamiento del tipo supervisado.
Este grupo de red es el ms utilizado en aplicaciones prcticas que utilicen
redes neuronales, obtenindose muy buenos resultados fundamentalmente
como clasificadores de patrones y estimadores de funciones.
Dentro de este grupo de redes neuronales encontramos al perceptrn, la
red ADALINE/MADALINE, y al perceptrn multicapa.
2.6.1. Perceptrn.
Este modelo tiene gran importancia histrica ya que fue el primer modelo en
poseer un mecanismo de entrenamiento que permite determinar
automticamente los pesos sinpticos que clasifican correctamente a un
conjunto de patrones a partir de un conjunto de ejemplos.
La arquitectura del perceptrn esta compuesta por dos capas de neuronas,
una de entrada y una de salida. La capa de entrada es la que recibe la
informacin proveniente del exterior y la transmite a las neuronas sin realizar
ningn tipo de operacin sobre la seal de entrada. En general la informacin
entrante es binaria. La funcin de activacin de las neuronas de un perceptrn
es del tipo escaln, dando de esta manera slo salidas binarias. Cada neurona
de salida del perceptrn 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.
La operacin de un perceptrn con n neuronas de entrada y m neuronas de
salidas puede ser resumida de la siguiente manera:
n
y i (t) = f( wij x j i ) i, 1im (2.7)
j =1
n
y i (t) = wij x j i i, 1im (2.8)
j =1
Codificacin de informacin
Traduccin de texto en lenguaje hablado
Reconocimiento ptico de caracteres (OCR)
W (t + 1) = W (t ) E (W ) (3.1)
donde indica el tamao del paso tomado en cada iteracin, pudiendo ser
diferente para cada peso e idealmente debera ser infinitesimal. El tamao del
paso es un factor importante a la hora de disear un mtodo de estas
caractersticas. Si se toma un paso muy chico el proceso de entrenamiento
resulta muy lento, mientras que si el tamao del paso es muy grande se
producen oscilaciones en torno al punto mnimo.
W (t + 1) = W (t ) + W (t ) (3.2)
W (t + 1) = W (t ) E[W (t )] (3.3)
y i (t ) = Fi (ai (t )) = ai (t ) (3.4)
Siendo
ai (t ) = f i (hi (t )) (3.5)
hi (t ) = wij * x j (t ) (3.6)
j
1 M
ep =
2 k =1
(d pk y pk ) 2 (3.7)
e
p =1
p
e= (3.8)
P
e p
w ji = (3.9)
w ji
e p e p h j
= (3.10)
w ji h j w ji
w ji y pi
h j
= i
= y pi (3.11)
w ji w ji
e p
= pj (3.12)
h j
tenemos que
e p
= p j y pi (3.13)
w ji
w ji = pj y pj (3.14)
e p e p y pj
pj = = (3.15)
h j y h
pj j
y pj f j (h j )
= = f j' (h j ) (3.16)
h j h j
1 M
e p
(d pj y pj ) 2
2 j =1
= = (d pj y pj ) (3.17)
y pj y pj
As, la variacin de los pesos de una conexin que va hacia la capa externa
de la red se calcula como:
w ji = (d pj y pj ) f j' (h j ) y pi (3.18)
e p e p hk
= (3.19)
y pj
k hk y pj
wkj y pj
e p e p j e p
= = wkj (3.20)
y pj k hk y pj k hk
e p
= pk wkj = pj wkj (3.21)
y pj k k
As, la variacin de los pesos de una conexin que va desde una capa hacia
otra capa de la red que no sea la externa se calcula como:
w ji (t + 1) = pj y pj + w ji (t ) (3.23)
[
w ji (t + 1 ) = w ji (t) + pj y pj + w ji (t) ]
(d pj y pj )f j' (h j ) si j es una neurona de salida
siendo pj = '
pk wkj f j (h j ) si j es una neurona oculta
k
Modo Secuencial
Modo Batch
e N e j
w ji =
w ji
=
N
e
n =1
j
w ji
(3.24)
3.3. Generalizacin
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 relacin existente entre los datos,
adquiriendo la capacidad de generalizar conceptos. De esta manera, una red
neuronal puede tratar con informacin que no le fue presentada durante de la
fase de entrenamiento [Chinrungrueng, 1988].
Cuando se evala una red neuronal no slo es importante evaluar si la red
ha sido capaz de aprender los patrones de entrenamiento. Es imprescindible
tambin evaluar el comportamiento de la red ante patrones nunca antes vistos.
Esta caracterstica de las redes neuronales se la conoce como capacidad de
generalizacin y es adquirida durante la fase de entrenamiento [Sanger, 1989].
Es necesario que durante el proceso de aprendizaje la red extraiga las
caractersticas de las muestras, para poder luego responder correctamente a
nuevos patrones.
De lo dicho anteriormente surge la necesidad de evaluar durante la fase de
entrenamiento dos tipos de errores. El error de aprendizaje, que indica la
calidad de la respuesta de la red a los patrones de entrenamiento, y el error de
generalizacin, que indica la calidad de la respuesta de la red a patrones nunca
antes vistos. Para poder obtener una medida de ambos errores es necesario
dividir el set de datos disponibles en dos, el set de datos de entrenamiento, y el
set de datos de evaluacin. El primero se utiliza durante la fase de
entrenamiento para que la red pueda extraer las caractersticas de los mismos
y, mediante el ajuste de sus pesos sinpticos, la red logre una representacin
interna de la funcin. El set de evaluacin se utiliza para evaluar la capacidad
de generalizacin de la red.
La causa ms comn de la perdida de capacidad de generalizacin es el
sobreaprendizaje. Esto sucede cuando la cantidad de ciclos de entrenamientos
tiende a ser muy alta. Se observa que la respuesta de la red a los patrones de
entrenamiento es muy buena mientras que la respuesta a nuevos patrones
tiende a ser muy pobre. Al aumentar el nmero de ciclos la red tiende a
sobreajustar la respuesta a los patrones de entrenamiento, a expensas de una
menor capacidad de generalizacin. La figura 3.1 muestra una situacin
idealizada de lo dicho anteriormente. En la misma se observa que en un
determinado punto la red comienza a perder capacidad de generalizacin como
consecuencia del sobreaprendizaje de los patrones de entrenamiento.
4.1. Introduccin
4.2. El cromosoma
fi
Fi = (4.1)
f
f
i =1
i
f = (4.2)
N
4.4. Poblacin
El objetivo de cada uno de los tres operadores bsicos esta bien definido:
elegir los individuos de la poblacin que tengan mayor grado de adaptacin
(seleccin), recombinar el material gentico de ellos para producir nuevos
individuos (cruza) y alterar caractersticas de algunos de ellos para garantizar al
diversidad (mutacin). Siguiendo estos objetivos se han desarrollado gran
cantidad de variantes para cada uno de los operadores. Cada variante tiene
caractersticas particulares que afectaran el comportamiento del algoritmo
gentico. Una eleccin adecuada para cada operador puede influir
decisivamente en la eficiencia del proceso de bsqueda. A continuacin se
realiza una mencin sobre las variantes ms utilizadas de cada uno de los
operadores.
4.5.1. Seleccin
N
R = Random(0, Fi ) (4.3)
i =1
j j +1
Fi R < Fi
i =1 i =1
(4.4)
fi
ci = N * N
(4.5)
F
i =1
i
N i
pi = N
(4.6)
i
i =1
N
R = Random(0, pi ) (4.7)
i =1
j j +1
pi R < pi
i =1 i =1
(4.8)
4.5.2. Cruza
Este operador de cruza asigna aleatoriamente los pesos. Cada hijo tiene
una probabilidad de 0.5 de recibir los genes de su padre y por ende de
recibirlos de su madre.
Padre 0 1 1 1 0 0 0 1 1 1 0 1
Madre 1 0 0 0 0 0 1 1 1 1 1 0
Hijo 1 0 1 1 1 0 0 1 1 1 1 1 0
Hijo 2 1 0 0 0 0 0 0 1 1 1 0 1
Figura 4.1. Cruza Simple
Padre 0 1 1 1 0 0 0 1 1 1 0 1
Madre 1 0 0 0 0 0 1 1 1 1 1 0
Hijo 1 0 1 1 1 0 0 1 1 1 1 0 1
Hijo 2 1 0 0 0 0 0 0 1 1 1 1 0
Figura 4.2. Cruza Multipunto
f padre
p padre =
f padre + f madre (4.9)
p
madre =1 p padre
4.5.3. Mutacin
Antes 1 0 1 0 1 0 1 0
Despus 1 0 1 1 1 0 1 0
Figura 4.3. Mutacin Binaria
( Pmmax Pmmin )
Pm (t ) = Pmmin + *t (4.11)
T
( Pmmax Pmmin )
Pm (t ) = Pmmax *t (4.12)
T
A pesar del xito del algoritmo para entrenar redes multicapa, este algoritmo
posee una serie de deficiencias, las cuales se analizan a continuacin.
Adaptabilidad
Mnimos locales
Parlisis
Condiciones iniciales
Adaptabilidad
Mnimos locales
Parlisis
Generalizacin
Adaptabilidad
Dependencia de parmetros
Mnimos locales
Parlisis
W02 W12 T2
W03 W13 T3 W02 W03 W04 W05 W12 W13 W14 W15 T2 T3 T4 T5
W04 W14 T4
W05 W15 T5
Figura 6.1. Morfognesis
1
fi = (6.1)
ei
f MIN
Fi = 2 * (6.2)
fi
Posicin Porcentaje
1 10%
2 5%
3 3%
4 2%
5 1,5%
6 1%
Tabla 6.1. Seleccin elitista
En todos los casos se asegura que al menos una copia de cada individuo
pasar a la siguiente poblacin, aun cuando el porcentaje corresponda a
menos de una copia. El resto de los individuos de la poblacin sern
seleccionados por alguna otra variante del operador de seleccin.
Fi
ci = N * N
(6.3)
F
i =1
i
N
R = Random(0, Fi ) (6.4)
i =1
j j +1
Fi R < Fi
i =1 i =1
(6.5)
Para este operador se defini un tamao del torneo igual a dos. De esta
manera se seleccionan aleatoriamente dos individuos de la poblacin, pasando
a la siguiente generacin aquel individuo que tiene mayor aptitud. Este proceso
se repite N veces, donde N es el tamao de la poblacin. La seleccin por
torneo no asegura que el nmero de copias que pasan a la prxima generacin
sea igual al esperado.
N i
pi = N
(6.6)
i
i =1
N
R = Random(0, pi ) (6.7)
i =1
j j +1
pi R < pi
i =1 i =1
(6.8)
f padre
p padre =
f padre + f madre (6.9)
p
madre =1 p padre
Antes 1 0 1 0 1 0 1 0
Despus 1 0 1 1 1 0 1 0
Figura 6.6. Mutacin Binaria
donde
( Pmmax Pmmin )
Pm (t ) = Pmmin + *t (6.14)
T
pesos esta dado por una distribucin uniforme definida en un rango de valores
que idealmente debera estar centrado en cero. Es decir,
Individuo Wij
1 0
2 Inimin
3 Inimax
4 Random(0.5*Ini ; 0.5*Inimax)
min
5 Random(0.75*Inimin ; 0.75*Inimax)
6 Random(0.25*Inimin ; 0.25*Inimax)
7 0.5*Inimin
8 0.5*Inimax
Tabla 6.2. Inicializacin Selectiva
El resto de los individuos se genera con pesos dados por la ecuacin 6.16
4. 7 2.1
2. 1 4. 7
7.3 4.3
3.5
4.3
6.4
7.3
6.4 3.5
(a) (b)
Dado que una red neuronal puede tener varios genotipos que la
representan, la probabilidad de que el operador de cruza produzca de ellos un
individuo ms adaptado es baja. Por esto, varios trabajos no hacen uso de este
operador, a pesar de la importancia del mismo [Whiltey, 1995].
Sin embargo, el efecto de este problema no es tan severo como se supone
[Hancock, 1992]. Por ello, en este trabajo se tratar a los individuos que
presentan este problema como sinnimos, dejando que el operador de
seleccin sea el encargado de decidir que individuos contribuyen a la prxima
generacin. A su vez, el tamao de la poblacin se seleccionar de manera de
minimizar los efectos de este problema en el operador de cruza.
Captulo 7: Experimentacin
En este captulo se presentan los resultados experimentales obtenidos por
ambos mtodos de entrenamiento. La seccin 7.1 describe las caractersticas
generales de los experimentos realizados, la manera en que se disearon los
experimentos, y el objetivo perseguido por stos. Luego, en la seccin 7.2 se
presentan los resultados obtenidos. Los resultados experimentales permitirn
establecer una medida de comparacin entre ambos mtodos y determinar las
caractersticas principales de cada uno de ellos.
Tipo Algoritmo
Objetivo Entrenamiento Tiempo
Entrenamiento
Evaluacin de operadores del algoritmo gentico
15.22
- Seleccin
Evaluacin de operadores del algoritmo gentico
11.91
- Cruza
Algoritmo
Evaluacin de operadores del algoritmo gentico
gentico 116.25
- Mutacin
Parmetros de inicializacin del algoritmo
35.96
gentico
Comparacin de mtodo 5.80
Total 185.13
Parmetros ptimos de la red neuronal 179.12
Red Neuronal Parmetros de inicializacin de la red neuronal 48.98
Comparacin de mtodo 9.54
Total 237.63
Total 422.76
Tabla 7.1 Distribucin de los tiempos de entrenamiento.
Tasa de aprendizaje
Tasa de momento
Rango de valores iniciales.
CANTIDADES PORCENTAJES
Total Clase 1 Clase 2 % % C1 % C2
Dataset 690 307 383 100.0% 44.5% 55.5%
Ent. 1 448 199 249 64.9% 44.4% 55.6%
Eval. 1 242 108 134 35.1% 44.6% 55.4%
Ent. 2 552 246 306 80.0% 44.6% 55.4%
Eval. 2 138 61 77 20.0% 44.2% 55.8%
Tabla 7.2 Caractersticas de los sets de datos
7.2. Experimentos
Descripcin:
Las tasas de aprendizaje y de momento determinan de qu manera se
realizan las actualizaciones de los pesos entre iteraciones sucesivas. De
acuerdo a las caractersticas de la topologa y de los datos estas constantes
suelen variar de problema en problema.
Variables:
Para la realizacin de los experimentos se utilizaron los siguientes
parmetros:
Tasa de aprendizaje () = {0.01, 0.05, 0.1, 0.25}
Taza de momento () = {0, 0.01, 0.05, 0.1}
Resultados:
0.25
0 0.01 0.05 0.1
0 0.01 0.05 0.1
0.20
0.15
Error
0.10
0.05
0.00
1
49
97
145
193
241
289
337
385
433
481
529
577
625
673
721
769
817
865
913
961
1009
1057
1105
1153
1201
1249
1297
1345
1393
1441
1489
1537
Seg
0.25
0 0.01 0.05 0.1
0 0.01 0.05 0.1
0.20
0.15
Error
0.10
0.05
0.00
1
63
125
187
249
311
373
435
497
559
621
683
745
807
869
931
993
1055
1117
1179
1241
1303
1365
1427
1489
1551
1613
1675
1737
1799
1861
1923
Seg
0.25
0 0.01 0.05 0.1
0 0.01 0.05 0.1
0.20
0.15
Error
0.10
0.05
0.00
1
63
125
187
249
311
373
435
497
559
621
683
745
807
869
931
993
1055
1117
1179
1241
1303
1365
1427
1489
1551
1613
1675
1737
1799
1861
1923
Seg
0.35
0 0.01 0.05 0.1
0 0.01 0.05 0.1
0.30
0.25
Error
0.20
0.15
0.10
1
72
143
214
285
356
427
498
569
640
711
782
853
924
995
1066
1137
1208
1279
1350
1421
1492
1563
1634
1705
1776
1847
1918
1989
2060
2132
2211
Seg
Descripcin:
Los experimentos presentados en esta seccin tienen como objetivo
encontrar cual es el rango de valores de inicializacin que disminuye los
tiempos de entrenamiento.
Variables:
Los rangos estudiados fueron los siguientes:
Rangos = {[-0.01, 0.01]; [-0.1, 0.1]; [-1, 1]; [-5, 5]}
Resultados:
Desvo
Min Max Cant. % Tiempo
Tiempo
Inicializacin Inicializacin Corridas Entrenamiento Prom. Ent.
Ent.
-0.01 0.01 50 100.0% 682 128
-0.1 0.1 50 100.0% 559 111
-1 1 50 100.0% 306 211
-5 5 50 0.0% 1,980 66
Tabla 7.8 Tiempos de entrenamiento. Valores de inicializacin de la red
neuronal
0.25
[-5 , 5] [-1 , 1] [-0.1 , 0.1] [-0.01 , 0.01]
0.20
0.15
0.10
0.05
0.00
1
84
167
250
333
416
499
582
665
748
831
914
997
1080
1163
1246
1329
1412
1495
1578
1661
1744
1827
1910
2019
2186
2349
Tiempo Prom.
Min Inicializacin Max Inicializacin Corrida Ent.
32 124
41 136
16 141
3 152
24 165
-1 1
10 167
49 173
7 187
31 194
38 194
Tabla 7.9 Mejores tiempos individuales de entrenamiento.
Descripcin:
El objetivo del operador de seleccin es elegir los individuos de la poblacin
que tengan mayor grado de adaptacin.
Variables:
A lo largo de esta seccin se analizan cuatro funciones de seleccin
diferentes:
S = {Proporcional, Ruleta, Torneo, Ranking-Ruleta}
Resultados:
Tiempo Desvo
Cant. %
Funcin Seleccin Prom. Tiempo
Corridas Entrenamiento
Ent. Ent.
Seleccin proporcional 50 96.0% 296 155
Seleccin ruleta 50 100.0% 325 112
Seleccin torneo 50 100.0% 208 79
Seleccin ranking-ruleta 50 100.0% 267 78
Tabla 7.10 Tiempos de entrenamiento. Funcin de seleccin
0.45
Seleccion proporcional Seleccion ruleta
Seleccion torneo Seleccion ranking-ruleta
0.40
0.35
0.30
0.25
Error
0.20
0.15
0.10
0.05
0.00
0
30
60
90
120
150
180
210
240
270
300
330
360
390
420
450
480
510
540
570
600
630
660
690
720
750
Seg
Descripcin:
El objetivo del operador de cruza es recombinar el material gentico de los
individuos de una poblacin para producir nuevos individuos.
Variables:
En esta seccin se presentan los resultados obtenidos para cuatro
operadores de cruza diferentes.
C = {Probabilstica, Uniforme, Simple, Multipuntos}
Resultados:
0.25
Cruza probabilistica Cruza uniforme
0.15
Error
0.10
0.05
0.00
0
29
58
87
116
145
174
203
232
261
290
319
348
377
406
435
464
493
522
551
580
609
638
667
696
725
754
Seg
Tiempo Prom.
Tipo Funcin Cruza Corrida
Ent.
Cruza probabilstica 27 124
Cruza simple 42 126
Cruza multipuntos 12 126
40 127
Cruza probabilstica 14 131
32 131
Cruza multipuntos 42 133
Cruza probabilstica 41 134
Cruza multipuntos 41 134
12 135
Cruza uniforme
38 135
Cruza simple 10 135
Tabla 7.13 Mejores tiempos individuales de entrenamiento.
Descripcin:
El objetivo del operador de mutacin es alterar caractersticas de algunos
individuos para garantizar la diversidad de la poblacin.
Variables:
En esta seccin se analizan los experimentos realizados para el estudio de
tres operadores de mutacin. Para cada uno de stos se estudiaron tambin
distintos rangos de variacin de la probabilidad de mutacin, y dos variantes
para llevar a cabo la mutacin:
M = {Uniforme, Lineal Creciente, Lineal Decreciente}
Tipo de Mutacin = {Numrica, Binaria}
Resultados:
Tiempo Desvo
Cant. %
Funcin Mutacin Prom. Tiempo
Corridas Entrenamiento
Ent. Ent.
Mutacin lineal creciente [0.01,0.02] 50 100.0% 195 48
Mutacin lineal creciente [0.02,0.04] 50 100.0% 191 58
Mutacin lineal creciente [0.04,0.08] 50 94.0% 326 185
Mutacin lineal decreciente
50 80.0% 327 229
[0.005,0.01]
Mutacin lineal decreciente
50 86.0% 274 207
[0.01,0.02]
Mutacin lineal decreciente
50 86.0% 284 205
[0.02,0.04]
Mutacin uniforme [0.01,0.01] 50 100.0% 214 54
Mutacin uniforme [0.02,0.02] 50 100.0% 203 56
Mutacin uniforme [0.04,0.04] 50 98.0% 267 167
Tabla 7.14 Tiempos de entrenamiento. Funcin de mutacin numrica
0.25
Lineal Creciente [0.01 , 0.02]
Lineal Creciente [0.02 , 0.04]
Lineal Creciente [0.04 , 0.08]
0.20
0.15
Error
0.10
0.05
0.00
0
30
60
90
120
150
180
210
240
270
300
330
360
390
420
450
480
510
540
570
600
630
660
690
720
750
Seg
0.25
Lineal Decreciente [0.005, 0.01]
Lineal Decreciente [0.01, 0.02]
Lineal Decreciente [0.02, 0.04]
0.20
0.15
Error
0.10
0.05
0.00
0
30
60
90
120
150
180
210
240
270
300
330
360
390
420
450
480
510
540
570
600
630
660
690
720
750
Seg
0.25
Uniforme [0.01 , 0.01]
Uniforme [0.02 , 0.02]
Uniforme [0.04 , 0.04]
0.20
0.15
Error
0.10
0.05
0.00
0
30
60
90
120
150
180
210
240
270
300
330
360
390
420
450
480
510
540
570
600
630
660
690
720
750
Seg
Tiempo Desvo
Cant. %
Funcin Mutacin Prom. Tiempo
Corridas Entrenamiento
Ent. Ent.
Mutacin lineal creciente
50 40.0% 715 265
[0.000156,0.000313]
Mutacin lineal creciente
50 0.0% 914 10
[0.000313,0.000625]
Mutacin lineal creciente
50 0.0% 923 2
[0.000625,0.001250]
Mutacin lineal decreciente
50 10.0% 837 186
[0.000078,0.000156]
Mutacin lineal decreciente
50 40.0% 644 315
[0.000156,0.000313]
Mutacin lineal decreciente
50 58.0% 526 326
[0.000313,0.000625]
Mutacin uniforme
50 90.0% 485 214
[0.000156,0.000156]
Mutacin uniforme
50 88.0% 502 221
[0.000313,0.000313]
Mutacin uniforme
50 90.0% 543 176
[0.000625,0.000625]
Tabla 7.15 Tiempos de entrenamiento. Funcin de mutacin binaria
0.25
Lineal creciente [0.000156,0.000313]
Lineal creciente [0.000313,0.000625]
Lineal creciente [0.000625,0.001250]
0.20
0.15
Error
0.10
0.05
0.00
0
40
80
120
160
200
240
280
320
360
400
440
480
520
560
600
640
680
720
760
800
840
880
920
960
Seg
0.25
Lineal decreciente [0.000078,0.000156]
Lineal decreciente [0.000156,0.000313]
Lineal decreciente [0.000313,0.000625]
0.20
0.15
Error
0.10
0.05
0.00
0
36
72
108
144
180
216
252
288
324
360
396
432
468
504
540
576
612
648
684
720
756
792
828
864
900
Seg
0.25
Uniforme [0.000156,0.000156]
Uniforme [0.000313,0.000313]
Uniforme [0.000625,0.000625]
0.20
0.15
Error
0.10
0.05
0.00
0
39
78
117
156
195
234
273
312
351
390
429
468
507
546
585
624
663
702
741
780
819
858
897
936
Seg
Descripcin:
Los experimentos presentados en esta seccin tienen como objetivo
encontrar cual es el rango de valores de inicializacin que disminuye los
tiempos de entrenamiento. Se estudian a su vez dos operadores de
inicializacin diferentes.
Variables:
Los operadores rangos estudiados fueron los siguientes:
Tipo Inicializacin = {Random, Random Selectiva}
Rangos = {[-0.01, 0.01]; [-0.1, 0.1]; [-1, 1]; [-5, 5]}
Resultados:
0.25
Random [-1 , 1]
Random [-0.01 , 0.01]
Random [-0.1 , 0.1]
Random [-5 , 5]
0.20
0.15
Error
0.10
0.05
0.00
0
30
60
90
120
150
180
210
240
270
300
330
360
390
420
450
480
510
540
570
600
630
660
690
720
750
780
Seg
Tiempo Desvo
Tipo Funcin Min Max Cant. %
Prom. Tiempo
Inicializacin Ini. Ini. Corridas Entrenamiento
Ent. Ent.
-0.01 0.01 50 100.0% 233 60
Inicializacin
-0.1 0.1 50 100.0% 222 52
Random
-1 1 50 100.0% 224 122
Selectiva
-5 5 50 76.0% 442 235
Tabla 7.18 Tiempos de entrenamiento. Inicializacin random selectiva
Tiempo Prom.
Tipo Funcin Inicializacin Min Ini. Max Ini. Corrida
Ent.
-1 1 10 135
-0.01 0.01 42 135
9 138
-1 1
42 139
-0.1 0.1 17 139
Inicializacin Random Selectiva
-1 1 19 142
-5 5 27 145
-1 1 24 145
-0.1 0.1 13 145
-1 1 46 147
Tabla 7.19 Mejores tiempos individuales de entrenamiento.
0.25
Random Selectiva [-1 , 1]
Random Selectiva [-0.01 , 0.01]
Random Selectiva [-0.1 , 0.1]
Random Selectiva [-5 , 5]
0.20
0.15
Error
0.10
0.05
0.00
0
31
62
93
124
155
186
217
248
279
310
341
372
403
434
465
496
527
558
589
620
651
682
713
744
775
Seg
Descripcin:
Los resultados presentados en esta seccin son los ms importantes del
captulo ya que permiten establecer una medida de comparacin entre ambos
mtodos de entrenamiento. Para este conjunto de experimentos se utilizaron
las configuraciones ptimas obtenidas de los experimentos anteriores. Se
utiliz tambin un segundo set de datos, ms rico en ejemplos y que permite
tener una mejor medida de la capacidad de entrenamiento y generalizacin del
mtodo.
Resultados:
0.25
Algoritmo Genetico
Red Neuronal
0.20
0.15
Error
0.10
0.05
0.00
0
68
136
204
272
340
408
476
544
612
680
748
816
884
981
1100
1238
1378
1509
1678
1876
2074
2273
2471
2669
2867
Seg
0.25
Algoritmo genetico Red Neuronal
0.23
0.21
0.19
0.17
Error
0.15
0.13
0.11
0.09
0.07
0.05
1 40 79 118 157 196 235 274 313 352 391 430 469 508 547 586 625 664 703 742 781 820 859
Seg
96.00%
Algoritmo genetico Red Neuronal
94.00%
92.00%
90.00%
88.00%
% Aciertos
86.00%
94.09% 94.32%
84.00% 91.81% 92.11%
82.00%
80.00%
82.70% 83.29%
78.00%
76.00%
Aciertos Prom. Total Aciertos Prom. Ent. Aciertos Prom. Eval.
Aciertos Prom.
Tipo Algoritmo Entrenamiento Corrida
Ent.
Algoritmo gentico 28 95.65%
Red Neuronal 49 95.65%
2 95.47%
Algoritmo gentico 6 95.47%
19 95.47%
7 95.47%
Red Neuronal
31 95.47%
1 95.29%
Algoritmo gentico 27 95.29%
47 95.29%
5 95.29%
34 95.29%
Red Neuronal
35 95.29%
45 95.29%
Tabla 7.23 Mejores porcentajes de aciertos sobre el set de entrenamiento.
Aciertos Prom.
Tipo Algoritmo Entrenamiento Corrida
Eval.
25 87.68%
Algoritmo gentico
3 86.96%
Red Neuronal 20 86.96%
19 85.51%
Algoritmo gentico 28 85.51%
43 85.51%
15 85.51%
19 85.51%
Red Neuronal 30 85.51%
35 85.51%
46 85.51%
Tabla 7.24 Mejores porcentajes de aciertos sobre el set de validacin.
Referencias
Adamidis, P. (1994) Review of Parallel Genetic Algorithms Bibliography.
Version 1. Internal Technical Report. Automation and Robotics
Lab., Dept. of Electrical and Computer Eng., Aristotle University of
Thessaloniki, Greece.
Biondi, J., Michel, O. (1995). From the chromosome to the neural network. En
Proceedings of the International Conference on Artificial Neural
Networks and Genetic Algorithms. D.W. Pearson, N.C. Steele, and
R.F. Albrecht (eds)
De Falco, I., Della Cioppa, A., Natale, P. Tarantino, E. (1997). Artificial Neural
Networks Optimization by means of Evolutionary Algorithms. En
Soft Computing in Engineering Design and Manufacturing. P.
Chawdhry, R. Pant, R. Roy (eds). Springer Verlag. ISBN:
3540762140
Del Bro, B. M., Sanz Molina, A. (2002) Redes neuronales y Sistemas difusos.
Alfaomega Grupo Editor.
Isasi Viuela, P., Galvn Len, I.M. (2004). Redes Neuronales Artificiales. Un
enfoque Prctico. Prentice Hall
Joglekar, A., Tungare, M. (2001). Genetic Algorithms and their use in the design
of Evolvable Hardware. Fr. Conceicao Rodrigues College of
Engineering.
Liu, A., Liu, Z., Niu, Z., Wang, C. (2004). Evolving Neural Network using Real
coded Genetic Algorithm (GA) for Multispectral Image
Classification. En Future Generation Computer Systems The
International Journal of Grid Computing: Theory, Methods and
Applications. Vol. 20(7), pp.1119-1129
Liu, Y., Yao, X. (1996). Evolving Artificial Neural Networks Through Evolutionary
Programming. En Evolutionary Programming V: Proc. of the Fifth
Liu Y. y Yao X. (1997). A new evolutionary system for evolving artificial neural
networks. En IEEE Transactions on Neural Networks. Vol. 8(3), pp.
694-713
Montana D.J. (1995). Neural network weight selection using genetic algorithms.
En Intelligent Hybrid Systems, S. Goonatilake, S. Khebbal (eds),
pp.85-104, Wiley, New York.
Sutton, R.S. (1986). Two problems with Backpropagation and other steepest-
descent learning procedures for networks. En Proc. of 8th Annual
Conf. Of the Cognitive Science Society, pp 823-831. Lawrence
Erlbaum Associates, Hillsdale, NJ.
Mutacin numrica
Mutacin Binaria
B.1. Requerimientos
B.2. Anlisis
En este caso de uso, como se observa en la Figura B.1, el actor que inicia
el proceso es el usuario del sistema, quien decide la topologa de la red que se
utilizarn durante los prximos experimentos.
B.3. Diseo
B.3.1. Plataforma
Tesis
Debug
MySources
Release
Res
Directorio Archivo
Dilogos.cpp
Dilogos.h
EasyTrain.cpp
EasyTrain.dsp
EasyTrain.dsw
EasyTrain.h
EasyTrain.rc
Tesis EasyTrain.reg
EasyTrainDoc.cpp
EasyTrainDoc.h
EasyTrainView.cpp
EasyTrainView.h
MainFrm.cpp
MainFrm.h
resource.h
Directorio Archivo
AlgoritmoEntrenamiento.cpp
AlgoritmoEntrenamiento.h
AlgoritmoGenetico.cpp
AlgoritmoGenetico.h
Capa.cpp
Capa.h
Cromosoma.cpp
Cromosoma.h
Cruza.cpp
Cruza.h
Ejemplo.cpp
Ejemplo.h
Evaluacion.cpp
Evaluacion.h
Include.cpp
Include.h
MySources Inicializar.cpp
Inicializar.h
Lista.cpp
Lista.h
ListaCromosomas.cpp
ListaCromosomas.h
ListaEjemplos.cpp
ListaEjemplos.h
Mutacion.cpp
Mutacion.h
Objetos.h
Rrnn.cpp
Rrnn.h
Seleccion.cpp
Seleccion.h
StdAfx.cpp
StdAfx.h
EasyTrain.ico
Res EasyTrainDoc.ico
Toolbar.bmp
Tabla B.1. Estructura de archivos
Algoritmo Entrenamiento
Algoritmo Gentico (*) Red Neuronal(*)
Inicializacin Evaluacin Seleccin Cruza Mutacin Lista
Lista Cromosomas Ejemplos Capa
Cromosoma Lista Ejemplos
Objeto
Figura B.7. Diagrama de interaccin de mdulos
(*) La doble separacin entre los mdulos Red Neuronal y Algoritmo Gentico representa una iteracin lateral entre
ambas clases.
En esta seccin se explica con mayor nivel de detalle cada una de las
estructuras de datos utilizadas en el proyecto.
B.3.3.1. Lista
CLista CNodo
Primero Datos
ltimo Derecha
Actual Izquierda
Cant_elementos
Pos
B.3.3.2. Ejemplo
CEjemplo
Ejemplo
Nro_inputs
Nro_Outputs
Esta clase se utiliza para mantener en memoria cada uno de los ejemplos
(ya sean de entrenamiento o de evaluacin). Extiende la clase CObjeto para
poder ser utilizada en estructuras del tipo Lista. Contiene un vector con el
conjunto de valores de entrada y salida deseada, as como tambin la cantidad
de valores que corresponden a entradas y la cantidad que corresponden a las
salidas deseadas (ver figura B.9).
B.3.3.3. Cromosoma
CCromosoma
Longi
Cadena
Fitness
Max_error
Min_error
Esta clase se utiliza para mantener en memoria cada uno de los individuos
que componen una determinada poblacin. Extiende la clase CObjeto para
poder ser utilizada en estructuras del tipo Lista (que representan a la
poblacin). Tal como se observa en la figura B.10, est compuesto por cinco
atributos: la longitud del cromosoma, la cadena de genes que representa, el
valor de adaptacin (fitness) del individuo, y el mximo y mnimo error
cometido.
B.4. Implementacin
B.4.1. Pantallas
Nuevo
Abrir
Guardar
Guardar Como
Exportar pesos
Archivo Importar ejemplos de entrenamiento
Importar ejemplos de evaluacin
Imprimir
Presentacin preliminar
Configurar impresora
Salir
Barra de herramientas
Barra de estado
Ejemplos de entrenamiento
Ver Ejemplos de evaluacin
Red Neuronal
Errores de entrenamiento
Errores de evaluacin
Topologa
Agregar
Ejemplos de entrenamiento Modificar
Eliminar
Red
Agregar
Ejemplos de evaluacin Modificar
Eliminar
Entrenar
Evaluar
Algoritmo Gentico
Configurar Red Neuronal
Tipo de entrenamiento
Ayuda Acerca de
Figura B.13. Estructura del men
Esta opcin es similar a la anterior slo que los ejemplos son importados
como ejemplos de evaluacin.
Este men contiene varias opciones. Todas estas estn relacionadas con
la forma en que se visualiza la informacin en pantalla:
Esta opcin del men tiene a su vez tres subopciones (Agregar, Modificar y
Eliminar). Cada una de ellas funciona de la misma manera que las descriptas
en las ultimas 3 secciones, slo que lo hace sobre el conjunto de ejemplos de
evaluacin
Esta opcin permite al usuario evaluar la respuesta que produce una red
neuronal previamente entrenada sobre un patrn de entrada determinado (ver
figura B.27).
B.4.3. Pruebas
RESULTADO RESULTADO
TEM ACCIN ENTRADA
ESPERADO OBTENIDO
Ejecutar la funcin de transformacin
1 ToTCromosoma con la entrada Parmetro value= -15.1 0xDA00C580 0xDA00C580
especificada
Ejecutar la funcin de transformacin
2 FromTCromosoma con la entrada Parmetro value= 0xDA00C580 -15.1 -15.1
especificada
RESULTADO RESULTADO
TEM ACCIN ENTRADA
ESPERADO OBTENIDO
Los resultados
Los resultados obtenidos son
Un objeto de tipo CCromosoma con
Ejecutar la funcin de morfognesis esperados se coincidentes con los
3 los valores especificados en la
con la entrada especificada especifican en la esperados y se
seccin B.4.3.7.
seccin B.4.3.7. especifican en la
seccin B.4.3.7.
Los resultados
Los resultados obtenidos son
Ejecutar el mtodo de cruza de la Dos objetos de tipo CCromosoma
esperados se coincidentes con los
4 clase CFuncionCruzaUniforme para con los valores especificados en la
especifican en la esperados y se
dos cromosomas seccin B.4.3.7.
seccin B.4.3.7. especifican en la
seccin B.4.3.7.
Los resultados
Los resultados obtenidos son
Ejecutar el mtodo de cruza de la Dos objetos de tipo CCromosoma
esperados se coincidentes con los
5 clase CFuncionCruzaBinomial para con los valores especificados en la
especifican en la esperados y se
dos cromosomas seccin B.4.3.7.
seccin B.4.3.7. especifican en la
seccin B.4.3.7.
Los resultados
Los resultados obtenidos son
Ejecutar el mtodo de cruza de la Dos objetos de tipo CCromosoma
esperados se coincidentes con los
6 clase CFuncionCruzaSimple para dos con los valores especificados en la
especifican en la esperados y se
cromosomas seccin B.4.3.7.
seccin B.4.3.7. especifican en la
seccin B.4.3.7.
RESULTADO RESULTADO
TEM ACCIN ENTRADA
ESPERADO OBTENIDO
Los resultados
Los resultados obtenidos son
Ejecutar el mtodo de cruza de la Dos objetos de tipo CCromosoma
esperados se coincidentes con los
7 clase CFuncionCruzaMultiPunto para con los valores especificados en la
especifican en la esperados y se
dos cromosomas seccin B.4.3.7.
seccin B.4.3.7. especifican en la
seccin B.4.3.7.
Red neuronal con la Los resultados
topologa obtenidos son
Topologa=2,2,1 Mximo=0.0001
Ejecutar el mtodo init_random de la especificada y con coincidentes con los
8 Mnimo=-0.0001
clase CCromosoma valores de pesos esperados y se
variando dentro del especifican en la
rango. seccin B.4.3.7.
Los resultados
Un objeto de tipo Los resultados obtenidos son
Ejecutar el mtodo run de la clase CAlgoritmoEntrenamiento con los esperados se coincidentes con los
9
CAlgoritmoEntrenamiento valores especificados en la seccin especifican en la esperados y se
B.4.3.7. seccin B.4.3.7. especifican en la
seccin B.4.3.7.
Los resultados
os resultados obtenidos son
Un objeto de tipo CRRNN con los
Ejecutar el mtodo evaluar_ejemplos esperados se coincidentes con los
10 valores especificados en la seccin
de la clase CRRNN especifican en la esperados y se
B.4.3.7.
seccin B.4.3.7. especifican en la
seccin B.4.3.7.
RESULTADO RESULTADO
TEM ACCIN ENTRADA
ESPERADO OBTENIDO
Los resultados
Un objeto de tipo Los resultados obtenidos son
Ejecutar el mtodo run de la clase CAlgoritmoEntrenamiento con los esperados se coincidentes con los
11
CAlgoritmoEntrenamiento valores especificados en la seccin especifican en la esperados y se
B.4.3.7. seccin B.4.3.7. especifican en la
seccin B.4.3.7.
Los resultados
Un objeto de tipo Los resultados obtenidos son
Ejecutar el mtodo run de la clase CAlgoritmoEntrenamiento con los esperados se coincidentes con los
12
CAlgoritmoEntrenamiento valores especificados en la seccin especifican en la esperados y se
B.4.3.7. seccin B.4.3.7. especifican en la
seccin B.4.3.7.
Tabla B.6. Informe de los casos de prueba ejecutados
tem 1
Accin Transformar un TPeso en un TCromosoma
Entrada -15.1
Resultado Esperado 0xDA00C580
Valor de entrada: -15.100000
Resultado Obtenido
Valor obtenido: DA00C580
Tabla B.7. Detalle de la prueba N 1
tem 2
Accin Transformar un TCromosoma en un TPeso
Entrada 0xDA00C580
Resultado Esperado -15.1
Valor de entrada: DA00C580
Resultado Obtenido
Valor obtenido: -15.100000
Tabla B.8. Detalle de la prueba N 2
tem 3
Accin Ejecutar la funcin de morfognesis
Cantidad de capas=3
Entrada Topologa= Backpropagation [2,2,1]
Cromosoma=[0.25,0.2,-0.1,-1,0.5,-0.5,1.2,0.001,-1]
Peso 2,0 = 0.25 Peso 3,0 = 0.2
Peso 2,1 = -0.1 Peso 3,1 = -1
Resultado Esperado Umbral 2= 0.5 Umbral 3= -0.5
Peso 4,2 = 1.2 Peso 4,3 = 0.001
Umbral 4= -1
NEURONA 0
Peso 2,0 = 0.250000
Peso 3,0 = 0.200000
Resultado Obtenido
NEURONA 1
Peso 2,1 = -0.100000
Peso 3,1 = -1.000000
Umbral 2= 0.500000
Umbral 3= -0.500000
NEURONA 2
Peso 4,2 = 1.200000
NEURONA 3
Peso 4,3 = 0.001000
Umbral 4= -1.000000
Tabla B.9. Detalle de la prueba N 3
tem 4
Ejecutar el mtodo de cruza de la clase
Accin
CFuncionCruzaUniforme
Cromo. 1= (0.25,0.2,-0.1,-1,0.5,-0.5,1.2,0.001,-1)
Cromo. 2= (-1, -1, -1, -1, -1, -1, -1, -1, -1)
Entrada
Topologa=(2,2,1)
Cantidad de capas=3
Cualquier cruza valida, tomando los puntos de
cruza posibles. Los puntos de cruza posibles, para
Resultado Esperado
esta topologa son los siguientes:
Puntos de cruza (0,2,4,6,7,8,9)
0.25 0.20 -1.00 -1.00 0.50 -0.50 -1.00 -1.00 -1.00
Resultado Obtenido
-1.00 -1.00 -0.10 -1.00 -1.00 -1.00 1.20 0.00 -1.00
Tabla B.10. Detalle de la prueba N 4
tem 5
Ejecutar el mtodo de cruza de la clase
Accin
CFuncionCruzaBinomial
Cromo. 1= (0.25,0.2,-0.1,-1,0.5,-0.5,1.2,0.001,-1)
Cromo. 2= (-1, -1, -1, -1, -1, -1, -1, -1, -1)
Entrada
Topologa=(2,2,1)
Cantidad de capas=3
Cualquier cruza valida, tomando los puntos de
cruza posibles. Los puntos de cruza posibles, para
Resultado Esperado
esta topologa son los siguientes:
Puntos de cruza (0,2,4,6,7,8,9)
0.25 0.20 -1.00 -1.00 -1.00 -1.00 -1.00 0.00 -1.00
Resultado Obtenido
-1.00 -1.00 -0.10 -1.00 0.50 -0.50 1.20 -1.00 -1.00
Tabla B.11. Detalle de la prueba N 5
tem 6
Ejecutar el mtodo de cruza de la clase
Accin
CFuncionCruzaSimple
Entrada Cromo. 1= (0.25,0.2,-0.1,-1,0.5,-0.5,1.2,0.001,-1)
Cromo. 2= (-1, -1, -1, -1, -1, -1, -1, -1, -1)
Topologa=(2,2,1)
Cantidad de capas=3
Cualquier cruza valida, tomando los puntos de
cruza posibles. Los puntos de cruza posibles, para
Resultado Esperado
esta topologa son los siguientes:
Puntos de cruza (0,2,4,6,7,8,9)
0.25 0.20 -0.10 -1.00 0.50 -0.50 1.20 -1.00 -1.00
Resultado Obtenido
-1.00 -1.00 -1.00 -1.00 -1.00 -1.00 -1.00 0.00 -1.00
Tabla B.12. Detalle de la prueba N 6
tem 7
Ejecutar el mtodo de cruza de la clase
Accin
CFuncionCruzaMultiPuntos
Cromo. 1= (0.25,0.2,-0.1,-1,0.5,-0.5,1.2,0.001,-1)
Cromo. 2= (-1, -1, -1, -1, -1, -1, -1, -1, -1)
Entrada
Topologa=(2,2,1)
Cantidad de capas=3
Cualquier cruza valida, tomando los puntos de
cruza posibles. Los puntos de cruza posibles, para
Resultado Esperado
esta topologa son los siguientes:
Puntos de cruza (0,2,4,6,7,8,9)
0.25 0.20 -1.00 -1.00 0.50 -0.50 -1.00 -1.00 -1.00
Resultado Obtenido
-1.00 -1.00 -0.10 -1.00 -1.00 -1.00 1.20 0.00 -1.00
Tabla B.13. Detalle de la prueba N 7
tem 8
Accin Ejecutar el mtodo init_random de la clase
cromosoma
Entrada Topologa=(2,2,1)
Cantidad de capas=3
Valor mximo de inicializacin: 0.0001
Valor mnimo de inicializacin: -0.0001
Resultado Esperado Una red neuronal con la topologa indicada, cuyos
pesos sinpticos iniciales se encuentren dentro del
rango determinado.
Resultado Obtenido NEURONA 0
Peso 2,0 = -0.000027
Peso 3,0 = -0.000071
NEURONA 1
Peso 2,1 = -0.000067
Peso 3,1 = 0.000098
Umbral 2= -0.000011
Umbral 3= -0.000076
NEURONA 2
Peso 4,2 = -0.000099
NEURONA 3
Peso 4,3 = -0.000098
Umbral 4= -0.000024
Tabla B.14. Detalle de la prueba N 8
tem 9
Ejecutar el mtodo run de la clase
Accin
CalgoritmoEntrenamiento
Topologa=(2,2,1)
Cantidad de capas=3
Ejemplo (1,0,0)
Red inicial:
Entrada Peso 2,0 = 0.250000 Peso 3,0 = 0.200000
Peso 2,1 = -0.100000 Peso 3,1 = -1.000000
Umbral 2= 0.500000 Umbral 3= -0.500000
Peso 4,2 = 1.200000 Peso 4,3 = 0.001000
Umbral 4= -1.000000
Red neuronal tras la aplicacin del algoritmo
backpropagation. Los valores de los pesos tras una
aplicacin del algoritmo son los siguientes:
Peso 2,0 = 0.250000 Peso 3,0 = 0.200000
Resultado Esperado
Peso 2,1 = -0.126370 Peso 3,1 = -1.000023
Umbral 2= 0.526370 Umbral 3= -0.499977
Peso 4,2 = 1.214637 Peso 4,3 = 0.013386
Umbral 4= -0.971465
NEURONA 0
Peso 2,0 = 0.250000
Peso 3,0 = 0.200000
NEURONA 1
Peso 2,1 = -0.126370
Peso 3,1 = -1.000023
NEURONA 3
Peso 4,3 = 0.013386
Umbral 4= -0.971465
Tabla B.15. Detalle de la prueba N 9
tem 10
Ejecutar el mtodo evaluar_ejemplos de la clase
Accin
CRRNN
Topologa=(2,2,1)
Cantidad de capas=3
Ejemplos {(0,0,0); (1,0,0); (0,1,0); (1,1,1)}
Red inicial:
Entrada Peso 2,0 = -1.314117 Peso 3,0 = 0.741078
Peso 2,1 = -1.320710 Peso 3,1 = 0.741409
Umbral 2= -2.658615 Umbral 3= 1.676036
Peso 4,2 = -1.040693 Peso 4,3 = 0.016420
Umbral 4= -1.151829
Resultado Esperado Error rms = 0.009997
Resultado Obtenido El error rms es: 0.009997
Tabla B.16. Detalle de la prueba N 10
tem 11
Ejecutar el mtodo run de la clase
Accin
CAlgoritmoEntrenamiento
Topologa=(2,2,1)
Cantidad de capas=3
Entrada Ejemplos {(0,0,0); (1,0,0); (0,1,0); (1,1,1)}
Tipo Entrenamiento: RRNN
Mximo error rms: 0.01
Resultado Esperado Red Neuronal entrenada con error rms<0.01
Error rms = 0.009879. Red obtenida:
NEURONA 0
Peso 2,0 = -0.256081
Peso 3,0 = -1.286642
NEURONA 1
Peso 2,1 = -0.288126
Peso 3,1 = -1.296435
Resultado Obtenido
Umbral 2= -0.263248
Umbral 3= -2.497676
NEURONA 2
Peso 4,2 = 0.222432
NEURONA 3
Peso 4,3 = -1.083380
Umbral 4= -1.120917
Tabla B.17. Detalle de la prueba N 11
tem 12
Ejecutar el mtodo run de la clase
Accin
CAlgoritmoEntrenamiento
Topologa=(2,2,1)
Cantidad de capas=3
Entrada Ejemplos {(0,0,0); (1,0,0); (0,1,0); (1,1,1)}
Tipo Entrenamiento: AGS
Mximo error rms: 0.01
Resultado Esperado Red Neuronal entrenada con error rms<0.01
Error rms = 0.009938. Red obtenida:
NEURONA 0
Peso 2,0 = 0.471516
Peso 3,0 = 8.098954
NEURONA 1
Peso 2,1 = 0.477970
Peso 3,1 = 9.198176
Resultado Obtenido
Umbral 2= 0.475004
Umbral 3= 3.927385
NEURONA 2
Peso 4,2 = 2.109279
NEURONA 3
Peso 4,3 = -0.244734
Umbral 4= -0.436489
Tabla B.18. Detalle de la prueba N 12
B.5. Mantenimiento
En esta seccin se exponen algunas cuestiones referentes al
mantenimiento de la aplicacin. Para ello se describen algunos puntos
relacionados con la gestin de configuracin.
- Identificacin de la configuracin.
- Control de la configuracin.
- Generacin de informes de estado.
- Fases del Ciclo de vida: Se enumeran las fases para este proyecto y se
determinan los productos que se espera obtener al final de cada una de ellas:
1. Requerimientos
2. Anlisis
3. Diseo
4. Codificacin
5. Implementacin
6. Mantenimiento
Sistema: EasyTrain
Fecha: dd/mm/aaaa
Pedido por:
Resultado de la evaluacin: ACEPTADO | RECHAZADO
Cambio solicitado:
Solucin propuesta:
Plan de pruebas:
Sistema: EasyTrain
Fecha: dd/mm/aaaa
Pedido por:
Nro. solicitud de cambio:
Cambio a realizar:
Sistema: EasyTrain
Fecha: dd/mm/aaaa
Pedido por:
Nro. solicitud de cambio:
Fecha de solicitud: dd/mm/aaaa
Descripcin breve del problema:
Sistema: EasyTrain
Fecha: dd/mm/aaaa
Nro. solicitud de cambio:
Descripcin breve del problema:
Sistema: EasyTrain
Fecha: dd/mm/aaaa
Fecha desde: dd/mm/aaaa Fecha hasta: dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
Sistema: EasyTrain
Fecha: dd/mm/aaaa
Fecha desde: dd/mm/aaaa Fecha hasta: dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa