You are on page 1of 26

2

Universidad Nacional Experimental del Tchira


Departamento de Ingeniera Electrnica
Ncleo de Instrumentacin y Control
Ctedra: Redes Neuronales y Lgica Difusa

MatLab y Redes Neuronales

Mayo 2007

Para crear, usar, importar y exportar datos y redes


neuronales en Matlab se utiliza la interfaz grafica de
usuario

llamada

nntool.

Al

tipiar

nntool

en

el

Workspace del Matlab se abre una ventana Network/Data


Manager

la

cual

permite

realizar

las

funciones

antes

sealadas.
En la figura 1, se presenta el Network/Data Manager
(Entrenador de Datos y Redes).

Figura1. Network/Data Manager


(Entrenador de Datos y Redes).
A continuacin se describen cada una de las partes
que componen el entrenador de datos y redes.

Inputs: Almacena la (s) matriz (es) que utilizar la red


como

entradas

bien

sea

para

entrenamiento,

prueba

funcionamiento.
Targets: Almacena la (s) matriz (es) que utilizar la red
como

salidas

bien

sea

para

entrenamiento,

reentrenamiento.
Input Delay States: Estados de retardos de las entradas,
por defecto son cero.
Networks: Espacio para construir las redes.
Output:

Son

las

salidas

generada

por

la

red

al

ser

entrenada, evaluada o simulada.


Errors: Genera un vector de los errores ocurridos durante
el entrenamiento de la red.
Layer Delay States: Estados de retardos de las capas de
salidas, por defecto son cero.
La

seccin

Networks

and

Data

permite

acceder

algunas de las secciones anteriores, haciendo click en el


espacio en blanco de la seccin (Input, Targets, Input
Delay Status, Networks) y luego hacer clik en el botn
(nuevos datos) o

(nueva red), segn

sea el caso. Las secciones Ouput, Errors, Layer Delay


States, slo son visualizadas ya que son salidas de la
red.
El comando

visualiza a los datos o redes que

se seleccionen al hacer clic sobre ellas.


La seccion Networks and Data se utiliza nicamente
para cuando se crean datos y redes, adems de acceder a
las visualizaciones de las variables asociadas a la red.
Los

comandos

Import

Export,

permiten

importar

exportar datos y redes que hayan sido almacenadas (en el


caso de Import) o que se quieran almacenar (en el caso de
Export).

La seccin Networks only es de exclusivo uso para el


manejo global de la red. En este cuadro encontramos los
comandos para inicializar, simular, entrenar y adaptar la
red que se haya creado. Para el manejo de los conceptos
anteriores procedemos a presentar un ejemplo
Ejemplo:
Haciendo

clic

sobre

Input

en

la

parte

de

abajo

(espacio en blanco), presione ahora el comando


se abrir la siguiente ventana (figura 2):

Figura 2
En esta ventana name es el campo correspondiente al
nombre de la variable, y a la derecha se encuentra Data
Type, donde se elige el tipo de dato al cual pertenece la
variable: si son entradas (Input), objetivos (Targets),
estados de retardo de la entrada (Input Delay States) y
as con cada una de los otros tipos de datos que deseemos
crear.
En

el

campo

value

se

escribe

la

matriz

con

los

valores de la variable y luego se hace clic sobre el


botn

para crearla.

El

procedimiento

expuesto

anteriormente

se

debe

seguir en general para las variables que sean datos. Para


crear nuevas redes, una vez seleccionado el espacio en
blanco debajo del cuadro Networks, debe hacerse clic en
.

Entonces

aparecer

el

siguiente

cuadro

(figura 3):

Figura 3.
En donde:
Network Name: Es el nombre de la red.
Network Type: Es el tipo de red, por ejemplo: perceptrn,
backpropagation, mapas de kohonen, Adaline entre otros.
Inputs ranges: valores mximos y mnimos de las entradas,
es decir, el rango de la variable.
Training function: Funcin de entrenamiento.
Adaption learning function: Funcin de aprendizaje para
adaptacin.
Performance function: Funcin de desempeo de la red.
Number of layer: Numero de capas
Properties for layer n: Propiedades para la capa numero
(se especifica el nmero de la capa):

Numbers

of

neuron:

Numero

de

neurona

para

la

capa

seleccionada
Transfer

function:

Funcin

de

transferencia

para

las

neuronas de la capa seleccionada.


Supongamos

que

se

desea

entrenar

una

red

para

implementar la funcin lgica XOR para cuatro variables,


con una ligera modificacin para fines didcticos, la
salida de la funcin XOR tomar con dos variables, las
cuales tendrn el mismo valor.
Se construir una tabla donde estn organizados los
patrones de entrada y los patrones de salida.
Patrones de Entradas
B
C
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1

