Download Slides2porHoja - Facultad de Ciencias de la Computación

Document related concepts

Neuroph wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Red neuronal artificial wikipedia , lookup

Software de redes neuronales wikipedia , lookup

Función de activación wikipedia , lookup

Transcript
“ 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
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
2
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
Wk2
TF
Uk
∑
Xp
Wkp
yk
Threshold
5
3
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
4
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
5
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
6
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
7
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
8
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
9
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
a2
b1
b2
aR
bR
[ai bi] = intervalo de la i–ésima entrada
S – números 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
b
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
estímulo
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
Taxonomía 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 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
entradas
T=
Número de
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
13
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
chico
grande
mega
sensores
Red Neuronal
Motor
27
14
Neural Network Toolbox
Juan Carlos Moctezuma Eugenio
Ancho
Alto
Largo
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
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. 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
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 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
16
Neural Network Toolbox
Juan Carlos Moctezuma Eugenio
Algoritmos Backpropagation
g k – gradiente
α k – learning rate
Algoritmo Estándar
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
Heurísticas
Algoritmo
Estándar
Técnicas
Optimización
Numérica
-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 – 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
17
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
18
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
19
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
t
t
p
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
20
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
21
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
22
Neural Network Toolbox
Juan Carlos Moctezuma Eugenio
Una representación quizá más desglosada de la arquitectura
Hopfield sería la siguiente:
X1 ´
Xo´
X´n-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 = 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
23
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,
con 10 entradas
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
Neural Network Toolbox
46
Juan Carlos Moctezuma Eugenio
Sesión práctica
Redes tipo Hopfield
en MATLAB
47
24
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
25
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
[email protected]
50
26