Vous êtes sur la page 1sur 31

Matlab - Neural Networw Toolbox

Ana Lvia Soares Silva de Almeida

27 de maio de 2014
Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

O que
e a Neural Networw Toolbox?

A Neural Network Toolbox fornece func


oes e aplicativos para a
modelagem de sistemas nao-lineares complexos que nao sao
facilmente modelados com uma equacao de forma fechada.
Suporta aprendizado supervisionado com feedforward, base radial e
redes dinamicas, alem de aprendizado nao supervisionado com
mapas auto-organizaveis e camadas competitivos.

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

O que
e a Neural Networw Toolbox?

Com ela e possvel projetar, treinar, visualizar e simular redes


neurais.
Pode ser usada para aplicac
oes tais como montagem de dados,
reconhecimento de padr
oes, clustering, a previsao de series
temporais e modelagem do sistema dinamico e controle.

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Objetivo deste curso

O objeto desse curso e fazer uma breve panorama da toolbox e


apresentar algumas formas de manipular algumas das ferramentas
disponveis. Serao apresentadas funcionalidades para redes do tipo
Perceptron Multicamadas (Multilayer Perceptron) e para a
rede de base radial (radial basis), iterfaces graficas disponveis e
algumas particularidades em relacao `as vers
oes mais recentes do
Matlab uma vez que a versao utilizada para este curso e do ano de
2008.

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Perceptron Multicamadas

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Passos para implementacao da rede:


coleta e preparacao dos dados
criacao da rede
configuracao da rede
inicializacao dos pesos e biases
treinamento da rede
validacao da rede

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Criac
ao a rede

O comando
nome da rede = network
cria uma rede e suas propriedades

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Definindo as propriedades de Arquitetura

As primeiras propriedades que aparecem da rede sao as chamadas


propriedades de arquitetura:
n
umero de entradas (Inputs)
n
umero de camdadas (Layers)
pesos entre de entradas e entre camadas
conexoes de sada e tragets (outputs e targets)

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

n
umero de inputs e camdas

Definimos a quantidade de camadas de entrada que a rede tera


Atenc
ao: nao estamos definindo ainda a quantidade de tipos de
entrada (x1, x2,...xn) que a rede tera (tamanho do vetor de
entradas)
nome da rede.numInputs = x
Definimos a quantidade de camadas que a rede tera
nome da rede.numLayers = y

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Bias
Definimos agora, as camadas que terao bias associado. Essa
atribuicao pode ser feita atraves do comando:
nome da rede.biasConnect(camada) = 1
ou na forma de matriz, atribuido 1 `as camadas que tiverem bias e
0 `as que nao tiverem.
Por exemplo:
net.biasConnect(1) = 1
net.biasConnect(1) = 3
ou
nome da rede.biasConnect = [1; 0; 1]

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Conex
oes entre entradas e camadas
Agora, vamos conectar as entradas `as camdadas da rede. De
maneira analoga aos biases, podemos especificar essas conexoes
atraves do comando
nome da rede.inputConnect(i,j) = 1
que representa uma conexao de pesos entre a entrada j e a camada
i
Essa atrabuicao tambem pode ser feita atraves de uma matriz n X
m, onde onde n e o n
umero de entradas e m e o n
umero de
camadas as camdadas.
Por exemplo:
net.inputConnect(1,1) = 1
net.inputConnect(2,1) = 1
net.inputConnect(2,2) = 1
ou
net.biasConnect = [1 0; 1 1; 0 0]
Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Conex
oes de outputs e targets

Definimos aqui as camadas que possuem sada (outputs) e a


camada que tera os targets. Isso pode ser feito atraves da matriz
1xn, onde sao as camadas da rede:
net.outputConnect = [0 1 1]
net.targetConnect = [0 0 1]

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Inputs

Agora, definiremos as caractersticas das entradas da rede. Para


cada input que criamos, deve ser passado um vetor definindo os
valores mnimo q maximo de cada tipo pode assumir. Passamos
entao, uma matriz 2xm onde m e o n
umero de entradas da rede.
nome da rede.inputs{entrada}.range = [x y; x y; ....;x y]
Por exemplo:
net.inputs{1}.range = [0 10; 0 10]
net.inputs{2}.range = [-2 2; -2 2; -2 2; -2 2; -2 2]

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Camadas

Quando definimos o n
umero de camadas da rede, para cada
camada algumas propriedades ja sao setadas por default. Se for
necessario, podemos alterar algumas delas, como por exemplo o
tamanho (quantidade de neur
onios), a funcao de transicao e a
funcao de inicilizacao com os comandos abaixo:
nome da rede.layers{camada}.size = x;
nome da rede.layers{camada}.transferFcn = hfuncaoi
nome da rede.layers{camada}.initFcn = hfuncaoi

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Camadas

As funcoes disponveis no Matlab para funcao de transicao sao:


