Buscar

Redes Neurais Artificiais para Controle & Automação Marcelo Ricardo Stemmer

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 131 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 131 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 131 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

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

Outros materiais