Baixe o app para aproveitar ainda mais
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
Compartilhar