Buscar

Minicurso de Redes Neurais no MATLAB (Aplicações Climatológicas)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Matlab - Neural Networw Toolbox
Ana L´ıvia Soares Silva de Almeida
27 de maio de 2014
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
O que e´ a Neural Networw Toolbox?
A Neural Network Toolbox fornece func¸o˜es e aplicativos para a
modelagem de sistemas na˜o-lineares complexos que na˜o sa˜o
facilmente modelados com uma equac¸a˜o de forma fechada.
Suporta aprendizado supervisionado com feedforward, base radial e
redes dinaˆmicas, ale´m de aprendizado na˜o supervisionado com
mapas auto-organiza´veis e camadas competitivos.
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
O que e´ a Neural Networw Toolbox?
Com ela e´ poss´ıvel projetar, treinar, visualizar e simular redes
neurais.
Pode ser usada para aplicac¸o˜es tais como montagem de dados,
reconhecimento de padro˜es, clustering, a previsa˜o de se´ries
temporais e modelagem do sistema dinaˆmico e controle.
Ana L´ıvia 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
dispon´ıveis. Sera˜o apresentadas funcionalidades para redes do tipo
Perceptron Multicamadas (Multilayer Perceptron) e para a
rede de base radial (radial basis), iterfaces gra´ficas dispon´ıveis e
algumas particularidades em relac¸a˜o a`s verso˜es mais recentes do
Matlab uma vez que a versa˜o utilizada para este curso e´ do ano de
2008.
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Perceptron Multicamadas
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Passos para implementac¸a˜o da rede:
⇒ coleta e preparac¸a˜o dos dados
⇒ criac¸a˜o da rede
⇒ configurac¸a˜o da rede
⇒ inicializac¸a˜o dos pesos e biases
⇒ treinamento da rede
⇒ validac¸a˜o da rede
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Criac¸a˜o a rede
O comando
nome da rede = network
cria uma rede e suas propriedades
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Definindo as propriedades de Arquitetura
As primeiras propriedades que aparecem da rede sa˜o as chamadas
propriedades de arquitetura:
nu´mero de entradas (Inputs)
nu´mero de camdadas (Layers)
pesos entre de entradas e entre camadas
conexo˜es de sa´ıda e tragets (outputs e targets)
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
nu´mero de inputs e camdas
Definimos a quantidade de camadas de entrada que a rede tera´
Atenc¸a˜o: na˜o 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 L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Bias
Definimos agora, as camadas que tera˜o bias associado. Essa
atribuic¸a˜o pode ser feita atrave´s do comando:
nome da rede.biasConnect(camada) = 1
ou na forma de matriz, atribuido 1 a`s camadas que tiverem bias e
0 a`s que na˜o tiverem.
Por exemplo:
net.biasConnect(1) = 1
net.biasConnect(1) = 3
ou
nome da rede.biasConnect = [1; 0; 1]
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Conexo˜es entre entradas e camadas
Agora, vamos conectar as entradas a`s camdadas da rede. De
maneira ana´loga aos biases, podemos especificar essas conexo˜es
atrave´s do comando
nome da rede.inputConnect(i,j) = 1
que representa uma conexa˜o de pesos entre a entrada j e a camada
i
Essa atrabuic¸a˜o tambe´m pode ser feita atrave´s de uma matriz n X
m, onde onde n e´ o nu´mero de entradas e m e´ o nu´mero 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 L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Conexo˜es de outputs e targets
Definimos aqui as camadas que possuem sa´ıda (outputs) e a
camada que tera´ os targets. Isso pode ser feito atrave´s da matriz
1xn, onde sa˜o as camadas da rede:
net.outputConnect = [0 1 1]
net.targetConnect = [0 0 1]
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Inputs
Agora, definiremos as caracter´ısticas das entradas da rede. Para
cada input que criamos, deve ser passado um vetor definindo os
valores m´ınimo q ma´ximo de cada tipo pode assumir. Passamos
enta˜o, uma matriz 2xm onde m e´ o nu´mero 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 L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Camadas
Quando definimos o nu´mero de camadas da rede, para cada
camada algumas propriedades ja´ sa˜o setadas por default. Se for
necessa´rio, podemos alterar algumas delas, como por exemplo o
tamanho (quantidade de neuroˆnios), a func¸a˜o de transic¸a˜o e a
func¸a˜o de inicilizac¸a˜o com os comandos abaixo:
nome da rede.layers{camada}.size = x;
nome da rede.layers{camada}.transferFcn = 〈’func¸a˜o’〉
nome da rede.layers{camada}.initFcn = 〈’func¸a˜o’〉
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Camadas
As func¸o˜es dispon´ıveis no Matlab para func¸a˜o de transic¸a˜o sa˜o:
•tansig (tangente hiperbo´lica)
•logsig (sigmo´ide)
•purelin (linear)
•satlin ()
A func¸a˜o de inicilizac¸a˜o mais comum e´ ’initnw’
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Func¸o˜es da rede: inicializac¸a˜o
O comando
nome da rede.initFcn = ’initnw’;
A func¸a˜o initnw inicializa pesos e desvios de uma camada de
acordo com o algoritmo de inicializac¸a˜o Nguyen-Widrow. Este
algoritmo escolhe valores, a fim de distribuir a regia˜o ativa de cada
neuroˆnio na camada de maneira uniforme ao longo do espac¸o de
entrada da camada.
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Func¸o˜es da rede: performance e treinamento
Definimos a performance como erro quadra´tico me´dio (mse) e o
treinamento por retropropagac¸a˜o (backpropagation)
nome da rede.performFcn = ’mse’;
nome da rede.trainFcn = ’...’;
Algumas opc¸o˜es para func¸a˜o 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
varia´vel
•trainrp : reslient backpropagation
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Inicializac¸a˜o 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 L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Treinamento
E´ necessa´rio separar o conjunto de dados em dois grupos ba´sicos:
uma parte das amostras sera´ usada para o treinamento e outra
para a validac¸a˜o.
Da parte que sera´ usada como treinamento, temos os valores de
entrada (inputs) e os correspondentes resultados esperados
(targets).
Podemos armazenar os inputs na varia´vel P e os targets na varia´vel
T, por exemplo.
Dessa forma, podemos chamar a func¸a˜o de treinamento passando
a rede criada, P e T como paraˆmetros:
[nome da rede,tr] = train(nome da rede,P,T);
onde tr e´ uma matriz que conte´m todos as informac¸o˜es a cerca do
treinamento da rede
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Parameˆtros de treinamento
E´ poss´ıvel definir as condic¸o˜es de parada do treinamento
(nome da rede.trainParam.¡condic¸a˜o¿= z;) :
•ming rad : magnitudema´ximadogradiente
•maxf ail : nu´meroma´ximodevalidac¸o˜es
•time : tempo ma´ximo de treinamento
•goal: valor m´ınimo de performance
•epochs : nu´mero ma´ximo de e´pocas
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Ana´lise de desempenho po´s-treino
Pode-se plotar gra´ficos para analisar o desempenho da rede. Os
gra´ficos podem ser plotados por linhas no co´digo ou atrave´s da
janela que surge quando a rede e´ treinada.
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Simulac¸a˜o da rede (validac¸a˜o)
Apo´s o treinamento, a parte restante dos dados de entrada que
ainda na˜o foi utilizada, e´ passada para a func¸a˜o de simulac¸a˜o. A
sa´ıda da rede e´ enta˜o 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 L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Outras formas de criar e manipular RNAs em Matlab
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
nntool
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Nas verso˜es mais recentes...
A partir da versa˜o (...) do Matlab, a cla´ssica func¸a˜o newff ficou
obsoleta e foi substitu´ıda. Para criac¸a˜o de redes do tipo
Perceptron Multicamadas, uma alternativa e´ usar para criar a
rede a func¸a˜o
feedforwardnet
Para esta func¸a˜o, caso na˜o sejam passados paraˆmetros, sera´
aplicado o default:
- uma rede com 1 camada escondida composta de 10
neuroˆnios, e uma camada de sa´ıda com apenas 1 neuroˆnio.
Ale´m disso, ja´ sa˜o definidos o me´todo de Levemberg-Marquardt
para treinamento e as func¸o˜es de ativac¸a˜o tansig e purelin para a
camada escondida e para a de sa´ıda respectivamente.
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Rede de Base Radial
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Redes de base radial podem ser usadas para aproximar func¸o˜es.
A func¸a˜o
newrb
acrescenta neuroˆnios para a camada escondida de uma rede de base
radial ate´ encontrar a meta de erro quadrado me´dio especificado.
Ana L´ıvia 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 disseminac¸a˜o de func¸o˜es de base radial
MN nu´mero ma´ximo de neuroˆnios (default quantidade de amostras
na entrada)
DF nu´mero de neuroˆnios para adicionar entre ... (default 25)
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox
Nas verso˜es mais recentes...
E´ poss´ıvel tambe´m alterar essa configurac¸a˜o passando como
primeiro argumento para a func¸a˜o o nu´mero de neuroˆnios desejado
na camada escondida, e como segundo argumento, o tipo de
treinamento.
A vantagem de usar a feedforwardnet e´ que na˜o e´ necessa´rio seguir
todos esses passos para configurar a rede, e as modificac¸o˜es
desejadas (como alterar as func¸o˜es de ativac¸a˜o, por exemplo)
podem ser feita apenas acrescentando os comandos apresentados
anteriormente para definir as propriedades ao co´digo.
Ana L´ıvia Soares Silva de Almeida Matlab - Neural Networw Toolbox

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes