Está en la página 1de 22

Universidad Autonoma del Estado de Mexico

Campus Texcoco
Maestria en Ciencias de la Computacion
Inteligencia Articial
Espinosa M. Josue Erick, Hernandez Cote Diego,
Villavicencio Perez Gerardo Alexis
17-05-2014
Contents
I Introduccin 2
II Desarrollo 4
0.1 Problema 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
0.2 Problema 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
III Pruebas 11
0.3 Problema 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
0.4 Problema 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
IV Conclusiones 18
V Referencias 20
1
Part I
Introduccin
2
En la presente tarea se demostrara el desarrollo e implementacin de algunos
modelos de redes neuronales, especcamente se tratara el perceptron multicapa
que en este caso permite clasicar algunos datos que no son linealmente sepa-
rables, el ejemplo ms comn de esto es la separacin de patrones para la tabla
de verdad correspondiente a XOR, esta separacin no se puede dar con una sola
capa como se mencion en la tarea anterior, por lo que la implementacin de
algoritmos como Madaline (muchos Adaline) permite demostrar que es posible
utilizar capas ocultas para la resolucin de problemas no linealmente separa-
bles. Adems se mostrara el funcionamiento del algoritmo LMS (mnimo error
cuadrtico) que puede ser implementado en un Adaline y por lo tanto a un
Madaline, este algoritmo bsicamente permite realizar ms rpidamente un ac-
ercamiento a una solucin.
En cada paso se mostrara la implementacin de los algoritmos por medio de
funciones para MATLAB demostrando la manera en que deben ser ejecutadas,
por lo que tambin se explicara la salida de cada una de estas, todo esto en base
al manejo de archivos. Finalmente se presentan algunas conclusiones.
3
Part II
Desarrollo
4
0.1 Problema 2.
2. [10 puntos] Disee un perceptrn y entrnelo tres pocas de entrenamiento
que permita obtener un clasicador a partir de los siguientes puntos:
x
1
x
2
y
2 2:5 1
2 1 1
3 1 1
1 2:3 1
1 2 1
1 1 1
2 1 1
Explique y describa paso a paso como selecciono los pesos, parmetro de
aprendizaje, funcin de activacin y como se modican los pesos despus de
cada actualizacin para la primera poca, para la segunda y tercera solo muestre
los resultados en una Tabla.
Dentro del mtodo de perceptrn multicapa, existe un algoritmo que deriva
del mtodo Adaline llamado Madaline, el cual [3]es una combinacin de Ada-
lines, es decir, una estructura de capas y por lo tanto se asemeja a la estructura
general de una red neuronal, por lo que es posible solucionar problemas no
linealmente separables (por ejemplo el XOR).
La estructura de una red neuronal Madaline se compone de [4]una capa de
entrada (X), una capa intermedia u oculta formada por Z neuronas o unidades
Adaline y nalmente una salida; una caracterstica importante es que los pe-
sos entre las unidades Adaline y Madaline tienen valor de unidad no siendo
modicables (v). En la gura 1 se muestra la estructura general de una red
Madaline.
Figura1. Estructura de una red Madaline
5
Existen diferentes algoritmos para la solucin Madaline [5], para ese prob-
lema, el algoritmo a usar es llamado MRI; el mtodo de solucin se presenta a
continuacin:
1. Se inicializan pesos (w), bias (b) y parmetro de entrenamiento
2. Si la condicin de paro es falso hacer
a. Calcular la red de entrada de las capas ocultas
Z
in1
= b
1
+ x
1
w
11
+ x
2
w
21
Z
in2
= b
2
+ x
1
w
12
+ x
2
w
22
b. Encontrar la salida de la capa oculta Adaline usando la activacion
anterior
Z
1
= f(Z
in1
)
Z
2
= f(Z
in2
)
c. Calcular de entrada a salida
y
in
= b
3
+ z
1
v
1
+ z
2
v
2
Aplicar la activacion para tener la salida de la red
Y = f(y
in
)
d. Si t = y no hay actualizacin
Si t 6= y actualizar
Si t = 1, actualizar pesos en las unidades Z
j
donde la red
de entrada es mas cercano a 0
w
ij
= w
ij
+ (1 Z
inj
)x
j
b
j
= b
j
+ (1 Z
inj
)
Si t = 1, actualizar pesos en todas las unidades Z
k
que
tengan una entrada positiva
w
ik
= w
ik
+ (1 Z
ink
)x
i
b
k
= b
k
+ (1 Z
ink
)
e. Preguntar por la condicin de paro
La funcin desarrollada que resuelve el ejercicio propuesto es llamada mada-
line2; y solo basta ejecutarse en el IDE MatLab para inicializar el algoritmo.
6
>> madaline2
al inicial el programa, este le preguntara al usuario si desea ingresar paramet-
ros de pesos y aprendizaje o usar los parametros ya asignados; los parmetros
asignados fueron seleccionados de manera aleatoria y son los siguientes:
b
1
= 0:5
b
2
= 1:3
b
3
= 0:5
w
11
= 1:7
w
21
= 1:3
w
12
= 1:6
w
22
= 1:8
v
1
; v
2
= 0:5
La programacin del clculo de la red de las capas ocultas se muestra en la
gura 2.
Figura 2. Calculo dela capa oculta
Como se indica en el algoritmo, posteriormente se calcula y
in
, el cdigo
que ejecuta esta funcin se presenta en la gura 3.
Figura 3. Y-in
7
Finalmente se actualizan los pesos usando el algoritmo RMI, en la gura 4
se muestra el cdigo que hace la funcin.
Figura 4. Calculo de nuevos pesos
Problema 3
2. Realice un programa que permita el entrenamiento y prueba de un per-
ceptrn multicapa con una cantidad variable de entradas y capas ocultas.
La funcin adaline3 contiene la implementacin al problema.
Inicializa los los parametros iniciales con valores aleatorios para
w,b,v,criterio de paro y epocas de entrenamiento permite que el usuario los
capture.
8
Donde el punto principal de la funcin son las iteraciones que realiza
por poca de entrenamiento calculado los valores de entrada para cada neurona
de la capa oculta y los valores de entrada para la capa de salida, al igual que el
problema anterior utiliza el algoritmo MRI
0.2 Problema 4.
4. [50 puntos] Investigue (5 puntos), describa paso a paso (5 puntos), implemente
(20 puntos) y muestre dos ejemplos paso a paso (20 puntos) del algoritmo de
entrenamiento LMS.
Dentro de la inteligencia articial existen diferentes metodologas que per-
miten el aprendizaje en base a ciertos patrones que corresponden a caractersti-
cas de una entidad, un ejemplo claro de esto son las redes neuronales articiales,
segn [1] una red neuronal consiste en simular las propiedades observadas en
los sistemas neuronales biolgicos a travs de modelos matemticos recreados
mediante mecanismos articiales. La unidad mnima para representar una red
neuronal articial es el perceptron y para poder llevar a cabo el aprendizaje con
este elemento, existen distintos algoritmos con diferentes reglas de aprendizaje.
Tales reglas para las redes neuronales articiales se comenzaron a estudiar
desde muy temprano, segn [2] los primeros estudios fueron desarrollados por
Rosenblat y otros ms a nales de la dcada de los cincuenta, este mismo men-
ciona que Frank Rosenblatt trabajo sobre el mismo tema y su estudiante Marcian
Ho introdujo poco a poco el modelo Adaline y su regla de aprendizaje llamada
algoritmo LMS (Least Mean Square).
Es muy cierto que existe una gran similitud entre un perceptron y una Ada-
line, e incluso comparten las mismas debilidades, es decir que solo pueden re-
solver problemas linealmente separable. Los ejemplos ms clsicos para probar
9
el funcionamiento de ambas estructuras son las funciones lgicas AND, OR Y
XOR, donde los primeros dos casos representan patrones de comportamiento
que pueden ser clasicados linealmente, sin embargo en el caso de XOR dado su
naturaleza no puede ser resuelto por un perceptron o un Adaline, para encontrar
una solucin es necesario implementar otros mtodos.
En tal caso para resolver un XOR es posible utilizar Adaline en una versin
llamada Madaline (que quiere decir muchos Adaline) que est compuesta por
una o varias capas ocultas, en si el Adaline tiene una gran ventaja sobre utilizar
un perceptron simple, pues Adaline trabaja con el algoritmo LMS que resulta
ser ms potente ya que minimiza el error medio cuadrtico, lo que permite un
aprendizaje ms rpido. El algoritmo LMS permite dentro de la implementacin
de un Adaline encontrar el o los valores adecuados de los pesos incluyendo el
bias, [2] muestra el algoritmo de la siguiente manera.
Actualizacin de pesos o Tetas
w(k + 1) = w(k) + 2(Alpha)e(k)pT(k)
Actualizacin del peso del bias
b(b + 1) = b(k) + 2(Alpha)e(k)
Calculo del error
e(k) = t(k) wTp(k)
Donde t(k) : es la salida esperada en este caso el target o el objetivo de un
patrn introducido, p(k) representa la entrada correspondiente al patrn.
El algoritmo general para implementar un Adaline es de la forma:
Algorithm 1 Inicializar los pesos de forma aleatoria
Algorithm 2 Mientras no se cumpla la condicin de paro
Algorithm 3 Para cada par de entradas y objetivo
Algorithm 4 Asignar funcin de activacin
Algorithm 5 Calcular salida: y = b + piwi
Algorithm 6 Actualizar bias & pesos con LMS
10
Part III
Pruebas
11
0.3 Problema 2
Para realizar pruebas de la funcin desarrollada, solo es necesario de ingresar la
siguiente lnea de comandos en el IDE MatLab.
>> madaline2
Cuando inicie su ejecucin, la funcin le preguntara al usuario si desea ingre-
sar parmetros propios o de lo contrario usa los parmetros ya predenidos; para
este ejemplo; usaremos los parmetros preestablecidos, por lo que al nalizar la
poca de entrenamiento aparecer la siguiente tabla 1.
Tabla 1
Posteriormente se le pregunta al usuario si desea realizar otra poca de en-
trenamiento, si es positivo, entonces se creara una nueva tabla con los valores
de la nueva poca; para este problema, en la poca numero 32 es cuando se llega
a la solucin o target, en la tabla 2 se muestra la tabla nal de solucin.
Tabla 2. Tabla solucion
Problema 4
Se prob la funcion madeline3, con la funcin XOR, el archivo Datos.txt
contiene los valores de entrada, el segundo argumento es el array de objetivos.
12
>> madaline3(Datos.txt,[-1 1 1 -1])
1.Elegir Valores *.Usar valores preestablecidos Elige: 1
Criterio de paro: 1.Numero de epocas elegidas. *.Hasta alcanzar el objetivo.
: 2
Introduce un valor de aprendizaje: 0.5
Introduce w(11): 0.05
Introduce w(12): 0.1
Introduce w(21): 0.2
Introduce w(22): 0.2
Introduce pesos b(1): 0.3
Introduce pesos b(2): .5
Introduce vias(1): .5
Introduce vias(2): .5
La funcin gener el archivo con los siguientes resultados:
Donde la columna A representa la poca de entrenamiento
La columna B, El nmero de iteracin por poca
Las columnas C, D, E, y F son los pesos w(11), w(12), w(1,3), w(14) respec-
tivamente
Las columnas G y H son los pesos b(1) y b(2)
La columna I es f(y)
La columna J es el objetivo
La funcin tard 3 pocas de entrenamiento hasta lograr que las salidas
cumplieran con los objetivos en un total de 12 iteraciones para la funcin XOR
La funcin requiri de 3 pocas de entrenamiento para entrenar la red con
la funcin XOR
0.4 Problema 4
En base a lo descrito anteriormente sobre la implementacin de un Adaline junto
con el algoritmo LMS, se ha diseado una funcin Adaline_LMS:m para el
13
software Matlab que implementa tal algoritmo para n entradas. La funcin
requiere como parmetro de entrada un archivo de texto que contenga dentro
de las primeras columnas los valores correspondientes a las entradas del Adaline
y que la ltima columna represente el objetivo de clasicacin de los patrones.
Se han realizado pruebas para las tablas de verdad correspondientes a las
compuertas AND y OR, as como para dos de las caractersticas y clases que
corresponden a los datos encontrados en el Data set Iris, del sitio UCI. Dentro
de la tarea se ha introducido los Data Set que se utilizaron para las pruebas.
En la siguiente gura se muestra una porcin del cdigo de la funcin donde se
logra apreciar el proceso de forma general, especcamente de la lnea 60 a la
68 se muestra la actualizacin de los pesos.
Figura 5. Calculo de pesos por LMS
Este arroja como resultado el bias nal Teta0, los pesos Tetas, la vari-
able contando que representa el nmero de pocas en la que se encontr una
solucin y nalmente una grca que permite visualizar el proceso de separacin
de clases de los elementos en color verde respecto a cada poca, donde la lnea
de color rojo representa la solucin.
Ejemplo de ejecucin para la compuerta AND
>> adaline_LMS(and.txt)
1.Cargar Parametros *.Usar Parametros aleatorios ELIGE: 1
Teta0: 0.3
14
Teta1: .1
Teta2: .2
Alpha de aprendizaje: .01
Teta0 = -0.0600
Tetas = 0.1400 0.1600
contando = 6
Figura 6. Clasicacin de AND
Ejemplo de ejecucin para la compuerta OR
>> adaline_LMS(or.txt)
1.Cargar Parametros *.Usar Parametros aleatorios ELIGE: 1
Teta0: 0.3
Teta1: .1
Teta2: .01
Alpha de aprendizaje: .01
Teta0 = 0.2200
Tetas = 0.1800 0.0900
contando = 2
15
Figura 6. Clasicacin de OR
Ejemplo de ejecucin para el Data set Iris2 que contiene nicamente dos
caractersticas y dos clases.
>> adaline_LMS(Iris2.txt)
1.Cargar Parametros *.Usar Parametros aleatorios ELIGE: 1
Teta0: 0.1712
Teta1: .-0.3034
Teta2: 0.2939
Alpha de aprendizaje: .01
Teta0 = 0.2112
Tetas = -0.2914 0.4659
contando = 5
16
Figura 6. Clasicacin de Iris2
17
Part IV
Conclusiones
18
El mtodo Madaline es un algoritmo efectivo para la solucin de problemas
no linealmente separables, ya que al contener capas ocultas permiten usar ms
de 1 algoritmo Adaline para llegar a la solucin.
El mtodo Madaline llamado MRI permite una correcta actualizacin de
pesos en cada iteracin, la solucin a la que se llega tiene como base los mismos
pesos, por lo tanto, la ltima poca que se realiza debe de tener los pesos entre
ellos y no actualizarse.
En lo que se reere a la implementacin de un Adaline con un algoritmo
basado en la regla de aprendizaje LMS se ha podido apreciar en las diferentes
pruebas que se ha utilizado un parmetro de aprendizaje Alpha muy pequeo.
Esto conlleva a que utilizar valores pequeos para esta constante, el algoritmo
en general pierde velocidad y tarda demasiado en alcanzar la convergencia es
decir la solucin, pero en este caso ya que se utiliz LMS en la actualizacin de
pesos permiti compensar esta prdida de velocidad encontrando una solucin
ms rpidamente.
19
Part V
Referencias
20
[1]Corrales Barrios, Luis Benigno ; Ramrez Vzquez, Alexei. (2013). Clasi-
cacin de fallas con redes neuronales para grupos electrgenos. Ingeniera En-
ergtica, XXXIVMayo-Agosto, 137-150.
[2]Gil Zapata, Martha Mara; Prez Ramrez, Fredy Ocaris. (2005). Anlisis
y prediccin de la accin de la empresa Aceras Paz del Ro utilizando un modelo
GARCH(1,1) y redes neuronales articiales. Revista Ingenieras Universidad
de Medelln, julio-diciembre, 83-97.
[3]Lahoz, R. (2004). Bioinformatica. Simulacion, vida articial e inteligencia
articial. Madrid: Diaz de Santos.
[4]Prez, I., & Len, B. (2007). Lgica Difusa para principiantes. Caracas:
UCAB.
[5]Sivanandam, S. N., & Deepa, S. N. (2006). Introduction to Neural Net-
works Using Matlab 6.0. Tata McGraw-Hill Education.
21

También podría gustarte