Está en la página 1de 26

1

Neural Network
Toolbox de MATLAB
Instructor:
Juan Carlos Moctezuma Eugenio
Ciencias Computacionales - INAOE
Septiembre 2006
1
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Agenda
1. Introduccin a las Redes Neuronales Artificiales
2. Introduccin al Neural Network Toolbox
3. Redes Perceptrn
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
2
2
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Introduccin
Los sistemas de cmputo de hoy en da, son exitosos en la
resolucin de problemas matemticos o cientficos, pero
definitivamente tienen una gran incapacidad para interpretar el
mundo tal y como nosotros los humanos lo hacemos, ms
especficamente como nuestro cerebro lo hace.
Caractersticas del cerebro humano:
Su robustez y tolerancia a fallas, mueren neuronas sin afectar su
desempeo
Flexibilidad, se ajusta a nuevos ambientes por medio de un proceso de
aprendizaje, no hay que programarlo
Puede manejar informacin difusa
Es altamente paralelo
Es pequeo y compacto
3
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Las redes neuronales artificiales han surgido como un intento de
desarrollar sistemas que emulen estas caractersticas del cerebro
De esta forma podemos definir a las redes neuronales artificiales
(RNA) como modelos matemticos computacionales inspirados
en sistemas biolgicos, adaptados y simulados en computadoras
convencionales
Las caractersticas ms importantes de las RNA son:
Habilidad de Aprendizaje. Las RNA pueden modificar su
comportamiento en respuesta al medio ambiente.
Generalizacin. Una vez entrenada, una RNA es, hasta cierto grado,
insensible a variaciones pequeas en sus entradas. Esto es, las RNA
producen sistemas capaces de manejar el mundo "imperfecto" en que
vivimos.
Abstraccin. Algunas RNA son capaces de abstraer la esencia de una
serie de entradas. Se pueden abstraer patrones perfectos de modelos
distorsionados.
3
4
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Modelo computacional
El elemento ms bsico del cerebro es la neurona, la cual por si
sola no hace mucho pero juntamos millones de ellas entonces se
vuelven poderosas
El modelo computacional de una neurona artificial es una imitacin
del proceso de una neurona biolgica
5
Juan Carlos Moctezuma Eugenio Neural Network Toolbox

