Está en la página 1de 26

Neural Network

Toolbox de MATLAB
Instructor:

Juan Carlos Moctezuma Eugenio


Ciencias Computacionales - INAOE

Septiembre 2006

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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
2

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Modelo desglosado de la neurona


La neurona esta constituida por: lazos sinpticos (X*W), mezclador
lineal (U) y una funcin de activacin (TF)

X1

Wk1

X2

Wk2

TF

Uk

Xp

Wkp

yk

Threshold

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

10

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Modelo de la neurona en MATLAB

11

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Funciones de Transferencia
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:

12

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

13

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Redes Multicapa en MATLAB

14

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Redes multicapa (notacin abreviada)

15

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Notacin
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
Superndices informacin de las capas
Subndices informacin de la entrada/neurona fuente y la neurona/salida
destino

16

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

17

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

El perceptrn
Este tipo de red es ampliamente usado en problemas simples de
clasificacin de patrones.

18

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Arquitectura del Perceptrn

net = newp (PR, S);


PR matriz de Rx2
a1
a2

b1
b2

aR

bR

[ai bi] = intervalo de la isima entrada

S nmeros de neuronas
19

10

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

Architecture
SubObject Structures
Neural
Network
Object

Functions

architecture:
numInputs
numLayers biasConnect
inputConnect
layerConnect outputConnect targetConnect
subobject structures:
inputs layers outputst
inputWeight layerWeights
functions:
adaptFcn

initFcn

targets

performFcn

biases

trainFcn

Parameters
Weight and Biases values
Other (User Stuff)

parameters:
adaptParam: .passes
trainParam: .epochs, .goal, .show, .time
weight and bias values:
IW
LW

Neural Network Toolbox

20

Juan Carlos Moctezuma Eugenio

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

21

11

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Taxonoma del proceso de aprendizaje


Learning Process

Learning algorithms (rules)


-Calculate net output
-Comparate with the target
-Get Error
-Change weights and biases

Learning paradigms
Enviroment

Teacher

+
Learning
System

22

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Reglas de aprendizaje en MATLAB

23

12

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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
Salida deseada para determinado
patrn de entrada

Patrn de entrada

P=

Nmero de
entradas

T=

Nmero de
salidas

24

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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:

25

13

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Sesin prctica

Aprendizaje del Perceptrn


y
Estructura de las Redes Neuronales
en MATLAB

26

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Lab 1: Aplicacin del Perceptrn


Se desea realizar un clasificador de 4 tipos diferentes de cajas
usando 6 sensores
mediano
chico
grande

mega

sensores

Red Neuronal

Motor
27

14

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Ancho

Alto

Largo

Tamao de
la caja

W1

W0

H1

H0

L1

L0

M1

M0

Chico

Chico

Mediano

Mediano

Grande

Mega

H1
H0
W1
W0
L1

Motor

L0

W1
W0
H1
H0
L1
L0

M1

M0

28

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

29

15

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Redes Backpropagation
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

30

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Arquitectura Backpropagation

Las funciones de transferencia deben de ser continuas. Adems


se buscan funciones cuya derivada dependa de la funcin sin
derivar.
31

16

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Algoritmos Backpropagation
g k gradiente
k learning rate

Algoritmo Estndar

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
Tcnicas
Heursticas
Algoritmo
Estndar

Tcnicas
Optimizacin
Numrica

-momentum
-lr variable
-gradiente conjugado
-Newton (Hessian matrix)
-Levenberg-M (Jacobian matrix)

Neural Network Toolbox

32

Juan Carlos Moctezuma Eugenio

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

33

17

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

34

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

35

18

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Resultados arrojados por postreg

36

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Sesin prctica

Redes Backpropagation
en MATLAB

37

19

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

t
t

Output layer
(purelin function)

Hidden layer
(tansig function)

38

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

39

20

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

40

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

41

21

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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]

42

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Arquitectura Hopfield

Este tipo de red puede grabar (como una memoria) uno o varios
patrones de entrada, los cuales son presentados como condiciones
iniciales
43

22

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Una representacin quiz ms desglosada de la arquitectura


Hopfield sera la siguiente:

X1

Xo

Xn-1

n-2
n-1

1
X1

Xo

X n-2

X n-1

44

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

Entrenamiento de una red Hopfield


Se calculan los pesos de la red Wij (salida de la j-sima neurona
a la entrada de la i-sima neurona)

M = nmero de clases por aprender


Xsi = i-simo elemento de la s-sima clase

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)

45

23

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

5 patrones a grabar,
con 10 entradas

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

Neural Network Toolbox

46

Juan Carlos Moctezuma Eugenio

Sesin prctica

Redes tipo Hopfield


en MATLAB

47

24

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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)

Patrones a grabar: A, I, E, 1, 2

Red Hopfield

48

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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

49

25

Neural Network Toolbox

Juan Carlos Moctezuma Eugenio

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
50

26

También podría gustarte