Você está na página 1de 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 numero 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 quadratico 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
u meromaximodevalidac o es
maxf ail : n
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 codigo 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
neuronios, 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 numero 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 funcoes 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

Você também pode gostar