Prévia do material em texto
M. R. Stemmer - DAS / CTC / UFSC
Redes Neurais Artificiais para
Controle & Automação
Prof. Marcelo Ricardo Stemmer
marcelo@das.ufsc.br
M. R. Stemmer - DAS / CTC / UFSC
Sumário
• Introdução e Breve Histórico das RNAs
• Algumas Aplicações
• O Neurônio Biológico e o Neurônio Artificial
• Redes Neurais Multicamadas
• O Treinamento da RNA
• Redes Neurais em Identificação e Controle de
Processos
• Redes Neurais em Robótica
• Redes Neurais em Visão Computacional
• Comentários Finais
M. R. Stemmer - DAS / CTC / UFSC
Introdução
• Década de 50: duas abordagens concorrentes em IA -
Conexionista (neural, paralela) x Simbolista
(clássica, seqüencial).
• Objetivo da linha Conexionista: investigar
possibilidade de simular comportamentos inteligentes
através de modelos da estrutura e funcionamento do
cérebro humano.
• Linhas nasceram praticamente juntas: encontro no
Darthmouth College de 1956 já abordou RNA.
• Técnicas simbolistas tiveram preferência no início da
IA (computadores disponíveis inadequados para
abordagem conexionista).
M. R. Stemmer - DAS / CTC / UFSC
Introdução
• Retomada de interesse pela abordagem
Conexionista na década de 1980, devido a:
– melhores conhecimentos da estrutura real do
cérebro e dos neurônios (neurologia);
– melhores algoritmos de treinamento
(backpropagation introduzido em 1985);
– disponibilidade de hardware computacional
mais adequado (inclusive paralelo).
M. R. Stemmer - DAS / CTC / UFSC
Breve Histórico das RNAs
• 1943: Warren McCullog (neuro-anatomista) e Walter Pitts
(matemático) propõem modelo binário para o neurônio. Não
havia treinamento.
• 1949: Donald Hebb propõe principio de aprendizado em
sistemas nervosos, no qual a conexão entre 2 neurônios é
reforçada sempre que ambos estão ativos ao mesmo tempo.
• 1958: Frank Rosenblatt propõe uma rede de neurônios com
valores contínuos e treinamento baseado em Hebb, denominada
Perceptron.
• 1960: Widrow e Hoff propõem as rede ADALINE (Adaptive
Linear Element) e MADALINE (Multiple ADALINE) e uma
nova regra de aprendizado chamada Regra Delta (Método
Gradiente).
• 1969: Minsky e Pappert (MIT) publicam o livro
“Perceptrons”, com dura critica as RNA e expondo as
limitações dos Perceptrons (como a impossibilidade de
aprender a função XOR ou treinar redes multicamadas).
Interesse pelas RNA diminui muito.
M. R. Stemmer - DAS / CTC / UFSC
Breve Histórico das RNAs
• Década de 70: Kohonen constrói memória
associativa. Grossberg cria ART (Adaptive
Resonance Theory).
• 1982: Hopfield introduz redes recorrentes.
• 1985: Hinton introduz máquina de Boltzmann.
• 1985: Rummelhart, Hinton e Williams criam
algoritmo Error Backpropagation (Regra Delta
Generalizada) e modelo de neurônio com função de
ativação não linear.
• 1986: Rummelhart e McClelland publicam o livro
“Parallel Distributed Processing”. Inicio de nova
era de pesquisas em RNA.
M. R. Stemmer - DAS / CTC / UFSC
Algumas Aplicações
• Eng. Civil:
– Avaliação da Condição de Pavimentos;
– Gerenciamento da Construção;
– Previsão da Resistência Mecânica do Concreto;
• Eng. Elétrica:
– Processamento de sinais;
– Previsão de carga elétrica;
– Diagnóstico de falhas;
• Financeira:
– Previsão da bolsa de valores;
– Previsão de falência de bancos;
• Controle de Processos:
– Modelagem / Identificação;
– Controle Adaptativo e Não-Linear;
– Otimização de Parâmetros;
• Robótica:
– Inteligência do Robô (tomada decisão);
– Planejamento da Trajetória;
– Controle Força / seguimento trajetória.
• Meteorologia:
– Previsão do Tempo;
• Biomédica:
– Análise de Batimentos Cardíacos;
– Diagnóstico Médico da Tuberculose;
– Detecção de Eventos Epiléticos;
• Linguagem Natural:
– Analisador Sintático;
– Compreensão de Texto;
– Corretor Gramatical;
• Processamento de Voz e Fala:
– Reconhecimento de Fala;
– Reconhecimento do Locutor (voz);
• Agricultura:
– Previsão de Produtividade da Lavoura;
• Eng. de Produção:
– Otimização de Processos de Fabricação;
– Monitoramento de Processos;
• Visão Computacional
• …
M. R. Stemmer - DAS / CTC / UFSC
Por que usar RNA?
• RNA interessante nestas e outras aplicações porque:
– é capaz de aprender através de exemplos;
– é capaz de generalizar (reconhecer instâncias
similares aos exemplos, mas nunca apresentadas);
– apresenta elevada imunidade ao ruído
(desempenho não colapsa na presença de
informações falsas ou ausentes);
– tem bom desempenho em problemas “mal
definidos” (onde não existe conhecimento de
modelos matemáticos para os sistemas).
M. R. Stemmer - DAS / CTC / UFSC
O Neurônio Biológico
Dendrites = entradas
Axônio = saída Sinapse =
interface I/O
M. R. Stemmer - DAS / CTC / UFSC
O Neurônio Biológico
• Sinapse transfere impulso eletroquímico para dendrito de outro neurônio através de
uma sinapse se somatório dos sinais de entrada ultrapassa determinado limiar.
M. R. Stemmer - DAS / CTC / UFSC
A Rede Neural Humana
• Cérebro:
– contém aprox. 1011 neurônios;
– 1015 interconexões;
– vias de transmissão com 1 ou
mais metros;
– Peso: ~1,5 Kg (2% peso corpo);
– Consome 20 a 30% da energia do
organismo;
– Córtex:
» Rato (5 cm3), Chimpanzé
(500 cm3);
» Homem (2000 cm3);.
M. R. Stemmer - DAS / CTC / UFSC
O Neurônio Artificial
• Neurônio Artificial pretende imitar características de primeira
ordem do neurônio biológico:
F = Função de Ativação não linear e limitada;
Sinapse pode ser excitadora (w > 0 ) ou inibidora (w < 0)
Se o peso é zero, não há conexão.
∑
∈
−=
)(ipredj
jijij wxnet θ
M. R. Stemmer - DAS / CTC / UFSC
O Neurônio Artificial
• Exemplo de Função de Ativação:
F(net) = 1/(1+e-net)
• Sigmóide muito usada pois é derivável e monótona.
Degrau Sigmóide Tangente hiperbólica
Função da base radial
(RBF)
M. R. Stemmer - DAS / CTC / UFSC
Redes Neurais Multicamadas
• Um único neurônio pode realizar funções de
detecção de padrões muito simples.
• O poder de computação neural vem da conexão
dos neurônios dentro de uma rede.
• Topologias de rede:
– redes Recorrentes (não há direção privilegiada para
propagação da informação);
– redes “Feedforward” (sinal vai sempre das entradas
para as saídas).
M. R. Stemmer - DAS / CTC / UFSC
Redes Neurais Multicamadas
• A rede mais simples é formada por um grupo de neurônios
arranjados em uma camada (ex.: perceptron).
M. R. Stemmer - DAS / CTC / UFSC
Redes Neurais Multicamadas
• Redes multicamadas feedforward podem ser
formadas colocando em cascata redes de 1 camada;
a saída de uma camada providência a entrada para a
camada subseqüente.
M. R. Stemmer - DAS / CTC / UFSC
Classificação de RNAs
Redes Neurais Artificiais
Feed-forward Recorrentes
Unsupervised
(self-organizing)
Linear Não linear
Hopfield Model
Bolzmann
machine - fb
Kohonen self
organizing
feature maps
(SOM) - lat.
Adaptive
Resonance Theory
(ART) - lat.+delay
supervised Unsupervised
(self-organizing)
Adaline
Madaline
Backprop
quickprop
rprop
reinforcement
Hebb
Oja
Sanger
competitive
Associative
Bi-directional
Memory
(BAM) - fb
MLP
RBF
“híbrido”
counterprop
Supervised
Hebbian competitive
Simulated
annealing
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
• “Treinar” rede neural: ajustar pesos das
várias camadas de forma que a saída
coincida com valor desejado para uma
dada entrada.
• O treinamento pode ser:
– supervisionado (com um “professor”);
– não supervisionado (“auto-organizado”).
M. R. Stemmer - DAS / CTC / UFSC
TreinamentoSupervisionado
• O treinamento supervisionado exige um vetor de entrada com um
vetor alvo representando a saída desejada. Juntos, são chamados par
de treinamento.
I D
I D
I D
I Rede
Neural
O
D SupervisorI D
1
2
3
4
Conjunto de Exemplos
M. R. Stemmer - DAS / CTC / UFSC
Treinamento Não Supervisionado
• No treinamento não supervisionado, o conjunto de treinamento consiste
somente de vetores de entrada. O algoritmo de treinamento modifica os
pesos da rede para produzir um vetor de saída “consistente” com a entrada.
• A aplicação de um vetor de treinamento ou um vetor que é suficientemente
similar a ele na entrada irá produzir o mesmo padrão de saída (Auto-
associação). Isto permite reconstituir entradas deturpadas (útil em
processamento de sinais, filtragem, etc.).
I
I
I
I Rede
Neural
O
Auto-ajuste
I
1
2
3
4
Conjunto de Exemplos
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
• Seja um neurônio dado por:
• e estabelecendo como convenção:
– Valor +1 = ativo
– Valor -1 = inativo
. . .
Entrada (-1 ou +1)
Processamento (ex. Soma)
Saída = -1 se resultado <= 0
Ponderação (entrada x peso)
Saída = +1 se resultado > 0
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
• Para a situação abaixo:
• deseja-se ajustar os pesos de forma que:
– entrada "bom tempo" ativa => saídas "nadar" e "bom humor" ativas
– entrada "Tempo instável" ativa => saídas "bom humor" e "guarda-
chuva" ativas
– entrada "chuva" ativa => saída "guarda-chuva" ativa
Entrada
Pesos
Soma
Saída
Entrada
Pesos
Soma
Saída
Nadar Bom Humor Guarda-Chuva
Bom Tempo Tempo Instável Chuva
1 0 0 0 1 0 0 0 1
1 1 1
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
• Possível solução: ajustar pesos manualmente até que a
saída coincida com a desejada para os valores dados de
entrada.
• Solução melhor: definir uma regra de ajuste dos pesos
(regra de aprendizado).
• Hipótese de Hebb: "A ligação entre dois neurônios é
reforçada se ambos são simultaneamente ativados por
um dado estímulo de entrada".
• Formulação de uma Regra simples baseada em Hebb:
"Incrementar em 1 o peso de ligação entre neurônio i e
neurônio j quando o neurônio i estiver ativado e o
estado desejado do neurônio j seja ativo"
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
• Algoritmo de Treinamento da Rede:
1. definir a saída desejada para cada conjunto de
entradas;
2. definir valores iniciais aleatórios para cada peso;
3. colocar um conjunto de valores na entrada e calcular
a saída;
4. corrigir os pesos seguindo a regra de Hebb até obter
a saída desejada para aquela entrada;
5. voltar ao passo 3 (valor seguinte de entrada).
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
Entrada
Pesos
Soma
Saída
Entrada
Pesos
Soma
Saída
Nadar Bom Humor Guarda-Chuva
Bom Tempo Tempo Instável Chuva
1 0 0 0 1 0 0 0 1
1 1 1
1 -1 -1
1 -1
-1
-1
1 -1
1 -1 -1 1 -1 -1 1 -1 -1
1 -1 -1
1 -1 -1
Condição inicial: entrada [1,-1,-1]; saída desejada [1,1,-1]
Nadar Bom Humor Guarda-Chuva desejado
obtido
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
Entrada
Pesos
Soma
Saída
Entrada
Pesos
Soma
Saída
Bom Tempo Tempo Instável Chuva
2 0 0 1 1 0 0 0 1
1 1 1
1 -1 -1
1 -1
-1
-1
1 -1
1 -1 -1 1 -1 -1 1 -1 -1
2 0 -1
1 -1 -1
Primeiro ajuste de pesos:
Nadar Bom Humor Guarda-Chuva
Nadar Bom Humor Guarda-Chuva desejado
obtido
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
Segundo ajuste de pesos: resultado alcançado !
Entrada
Pesos
Soma
Saída
Entrada
Pesos
Soma
Saída
Nadar Bom Humor Guarda-Chuva
Bom Tempo Tempo Instável Chuva
3 0 0 2 1 0 0 0 1
1 1 1
1 -1 -1
1 -1
-1
-1
1 -1
1 -1 -1 1 -1 -1 1 -1 -1
3 1 -1
1 1 -1
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
• A rede aparenta ter "aprendido" corretamente !
• Problemas se fornecida uma entrada para a qual a rede não foi
treinada.
• Exemplo: todas as 3 entradas em 1 (ilógico para o caso) resulta
em todas as saídas em 1 (o que também é ilógico!).
• Podemos incluir mais um par de treinamento: para a entrada
[1,1,1] desejamos saída [-1,-1,-1].
• Com a regra de treinamento em uso, este novo par nunca será
aprendido !
• Isto se deve a simplicidade extrema da regra de aprendizado
utilizada.
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
• Podemos melhorar nossa regra de aprendizado,
introduzindo a noção de erro (Regra Delta de
Widrow e Hoff):
Erro = (Estado desejado da saída - Estado obtido com pesos atuais)
Novo peso = peso velho + (Fator de Aprendizado x Erro x Entrada)
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
Partindo dos pesos obtidos anteriormente e treinando para o novo par com a
regra melhorada e com FA= 0,5:
Entrada
Pesos
Soma
Saída
Entrada
Pesos
Soma
Saída
Nadar Bom Humor Guarda-Chuva
Bom Tempo Tempo Instável Chuva
3 0 0 2 1 0 0 0 1
1 1 1
1 1 1
1 1
1
1
1 1
1 1 1 1 1 1 1 1 1
3 3 1
1 1 1
Nadar Bom Humor Guarda-Chuva
desejado
obtido
Para todos os
neurônios temos:
E =(-1-1) = -2
W i+1= W i+(-2x0,5x1)
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
Entrada
Pesos
Soma
Saída
Entrada
Pesos
Soma
Saída
Nadar Bom Humor Guarda-Chuva
Bom Tempo Tempo Instável Chuva
2 -1 -1 1 0 -1 -1 -1 0
1 1 1
1 1 1
1 1
1
1
1 1
1 1 1 1 1 1 1 1 1
0 0 -2
-1 -1 -1
Após o primeiro ajuste de pesos temos E=0 para todas as saídas (pesos não mudam
mais daqui para frente = fim treinamento). Aprendemos novo par ! Terá a rede
“esquecido” o que aprendeu no par anterior ?
M. R. Stemmer - DAS / CTC / UFSC
O Treinamento da RNA
• Resultado para entrada = "bom tempo":
Entrada
Pesos
Soma
Saída
Entrada
Pesos
Soma
Saída
Nadar Bom Humor Guarda-Chuva
Bom Tempo Tempo Instável Chuva
2 -1 -1 1 0 -1 -1 -1 0
1 1 1
1 -1 -1
1 -1
-1
-1
1 -1
1 -1 -1 1 -1 -1 1 -1 -1
4 2 0
1 1 -1
M. R. Stemmer - DAS / CTC / UFSC
Treinamento e Topologia
• A rede usada no exemplo anterior tem uma camada de entrada e
uma de saída (como perceptron de Rosenblatt ou ADALINE de
Widrow).
• Sabemos qual o valor de saída desejado, de modo que podemos
calcular facilmente o erro para a última camada.
• Este tipo de rede só pode tratar problemas linearmente separáveis.
• Quanto maior o número de entradas, maior é a família de funções
não linearmente separáveis.
x1
x2
(0,0) (1,0)
(0,1)
(1,1)
AND
x1
x2
(0,0) (1,0)
(0,1)
(1,1)
OR
x1
x2
(0,0) (1,0)
(0,1)
(1,1)
XOR
M. R. Stemmer - DAS / CTC / UFSC
Treinamento e Topologia
x1
x2
Fan-out
E (x1.x2)
E (x1.x2)
OU (x1.x2)+(x1.x2)
y
Solução para o XOR:
M. R. Stemmer - DAS / CTC / UFSC
Treinamento e Topologia
Pesos e thresholds para gerar 2
retas separando casos no XOR
M. R. Stemmer - DAS / CTC / UFSC
Treinamento e Topologia
• Outra solução para o XOR (para entradas +1 e -1):
(Setas indicam pesos e círculos os valores de threshold)
M. R. Stemmer - DAS / CTC / UFSC
Treinamento e Topologia
• Para que uma RNA aprenda o XOR:
– Precisamos pelo menos uma camada intermediária;
– Precisamos de uma função de ativação não linear,
que pode até ser o degrau, como no exemplo
anterior.
• Problema: como calcular o erro nas camadas
intermediárias?
M. R. Stemmer - DAS / CTC / UFSC
Treinamento e Topologia
• Redes com múltiplas camadas (também chamadas
redes MLP = Multi-Layer Perceptron) podem tratar
com dados não linearmente separáveis.
• Para uma redecom 3 camadas e entradas 2D, pode-se
dizer que:
– Cada nodo da primeira camada traça retas (ou hiperplanos,
para mais dimensões) no espaço de padrões de treinamento;
– Cada nodo da segunda camada combina as retas (hiperplanos)
dos nodos da primeira camada formando regiões convexas;
– Cada nodo da camada de saída combina as regiões da camada
anterior, formando regiões abstratas que separam os padrões
de entrada em classes.
M. R. Stemmer - DAS / CTC / UFSC
Treinamento e Topologia
• Cybenko mostrou que:
– Uma camada intermediária é suficiente para
aproximar qualquer função contínua;
– Duas camadas intermediárias são suficientes para
aproximar qualquer função matemática.
– O uso de muitas camadas intermediarias não é
recomendável, pois as camadas intermediárias
trabalham com uma estimativa do erro, que se torna
pior a cada retropropagação (só se sabe o valor
exato do erro na última camada).
M. R. Stemmer - DAS / CTC / UFSC
Treinamento e Topologia
• O número de neurônios da camada de entrada e de saída é em
geral dado pela aplicação.
• Para as camadas intermediárias:
– Geralmente o número de neurônios é determinado de forma
empírica;
– O número de conexões deve ser bem menor do que o número
de exemplos para evitar overfitting (memorização dos
padrões de treinamento sem extração de características gerais
que permitem generalização);
– O número de neurônios depende do número de exemplos, da
quantidade de ruído, da complexidade da função a ser
aprendida e da distribuição estatística dos dados de
treinamento.
M. R. Stemmer - DAS / CTC / UFSC
Treinamento e Função de Ativação
• Usamos no exemplo anterior uma função de ativação em degrau
(threshold), que é não linear.
• Com ela, a avaliação do erro para camadas intermediárias seria
complexa, pois os nodos não sabem se suas respostas estão próximas ou
não do valor desejado.
• Se usarmos funções de ativação lineares, o cálculo do erro nas camadas
escondidas é fácil, mas pode ser demonstrado que uma rede MLP com
qualquer número de camadas equivale a uma rede de uma única
camada:
y = (x.Wa).Wb
Se existe Wc = Wa.Wb
Então y = x.Wc
• A função de ativação para redes MLP deve ser não linear, contínua e
derivável (para cálculo do gradiente, como veremos a seguir).
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• Se a rede tiver uma ou mais camadas escondidas (intermediárias),
como calcular o erro para estas camadas?
• Algoritmo de treinamento mais usado: "Error Backpropagation"
(retropropagação do erro):
U
Yd
Yrn
E
Modelo
Rede
Neural
+
-
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• Algoritmo Backpropagation (simplificado):
– Passo 1: inicializar pesos com valores aleatórios pequenos;
– Passo 2: alimentar rede com um padrão de treinamento U e
vetor de saída desejado Yd;
– Passo 3: calcular saída da rede usando valores atuais dos
pesos: Y=F(U.W);
– Passo 4: calcular erro entre saída produzida e desejada (Y-
Yd);
– Passo 5: corrigir pesos de todas as camadas por
retropropagação:
Wi+1 = Wi - η .dE(W)/dW para W = Wi
– Passo 6: testar condição de parada (|E(k)| < Emin): se não
atendida, voltar ao passo 3.
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• Introduzido em 1985 por Rummelhart, Hinton e
Williams
• Generalização da Regra Delta (Widrow e Hoff)
• Algoritmo de gradiente descendente para otimização
não linear
• Duas fases principais:
– Forward: são apresentados vetores de entrada e calculadas as
saídas;
– Backward: o erro entre a saída obtida na fase anterior e a
saída desejada é retropropagado para corrigir os pesos.
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• Aprendizado por lote (batch) ou época (epoch): algoritmo procura
minimizar uma função de erro global:
Onde:
E é o erro médio quadrático
p é o número de padrões apresentados à rede
n é o número de neurônios de saída
di é a i-ésima saída desejada
yi é a i-ésima saída gerada pela rede
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• Aprendizado por padrão (pattern): a minimização da função de erro
para cada padrão individual levará à minimização de E.
• Assim, o erro por padrão Ep pode ser definido por:
Esta função define uma superfície de erro em função dos pesos da
rede.
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
Erro médio quadrático em função dos pesos (supondo somente 2 pesos)
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• Objetivo do algoritmo: obter valores dos pesos que apresentam
menor valor de E ou Ep (mínimo global)
• Variação do peso deve ser feita proporcionalmente ao negativo do
gradiente do erro em relação aos pesos da rede:
Onde:
W ji é o peso da saída j para a entrada i
(A proporcionalidade pode ser substituída por igualdade
introduzindo o termo η, que é a taxa de aprendizado)
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• É necessário definir como cada peso de cada nodo deve ser ajustado
de forma a minimizar o erro gerado pela rede.
• Utilizando a regra da cadeia sobre a equação anterior, temos:
Onde:
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
A segunda derivada é dada por:
A primeira derivada mede o erro do nodo j, sendo geralmente
chamada de δj:
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
Esta derivada também pode ser calculada pela regra da cadeia:
A segunda derivada nesta última equação é dada por:
Por esta razão, é importante que a função de ativação seja derivável!
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
A primeira derivada depende da camada onde o nodo se encontra.
Se for um nodo da última camada (saída), o erro pode ser
facilmente definido como:
Esta é a mesma fórmula da regra delta original, como seria de se
esperar!
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
Substituindo este dois termos na equação original, temos:
Esta equação fornece o erro para cada nodo da última camada.
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
Se o nodo j não for um nodo de saída, usamos a regra da cadeia
novamente para escrever:
Onde:
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
Substituindo novamente na equação original, obtemos para as
camadas intermediárias:
Esta equação fornece o erro da cada nodo das camadas intermediárias.
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
Podemos generalizar a fórmula de ajuste de pesos como:
Esta fórmula também pode ser escrita de forma recursiva como:
Onde
Para nodos da camada de saída
Para nodos de camadas
intermediárias
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• Se a FA é a sigmóide:
• A derivada fica simples:
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• O algoritmo procura ajustar os pesos de modo que eles correspondam
às coordenadas dos pontos mais baixos da superfície de erro.
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
1. aplique o vetor das entradas
=
pN
p
p
x
x
x
...
2
1
px às unidades de entrada
2. calcule os valores net para as unidades da camada escondida
∑
=
Θ+=
N
i
h
jpi
h
ji
h
pj xwnet
1
.
3. calcule as saídas da camada escondida
)(netfi hpj
h
jpj =
4. calcule os valores net para as unidades da camada de saída
o
kpj
L
j
o
kj
o
pk Θiwnet +=∑
=1
.
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
5. calcule as saídasda camada de saída
)( opk
o
kpk netfo =
6. calcule o erro para as unidades da camada de saída
)()( ´ opkokpkpkopk netfoy −=δ
7. calcule o erro para as unidades da camada escondida
∑=
k
o
kj
o
pk
h
pj
h
j
h
pj wnetf .).(´ δδ
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
8. atualize os pesos da camada de saída
pj
o
pk
o
kj
o
kj itwtw ..)()1( δη+=+
9. atualize os pesos da camada escondida
i
h
pj
h
ji
h
ji xtwtw ..)()1( δη+=+
10. calcule o erro total para checar a condição de parada do algoritmo
∑
=
=
M
k
pkpE
1
2
2
1 δ
Se Ep for menor do que um dado valor, o algoritmo é repetido para o próximo vetor de
entrada. Senão, retorna-se ao passo 2 (mantendo-se o mesmo vetor de entrada).
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
fj fkxp1
xp2
xpn
∑
=
Θ+=
N
i
h
jpi
h
ji
h
pj xwnet
1
.
i j k
wji wkj
input hidden output
)(netfi hpj
h
jpj =
o
kpj
L
j
o
kj
o
pk Θiwnet += ∑
=1
.
)( opk
o
kpk netfo =
)()( ´ opkokpkpkopk netfoy −=δ∑=
k
o
kj
o
pk
h
pj
h
j
h
pj wnetf .).(´ δδ
pj
o
pk
o
kj
o
kj itwtw ..)()1( δη+=+ihpjhjihji xtwtw ..)()1( δη+=+
∑
=
=
M
k
pkpE
1
2
2
1 δ
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• Influência da taxa de
aprendizado η:
– Seja E(w) = w2
– Achar mínima
(obviamente em w=0)
partindo de w = 1
w(k+1) = w(k) – η.2.w(k)
M. R. Stemmer - DAS / CTC / UFSC
Error Backpropagation
• Problemas com Backpropagation:
– Baixa velocidade de convergência quando próximo a um
mínimo da função de erro
– Pode convergir para um mínimo local da função de erro
M. R. Stemmer - DAS / CTC / UFSC
Outros Algoritmos de Treinamento
• Backpropagation com Momentum: introduz termo μ
na equação, para acelerar convergência
• RProp (Resilient Propagation): baseado somente no
sinal do gradiente da função de erro para atualização dos
pesos. Convergência mais rápida.
• Algoritmos Genéticos: podem ser usados para treinar
RNA (genes são os pesos, representados como números
reais). Tende a encontrar mínimo global.
M. R. Stemmer - DAS / CTC / UFSC
Outros Algoritmos de Treinamento
• ABPropagation (Adaptive Backpropagation): taxa de
aprendizado não é fixa, mas função do erro e do
gradiente do erro. Sempre trabalha em modo batch.
Produz aceleração na convergência.
• Quickpropagation (Fahlman, 1988): aproxima curva
de erro para cada peso por uma parábola com
concavidade voltada para cima. Equação de
modificação dos pesos dada por:
M. R. Stemmer - DAS / CTC / UFSC
Modelos de RNA
Precisa muitos PE's para
armazenar poucos padrões
Estável Reconhecimento de
padrões.
Bidirectional
Associative Memories
(BAM)
Sem aprendizado, os pesos
devem ser setados.
Implementação em larga
escala.
Recuperação de dados e
fragmentos de imagens.
Hopfield
Grande número de
neurônios e conexões
(topologia complexa)
Rapidez de treinamentoReconhecimento de
padrões, análise
estatística.
Counterpropagation
Treinamento supervisionado
requer exemplos abundantes
simples e eficienteLarga aplicaçãoMLP com
Backpropagation
Não reconhece padrões
complexos; sensível a
mudanças.
Rede neural mais antiga.Reconhecimento de
caracteres.
Perceptrons
Pontos FracosPontos FortesPrincipais AplicaçõesModelo Neural
M. R. Stemmer - DAS / CTC / UFSC
Aplicações I
Identificação e
Controle de
Processos
M. R. Stemmer - DAS / CTC / UFSC
Redes Neurais em Controle
• Primeiras aplicações: década de 60.
• Vantagens quando o processo:
– é difícil de modelar;
– tem não linearidades;
– sofre alteração de parâmetros com o tempo.
• Algumas possíveis aplicações de interesse são:
– Identificação
– Controle
» Adaptativo
» Robusto
» Multivariável
» Robótica (Posição, Trajetória, Força, Flexibilidades, etc.)
M. R. Stemmer - DAS / CTC / UFSC
Quando Usar RNA?
M. R. Stemmer - DAS / CTC / UFSC
Identificação
• Rede aprende a imitar mapeamento de E/S do
processo (modelo direto ou inverso).
• O treinamento é concluído quando em(k) (erro de
modelo) é menor que um valor especificado.
G(s)
RNI
d
u(k) y(k)
ym(k)
em(k)u(k-1)
M. R. Stemmer - DAS / CTC / UFSC
Controle
• Controle com RNA segue alguns esquemas
básicos (e muitas variantes):
– Controle supervisionado
– Controle pelo Modelo Interno
– Controle Direto Inverso e Controle Inverso Feedforward
– Controle Adaptativo
• RNA pode ainda ser usada em conjunto
com outros métodos de controle:
– Sistemas Neuro-Fuzzy, Neuro-Genéticos
– Sistemas híbridos RNA + convencional
M. R. Stemmer - DAS / CTC / UFSC
Controle Supervisionado
• RNA pode reproduzir comportamento de um operador humano
• Widrow e Smith usaram esquema para pendulo invertido em 1964
M. R. Stemmer - DAS / CTC / UFSC
Controle Supervisionado
• Idéia básica: fazer rede aprender uma lei de controle
existente.
• Passo 1 - treinar rede para reproduzir comportamento
de um controlador qualquer:
Yp
E
+
-
Rede
Neural
Controladora
Lei de controle
(p.ex. PID)
Processo
Yd
M. R. Stemmer - DAS / CTC / UFSC
Controle Supervisionado
• Passo 2 - operação normal: RNA dentro da malha
fechada
• Resultados: desempenho igual ao da lei de controle.
YpRede
Neural
Controladora
Processo
Yd
M. R. Stemmer - DAS / CTC / UFSC
Controle Supervisionado
• Variante onde RNA fica em malha aberta
• RNA aprende modelo inverso, mesmo se sistema instável em malha aberta
M. R. Stemmer - DAS / CTC / UFSC
Controle pelo Modelo Interno
• Internal Model Control (IMC): Hunt e Sbarbaro, 1991
• Passo 1 - treinar rede identificadora com modelo direto da planta
• Passo 2 - treinar rede controladora com modelo inverso da planta
• Controlador e Identificador tratados como uma só rede
multicamadas, onde pesos da parte identificadora são fixos.
YpRede
Neural
Controladora
Processo
Rede
Neural
Identificadora
Ym
Yd
+ -
M. R. Stemmer - DAS / CTC / UFSC
Controle pelo Modelo Interno
• Passo 3 - operação normal (IMC): só funciona se
sistema é estável em malha aberta
Yp
Rede
Neural
Identificadora Ym
Yd
+
-
Rede
Neural
Controladora
Processo
M. R. Stemmer - DAS / CTC / UFSC
Controle Direto Inverso
• RNA com modelo inverso colocada em série com
processo, de modo a gerar produto em cascata = 1
M. R. Stemmer - DAS / CTC / UFSC
Esquemas Adaptativos - I
• O erro de modelo é retropropagado através de uma RNI, sem
alterar seus pesos, mas ajustando os pesos da RNA.
• Quando em(k) fica menor que um valor especificado, os pesos da
RNA são copiados na RNC, atualizando o controlador.
G(s)
RNI
u(k) y(k)
ym(k)
em(k)
d
u(k-1)
RNC
x(k)
RNA
u'(k)
learn
I1
I2
O1
d
y(k-1)
M. R. Stemmer - DAS / CTC / UFSC
Esquemas Adaptativos - II
G(s)
u(k) y(k)
RNC
x(k)
e(k)
RNA
learn
I1 I2
u'(k)
O1
• Os pesos da RNA são copiados para a RNC quando o
erro de treinamento fica abaixo de uma valor
especificado.
d
y(k-1)
M. R. Stemmer - DAS / CTC / UFSC
Controle Híbrido
• RNA opera junto com controlador convencional
M. R. Stemmer - DAS / CTC / UFSC
Aplicações II
Robótica
M. R. Stemmer - DAS / CTC / UFSC
Comparação de Performance
entre Controladores Clássicos e
um Controlador Torque
Computado Neural Aplicados
ao Robô PUMA 560
Marcelo R. Stemmer Edson R. de Pieri Fábio A. Pires Borges
UFSC / EEL / LCMIC.P 476
CEP 88.040.900
Florianópolis - SC
marcelo@lcmi.ufsc.br
UFSC / EEL / LCMI
C.P 476
CEP 88.040.900
Florianópolis - SC
edson@lcmi.ufsc.br
UFSC / EEL / LCMI
R. Almirante Barroso, 1424
CEP 96.010.280
Pelotas - RS
borges@pool.poolps.com.br
M. R. Stemmer - DAS / CTC / UFSC
Introdução
• Limitações dos controladores clássicos usados em robótica:
– controladores Junta por junta PD e PID, no rastreamento de
trajetória, possuem erro mínimo limitado por não levarem em
conta as não linearidades típicas do modelo de um robô
manipulador
– controladores tipo Torque Computado tentam levar em conta
estas não linearidades, mas esbarram na dificuldade de se
obter uma perfeita representação do modelo da dinâmica
inversa do robô.
• As Redes Neurais constituem uma alternativa para o controle de
robôs manipuladores, pois nos permite representar com maior
precisão o modelo da dinâmica inversa do robô.
M. R. Stemmer - DAS / CTC / UFSC
Introdução
• Vamos comparar a performance de:
– Controladores clássicos junta por junta, PD e PID;
– Controlador tipo torque computado, onde a
dinâmica inversa do robô é obtida treinando-se
uma Rede Neural.
• Sistema é um modelo simplificado de um robô
manipulador do tipo PUMA 560, planar, com
dois graus de liberdade.
M. R. Stemmer - DAS / CTC / UFSC
O Robô Manipulador
• O Robô utilizado é o PUMA 560, com seis graus de
liberdade.
M. R. Stemmer - DAS / CTC / UFSC
O Robô Manipulador
• Para simplificar a análise e obter-se um modelo mais fácil de ser aplicado
em simulações computacionais, toma-se o segundo e o terceiro elos do
robô, considerando estáticos os demais elos e considerando o efetuador
como uma massa uniforme na extremidade do terceiro elo.
• Obtêm-se um robô planar (movimentos em duas dimensões), de dois
graus de liberdade (Juntas 2 e 3).
M. R. Stemmer - DAS / CTC / UFSC
Modelo Matemático do Robô
• Considerando que as juntas são acionadas por motores DC e desprezando a
flexibilidade nas transmissões (modelo rígido), tem-se:
• Equações do motor :
• Equação do Robô :
• Sendo :
V = L I + R I + K q (1)
K I = J q + (2)
e
m
⋅ ⋅
⋅ ⋅
τ
(1) e (2)
τ = ⋅ ⋅ ⋅D(q) q + C(q,q) q + F q + G(q) (3)
K
K
Nmi
mi
i
= K
K
Nei
ei
i
=
V: Tensões de entrada na armadura dos motores.
J: Matriz das inércia dos rotores dos motores.
Ke: Matriz das constantes de tensões induzidas nos motores.
Km: Matriz das constantes mecânicas dos motores.
R: Matriz das resistências das armaduras dos motores.
L: Matriz das indutâncias nas armaduras dos motores.
F : Torques devido ao atrito viscoso.
τ : Torques totais nas juntas do robô.
q : ângulos das juntas do robô.
N: Matriz das relações de transmissão das engrenagens.
G(q) : Torques Gravitacionais.
C(q q, ) : Torques Centrífugos e de Coriólis.
M. R. Stemmer - DAS / CTC / UFSC
Controladores a comparar
• Controlador PD:
τ = +K e K ep v
M. R. Stemmer - DAS / CTC / UFSC
Controladores a comparar
• Controlador PID:
τ = + + ∫K e K e K e s dsp v i t ( )
0
e q qd= −
M. R. Stemmer - DAS / CTC / UFSC
Controladores a comparar
• Torque Computado:
-Aplicação da técnica “Feedback Linearization”, que consiste do
cancelamento das não-linearidades de tal forma que o sistema dinâmico em
malha fechada tenha um comportamento linear.
-Lei de controle:
τ = ⋅ ⋅ ⋅ ( D(q) q - u) + C(q,q) q + F q + G(q) d
( ) ( )D q D q≈ ( , ) ( , )C q q C q q≈ F F≈ ( ) ( )G q G q≈
-Considerando:
e u=-Substituindo a lei de controle acima na equação do robô, obtemos:
-O sistema em malha fechada é linear e representado por um conjunto de n
integradores duplos desacoplados.
-A entrada u deve ser escolhida de tal forma a obter uma resposta
criticamente amortecida.
-As opções típicas para u são os controladores PD e PID.
M. R. Stemmer - DAS / CTC / UFSC
Controladores a comparar
• Torque Computado Neural:
- o controlador tipo torque computado depende da obtenção da
dinâmica inversa do robô => difícil.
- RNA utilizadas para a obtenção de um modelo que represente a
dinâmica inversa do robô manipulador.
- As entradas da rede serão as posições e velocidades desejadas para as
juntas e a aceleração desejada menos uma entrada u. A entrada u é
resultado da operação do controlador linear.
M. R. Stemmer - DAS / CTC / UFSC
Arquitetura da RNA
• Utilizado algoritmo de treinamento Backpropagation, com treinamento
exclusivamente Off-Line.
• Modelo do robô implementado em Simnon
• Vetores de treinamento obtidos com um controlador clássico junta por
junta controlando o robô manipulador durante o rastreamento de uma
determinada trajetória representada por um polinômio de terceira ordem.
• Tomou-se como pares de treinamento as tensões de entrada nos motores de
acionamento das juntas do robô (saídas da rede), e os respectivos valores
de posição, velocidade e aceleração angular das juntas no mesmo momento
(entradas da rede).
• RNA possui 6 neurônios de entrada, equivalentes aos seis pares de
variáveis posição, velocidade e aceleração, e 2 neurônios de saída,
equivalentes ao par de tensões de acionamento das duas juntas.
• A melhor convergência deu-se para uma rede com 2 camadas escondidas
com 10 neurônios cada.
M. R. Stemmer - DAS / CTC / UFSC
Treinamento da RNA
• O momentum foi fixado em 0,95 e a taxa de aprendizado em 0,5.
• O conjunto de pesos inicial foi escolhido de maneira randômica, com
valores entre -0,01 e +0,01.
Vin
tempo
1- Juta 1 ( Processo )
2- Junta 2 ( Processo )
3- Junta 1 ( Rede )
4- Junta 2 ( Rede )
2 e 4
1 e 3
Resultado do treinamento da RNA após 30.000 iterações para
∆ θ 1 = 900 e ∆ θ 2 = 1800
M. R. Stemmer - DAS / CTC / UFSC
Simulações e Resultados
• erro em graus x tempo
1
3
2
4
1) Junta 1 ( PD clássico )
2) Junta 2 ( PD clássico )
3) Junta 1 ( Neural )
4) Junta 2 (Neural )
CONTROLADOR PD:
∆ θ 1 = 900 e ∆ θ 2 =
1800
1) Junta 1 ( PD clássico )
2) Junta 2 ( PD clássico )
3) Junta 1 ( Neural )
4) Junta 2 (Neural )
CONTROLADOR PD:
∆ θ 1 = 450 e ∆ θ 2 =
1200
2
1
3 4
M. R. Stemmer - DAS / CTC / UFSC
Simulações e Resultados
• erro em graus x tempo
1
2
3
4
1) Junta 1 ( PD clássico )
2) Junta 2 ( PD clássico )
3) Junta 1 ( Neural )
4) Junta 2 (Neural )
3
2
1
4
1) Junta 1 ( PID clássico )
2) Junta 2 ( PID clássico )
3) Junta 1 ( Neural )
4) Junta 2 (Neural )
CONTROLADOR PD :
∆ θ 1 = 600 e ∆ θ 2 =
1000
CONTROLADOR PID :
∆ θ 1 = 900 e ∆ θ 2 = 1800
M. R. Stemmer - DAS / CTC / UFSC
Simulações e Resultados
• erro em graus x tempo
3
2
4
1) Junta 1 ( PID clássico )
2) Junta 2 ( PID clássico )
3) Junta 1 ( Neural )
4) Junta 2 (Neural )
1
3
2
1
4
1) Junta 1 ( PID clássico )
2) Junta 2 ( PID clássico )
3) Junta 1 ( Neural )
4) Junta 2 (Neural )
CONTROLADOR PID :
∆ θ 1 = 450 e ∆ θ 2 =
1200
CONTROLADOR PID :
∆ θ 1 = 600 e ∆ θ 2 = 1000
M. R. Stemmer - DAS / CTC / UFSC
Conclusão Parcial
• As RNAs realmente conseguem aproximar satisfatoriamente o
comportamento do Robô Manipulador.
• Torque Computado Neural tem desempenho muito melhor do que
os controladores clássicos.
• Os erros transitórios são de três a quatro vezes menores do que
aqueles apresentados pelos controladores clássicos, o que
realmente motiva o uso desta técnica.
• A RNA treinada de forma off-line leva o processo a
desestabilização quando este é submetido a uma mudança
acentuada emrelação aos parâmetros utilizados no treinamento.
• Em uma Rede Neural com ajuste on-line, desde que com um
algoritmo de treinamento suficientemente rápido, este problema
seria contornado.
M. R. Stemmer - DAS / CTC / UFSC
Esquema Alternativo (Adaptativo)
• Controlador adaptativo baseado na passividade:
M. R. Stemmer - DAS / CTC / UFSC
Treinamento On-Line
• Algoritmo de treinamento: Quickpropagation.
• Arquitetura: 4 camadas, 2 camadas escondidas com 10 neurônios cada.
• Treinamento inicial off-line:
– Robô controlado por PD clássico segue uma trajetória dada;
– Medimos tensão aplicada na entrada e os valores de posição,
velocidade e aceleração resultantes;
– 300 Pares de treinamento são adquiridos;
– São feitas 10.000 iterações de treinamento.
M. R. Stemmer - DAS / CTC / UFSC
Treinamento On-Line
• Mudanças na dinâmica devem ser incorporadas
em tempo real.
• Queremos testar comportamento com mudanças
na carga útil (payload) do robô.
• Comportamento Adaptativo:
– Novos pares de treinamento adicionados em tempo real a cada 5
ms.
– Novo treino feito em somente 15 iterações com
Quickpropagation.
– A rede é atualizada a cada 200 ms.
M. R. Stemmer - DAS / CTC / UFSC
Controlador Neural x PD sem carga
M. R. Stemmer - DAS / CTC / UFSC
Controlador neural sem carga
M. R. Stemmer - DAS / CTC / UFSC
Adição de Carga de 2.5 Kg
M. R. Stemmer - DAS / CTC / UFSC
Adição de Carga de 3.2 Kg
M. R. Stemmer - DAS / CTC / UFSC
Conclusões
• Controlador neural tem menor erro de seguimento de
trajetória do que PD clássico.
• O controlador neural adaptativo tem melhor
comportamento do que o PD e do que o neural off-
line com mudança da carga útil.
• Podemos ter problemas se a trajetória e a carga
excitam os modos flexíveis das juntas.
M. R. Stemmer - DAS / CTC / UFSC
Aplicações III
Visão
Computacional
M. R. Stemmer - DAS / CTC / UFSC
RECONHECIMENTO DE
IMAGENS UTILIZANDO
DESCRITORES DE FOURIER
E
REDES NEURAIS
Marcelo R. Stemmer
Carlos Amado Machado Neto
Alexandre Orth
M. R. Stemmer - DAS / CTC / UFSC
Introdução
• Objetivo: desenvolver sistema de reconhecimento de
peças em 2D para uso em FMC com as características
seguintes:
– reconhecer peças mesmo com sujeira e má
iluminação (condições reais de chão de fábrica);
– realizar o reconhecimento em tempo real;
– identificar a posição e orientação da peça de forma a
informar o robô para manipulação;
– reconhecer objetos múltiplos em uma imagem;
– reconhecer objetos parcialmente superpostos.
M. R. Stemmer - DAS / CTC / UFSC
Estrutura física do sistema
M. R. Stemmer - DAS / CTC / UFSC
Recursos
• Câmera - Panasonic WV-1410 B&W CCD
• Placa digitalizadora TrueVision ICB
– 200 linhas x 256 colunas
– cores - RGB
– cada pixel - 12 bits
• PC Pentium 300MHz (1999)
M. R. Stemmer - DAS / CTC / UFSC
Estrutura do Sistema
H i s t o g r a m a
T r e i n a R e d e
A c u m u l a E x e m p l o s I d e n t i f i c a I m a g e m
T r a n s f o r m a d a d e F o u r i e r
D e t e r m i n a T r i l h a
L i m p a d o F u n d o
C a p t a I m a g e m
M. R. Stemmer - DAS / CTC / UFSC
Aquisição e Limpeza da Imagem
• Amostrar uma imagem (ICB) e ler a memória da placa
• Calcular média das componentes RGB
• Obtém-se uma matriz 200x256 em que cada pixel é um
número de 0 a 31 que representa a intensidade luminosa
do ponto correspondente na imagem.
• Aplicação de threshold: se o pixel tem intensidade
menor que um limiar, igualar a 0
• apenas os pixels que compõem a peça permanecem
diferentes de 0 (binarização)
M. R. Stemmer - DAS / CTC / UFSC
Imagem Binarizada
M. R. Stemmer - DAS / CTC / UFSC
Determinação do Contorno
• varredura procura uma região clara na imagem, indicando
provável existência de um objeto.
• Contorno definido como a seqüência ordenada dos pontos 8-
conectados pertencentes ao objeto e que possuem pelo menos um
ponto 4-vizinho pertencente ao fundo.
• Contorno pode ser visto como seqüência de números complexos
cuja parte real é a componente horizontal do ponto na imagem,
h(k), e a parte imaginária é a componente vertical, v(k):
S(k) = h(k) + j.v(k) k=0..N-1
• onde N é o número total de pontos no contorno.
• Qualquer ponto do contorno pode ser escolhido como o início da
seqüência. Os demais são tomados ordenadamente no sentido
horário, encerrando com o ponto imediatamente anterior ao inicial.
M. R. Stemmer - DAS / CTC / UFSC
Determinação do Contorno
Contorno = {(3,3); (4,3); (5,3); (6,3); (6,4); (6,5); (6,6); (5,6); (4,6); (3,5); (3,4)};
Y(1) = 3 + j3;
;.)(
)();(
yjxtY
tYwithtYContour
+=
∈⊂→= ∑
M. R. Stemmer - DAS / CTC / UFSC
Contorno da Peça 3
M. R. Stemmer - DAS / CTC / UFSC
Extração de Características
• Contorno composto por um vetor de pontos bidimensionais (x, y).
• Se considerarmos os valores x como pertencentes ao eixo de tempo
e os valores de y como amplitudes de sinal, podemos interpretar o
contorno como um sinal discreto no tempo e aplicar DFT.
• Os coeficientes da Transformada de Fourier Discreta (DFT) da
seqüência S(k) são chamados Descritores de Fourier (DF) e servem
para caracterizar o objeto.
• Na etapa de classificação são utilizados os coeficientes com índices
de 1 até 20.
• O coeficiente F(0) fornece a posição do centróide do contorno.
• Algoritmo DFT clássico (não é possível usar FFT pois o número de
pontos da trilha não é conhecido à priori).
• Propriedades: invariante à translação e à rotação.
M. R. Stemmer - DAS / CTC / UFSC
Extração de Características
M. R. Stemmer - DAS / CTC / UFSC
Identificação/Classificação
• Descritores de Fourier submetidos a uma Rede Neural para
Classificação
• Rede Neural:
– camada de entrada com 20 neurônios (1 para cada DF)
– uma camada oculta configurável (ex. 10 neurônios)
– camada de saída configurável (1 para cada objeto)
– rede feedforward estática
M. R. Stemmer - DAS / CTC / UFSC
Imagens com Várias Peças
• Na etapa de treinamento, as peças são apresentadas
isoladamente.
• Durante a operação, as peças podem ser
apresentadas conjuntamente.
• Após terminado o processamento de um contorno, a
peça já tratada é apagada da imagem.
• Inicia-se, então, a procura e tratamento de outra
peça, procedimento que se repete até que nenhuma
outra seja encontrada.
• Encerrado o tratamento de todas as peças contidas
numa imagem, outra imagem pode ser capturada.
M. R. Stemmer - DAS / CTC / UFSC
Tratamento de Peças Sobrepostas
• Obtém-se o contorno da peça de cima e depois remove-se esta
peça da imagem, até que todas as peças empilhadas tenham sido
processadas.
• Limitações:
– Espessura das peças deve ser muito menor que comprimento e
largura de modo que contorno não mude muito com
superposição (processamento 2D).
– Necessário elevado contraste entre peças.
– Procedimento de limpeza da imagem tem que ser modificado a
fim de levar em consideração a existência de mais de dois
níveis de cinza na imagem (apenas um limiar não basta).
M. R. Stemmer - DAS / CTC / UFSC
Imagem da Peça 2 sobre a Peça 1
M. R. Stemmer - DAS / CTC / UFSC
Imagem da Peça 1 sobre a Peça 2
M. R. Stemmer - DAS / CTC / UFSC
Treinamento da Rede
• A rede foi treinada com o algoritmo backpropagation.
• O conjunto de treinamento foi formado com DF’s
resultantes do processamento de imagens contendo 3
exemplos (imagens) de cada peça.
• Foram incluídos 40 exemplos de DF’s resultantes do
processamento de imagens onde as peças figuravamparcialmente ocultas (com grau de ocultação de até
50%).
M. R. Stemmer - DAS / CTC / UFSC
Exemplos de Peças Usadas
M. R. Stemmer - DAS / CTC / UFSC
Resultados
• Obteve-se uma taxa de acerto de praticamente 100%
para peças isoladas ou múltiplas não superpostas.
• Tempo de treinamento: 20s para 4 peças
• Para peças sobrepostas:
– cerca de 90% de acerto para situações muito
próximas as encontradas no grupo de treinamento
– taxas bastante baixas de acerto na peça de baixo se
ocultação muito grande.
M. R. Stemmer - DAS / CTC / UFSC
Resultados
• A componente F(0) da DFT do contorno fornece a
posição do centróide da peça em relação ao canto
superior esquerdo da imagem.
• Se a posição deste ponto em relação aos eixos de
referência do robô for conhecida podemos posicionar
sua garra exatamente sobre a peça focalizada.
• A informação sobre a orientação da peça, contida na
fase dos coeficientes F(u), u=1..N-1, pode ser
utilizada para informar ao robô qual o ângulo mais
favorável para agarrar a peça.
M. R. Stemmer - DAS / CTC / UFSC
Conclusões
• Taxas de acerto são boas, mesmo com má iluminação e
peças muito semelhantes
• O tempo de treinamento pode ser reduzido com outros
algoritmos como Quikpropagation ou Resilient
Propagation.
• Trabalhos futuros sobre Imagens 3D !
M. R. Stemmer - DAS / CTC / UFSC
Comentários Finais
• Técnica de RNA alvo de muitas pesquisas.
• Problemas a resolver:
– desenvolvimento de modelos de neurônios mais próximos dos
biológicos;
– escolha do número de neurônios ideal para uma aplicação;
– escolha do número de camadas da rede;
– escolha de redes com ou sem feedback;
– escolha da melhor técnica de treinamento;
– desenvolvimento de novos algoritmos de treinamento da rede
(velocidade x plausibilidade biológica);
– demonstração de estabilidade de controladores neurais;
– escolha de padrões de treinamento adequados.
Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Slide 10
Slide 11
Slide 12
Slide 13
Slide 14
Slide 15
Slide 16
Slide 17
Slide 18
Slide 19
Slide 20
Slide 21
Slide 22
Slide 23
Slide 24
Slide 25
Slide 26
Slide 27
Slide 28
Slide 29
Slide 30
Slide 31
Slide 32
Slide 33
Slide 34
Slide 35
Slide 36
Slide 37
Slide 38
Slide 39
Slide 40
Slide 41
Slide 42
Slide 43
Slide 44
Slide 45
Slide 46
Slide 47
Slide 48
Slide 49
Slide 50
Slide 51
Slide 52
Slide 53
Slide 54
Slide 55
Slide 56
Slide 57
Slide 58
Slide 59
Slide 60
Slide 61
Slide 62
Slide 63
Slide 64
Slide 65
Slide 66
Slide 67
Slide 68
Slide 69
Slide 70
Slide 71
Slide 72
Slide 73
Slide 74
Slide 75
Slide 76
Slide 77
Slide 78
Slide 79
Slide 80
Slide 81
Slide 82
Slide 83
Slide 84
Slide 85
Slide 86
Slide 87
Slide 88
Slide 89
Slide 90
Slide 91
Slide 92
Slide 93
Slide 94
Slide 95
Slide 96
Slide 97
Slide 98
Slide 99
Slide 100
Slide 101
Slide 102
Slide 103
Slide 104
Slide 105
Slide 106
Slide 107
Slide 108
Slide 109
Slide 110
Slide 111
Slide 112
Slide 113
Slide 114
Slide 115
Slide 116
Slide 117
Slide 118
Slide 119
Slide 120
Slide 121
Slide 122
Slide 123
Slide 124
Slide 125
Slide 126
Slide 127
Slide 128
Slide 129
Slide 130
Slide 131