You are on page 1of 51

“ Neural Network

Toolbox de MATLAB”

Instructor:

Juan Carlos Moctezuma Eugenio


Ciencias Computacionales- INAOE
Septiembre 2006
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

1
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

2
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

4
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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)

X1 Wk1

X2 TF
Wk2
Uk
∑ yk

Wkp Threshold
Xp

5
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

6
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 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

7
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

8
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

9
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 biológicas.
Comúnmente se entrenan por aprendizaje supervisado, aunque
también soporta el aprendizaje no supervisado y el diseño 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 más poderosa

13
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Redes Multicapa en MATLAB

14
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Redes multicapa (notación abreviada)

15
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Notación

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

16
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

17
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

El perceptrón

Este tipo de red es ampliamente usado en problemas simples de


clasificación de patrones.

18
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Arquitectura del Perceptrón

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
19
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
Architecture
subobject structures:
SubObject Structures inputs layers outputst targets biases
Neural inputWeight layerWeights
Network Functions
functions:
Object adaptFcn initFcn performFcn trainFcn
Parameters
parameters:
Weight and Biases values adaptParam: .passes
trainParam: .epochs, .goal, .show, .time

Other (User Stuff)


weight and bias values:
IW LW b
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
estímulo
3. La red neuronal responde de una nueva forma al entorno, como
resultado de los cambios ocurridos en su estructura interna

21
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Taxonomía del proceso de aprendizaje

Learning Process

Learning algorithms (rules) Learning paradigms

-Calculate net’ output Enviroment Teacher


-Comparate with the target
-Get Error
+
-Change weights and biases Learning
_ ∑
System

22
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Reglas de aprendizaje en MATLAB

23
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 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

Salida deseada para determinado


Patrón de entrada patrón de entrada

P= Número de T= Número de
entradas salidas

24
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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:

25
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Sesión práctica

Aprendizaje del Perceptrón


y
Estructura de las Redes Neuronales
en MATLAB

26
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Lab 1: Aplicación del Perceptrón

Se desea realizar un clasificador de 4 tipos diferentes de cajas


usando 6 sensores

mediano mega
chico grande

sensores

Red Neuronal Motor

27
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Ancho Alto Largo Motor Tamaño de


la caja
W1 W0 H1 H0 L1 L0 M1 M0

0 1 0 1 0 1 0 0 Chico

1 0 0 1 0 1 0 0 Chico

0 1 0 1 1 1 0 1 Mediano

1 0 0 1 1 1 0 1 Mediano

1 1 0 1 1 1 1 0 Grande

1 1 1 1 1 1 1 1 Mega

W1
H1 W0 M1
H1
H0
H0
W1
L1 M0
W0
L0
L1 L0

28
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

29
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 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

30
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Arquitectura Backpropagation

Las funciones de transferencia deben de ser continuas. Además


se buscan funciones cuya derivada dependa de la función sin
derivar.
31
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Algoritmos Backpropagation

g k – gradiente
Algoritmo Estándar
α 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

Técnicas -momentum
Heurísticas -lr variable
Algoritmo
Estándar Técnicas -gradiente conjugado
Optimización -Newton (Hessian matrix)
Numérica -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 – número de neuronas de la capa
 transfer – función de transferencia expresada como cell array
 train – método de entrenamiento de la red

33
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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’

34
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

35
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Resultados arrojados por ‘postreg’

36
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Sesión práctica

Redes Backpropagation
en MATLAB

37
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

p t
Output layer
(purelin function)
p
Hidden layer
(tansig function)

38
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

39
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

40
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

41
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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]

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
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Una representación quizá más desglosada de la arquitectura


Hopfield sería la siguiente:

X1 ´ X´n-1
Xo´

µ n-2
µ n-1
µο
µ1

Xo X1 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 = número de clases por aprender


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

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)

45
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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

5 patrones a grabar,
T= con 10 entradas

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
46
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

Sesión práctica

Redes tipo Hopfield


en MATLAB

47
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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)

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

49
Neural Network Toolbox Juan Carlos Moctezuma Eugenio

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
50