A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

Patrones de salidas
X
Y
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0

D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

Tabla 1
Se

comenzar

por

realizar

las

matrices

de

los

patrones de entradas y salidas, tomando en cuenta que en


Matlab las filas de esas matrices estn definidas por el
nmero
matriz

de

variables

de

que

entrada

correspondientes

las

existan.
tendr
cuatro

En

este

cuatro
(4)

ejemplo
(4)

variables

la

filas
y

sus

columnas quedarn definidas por la cantidad de patrones,


es decir, tendremos matrices con dimensiones NxP, donde N
representa

el

nmero

de

variables

el

nmero

de

patrones. En nuestro caso es una matriz (4x16). En Matlab


la matriz de entrada ser:
Matriz de entrada = [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1; 0 0
0 0 1 1 1 1 0 0 0 0 1 1 1 1; 0 0 1 1 0 0 1 1 0 0 1 1 0 0
1 1; 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1];
Matriz de entrada =
P11 P12 P13 P14 P15 P16

P1

P2

P3

P4

P5

P6

P7

P8

P9 P10

A 0

Patrones

Se plantea ahora la matriz de Objetivos o salidas


deseadas:
Matriz Objetivos = [0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0; 0 1
1 0 1 0 0 1 1 0 0 1 0 1 1 0]
Matriz Objetivos =
P1

P2

P3

P4

P5

P6 P7

X 0

Y 0

P10 P11 P12 P13 P14 P15 P16 Patrones

P8

P9

Finalmente se disear la estructura que tendr la


red. Para este ejemplo se utilizar una red multicapa con
las siguientes especificaciones:
2 capas ocultas o intermedias: la primera con 5 neuronas
y la segunda con 3 neuronas.
La funcin de transferencia de la primera y segunda
capa ser del tipo sigmoidal (en matlab corresponde a
logsig)
La

capa

de

salida:

tendr

tantas

neuronas

como

variables de salidas se tengan; para el ejemplo nuestro

son 2 neuronas. Su funcin de transferencia ser una del


tipo lineal (en matlab corresponde a purelin).
La arquitectura de la red ser la siguiente:
Red Multicapa

Fig. 4
Una

vez

proceder

diseada

la

introducirse

arquitectura
en

Matlab

al

de

la

igual

red,
que

se
los

patrones de entrada y las salidas deseadas.


El primer paso ser acceder al Network/Data manager
(Entrenador de datos y redes), haciendo clic sobre el
icono

de

Matlab

usted

entrar

al

panel

abrindose la siguiente ventana (Figura 5):

Figura 5

principal

10

En esta ventana debe hacer clic en View y seleccionar


Launch Pad, tal como se muestra en la siguiente figura:

Figura 6
Al hacer clic en Launch Pad , a travs de la barra
buscar

abrir

Neural

Network

Toolbox

(Caja

de

herramientas de Redes Neurales), tal y como se muestra


abajo en la

figura 7 :

Figura 7

11

Al hacer doble clic sobre NNTool, se desplegar la


ventana del entrenador de red:

Figura 8
Haciendo clic en el botn

, introducimos el

nombre MatrizEntrada con sus correspondientes valores tal


y como se muestra abajo en la figura 9:

Figura 9

12

Una vez introducidos los datos se selecciona el tipo


de dato, Inputs (entradas), luego se hace clic sobre la
opcin

y el Network/Data manager aparecer de

esta forma:

Figura 10
Si

desea

MatrizEntrada

observar

si

almacen

los

realmente
valores

la

variable

introducidos,

seleccinela con el ratn, y luego debe hacer clic sobre


la opcin

como se muestra abajo en la figura 11:

13

Figura 11
Desplegndose as la siguiente ventana:

Figura 12
De la misma manera se procede para introducir la
Matriz_Objetivo. Al finalizar, la vista es la siguiente:

14

Figura 13
A continuacin se proceder con la creacin de la
red.

Haciendo

clic

sobre

el

botn

se

desplegar la siguiente ventana:

Figura 14
en donde se realizar el vaciado de las especificaciones
de la red. El nombre de la red ser Red_XOR, los rangos
de

entrada

pueden

seleccionar en

ser

automticamente

al

Get from input (Obtener de la entrada) la

matriz_Entrada,

en

procederemos

colocar

tomados

Number
las

of

layers

se

colocar

especificaciones

para

cada

capa en Properties for: N de capa, en las siguientes

15

figuras

se

muestran

los

pasos

seguir

para

la

configuracin de la red:
Paso 1

Figura 15
producindose el siguiente cambio en Input ranges