X
1
X
2
X
p
TF
W
k1
W
k2
W
kp
U
k
Threshold
y
k
Modelo desglosado de la neurona
La neurona esta constituida por: lazos sinpticos (X*W), mezclador
lineal (U) y una funcin de activacin (TF)
4
6
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Funcin de Transferencia
Es quizs la caracterstica principal de las neuronas, la que mejor
define el comportamiento de la misma. Se encarga de calcular el
nivel o estado de activacin de la neurona en funcin de la entrada
total
7
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Modelo de una capa
Dentro de una red neuronal, los elementos de procesamiento se
encuentran agrupados por capas, una capa es una coleccin de
neuronas; de acuerdo a la ubicacin de la capa en la RNA, sta
recibe diferentes nombres:
Capa de entrada
Capa oculta
Capa de salida
5
8
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Modelo de una red multicapa
Una red multicapa simplemente es una red que contiene varias
capas en su estructura, la forma en que las capas se encuentran
conectadas es fundamental para poder clasificar a la red
9
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Agenda
1. Introduccin a las Redes Neuronales Artificiales
2. Introduccin al Neural Network Toolbox
3. Redes Perceptrn
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
6
10
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Neural Network Toolbox
El Neural Network Toolbox de MATLAB modela solo
abstracciones simples de los modelos de redes biolgicas.
Comnmente se entrenan por aprendizaje supervisado, aunque
tambin soporta el aprendizaje no supervisado y el diseo directo
11
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Modelo de la neurona en MATLAB
7
12
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
MATLAB cuenta con una gran variedad de funciones de
transferencia dependiendo el fin para el que va a ser utilizada
la red, aqu presentamos 6 funciones:
Funciones de Transferencia
13
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Capa de neuronas en MATLAB
Una simple neurona no puede hacer mucho. Sin embargo, muchas
neuronas pueden combinarse en una o varias capas y as hacer a la
red ms poderosa
8
14
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Redes Multicapa en MATLAB
15
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Redes multicapa (notacin abreviada)
9
16
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
IW pesos de entradas
LW pesos de capas
LW
c1,c2
n1,n2
Peso que viene de la neurona n2 de la capa c1 y que va hacia la
neurona n1 de la capa c1
Superndices informacin de las capas
Subndices informacin de la entrada/neurona fuente y la neurona/salida
destino
Notacin
17
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Agenda
1. Introduccin a las Redes Neuronales Artificiales
2. Introduccin al Neural Network Toolbox
3. Redes Perceptrn
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
10
18
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
El perceptrn
Este tipo de red es ampliamente usado en problemas simples de
clasificacin de patrones.
19
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
net = newp (PR, S);
PR matriz de Rx2
a
1
b
1
a
2
b
2
a
R
b
R
[ai bi] = intervalo de la isima entrada
S nmeros de neuronas
Arquitectura del Perceptrn
11
20
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Neural
Network
Object
Architecture
SubObject Structures
Functions
Parameters
Weight and Biases values
Other (User Stuff)
architecture:
numInputs numLayers biasConnect inputConnect
layerConnect outputConnect targetConnect
subobject structures:
inputs layers outputst targets biases
inputWeight layerWeights
functions:
adaptFcn initFcn performFcn trainFcn
parameters:
adaptParam: .passes
trainParam: .epochs, .goal, .show, .time
weight and bias values:
IW LW b
Objetos tipo red neuronal
En MATLAB cuando se crea una red neuronal en realidad lo que se
esta creando es un objeto con diferentes campos o propiedades
21
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Proceso de Aprendizaje
Aprendizaje.- es el proceso mediante el cual la red va
modificando sus pesos y ganancias de tal manera que al final
del proceso se tiene el comportamiento deseado
El proceso de aprendizaje involucra los siguientes pasos:
1. La red neuronal es estimulada por el entorno
2. La red neuronal experimenta cambios como resultado de ese
estmulo
3. La red neuronal responde de una nueva forma al entorno, como
resultado de los cambios ocurridos en su estructura interna
12
22
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Learning Process
Learning algorithms (rules)
-Calculate net output
-Comparate with the target
-Get Error
-Change weights and biases
Learning paradigms
Enviroment Teacher

Learning
System
+
_
Taxonoma del proceso de aprendizaje
23
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Reglas de aprendizaje en MATLAB
13
24
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
P =
T =
Patrn de entrada
Nmero de
entradas
Salida deseada para determinado
patrn de entrada
Nmero de
salidas
Tipos de Entrenamiento
Inremental Training: Los pesos y ganancias de la red son
actualizados o cambiados cada vez que se presenta un patrn de
entrada
Batching Training: Los pesos y ganancias de la red son
cambiados solamente hasta que todos los patrones de entrada han
sido presentados
25
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Regla de aprendizaje del Perceptrn
El perceptrn es un tipo de red de aprendizaje supervisado, es
decir, necesita conocer los valores esperados (targets) para cada
una de las entradas (a) presentadas
Generalmente ocupan funciones de transferencia tipo hardlim y
hardlims
La regla de aprendizaje que sigue el perceptrn para la
actualizacin de sus pesos es la siguiente:
14
26
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Sesin prctica
Aprendizaje del Perceptrn
y
Estructura de las Redes Neuronales
en MATLAB
27
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
sensores
Motor
chico
mediano
grande
mega
Red Neuronal
Se desea realizar un clasificador de 4 tipos diferentes de cajas
usando 6 sensores
Lab 1: Aplicacin del Perceptrn
15
28
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
1
0
1
1
0
0
M0
1
1
0
0
0
0
M1
Motor
Mega 1 1 1 1 1 1
Grande 1 1 1 0 1 1
Mediano 1 1 1 0 0 1
Mediano 1 1 1 0 1 0
Chico 1 0 1 0 0 1
Chico 1 0 1 0 1 0
L0 L1 H0 H1 W0 W1
Tamao de
la caja
Largo Alto Ancho
W1
W0
H1
H0
L1
L0
M1
M0
W0
W1
H0
H1
L0 L1
29
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Agenda
1. Introduccin a las Redes Neuronales Artificiales
2. Introduccin al Neural Network Toolbox
3. Redes Perceptrn
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
16
30
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Tipo de Red de aprendizaje supervisado que se basa en un algoritmo
de gradiente descendiente (LMS Algorithm Widrow-Hoff).
El patrn de entrada se propaga por la red hasta generar la salida,
despus se calcula el error; stas salidas de error se propagan hacia las
neuronas de la capa anterior. Cada neurona solo tiene una contribucin
del error total
El error que genera la red en funcin de sus pesos es una superficie de
n dimensiones, al evaluar el gradiente se obtiene la direccin en la cual
la superficie tiene un mayor crecimiento, por lo tanto se toma la
direccin opuesta (negativa) para minimizar el error
Redes Backpropagation
31
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Las funciones de transferencia deben de ser continuas. Adems
se buscan funciones cuya derivada dependa de la funcin sin
derivar.
Arquitectura Backpropagation
17
32
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Algoritmo Estndar
g
k
gradiente

k
learning rate
traingd aprendizaje por gradiente descendiente (Estndar)
traingdm gradiente descendiente con momentum (low-pass filter)
traingda, traingdx gradiente descendiente, variando el learning rate
trainlm - Levenberg-Marquardt basado en la matriz Hessiana pero
hecha con una aproximacin usando la matriz Jacobian
Algoritmo
Estndar
Tcnicas
Heursticas
Tcnicas
Optimizacin
Numrica
-momentum
-lr variable
-gradiente conjugado
-Newton (Hessian matrix)
-Levenberg-M (Jacobian matrix)
Algoritmos Backpropagation
33
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Redes Backpropagation en MATLAB
newff(PR, tam, transfer, train)
PR matriz de Rx2 en donde se indican los intervalos que pueden
tomar las R entradas de la red
tam nmero de neuronas de la capa
transfer funcin de transferencia expresada como cell array
train mtodo de entrenamiento de la red
18
34
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Pre-procesamiento y Post-procesamiento
El entrenamiento en redes neuronales puede volverse ms eficiente
si realizamos un pre-procesamiento principalmente a entradas y
targets
Hay veces que antes de entrenar la red es til escalar las entradas
y targets de tal forma que se distribuyan en un rango especfico,
para esto se usa la funcin premnmx
Los datos son normalizados en el rango [-1 1] y se deben de usar
los datos normalizados para probar la red
La funcin postmnmx sirve para que los datos regresen a su
estado original
Si se quiere aplicar un nuevo set de entradas pero con la
distribucin de los datos normalizados entonces se ocupa la funcin
tramnmx
35
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Anlisis post-entrenamiento
La eficiencia de una red entrenada puede ser medida viendo los
errores que arroja la red durante el entrenamiento o bien validando
el set de training, pero algunas veces es til medir la red con ms
detalle. Una opcin es medir la eficiencia por anlisis regresivo.
m y b corresponden a la pendiente y a la interseccin en el eje
de las ordenadas respectivamente, es decir, representan la mejor
regresin lineal que relaciona los targets con las salidas de la red
r es un coeficiente de correlacin entre los targets y las salidas,
toma valores entre 0 y 1, donde 1 indica una perfecta correlacin
19
36
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Resultados arrojados por postreg
37
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Sesin prctica
Redes Backpropagation
en MATLAB
20
38
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Hidden layer
(tansig function)
Output layer
(purelin function)
p
t
p
t
Lab 2: Aplicacin del Backpropagation
Se desea realizar un red neuronal la cual se comporte como un
aproximador de funciones dado un set discreto de valores de
entrada
39
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
La GUI deber tener las siguientes caractersticas:
Un cuadro de texto para indicar el rango de la funcin
Un cuadro de texto para indicar la funcin
Un cuadro de texto que indique el nmero de neuronas en la
capa 1
Un grupo de radiobuttons que me ofrezca al menos 5 opciones
de entrenamiento
Un botn para entrenar la red
Un botn en donde compare la funcin original con la obtenida
por la red neuronal
21
40
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Agenda
1. Introduccin a las Redes Neuronales Artificiales
2. Introduccin al Neural Network Toolbox
3. Redes Perceptrn
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
41
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Redes recurrentes tipo Hopfield
La principal caracterstica de las redes recurrentes en cuanto a su
arquitectura es que poseen retroalimentaciones
El toolbox de MATLAB soporta 2 tipos de redes recurrentes: las
redes Elman y las redes Hopfield, sta ltima ser la que
estudiaremos en este curso
La red Hopfield es usada para almacenar uno o ms conjuntos de
vectores de equilibrio (stable target vectors).
Estos vectores sirven como estados de equilibrio; para cuando se
presente una entrada a la red, entonces la salida converge a uno de
estos vectores de equilibrio
22
42
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Representacin grfica del comportamiento
Supongamos que tenemos una red de 2 neuronas (el nmero de
entradas que podemos tener ser igual al nmero de neuronas),
adems tenemos 2 patrones a grabar [-1 1] y [1 -1]
43
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Arquitectura Hopfield
Este tipo de red puede grabar (como una memoria) uno o varios
patrones de entrada, los cuales son presentados como condiciones
iniciales
23
44
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Una representacin quiz ms desglosada de la arquitectura
Hopfield sera la siguiente:
Xo X
X
1
n-1
n-1
X
Xo
X

