Logo Studenta

Introdução às Redes Neuronais Artificiais com MATLAB

¡Este material tiene más páginas!

Vista previa del material en texto

1
“ Neural Network 
Toolbox de MATLAB”
Instructor:
Juan Carlos Moctezuma Eugenio
Ciencias Computacionales - INAOE
Septiembre 2006
1
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Agenda
1. Introducción a las Redes Neuronales Artificiales
2. Introducción al Neural Network Toolbox
3. Redes Perceptrón
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
2
2
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Introducción
Los sistemas de cómputo de hoy en día, son exitosos en la 
resolución de problemas matemáticos o científicos, pero 
definitivamente tienen una gran incapacidad para interpretar el 
mundo tal y como nosotros los humanos lo hacemos, más 
específicamente como nuestro cerebro lo hace.
Características del cerebro humano:
� Su robustez y tolerancia a fallas, mueren neuronas sin afectar su 
desempeño
� Flexibilidad, se ajusta a nuevos ambientes por medio de un proceso de 
aprendizaje, no hay que programarlo
� Puede manejar información difusa
� Es altamente paralelo
� Es pequeño y compacto
3
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Las redes neuronales artificiales han surgido como un intento de
desarrollar sistemas que emulen estas características del cerebro
De esta forma podemos definir a las redes neuronales artificiales 
(RNA) como modelos matemáticos ó computacionales inspirados 
en sistemas biológicos, adaptados y simulados en computadoras 
convencionales
Las características más importantes de las RNA son:
� Habilidad de Aprendizaje. Las RNA pueden modificar su 
comportamiento en respuesta al medio ambiente. 
� Generalización. Una vez entrenada, una RNA es, hasta cierto grado, 
insensible a variaciones pequeñas en sus entradas. Esto es, las RNA 
producen sistemas capaces de manejar el mundo "imperfecto" en que 
vivimos. 
� Abstracción. 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 EugenioNeural Network Toolbox
Modelo computacional
El elemento más básico 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 imitación 
del proceso de una neurona biológica
5
Juan Carlos Moctezuma EugenioNeural Network Toolbox
∑
X1
X2
Xp
TF
Wk1
Wk2
Wkp
Uk
Threshold
yk
Modelo desglosado de la neurona
La neurona esta constituida por: lazos sinápticos (X*W), mezclador 
lineal (U) y una función de activación (TF)
4
6
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Función de Transferencia
Es quizás la característica principal de las neuronas, la que mejor 
define el comportamiento de la misma. Se encarga de calcular el 
nivel o estado de activación de la neurona en función de la entrada 
total
7
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Modelo de una capa
Dentro de una red neuronal, los elementos de procesamiento se 
encuentran agrupados por capas, una capa es una colección de 
neuronas; de acuerdo a la ubicación de la capa en la RNA, ésta 
recibe diferentes nombres: 
� Capa de entrada
� Capa oculta
� Capa de salida
5
8
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural Network Toolbox
Agenda
1. Introducción a las Redes Neuronales Artificiales
2. Introducción al Neural Network Toolbox
3. Redes Perceptrón
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
6
10
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Neural Network Toolbox
El Neural Network Toolbox de MATLAB modela solo 
abstracciones simples de los modelos de redes biológicas. 
Comúnmente se entrenan por aprendizaje supervisado, aunque 
también soporta el aprendizaje no supervisado y el diseño directo
11
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Modelo de la neurona en MATLAB
7
12
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural 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 más poderosa
8
14
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Redes Multicapa en MATLAB
15
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Redes multicapa (notación abreviada)
9
16
Juan Carlos Moctezuma EugenioNeural Network Toolbox
IW – pesos de entradas
LW – pesos de capas
LWc1,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
Superíndices – información de las capas
Subíndices – información de la entrada/neurona fuente y la neurona/salida 
destino
Notación
17
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Agenda
1. Introducción a las Redes Neuronales Artificiales
2. Introducción al Neural Network Toolbox
3. Redes Perceptrón
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
10
18
Juan Carlos Moctezuma EugenioNeural Network Toolbox
El perceptrón
Este tipo de red es ampliamente usado en problemas simples de 
clasificación de patrones.
19
Juan Carlos Moctezuma EugenioNeural Network Toolbox
net = newp (PR, S);
PR – matriz de Rx2
a1 b1
a2 b2
aR bR
[ai bi] = intervalo de la i–ésima entrada
S – números de neuronas
Arquitectura del Perceptrón
11
20
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural 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 
estímulo
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 EugenioNeural 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
+
_
Taxonomía del proceso de aprendizaje
23
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Reglas de aprendizaje en MATLAB
13
24
Juan Carlos Moctezuma EugenioNeural Network Toolbox
P = T = 
Patrón de entrada
Número de
entradas
Salida deseada para determinado
patrón de entrada
Número de
salidas
Tipos de Entrenamiento
Inremental Training: Los pesos y ganancias de la red son 
actualizados o cambiados cada vez que se presenta un patrón 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 MoctezumaEugenioNeural Network Toolbox
Regla de aprendizaje del Perceptrón
El perceptrón 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 perceptrón para la 
actualización de sus pesos es la siguiente:
14
26
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Sesión práctica
Aprendizaje del Perceptrón
y
Estructura de las Redes Neuronales
en MATLAB
27
Juan Carlos Moctezuma EugenioNeural 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: Aplicación del Perceptrón
15
28
Juan Carlos Moctezuma EugenioNeural Network Toolbox
1
0
1
1
0
0
M0
1
1
0
0
0
0
M1
Motor
Mega111111
Grande111011
Mediano111001
Mediano111010
Chico101001
Chico101010
L0L1H0H1W0W1
Tamaño de 
la caja
LargoAltoAncho
W1
W0
H1
H0
L1
L0
M1
M0
W0
W1
H0
H1
L0L1
29
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Agenda
1. Introducción a las Redes Neuronales Artificiales
2. Introducción al Neural Network Toolbox
3. Redes Perceptrón
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
16
30
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Tipo de Red de aprendizaje supervisado que se basa en un algoritmo 
de gradiente descendiente (LMS Algorithm Widrow-Hoff). 
El patrón de entrada se propaga por la red hasta generar la salida, 
después se calcula el error; éstas salidas de error se propagan hacia las 
neuronas de la capa anterior. Cada neurona solo tiene una contribución 
del error total
El error que genera la red en función de sus pesos es una superficie de 
n dimensiones, al evaluar el gradiente se obtiene la dirección en la cual 
la superficie tiene un mayor crecimiento, por lo tanto se toma la 
dirección opuesta (negativa) para minimizar el error
Redes Backpropagation
31
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Las funciones de transferencia deben de ser continuas. Además 
se buscan funciones cuya derivada dependa de la función sin 
derivar.
Arquitectura Backpropagation
17
32
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Algoritmo Estándar
g k – gradiente
α k – learning rate
traingd – aprendizaje por gradiente descendiente (Estándar)
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 aproximación usando la matriz Jacobian
Algoritmo
Estándar
Técnicas
Heurísticas
Técnicas
Optimización
Numérica
-momentum
-lr variable
-gradiente conjugado
-Newton (Hessian matrix)
-Levenberg-M (Jacobian matrix)
Algoritmos Backpropagation
33
Juan Carlos Moctezuma EugenioNeural 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 – número de neuronas de la capa
� transfer – función de transferencia expresada como cell array
� train – método de entrenamiento de la red
18
34
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Pre-procesamiento y Post-procesamiento
El entrenamiento en redes neuronales puede volverse más 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 específico, 
para esto se usa la función ‘premnmx’
Los datos son “normalizados” en el rango [-1 1] y se deben de usar 
los datos normalizados para probar la red
La función ‘postmnmx’ sirve para que los datos regresen a su 
estado original
Si se quiere aplicar un nuevo set de entradas pero con la 
distribución de los datos normalizados entonces se ocupa la función 
‘tramnmx’
35
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Análisis 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 más 
detalle. Una opción es medir la eficiencia por análisis regresivo.
“m” y “b” corresponden a la pendiente y a la intersección en el eje 
de las ordenadas respectivamente, es decir, representan la mejor
regresión lineal que relaciona los targets con las salidas de la red
“r” es un coeficiente de correlación entre los targets y las salidas, 
toma valores entre 0 y 1, donde 1 indica una perfecta correlación
19
36
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Resultados arrojados por ‘postreg’
37
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Sesión práctica
Redes Backpropagation
en MATLAB
20
38
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Hidden layer
(tansig function)
Output layer
(purelin function)
p t
p
t
Lab 2: Aplicación 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 EugenioNeural Network Toolbox
La GUI deberá tener las siguientes características:
� Un cuadro de texto para indicar el rango de la función
� Un cuadro de texto para indicar la función
� Un cuadro de texto que indique el número de neuronas en la 
capa 1
� Un grupo de radiobuttons que me ofrezca al menos 5 opciones 
de entrenamiento
� Un botón para entrenar la red
� Un botón en donde compare la función original con la obtenida 
por la red neuronal
21
40
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Agenda
1. Introducción a las Redes Neuronales Artificiales
2. Introducción al Neural Network Toolbox
3. Redes Perceptrón
4. Redes Backpropagation
5. Redes Recurrentes tipo Hopfield
6. Laboratorios
41
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Redes recurrentes tipo Hopfield
La principal característica 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 más 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 EugenioNeural Network Toolbox
Representación gráfica del comportamiento
Supongamos que tenemos una red de 2 neuronas (el número de 
entradas que podemos tener será igual al número de neuronas), 
además tenemos 2 patrones a grabar [-1 1] y [1 -1]
43
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural Network Toolbox
Una representación quizá más desglosada de la arquitectura 
Hopfield sería la siguiente:
Xo X X1
n-1
n-1X
Xo´
X ´
ο
n-2
n-1
1
n-2
X´
1
µ
µ
µ
µ
45
Juan Carlos Moctezuma EugenioNeural 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 patrón de entrada cualquiera (completo o 
incompleto)
La red empieza a iterar hasta que la salida converge (es estable)
M = número de clases por aprender
Xsi = i-ésimo elemento de la s-ésima clase
Entrenamiento de una red Hopfield
24
46
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Declarando una red hopfield
La declaración y entrenamiento de la red se ejecuta con una sola
función que se llama ‘newhop’,en realidad lo que hace esta función 
es calcular los pesos colocando como condición inicial a la matriz T
10x5
nethop = newhop(T);
Y = sim(nethop,{Q TS},{}, {Ai}); Ai = set de entradas a probar
Q = Dimensión de Ai
TS = número de iteraciones
T = 
5 patrones a grabar,
con 10 entradas
47
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Sesión práctica
Redes tipo Hopfield
en MATLAB
25
48
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Patrones a grabar: A, I, E, 1, 2
Red Hopfield
Lab 3: Aplicación Hopfield
Se desea realizar una red que grabe M patrones de entrada (en 
este caso serán letras o números) de una matriz de 5x5. Después 
que se haya entrenado la red se presentarán entradas con ruido 
(letras mal hechas) de tal forma que la red converja al patrón más 
parecido (letra más parecida)
49
Juan Carlos Moctezuma EugenioNeural Network Toolbox
La red se realizará en una interfaz gráfica 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 tamaño 5x5 la cual contendrá solo 0’s y 1’s que 
segmento estará prendido y que segmento estará apagado
� Otro cuadro de texto para indicar el número de iteraciones
� Un botón que vaya grabando cada patrón introducido por el 
usuario para que al final se tenga la matriz T
� Un botón que sea para entrenar la red
� Otro botón que visualice los resultados de la red ya entrenada 
para así comparar resultados
26
50
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Gracias por su atención
Otros cursos:
- Análisis Numérico y Aplicaciones al Cálculo y Álgebra
- Graficación en 2D y 3D
- Desarrollo de Interfaces Gráficas de Usuario
- Procesamiento de Imágenes
- Adquisición de Datos
- Adquisición de Imágenes
- Diseño de Sistemas Digitales en FPGAs usando MATLAB
- Diseño de Sistemas Digitales en FPGAs usando VHDL
Para información acerca de los cursos
moctezumajc@yahoo.com

Continuar navegando

Otros materiales