1 Neural Network Toolbox de MATLAB
Instructor:
Juan Carlos Moctezuma EugenioCiencias Computacionales - INAOE
Septiembre 2006
1
Juan Carlos Moctezuma EugenioNeural 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
22
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural Network Toolbox
Las redes neuronales artificiales han surgido como un intento dedesarrollar 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.
34
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Modelo computacional
El elemento ms bsico del cerebro es la neurona, la cual por sisola no hace mucho pero juntamos millones de ellas entonces se vuelven poderosasEl modelo computacional de una neurona artificial es una imitacin del proceso de una neurona biolgica
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 sinpticos (X*W), mezclador lineal (U) y una funcin de activacin (TF)
46
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Funcin de TransferenciaEs 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 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 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
58
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. 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
610
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural Network Toolbox
Modelo de la neurona en MATLAB
712
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 MATLABUna 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
814
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Redes Multicapa en MATLAB
15
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Redes multicapa (notacin abreviada)
916
Juan Carlos Moctezuma EugenioNeural Network Toolbox
IW pesos de entradasLW 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
Superndices informacin de las capasSubndices informacin de la entrada/neurona fuente y la neurona/salida
destino
Notacin
17
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural Network Toolbox
El perceptrn
Este tipo de red es ampliamente usado en problemas simples de clasificacin de patrones.
19
Juan Carlos Moctezuma EugenioNeural Network Toolbox
net = newp (PR, S);
PR matriz de Rx2
a1 b1a2 b2
aR bR
[ai bi] = intervalo de la isima entradaS nmeros de neuronas
Arquitectura del Perceptrn
11
20
Juan Carlos Moctezuma EugenioNeural Network Toolbox
NeuralNetworkObject
Architecture
SubObject Structures
Functions
Parameters
Weight and Biases values
Other (User Stuff)
architecture:numInputs numLayers biasConnect inputConnectlayerConnect outputConnect targetConnect
subobject structures:inputs layers outputst targets biasesinputWeight layerWeights
functions:adaptFcn initFcn performFcn trainFcn
parameters:adaptParam: .passestrainParam: .epochs, .goal, .show, .time
weight and bias values:IW LW b
Objetos tipo red neuronalEn MATLAB cuando se crea una red neuronal en realidad lo que seesta creando es un objeto con diferentes campos o propiedades
21
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Proceso de AprendizajeAprendizaje.- 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 entorno2. La red neuronal experimenta cambios como resultado de ese
estmulo3. 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
LearningSystem
+
_
Taxonoma 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 =
Patrn de entrada
Nmero deentradas
Salida deseada para determinadopatrn de entrada
Nmero desalidas
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 EugenioNeural Network Toolbox
Regla de aprendizaje del PerceptrnEl 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 EugenioNeural Network Toolbox
Sesin prctica
Aprendizaje del Perceptrny
Estructura de las Redes Neuronalesen MATLAB
27
Juan Carlos Moctezuma EugenioNeural Network Toolbox
sensores
Motor
chicomediano
grandemega
Red Neuronal
Se desea realizar un clasificador de 4 tipos diferentes de cajasusando 6 sensores
Lab 1: Aplicacin del Perceptrn
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
Tamao de la caja
LargoAltoAncho
W1W0H1H0L1L0
M1
M0W0
W1
H0
H1
L0L1
29
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural 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 EugenioNeural 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 EugenioNeural 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 ratetrainlm - Levenberg-Marquardt basado en la matriz Hessiana pero
hecha con una aproximacin usando la matriz Jacobian
AlgoritmoEstndar
TcnicasHeursticas
TcnicasOptimizacinNumrica
-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 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 EugenioNeural 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 targetsHay 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 premnmxLos datos son normalizados en el rango [-1 1] y se deben de usar los datos normalizados para probar la redLa funcin postmnmx sirve para que los datos regresen a su estado originalSi 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 EugenioNeural 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 mejorregresin lineal que relaciona los targets con las salidas de la redr 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 EugenioNeural Network Toolbox
Resultados arrojados por postreg
37
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Sesin prctica
Redes Backpropagationen MATLAB
20
38
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural 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 EugenioNeural 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 EugenioNeural 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 sepresente una entrada a la red, entonces la salida converge a uno de estos vectores de equilibrio
22
42
Juan Carlos Moctezuma EugenioNeural 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 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 condicionesiniciales
23
44
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Una representacin quiz ms desglosada de la arquitectura Hopfield sera la siguiente:
Xo X X1
n-1
n-1X
Xo X
n-2n-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 patrn de entrada cualquiera (completo o incompleto)
La red empieza a iterar hasta que la salida converge (es estable)
M = nmero de clases por aprenderXsi = 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 declaracin y entrenamiento de la red se ejecuta con una solafuncin 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 probarQ = Dimensin de AiTS = nmero de iteraciones
T = 5 patrones a grabar,con 10 entradas
47
Juan Carlos Moctezuma EugenioNeural Network Toolbox
Sesin prctica
Redes tipo Hopfielden MATLAB
25
48
Juan Carlos Moctezuma EugenioNeural 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 EugenioNeural 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 EugenioNeural 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 [email protected]
Top Related