n-2
n-1
1
n-2
X
1

45
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Se calculan los pesos de la red Wij (salida de la j-sima neurona
a la entrada de la i-sima neurona)
Se muestra a la red un patrn de entrada cualquiera (completo o
incompleto)
La red empieza a iterar hasta que la salida converge (es estable)
M = nmero de clases por aprender
X
s
i
= i-simo elemento de la s-sima clase
Entrenamiento de una red Hopfield
24
46
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Declarando una red hopfield
La declaracin y entrenamiento de la red se ejecuta con una sola
funcin que se llama newhop, en realidad lo que hace esta funcin
es calcular los pesos colocando como condicin inicial a la matriz T
10x5
nethop = newhop(T);
Y = sim(nethop,{Q TS},{}, {Ai}); Ai = set de entradas a probar
Q = Dimensin de Ai
TS = nmero de iteraciones
T =
5 patrones a grabar,
con 10 entradas
47
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Sesin prctica
Redes tipo Hopfield
en MATLAB
25
48
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Patrones a grabar: A, I, E, 1, 2
Red Hopfield
Lab 3: Aplicacin Hopfield
Se desea realizar una red que grabe M patrones de entrada (en
este caso sern letras o nmeros) de una matriz de 5x5. Despus
que se haya entrenado la red se presentarn entradas con ruido
(letras mal hechas) de tal forma que la red converja al patrn ms
parecido (letra ms parecida)
49
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
La red se realizar en una interfaz grfica de usuario y deber tener
las siguientes especificaciones:
Un cuadro de texto que indique cuantos patrones deseo grabar
Otro cuadro de texto en donde se indique por medio de una
matriz de tamao 5x5 la cual contendr solo 0s y 1s que
segmento estar prendido y que segmento estar apagado
Otro cuadro de texto para indicar el nmero de iteraciones
Un botn que vaya grabando cada patrn introducido por el
usuario para que al final se tenga la matriz T
Un botn que sea para entrenar la red
Otro botn que visualice los resultados de la red ya entrenada
para as comparar resultados
26
50
Juan Carlos Moctezuma Eugenio Neural Network Toolbox
Gracias por su atencin
Otros cursos:
- Anlisis Numrico y Aplicaciones al Clculo y lgebra
- Graficacin en 2D y 3D
- Desarrollo de Interfaces Grficas de Usuario
- Procesamiento de Imgenes
- Adquisicin de Datos
- Adquisicin de Imgenes
- Diseo de Sistemas Digitales en FPGAs usando MATLAB
- Diseo de Sistemas Digitales en FPGAs usando VHDL
Para informacin acerca de los cursos
moctezumajc@yahoo.com

También podría gustarte