Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 03
Projeto de Redes Neurais
Vanderlei A. Silva
https://www.linkedin.com/in/vanderlei-silva
1. Introdução à teoria de Redes Neurais
2. Modelagem matemática
Aula Anterior...
3. Exemplo de aplicação com MATLAB
Aula Anterior...
Nesta Aula
Agenda
1. Timeline Redes Neurais
2. Etapas de Projeto
3. Considerações Finais
Nesta Aula – Vocabulário Técnico
Agenda
Timeline
McCulloch
1943 and Pitts
Primeiro
Primeiromodelo
modeloartificial
artificialpara
paraneurônio
neurônio
1954
1958
1960
1961
Primeiro
Primeirofiltro
filtrocom
comaprendizado
aprendizadoeecom
compesos
pesosótimos
ótimos
1943 para
paraminimizar
minimizarooMSE
MSE
1954 Gabor
1958
1960
1961
Perceptron:
Perceptron:introduziu
introduziuooaprendizado
aprendizadoao
aomodelo
modelode
de
1943 McCulloch
McCullocheePitts
Pitts
1954
1958 Rosenblatt
1960
Perceptron
1961
1958 – Rosenblatt’s Perceptron
Fonte: Haykin, 2009
• Composto de pesos e bias
• Função de Transferência
Limiar: saída binária {0,1}
• Algoritmo de aprendizado.
1958 – Rosenblatt’s Perceptron
• Circuito Elétrico
o Pesos = potenciômetros
Fonte: Bishop, 2006 o Entradas = fiação
1958 – Rosenblatt’s Perceptron
Utilizado na época para classificação de padrões
o Limitado a duas classes
o Que sejam linearmente separáveis (para convergência do algorítimo de
aprendizado) (lados opostos de um hiperplano)
1958 – Rosenblatt’s Perceptron
Matlab help: perceptron Mapeamento de Classes
em função das entradas ( x1, x2 )
classe 1
x2
classe 0
Logical OR
0
0 x1 1
1958 – Rosenblatt’s Perceptron
Mapeamento de Classes
em função das entradas ( x1, x2 )
Logical XOR
x = [0 0 1 1; 0 1 0 1]; 1
t = [0 1 1 0]; classe 0
net = perceptron;
net = train(net,x,t); x2 classe 1
view(net)
y = net(x); classe 0
0
0 1
x1
Adaline:
Adaline:uma
umarede
redesimples
simplestreinada
treinadapelo
pelo
1943 algoritmo
algoritmodo
dogradiente
gradientepara
paraminimizar
minimizarooMSE.
MSE.
1954
1958
Adaline
1961
Propôs
Propôsooesquema
esquemabackpropagation
backpropagationpara paratreinar
treinar
1943 redes
redesmulticamadas.
multicamadas.Falhou
Falhoupor
porusar
usarf f(())não
nãodiferenciável.
diferenciável.
1954
1958
1960
1961 Rosenblatt
1963 Marquardt Least-Squares
Least-SquaresAlgorithm
Algorithm(ainda
(aindanão
nãoaplicado
aplicadoaaRNA)
RNA)
1969
1986
1987
1994
Demonstraram
Demonstraramlimitações
limitaçõesde
deum
umsimples
simplesperceptron.
perceptron.
1963 (XOR 1N --> XOR rede)
(XOR 1N --> XOR rede)
Houve
Houve drásticaredução
drástica reduçãonas
naspesquisas
pesquisascom
comRNA.
RNA.
Minsky
1969 And Papert
1986
1987
1994
Regras
Regrasdedeaprendizado
aprendizadoaplicáveis
aplicáveisaagrandes
1963 redes
grandes
redesneurais
neuraisforam
forampopularizadas
popularizadas(backpropagation).
(backpropagation).
1969
McClelland
1986 and Rumelhart
1987
1994
Primeira
Primeiraconferência
conferênciainternacional
internacionalRNA
1963 com
RNA
com1800
1800participantes
participantes
1969
1986
1987 IEEE
1994
IEEE
IEEE Transactions
Transactions on
on Neural
Neural Networks,
Networks, Vol.
Vol. 5,
5, No.
No. 6,
6, November
November 1994
1994
1963
1969
1986
1987
Hagan and
1994 Menhaj
Etapas de Projeto
Etapas Gerais de Projeto
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura da
da Rede
Rede
Dados
Dados de
de dados
dados Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Coleta de Dados
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura da
da Rede
Rede
Dados
Dados de
de dados
dados Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Coleta de Dados
●
Os dados devem cobrir a faixa de entrada para a qual rede
será utilizada;
●
A rede não tem a habilidade de extrapolar com precisão a
faixa para a qual foi treinada;
●
Em geral, quanto maior a quantidade de dados, melhor a
capacidade de generalização da rede;
●
Por outro lado, quanto maior a quantidade de dados, maior o
tempo gasto com aprendizado.
●
Durante o projeto pode haver a necessidade de aumentar a
base de dados coletados.
Próxima Etapa...
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura da
da Rede
Rede
Dados
Dados de
de dados
dados Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Pré-processamento
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura da
da Rede
Rede
Dados
Dados de
de dados
dados Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Pré-processamento de Dados
Normalização: dados de entrada Normalização de alvos
●
Valores elevados de entrada podem saturar • Possibilita o uso de função de transferência
as funções de transferência da rede (logo no limitada na saída
início trein.)
• Um processo inverso da normalização dos
– O gradiente do erro pode ficar muito alvos deve ser aplicado durante o uso da rede.
pequeno
– Resultado → treinamento muito lento.
●
Matlab: mapminmax
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura da
da Rede
Rede
Dados
Dados de
de dados
dados Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Estrutura/Arquitetura de Rede
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Arquiteturas de Rede
• Arquitetura: maneira pela qual os neurônios estão estruturados
• Está intimamente relacionada ao algoritmo de aprendizado do treinamento.
• Estruturada em camadas:
i. Entrada: composta pelos dados de entrada (camada sem neurônio);
ii. Ocultas: camadas entre a entrada e a saída;
iii. Saída: última camada da rede;
• Tipos:
1. Redes feedforward de camada simples
Estáticas
2. Redes feedforward de múltiplas camadas Dinâmicas
3. Redes recorrentes
Arquiteturas – Redes Estáticas
Redes Feedforward de Camada Única
Fonte: Haykin, 2009
• A mais simples forma de rede
estruturada por camadas
• Possui duas camadas: entrada e saída
• Possui camada única de neurônios
✔ Nenhum cálculo é feito na camada
de entrada.
Arquiteturas – Redes Estáticas
Redes Feedforward de Múltiplas Camadas
Fonte: Haykin, 2009
• Possui uma ou mais camadas ocultas;
• A(s) camada(s) oculta(s) habilita a rede a extrair
estatísticas de ordem superior de sua entrada;
• Feedforward: as entradas de uma camada vêm
das saídas da camada anterior;
• Notação compacta: rede 10-4-2
• Número de Nós: 16
Arquiteturas – Redes Dinâmicas
●
Podem depender, além das amostras atuais de entrada:
– Das amostras passadas da entrada
– Da saída
– Dos estados da rede
●
Possuem memória, atraso
Arquiteturas – Redes Dinâmicas
Rede Feedforward
●
Exemplo:
– perceptron com atrasos na
entrada
●
Neste caso, se f é linear, então
– Filtro digital FIR
Arquiteturas – Redes Dinâmicas
Redes Recorrentes
Fonte: Haykin, 2009
• Possui ao menos um loop de
realimentação;
• Apresenta impacto relevante na
capacidade de aprendizado da rede;
Dimensionando a rede
●
O número de nós em uma rede (num. camadas e neurônios)
usualmente é definido por tentativa e erro (Mehrotra, 1997).
●
Isso porque esse número depende muito do tipo de aplicação.
●
Na prática, pode-se partir de uma rede mínima e aumentar
gradativamente o número de nós verificando o erro. Cuidar com
overtraining.
●
Por outro lado, a carga de processamento exigida à medida que
aumenta-se o número de nós pode ser um fator limitante.
●
Observa-se que redes com somente uma camada oculta
resolvem grande parte dos problemas práticos.
Próxima Etapa...
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Inicialização
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Inicialização dos Pesos e Bias
Uma boa escolha faz diferença. Qual a melhor escolha?
●
Pesos com valores elevados podem levar a saturação das FTs e
aprendizado lento.
●
Valores muito baixos também podem ser problemáticos no
aprendizado (backpropagation).
●
Valores típicos podem estar entre -0.5 e 0.5 (Mehrotra, 1997)
Inicialização dos Pesos e Bias
Três exemplos:
1. Aleatoriamente
– Não deve haver pesos com valores iguais;
– A magnitude dos pesos deve ser pequena;
– Diferenças significativas entre magnitudes de peso → rede
pode dar “maior importância” para os pesos de maior
magnitude
– As bias podem ser inicializadas com valor zero.
– distribuição uniforme
– média zero
– variância = 1/m
⇒ m = número de pesos de um neurônio.
Próxima Etapa...
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Treinamento, Validação e Teste
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Treinamento, Validação e Teste
2) Aprendizado
−Treinamento
−Validação
3) Teste
4) Divisão de dados
5) Overtraining
6) Modos de treinamento
Medidas de Similaridade (Erro)
●
Objetivo
●
Determinar o grau de similaridade entre o resultado
desejado (alvo) e o obtido (saída da rede).
●
Quantificar a proximidade entre dois pontos, o desejado e
o obtido, no espaço N-dimensional.
●
Índice de Desempenho
●
Treinamento: ajuste dos pesos da rede
●
Validação: parada do algoritmo de treinamento
●
Teste: mede a generalização da rede; comparação entre
redes diferentes.
Medidas de Similaridade (Erro)
●
Exemlo: data set com 2 amostras
●
data set = x1 x2 , d1 d2
●
Exemplo: reconhecimento de padrão
Medidas de Similaridade – Cross Entropy (CE)
dA = [ 1 0 0]
dB = [ 0 1 0]
dC = [ 0 0 1]
Vetores Alvos
d = [d1 d2 d3 ] y = [ y1 y2 y3 ]
Medidas de Similaridade – Cross Entropy (CE)
Alvo
dA = [ 1 0 0]
y=[ 1 0 0 ]
Saída
y = [ y1 y2 y3 ] y=[ 0.9 0.1 0.1 ]
y=[ 0.1 0.9 0.1 ]
Medidas de Similaridade – CE
- vetor gradiente
passo de adaptação
estimativa
Algoritmo do Gradiente Descendente
x1 x2
b1
w1 1
a1
g( ) b2
w2 2
w5 a1
b1 g( )
w3 1
^y
a2
w6
g( )
w4
Objetivo:
Retropropagação do Erro
x1 x2
b1
w1 1
a1
g( ) b2
w2 2
w5 a1
b1 g( )
w3 1
^y
a2
w6
g( )
w4
Retropropagação do Erro
x1 x2
b1
w1 1
a1
g( ) b2
w2 2
w5 a1
b1 g( )
w3 1
^y
a2
w6
g( )
w4
Retropropagação do Erro
Retropropagação do Erro
Retropropagação do Erro
Retropropagação do Erro
x1 x2
b1
w1 1
a1
g( ) b2
w2 2
w5 a1
b1 g( )
w3 1
^y
a 2 w6
g( )
w4
Treinamento e Validação – Algoritmo
Treinamento e Validação – Algoritmo
Treinamento e Validação – Algoritmo
Treinamento e Validação – Algoritmo
Treinamento, Validação e Teste – Algoritmo
Treinamento, Validação e Teste – Algoritmo
Treinamento
●
calcula-se o gradiente do erro e ajusta-se os pesos e bias.
●
minimizar o MSE (fitting) ou;
●
minimizar a entropia cruzada (pattern recognition).
Treinamento, Validação e Teste
Validação
●
Objetivo: medir o desempenho da rede, afim de interromper o
aprendizado, por meio do critério de otimização.
●
O erro de validação é monitorado durante o processo de
aprendizado.
●
Este erro normalmente decresce na fase inicial de treinamento.
●
Mas, quando ocorre overfit de dados o erro pode aumentar.
●
Neste caso, os pesos e bias da rede são salvos na época em que o
erro de validação atingiu seu valor mínimo.
Treinamento, Validação e Teste
Validação
●
Alguns critérios de parada (MSE ou entropia cruzada):
Teste
●
O erro de teste não é utilizado no (não tem efeito sobre o) aprendizado
●
Medida de performance independente da rede (durante e depois do
treinamento).
●
Mede a generalização da rede: capacidade da rede de apresentar uma boa
performance para amostras nunca vistas antes.
●
Pode ser utilizado para comparar diferentes modelagens/arquiteturas
Treinamento, Validação e Teste
Teste
●
Pode ser útil monitorar o erro
de teste durante o
aprendizado (a cada época)
✔ A evolução do erro de teste
deve acompanhar a do erro
de validação.
✔ Se o erro de teste atinge
um valor mínimo
significativamente antes do
erro de validação, pode
indicar divisão/alocação
inadequada de dados.
Divisão de Dados (Data Set)
●
O Data Set total (100%) deve ser dividido em três subconjuntos distintos:
●
Preferencialmente utilize uma alocação de dados aleatória em cada subconjunto.
Divisão de Dados (Data Set)
●
Particularidades Para Classificação de Padrão:
●
Camada oculta
– 10 nós;
– 10 (neurônios) x 10 (entradas) +
10 bias = 110 pesos; Válido para
●
Camada de saída Reconhecimento de Padrão
– 3 nós;
– 3 (neurônios) x 10 (saídas da camada oculta) + 3 bias = 33 pesos;
●
Total: 143 pesos e 23 nós
Divisão de Dados (Data Set)
●
MATLAB (valores default fitting): 70%, 15% e 15% (train, valid, test)
●
Função “dividerand” retorna índices aleatorios para cada
subconjunto
●
[trainIndex, valIndex, testIndex] = dividerand(Q, trainRatio, valRatio,
testRatio)
●
Exemplo de uso para Q = 250 amostras:
●
[trainIndex, valIndex, testIndex] = dividerand(250, 0.70, 0.15, 0.15)
Memorização e Generalização – Overtraining
●
Memorização
●
Generalização
●
A generalização da rede pode ser medida pelo erro de teste (uma boa rede
é medida pela sua capacidade de generalização não memorização).
●
Para detectar o overtraining o erro de validação deve ser avaliado
constantemente:
– Dimensionar a rede
adequadamente: uma rede
com excesso de nós possui
maior capacidade de
memorização dos dados de
entrada;
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Verificar Resultado do Projeto
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Redimensionar Projeto
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Verificar Resultado do Projeto
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Rede Pronta Para Utilização
Coleta
Coleta Pré-
Pré- Definir
Definir aa Utilizar
Utilizar aa
de
de processamento
processamento Estrutura
Estrutura Rede
Rede
Dados
Dados de
de dados
dados da
da Rede
Rede
Sim
Inicializar
Inicializar Treinar
Treinar aa Testar
Testar aa Resultado
aa Rede
Rede Rede
Rede Rede
Rede Satisfatório?
Não
Definir
Definir nova
nova
Estrutura
Estrutura da
da
Rede
Rede
Utilização da Rede
Pré-
Pré- Pós-
Pós-
Dados
Dados Rede
Rede Neural
Neural
processamento
processamento processamento
processamento Resultados
Resultados
Atuais
Atuais Processamento
Processamento
de
de dados
dados de
de dados
dados
Aula de Laboatório
●
Atividades com Matlab
Redes Neurais Artificiais
Referências
(Munakata, 2008) MUNAKATA, Toshinori. Fundamentals of the New Artificial Intelligence:
Nerual, Evolutionary, Fuzzy and More. 2nd ed. London: Springer, 2008. ISBN:
978-1-84628-838-8.
(Haykin, 2009) HAYKIN, Simon. Neural Netowrks and Learning Machines. 3rd ed. New
Jersey: Person, 2009. ISBN: 978-0-13-147139-9.
(MathWorks, 2010) BEALE, M. H.; HAGAN, M. T.; DEMUTH, H. B. Neural Network ToolboxTM 7:
User’s Guide. Natick: The MathWorks, Inc, 2010.
(Bishop, 2006) BISHOP, Christopher M. Pattern Recognition and Machine Learning. New
York: Springer, 2006. ISBN 0-387-31073-8.
Obrigado Pela Atenção!