• Nenhum resultado encontrado

Redes Neurais Artificiais para Controle & Automação

N/A
N/A
Protected

Academic year: 2021

Share "Redes Neurais Artificiais para Controle & Automação"

Copied!
131
0
0

Texto

(1)

Redes Neurais Artificiais para

Controle & Automação

Prof. Marcelo Ricardo Stemmer marcelo@das.ufsc.br

(2)

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

(3)

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).

(4)

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).

(5)

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.

(6)

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.

(7)

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

(8)

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

(9)

O Neurônio Biológico

Dendrites = entradas

Axônio = saída Sinapse =

(10)

O Neurônio Biológico

(11)

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);.

(12)

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.

=

) (i pred j j ij i j

x

w

net

θ

(13)

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)

(14)

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).

(15)

Redes Neurais Multicamadas

• A rede mais simples é formada por um grupo de neurônios arranjados em uma camada (ex.: perceptron).

(16)

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.

(17)

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

(18)

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”)

.

(19)

Treinamento Supervisionado

• 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 Supervisor I D 1 2 3 4 Conjunto de Exemplos

(20)

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

(21)

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

(22)

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

(23)

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"

(24)

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;

(25)

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

(26)

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

(27)

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

(28)

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.

(29)

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)

(30)

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 Wi+1= Wi+(-2x0,5x1)

(31)

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 ?

(32)

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

(33)

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

(34)

Treinamento e Topologia

x1 x2 Fan-out E (x1.x2) E (x1.x2) OU (x1.x2)+(x1.x2) y

(35)

Treinamento e Topologia

Pesos e thresholds para gerar 2 retas separando casos no XOR

(36)

Treinamento e Topologia

• Outra solução para o XOR (para entradas +1 e -1):

(37)

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?

(38)

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 rede com 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.

(39)

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

(40)

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.

(41)

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).

(42)

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 +

(43)

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

(44)

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.

(45)

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

(46)

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.

(47)

Error Backpropagation

(48)

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)

(49)

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:

(50)

Error Backpropagation

A segunda derivada é dada por:

A primeira derivada mede o erro do nodo j, sendo geralmente

(51)

Error Backpropagation

Esta derivada também pode ser calculada pela regra da cadeia:

A segunda derivada nesta última equação é dada por:

(52)

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!

(53)

Error Backpropagation

Substituindo este dois termos na equação original, temos:

(54)

Error Backpropagation

Se o nodo j não for um nodo de saída, usamos a regra da cadeia novamente para escrever:

(55)

Error Backpropagation

Substituindo novamente na equação original, obtemos para as camadas intermediárias:

(56)

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

(57)

Error Backpropagation

• Se a FA é a sigmóide:

(58)

Error Backpropagation

• O algoritmo procura ajustar os pesos de modo que eles correspondam às coordenadas dos pontos mais baixos da superfície de erro.

(59)

Error Backpropagation

1. aplique o vetor das entradas

            = pN p p x x x ... 2 1 p x às unidades de entrada

2. calcule os valores net para as unidades da camada escondida

= Θ + =N i h j pi h ji h pj w x net 1 . 3. calcule as saídas da camada escondida

) (net f i h pj h j pj =

4. calcule os valores net para as unidades da camada de saída

o k pj L j o kj o pk w i Θ net =

+ =1 .

(60)

Error Backpropagation

5. calcule as saídas da camada de saída

) ( o pk o k pk f net o =

6. calcule o erro para as unidades da camada de saída ) ( ) (

´

o pk o k pk pk o pk = yo f net δ

7. calcule o erro para as unidades da camada escondida

= k o kj o pk h pj h j h pj f

´

(net ). δ .w δ

(61)

Error Backpropagation

8. atualize os pesos da camada de saída

pj o pk o kj o kj t w t i w ( +1) = ( )+η.δ . 9. atualize os pesos da camada escondida

i h pj h ji h ji t w t x w ( +1) = ( )+η.δ .

10. calcule o erro total para checar a condição de parada do algoritmo

= = M k pk p E 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).

(62)

Error Backpropagation

fj fk xp1 xp2 xpn ∑ = Θ + = N i h j pi h ji h pj w x net 1 . i j k wji wkj

input hidden output

) (net f i h pj h j pj = o k pj L j o kj o pk w i Θ net =∑ + =1 . ) ( o pk o k pk f net o = ) ( ) ( ´ o pk o k pk pk o pk = yo f net δ ∑ = k o kj o pk h pj h j h pj f ´(net ). δ .w δ pj o pk o kj o kj t w t i w ( +1)= ( )+η.δ . i h pj h ji h ji t w t x w ( +1)= ( )+η.δ . ∑M 1

(63)

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)

(64)

Error Backpropagation

• Problemas com Backpropagation:

