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 X2

Wk1

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: numInputs numLayers biasConnect inputConnect layerConnect outputConnect targetConnect subobject structures: inputs layers outputst inputWeight layerWeights
functions: adaptFcn

Architecture SubObject Structures Neural Network Object Functions Parameters Weight and Biases values Other (User Stuff)

targets

biases

initFcn

performFcn

trainFcn

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

20

Neural Network Toolbox

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 W1 0 1 0 1 1 1 W0 1 0 1 0 1 1 H1 0 0 0 0 0 1

Alto H0 1 1 1 1 1 1

Largo L1 0 0 1 1 1 1 L0 1 1 1 1 1 1

Motor M1 0 0 0 0 1 1 M0 0 0 1 1 0 1

Tamao de la caja Chico Chico Mediano Mediano Grande Mega

H1 H0 W1 W0 L1 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 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
Tcnicas Heursticas Algoritmo Estndar Tcnicas Optimizacin Numrica -momentum -lr variable -gradiente conjugado -Newton (Hessian matrix) -Levenberg-M (Jacobian matrix)
32

Neural Network Toolbox

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 p 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:

Xo

X1

Xn-1

n-2 1 Xo X1 X n-2 X n-1 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

T=
10x5 nethop = newhop(T); Y = sim(nethop,{Q TS},{}, {Ai});

5 patrones a grabar, con 10 entradas

Ai = set de entradas a probar Q = Dimensin de Ai TS = nmero de iteraciones

46

Neural Network Toolbox

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