tansig (tangente hiperb
olica)
logsig (sigmoide)
purelin (linear)
satlin ()
A funcao de inicilizacao mais comum e initnw

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Func
oes da rede: inicializac
ao

O comando
nome da rede.initFcn = initnw;
A funcao initnw inicializa pesos e desvios de uma camada de
acordo com o algoritmo de inicializacao Nguyen-Widrow. Este
algoritmo escolhe valores, a fim de distribuir a regiao ativa de cada
neuronio na camada de maneira uniforme ao longo do espaco de
entrada da camada.

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Func
oes da rede: performance e treinamento
Definimos a performance como erro quadr
atico m
edio (mse) e o
treinamento por retropropagac
ao (backpropagation)
nome da rede.performFcn = mse;
nome da rede.trainFcn = ...;
Algumas opcoes para funcao de treinamento:
trainlm :Levemberg-Marquardt (default)
traingd : gradiente descendente
traingdm : gradiente descendente com momentum
traingda : gradiente descendente adaptativo)
traingdx : gradiente descendente com taxa de aprendizagem
variavel
trainrp : reslient backpropagation

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Inicializac
ao da rede

Inicializamos a rede setando os valores devidos de acordo com as


propriedades. Os pesos iniciais tem valor zero.
nome da rede = init(nome da rede);

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Treinamento
necessario separar o conjunto de dados em dois grupos basicos:
E
uma parte das amostras sera usada para o treinamento e outra
para a validacao.
Da parte que sera usada como treinamento, temos os valores de
entrada (inputs) e os correspondentes resultados esperados
(targets).
Podemos armazenar os inputs na variavel P e os targets na variavel
T, por exemplo.
Dessa forma, podemos chamar a funcao de treinamento passando
a rede criada, P e T como parametros:
[nome da rede,tr] = train(nome da rede,P,T);
onde tr e uma matriz que contem todos as informacoes a cerca do
treinamento da rede
Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Param
etros de treinamento

possvel definir as condic


E
oes de parada do treinamento
(nome da rede.trainParam.condicao = z;) :
ming rad : magnitudemaximadogradiente
maxf ail : n
u meromaximodevalidac o es
time : tempo maximo de treinamento
goal: valor mnimo de performance
epochs : n
umero maximo de epocas

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

An
alise de desempenho p
os-treino

Pode-se plotar graficos para analisar o desempenho da rede. Os


graficos podem ser plotados por linhas no c
odigo ou atraves da
janela que surge quando a rede e treinada.

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Simulac
ao da rede (validac
ao)

Apos o treinamento, a parte restante dos dados de entrada que


ainda nao foi utilizada, e passada para a funcao de simulacao. A
sada da rede e entao gerada (outputs) e pode ser comparada com
os valores esperados para essas amostras.
Y = sim(nome da rede, Pt);
onde Pt e o conjunto de amostras restantes.

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Outras formas de criar e manipular RNAs em Matlab

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

nntool

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Nas vers
oes mais recentes...
A partir da versao (...) do Matlab, a classica funcao newff ficou
obsoleta e foi substituda. Para criacao de redes do tipo
Perceptron Multicamadas, uma alternativa e usar para criar a
rede a funcao
feedforwardnet
Para esta funcao, caso nao sejam passados parametros, sera
aplicado o default:
- uma rede com 1 camada escondida composta de 10
neur
onios, e uma camada de sada com apenas 1 neur
onio.
Alem disso, ja sao definidos o metodo de Levemberg-Marquardt
para treinamento e as func
oes de ativacao tansig e purelin para a
camada escondida e para a de sada respectivamente.

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Rede de Base Radial

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Redes de base radial podem ser usadas para aproximar funcoes.


A funcao
newrb
acrescenta neuronios para a camada escondida de uma rede de base
radial ate encontrar a meta de erro quadrado medio especificado.

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

nome da rede = newrb(P,T,goal,spread,MN,DF)

onde:
P e a matriz com os dados de entrada
T e a matriz com os targets
goal e o mse (default mse = 0)
spread disseminacao de func
oes de base radial
MN n
umero maximo de neur
onios (default quantidade de amostras
na entrada)
DF n
umero de neuronios para adicionar entre ... (default 25)
Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox

Nas vers
oes mais recentes...

possvel tambem alterar essa configuracao passando como


E
primeiro argumento para a funcao o n
umero de neuronios desejado
na camada escondida, e como segundo argumento, o tipo de
treinamento.
A vantagem de usar a feedforwardnet e que nao e necessario seguir
todos esses passos para configurar a rede, e as modificacoes
desejadas (como alterar as func
oes de ativacao, por exemplo)
podem ser feita apenas acrescentando os comandos apresentados
anteriormente para definir as propriedades ao c
odigo.

Ana Lvia Soares Silva de Almeida

Matlab - Neural Networw Toolbox