Figura 16
Como se explic en prrafos anteriores, Input ranges
toma los valores mximos y mnimos de las variables de
entrada, en este caso debe existir 4 rangos ya que se
tienen cuatro variables de entrada (A,B,C,D). El comando
Get from input realiza una inspeccin sobre la matriz de
entrada por cada fila a fin de determinar los valores
mximos y mnimos de las variables de entrada.

16

Paso 2
Asignando las propiedades para cada capa

Figura 17

Figura 18

Haciendo clic en la opcin


volver al men principal:

la red ser creada y

17

Figura 19
de donde seleccionando la red neural Red_XOR y haciendo
clic en la opcin

se mostrar la red diseada.

Este despliegue se habilita para redes con pocas capas


ocultas,

Figura 20

18

en donde en la figura 20,

se pueden apreciar las tres

(3) capas creadas con el nmero de neuronas de cada capa


y su correspondiente funcin de transferencia, adems de
aparecer las matrices de pesos con su vector de umbrales
(LW{},b{}),

el

nmero

de

variables

de

entradas

sealadas por el bloque en negro:


IW{1,1}= Input Weight= Corresponde a la matriz de los
pesos

que

asocian

las

entradas

con

la

primera

capa

oculta. Contendr 20 elementos.


b{1}=bias= Corresponde al vector de umbrales de la capa
1, en el cual existirn tantos umbrales como neuronas
hayan en la capa 1, en nuestro caso el vector de umbrales
b{1} tendr 5 elementos.
LW{2,1}=Layer Weights= Corresponde a la matriz de pesos
que asocia las salidas de la capa 1 con las entradas a la
capa 2. Contendr 15 elementos.
b{2}=bias= Corresponde al vector de umbrales de la capa
2,

para

nuestro

caso

ste

vector

tendr

tres

(3)

elementos.
LW{3,2}= Corresponde a la matriz de pesos que asocia las
salidas de la capa 2 con las entradas de la capa 3 o de
salida. Contendr 6 elementos.
b{3}= Corresponde al vector umbrales de la capa 3, en
nuestro caso ste vector tendr 2 elementos.
Ms adelante se ver la forma de acceder a cada
matriz de pesos y los vectores umbrales.
Entrenamiento de la red
El proceso de entrenamiento consiste en lograr que la red
aprenda

mediante

la

escogencia

de

los

parmetros

de

entrenamiento que permitan un aprendizaje ptimo. Algunos


de

estos

parmetros

de

entrenamiento

son:

nmero

de

iteraciones, taza o rata de aprendizaje, valor mnimo del

19

gradiente,
mnimo
segn

nmero

aceptable;
el

mximo
los

mtodo

de

fallas

parmetros

algoritmo

permitido,

variarn

que

se

error

ligeramente

utilice

en

el

fase

de

entrenamiento de la red.
Siguiendo

con

el

ejemplo,

se

entrar

en

la

entrenamiento. En el entrenador de red existe en la parte


inferior el cuadro

Networks only, en ese cuadro aparecen

las funciones que podemos realizar con la red creada:


Initialize

(inicializar),

(entrenar),

Adapt

Simulate

(adaptar).

Antes

(simular),
de

Train

proseguir

su

aplicacin en Matlab, se explicar cada una de ellas.


Initialize: Inicializa rangos de entradas y los pesos
entre capas en forma manual o automticamente (en forma
aleatoria).
Simulate:

Se

genera

correspondiente

vector

una

matriz

de

salida,

de

error,

para

una

con

su

matriz

de

entrada suministrada.
Train: Se introducen las matrices que contienen el par de
patrones entrada-salida. Adems se introducen los valores
de los parmetros de entrenamientos.
Adapt:

Permite

el

reentrenamiento

de

la

red,

al

suministrar un nuevo par de patrones entrada-salida.


Otra forma de visualizar stas funciones es seleccionar
la red y hacer clic sobre la opcin

, lo que

permitir que se despliegue la siguiente ventana:

20

Fig. 21
En

la

parte

superior

de

la

ventana

(figura

21),

se

observan las funciones descritas anteriormente, con un


opcin adicional Weights, sta opcin es la que permite
visualizar las matrices de pesos y los vectores umbrales.
Para desplegar cada una de stas funciones se debe hacer
clic sobre la funcin a la que se quiere acceder.
A continuacin se explicar cada una de ellas:
Funcin Initialize

Fig. 22

21

Input Ranges: Permite editar los rangos de las variables


de entradas, y se introducen haciendo clic en Set Ranges.
Una forma adicional de obtener los rangos es hacer clic
en
Get from input y seleccionar la matriz que contenga los
patrones de entrada, siempre y cuando en dicha matriz se
encuentren los valores mximos y mnimos de las variables
de entrada.
Revert