– Baixa velocidade de convergência quando próximo a um mínimo da função de erro

(65)

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.

(66)

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:

(67)

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 treinamento Reconhecimento de padrões, análise estatística. Counterpropagation Treinamento supervisionado requer exemplos abundantes simples e eficiente

Larga aplicação MLP com

Backpropagation

Não reconhece padrões complexos; sensível a mudanças.

Rede neural mais antiga. Reconhecimento de caracteres. Perceptrons Pontos Fracos Pontos Fortes Principais Aplicações Modelo Neural

(68)

Aplicações I

Identificação e

Controle de

(69)

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

(70)
(71)

Identificação

• Rede aprende a imitar mapeamento de E/S do

processo (modelo direto ou inverso).

• O treinamento é concluído quando e

m

(k) (erro de

modelo) é menor que um valor especificado.

G(s) RNI d u(k) y(k) ym(k) em(k) u(k-1)

(72)

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

(73)

Controle Supervisionado

• RNA pode reproduzir comportamento de um operador humano • Widrow e Smith usaram esquema para pendulo invertido em 1964

(74)

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

(75)

Controle Supervisionado

• Passo 2 - operação normal: RNA dentro da malha

fechada

• Resultados: desempenho igual ao da lei de controle.

Yp Rede Neural Controladora Processo Yd

(76)

Controle Supervisionado

• Variante onde RNA fica em malha aberta

(77)

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.

Yp Rede Neural Controladora Processo Rede Neural Identificadora Ym Yd +

(78)

-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

(79)

Controle Direto Inverso

• RNA com modelo inverso colocada em série com

processo, de modo a gerar produto em cascata = 1

(80)

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)

(81)

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)

(82)

Controle Híbrido

(83)

Aplicações II

(84)

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 / LCMI C.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

(85)

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ô.

(86)

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.

(87)

O Robô Manipulador

• O Robô utilizado é o PUMA 560, com seis graus de

liberdade.

(88)

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).

(89)

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 N mi mi i = K K N ei 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.

(90)

Controladores a comparar

• Controlador PD:

(91)

Controladores a comparar

• Controlador PID:

τ =

K e K e K e s ds

p

+

v

+

i

t

( )

0

e q

=

d

q

(92)

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 qD 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.

(93)

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.

(94)

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.

(95)

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

(96)

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

(97)

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

(98)

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

(99)

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 em relaçã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.

(100)

Esquema Alternativo (Adaptativo)

(101)

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.

(102)

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.

(103)
(104)
(105)
(106)
(107)

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.

(108)

Aplicações III

Visão

(109)

RECONHECIMENTO DE

IMAGENS UTILIZANDO

DESCRITORES DE FOURIER

E

REDES NEURAIS

Marcelo R. Stemmer

Carlos Amado Machado Neto Alexandre Orth

(110)

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.

(111)
(112)

Recursos

• Câmera - Panasonic WV-1410 B&W CCD

• Placa digitalizadora TrueVision ICB

– 200 linhas x 256 colunas

– cores - RGB

– cada pixel - 12 bits

(113)

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

(114)

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)

(115)
(116)

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.

(117)

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; ; . ) ( ) ( ); ( y j x t Y t Y with t Y Contour + = ∈⊂ →  =

(118)
(119)

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).

(120)
(121)

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

(122)

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.

(123)

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).

(124)
(125)
(126)

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 figuravam

parcialmente ocultas (com grau de ocultação de até

50%).

(127)
(128)

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

(129)

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.

(130)

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.

(131)

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.

Referências

Documentos relacionados

mais espontâneas – como manifestação que nos representa e traduz; como festa democrática que congrega tantas variedades musicais e tantas formas de brincadeiras; como

Até pouco tempo atrás, os acampamentos e retiros eram vis- tos, por alguns grupos, como eventos para crianças, adolescentes e jovens, que aconteciam somente no carnaval, como

Eficiência de remoção de coliformes totais, em função da quantidade de bactérias na água bruta, nas diferentes espessuras do meio filtrante nãotecido e do meio filtrante

O efetivo pagamento da(s) RECEITA(S) FIXA(S) estará condicionado ao início da operação comercial da(s) USINA(S), devendo os recursos financeiros associados a este

Considerando a importância do assunto, a variabilidade existente nas características físicas e a ausência de dados na literatura especializada referente a

O objetivo desta dissertação é analisar a associação entre autopercepção da imagem corporal e estado nutricional com autoestima corporal em adolescentes, segundo sexo e faixa

As IMagens e o texto da Comunicação (com as legendas incluídas) devem ser enviadas por correio eletrônico. Comitê

Apesar da existência do projeto desde 2004 e da inserção da ação como área de atuação do Mafra em Forma da SMS - programa institucionalizado por meio de lei - o desafio atual