Ranges:

Revierte

el

vector

que

contiene

los

rangos de las variables de entrada a un vector de rangos


anterior.
Revert

Weights:

Acta

de

la

misma

forma

que

Revert

Ranges, pero sobre las matrices de pesos y vectores de


umbrales.
Initialize

Weights:

Inicializa

de

forma

aleatoria

las

matrices de pesos y los vectores umbrales.


Funcin Simulate

Fig. 23
En la ventana de arriba tenemos

a Simulation Data (Datos

de la simulacin):
Inputs: Entradas a la red a ser simuladas.

22

Init. input Delay States: Estado de retardos iniciales a


la entrada. Esta opcin aparece desactivada ya que, no se
colocaron retardos para la matriz entrada.
Init. Layer Delay States: Estado de retardos iniciales
para

las

capas

desactivada

de

debido

la
a

red.
que

Esta
no

se

opcin

se

encuentra

introdujeron

en

el

entrenador retardos iniciales para las capas.


Supply
esta

Targets:

Suministrar

casilla se

objetivos.

calcular un

Si

vector de

se

habilita

error que

se

almacenar en Errors., y a la derecha Simulation Results


(Resultados de la simulacin):
Outputs: Salidas generadas por la red, se le asigna un
nombre a en la casilla adjunta, la cual contendr las
salidas de la red.
Final input Delay States: Estado de retardos finales a la
entrada. Esta opcin aparece desactivada ya que, no se
colocaron retardos iniciales para las entradas.
Final Layer Delay States: Estado de retardos finales para
las capas de la red. Esta opcin se encuentra desactivada
debido a que no se introdujeron en el entrenador retardos
iniciales para las capas.
Funcin

Train

23

Fig. 24
El submen Training Info contiene a la izquierda Training
Data (Datos de entrenamiento), en el cual se suministran
los patrones de entrada-objetivo (Inputs-Targets); y a la
derecha Training Results (Resultados del entrenamiento),
en este cuadro se

almacenan las salidas de la red,

adems de el error de la misma durante el entrenamiento.

Fig. 25
En

este

submen

(figura

25)

de

Training

Parameters

(Parmetros de entrenamiento) aparecen algunos parmetros


de

entrenamiento

para

la

red,

continuacin

se

especifican:
Epochs: Corresponde al nmero de iteraciones
Goal: El error mximo permitido
Max_fail:

Corresponde

al

numero

mximo

de

permitido
Min_grad: Corresponde al valor mnimo del gradiente

fallas

24

Mu:

Corresponde

al

valor

asociado

la

taza

de

aprendizaje final
Mu_inc: Corresponde al valor de incremento del mu durante
el entrenamiento
Mu_dec: Corresponde al valor de decremento del mu durante
el entrenamiento
Mu_max: Corresponde al valor mximo que puede alcanzar el
mu.
Show: Intervalo de visualizacin de los resultados
Time: Mximo tiempo de entrenamiento en segundos.

Fig. 26
En ste submen (figura 26) Optional Info , presenta un
cuadro para validacin de los datos y otro para prueba de
datos,

al

marcar

las

casillas

se

habilitan

la

funcin

estas

opciones.
Una

vez

que

se

haya

configurado

entrenamiento

de

la

entrenamiento

aparecer

red,
la

la

curva

red
de

para

comience
error

iteraciones, tal como se muestra en la figura 27:

el
su

versus

25

Fig. 27
Funcin adaptar

Fig. 28
Se proporcionan los nuevos patrones de entrada en Inputs
y los nuevos objetivos en Targets (Figura 28).

El cuadro

Adapt results presenta los resultados de la adaptacin.

26

En el submen Adaption Parameters se coloca el nmero de


pasos a realizar para la adaptacin.
Funcin Weights
En la ventana de abajo se muestra la opcin que permite
la visualizacin de los matrices y vectores umbrales que
son generados en la red. Como se explico anteriormente la
matriz de pesos IW corresponde a la matriz de pesos que
une los nodos de entrada con la primera capa oculta, y
las matrices del tipo LW corresponde a las matrices de
pesos

entre

identificada

capas;
con

la

los
letra

vectores
b{i},

que

corresponde

aparecen
a

los

vectores con los umbrales de activacin por capa.

Fig. 29
En esta pagina se termina la explicacin de cmo
usar la herramienta de redes neurales de Matlab, slo
para redes multicapas del tipo feedforward.

27

Para ayuda de las funciones de entrenamiento ver


archivo anexo en formato pdf contenido en la carpeta
redes neurales.