Redes Neuronais

Transcrição

Redes Neuronais
UNOESC
Inteligência Artificial
Redes Neuronais
Leandro Loss
[email protected]
http://www.gsigma.ufsc.br/~loss
UNOESC – Inteligência Artificial – Leandro Loss
Introdução
• A área de redes neuronais foi uma tentativa na área
de IA de imitar a operação básica do cérebro humano.
• Na década de 50 surgiram 2 abordagens em IA:
– Simbólica (seqüencial);
– Conexionista (paralela).
• As técnicas simbolistas tiveram preferência no início
da IA.
UNOESC – Inteligência Artificial – Leandro Loss
1
Introdução
• Os pesquisadores voltaram os seus interesses para
área conexionista novamente na década de 80, devido
aos seguintes fatores:
– Melhores conhecimentos da estrutura real do cérebro
(neurologia);
– Melhores algoritmos de treinamento;
– Hardware paralelo disponível.
UNOESC – Inteligência Artificial – Leandro Loss
Histórico
• Os primeiros trabalhos desenvolvidos datam de 1943,
quando o neurofisiologista, filósofo e poeta americano
Warren McCulloch e o lógico Walter Pitts desenvolveram o
primeiro modelo matemático de um neurônio.
• Em 1949 Hebb propõe o princípio 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.
UNOESC – Inteligência Artificial – Leandro Loss
2
Histórico
• Em 1958 Rosenblatt propõe uma rede de neurônios com
valores contínuos e treinamento baseado no modelo de
Hebb, denominada Perceptron.
• Já em 1969 Minsky e Papper publicam o livro
“Perceptrons” com uma crítica dura às redes neuronais e
expõem as limitações dos perceptrons, como a
impossibilidade de aprender a função XOR. Nesta época o
interesse pelas redes neuronais cai muito.
UNOESC – Inteligência Artificial – Leandro Loss
Redes Neuronais
• Na década de 80 os sucessos obtidos em aplicações
práticas levaram a uma mudança de ênfase quanto ao
objetivo na pesquisa da área.
• Uma parte da pesquisa passa a se dedicar ao estudo
das redes neuronais vistas apenas como uma
representação de funções matemáticas utilizando
elementos aritméticos simples, sem maiores relações
com a modelagem do sistema nervoso.
UNOESC – Inteligência Artificial – Leandro Loss
3
Características Interessantes
• Capacidade de “aprender” através de exemplos e de
generalizar este aprendizado de maneira a reconhecer
instâncias similares que nunca haviam sido
apresentadas como exemplos.
• Bom desempenho em tarefas mal definidas, onde
falta o conhecimento explícito sobre como encontrar
uma solução.
UNOESC – Inteligência Artificial – Leandro Loss
Características Interessantes
• O aprendizado em redes neuronais está normalmente
associado à capacidade de as mesmas adaptarem os
seus parâmetros como conseqüência da sua interação
com o meio externo.
• O processo de aprendizado deve melhorar o seu
desempenho a medida que a rede que interage com o
meio externo.
UNOESC – Inteligência Artificial – Leandro Loss
4
Características Interessantes
• Não requer conhecimento a respeito de eventuais modelos
matemáticos dos domínios de aplicação.
• Elevada imunidade ao ruído, isto é, o desempenho de ruma
rede neuronal não entra em colapso em presença de
informações falsas ou ausentes, como é o caso nos
programas convencionais.
• Possibilidade de simulação de raciocínio impreciso através
da associação com lógica nebulosa (sistemas neuro-fuzzy).
UNOESC – Inteligência Artificial – Leandro Loss
Algumas Aplicações
• Reconhecimento de padrões:
– Visão computacional;
– Reconhecimento de voz.
• Processamento de sinais;
• Previsão de carga elétrica;
• Diagnóstico de falhas;
• Previsão da bolsa de valores;
• Identificação de e controle de processos.
UNOESC – Inteligência Artificial – Leandro Loss
5
Modelo McCulloch e Pitts
• O modelo de neurônio artificial proposto por McCulloch e
Pitts (MCP) é baseado no neurônio biológico.
• A sinapse transfere um impulso eletroquímico para o
dendrito de outro neurônio SE o somatório dos sinais de
entrada ultrapassa determinado limiar.
UNOESC – Inteligência Artificial – Leandro Loss
Modelo McCulloch e Pitts
Núcleo
Corpo celular
Dendrites
Axônio
KNa+
Sinapse
Na+
K-
KNa+
UNOESC – Inteligência Artificial – Leandro Loss
6
Modelo McCulloch e Pitts
• A maior limitação do modelo de neurônio de McCulloch e
Pitts é a sua natureza binária.
– Sistema nervoso baseado em uma representação do “tudo ou
nada”.
– O funcionamento do modelo pode ser descrito intuitivamente
da seguinte maneira: se a soma dos sinais de entrada de um
neurônio ultrapassar um determinado limite de disparo, então
a saída toma valor 1, caso contrário, valor 0.
UNOESC – Inteligência Artificial – Leandro Loss
Modelo McCulloch e Pitts
• As entradas do neurônio correspondem ao valor de
entrada X = [x1, x2, ..., xn]T de dimensão n.
• Para cada uma das entradas xi, há um peso
correspondente wi na entrada dos neurônios.
• A soma das entradas wi ponderadas pelos pesos
correspondentes wi é chamada de saída linear u,
onde: u =∑i wi xi.
UNOESC – Inteligência Artificial – Leandro Loss
7
O Neurônio Artificial
• O neurônio artificial pretende imitar características do
neurônio biológico.
X1
W1
X2
.
.
.
Xn
W2
f(a)
Y
∑
.
.
.
y = f(a)
Wn
UNOESC – Inteligência Artificial – Leandro Loss
O Neurônio Artificial
• Assim como no caso biológico, também para as redes
neuronais artificiais há dois tipos de sinapses:
– As excitadoras;
– As inibidoras.
• As sinapses excitadoras tem o peso wij > 0 e as
sinapses inibidoras tem o peso wij < 0.
UNOESC – Inteligência Artificial – Leandro Loss
8
O Neurônio Artificial
• A função f, chamada de função de ativação ou de
transferência, adotada no modelo é a função degrau:
f(x) =
0 se x ≤ β
1 se x > β
• onde β é o limite de disparo.
• Mesmo com esse modelo rudimentar de neurônio,
McCulloch e Pitts foram capazes de provar que uma rede
neuronal é equivalente a uma máquina de Turing sendo
capaz de calcular qualquer função computável.
UNOESC – Inteligência Artificial – Leandro Loss
O Neurônio Artificial
• Considere um neurônio de McCulloch e Pitts com duas
entradas binárias x1 e x2 e os seguintes parâmetros: w1
= w2 = 1 e β = 0,5.
• O neurônio ativa a sua saída toda vez que a entrada x1 ou a
entrada x2 assume o valor 1:
x1
x2
u
y
0
0
0
0
0
1
1
1
1
0
1
1
1
1
2
1
UNOESC – Inteligência Artificial – Leandro Loss
9
O Neurônio Artificial
• A evidência de que o neurônio de McCulloch e Pitts é
equivalente a máquina de Turing se deve ao fato de que é
possível simular os operadores OU, E, e NÃO, pois com
base nestes operadores é possível construir um computador
convencional.
UNOESC – Inteligência Artificial – Leandro Loss
Redes Neuronais Multicamadas
• Um único neurônio pode realizar funções de detecção
de padrões muito simples.
• O poder de computação neuronal vem da conexão dos
neurônios dentro de uma rede.
• Cada camada da rede é composto por vários
neurônios.
• As camadas são ligadas entre si.
UNOESC – Inteligência Artificial – Leandro Loss
10
Redes Neuronais Multicamadas
n
neti (t ) = ∑ wijuj (t )
j =1
• Onde wij é um número real que quantifica a conexão
sináptica da entrada do i-ésimo neurônio para a saída
do j-ésimo neurônio.
UNOESC – Inteligência Artificial – Leandro Loss
Redes Neuronais Multicamadas
• O primeiro modelo de rede neuronal – chamado de
perceptron – foi proposto por Rosenblatt em 1957.
• Este modelo consiste em uma rede de duas camadas:
– Uma camada de entrada, utilizada apenas para redistribuição
da informação de entrada, e
– Uma camada de saída, onde o processamento é realmente
realizado.
• Estas camadas são formadas por neurônios binários.
UNOESC – Inteligência Artificial – Leandro Loss
11
Redes Neuronais Multicamadas
• A rede mais simples é formada por um grupo de
neurônios arranjados em duas camadas.
Camada de
entrada
x1
w11
w12
F1
w21
x2
F2
Camada de
saída
y1
w1m
w22
y2
w2m
.
.
. wn1
xn
F3
wn2
wnm
yn
UNOESC – Inteligência Artificial – Leandro Loss
Redes Neuronais Multicamadas
• O Perceptron gerou muito interesse devido sua habilidade
para generalizar, ou seja, depois de treinado, ele é capaz
de responder razoavelmente bem a entradas que não foram
consideradas no conjunto de treinamento.
• Perceptrons são utilizados em tarefas simples de
classificação de padrões.
UNOESC – Inteligência Artificial – Leandro Loss
12
Redes Neuronais Multicamadas
• Redes multicamadas podem ser formadas colocando
em cascata redes de uma camada;
• A saída de uma camada providencia a entrada para a
camada subseqüente.
UNOESC – Inteligência Artificial – Leandro Loss
Redes Neuronais Multicamadas
Camada de
entrada
x1
Camada
escondida
w11
F1
v11
w12
v1m
w21
F2
v21
w22
v22
w2m
v2m
.
.
.
xn
F3
y2
.
.
.
.
.
.
wn1
y1
v12
w1m
x2
Camada de
saída
vn1
wn2
vn2
wnm
vnm
yn
UNOESC – Inteligência Artificial – Leandro Loss
13
Redes Neuronais Multicamadas
• Do ponto de vista do fluxo de informação, uma rede
neuronal pode conter três tipos de neurônios:
– De entrada – análogos aos neurônios sensoriais dos seres
vivos;
– De saída – análogos aos neurônios motores;
– Neurônios internos – fazem o processamento, inclusive de
problemas conhecidos como linearmente separáveis (do qual o
“ou-exclusívo” é uma instância).
UNOESC – Inteligência Artificial – Leandro Loss
Separabilidade Linear
• Os Perceptrons apresentam duas limitações críticas:
– Os valores de saída assumem apenas dois valores (1 ou
0, 1 ou –1, Verdadeiro ou Falso).
– Os perceptrons podem classificar somente conjuntos de
vetores linearmente separáveis;
• Problemas de classificação de padrões requerem que
cada ponto (padrão) seja discriminado como
pertencente a uma classe.
UNOESC – Inteligência Artificial – Leandro Loss
14
Separabilidade Linear
• Por exemplo, na figura (a) os padrões podem ser
separados por uma linha. Na figura (b) esta
separação não é possível.
+
+
+ +
+
-
-
+
-
?
+
UNOESC – Inteligência Artificial – Leandro Loss
Separabilidade Linear
• No primeiro caso diz-se que as classes são ditas
linearmente separáveis. No outro caso elas são
ditas não linearmente separáveis.
UNOESC – Inteligência Artificial – Leandro Loss
15
Redes Neuronais Multicamadas
• Comparação:
– O sistema nervoso humano é constituído de cerca de
1011 neurônios participando em aproximadamente 1015
interconexões sobre vias de transmissão que podem
variar até um metro.
UNOESC – Inteligência Artificial – Leandro Loss
Redes Neuronais Multicamadas
• Do ponto de vista funcional, uma rede pode ser:
– Homogênea se todos os neurônios se comportarem da
mesma forma.
– Heterogênea quando cada um dos neurônios tem um
comportamento diferenciado.
• As redes neuronais artificiais normalmente são do tipo
homogêneas enquanto que as redes neuronais
biológicas são bastante heterogêneas.
UNOESC – Inteligência Artificial – Leandro Loss
16
Redes Neuronais Multicamadas
• Do ponto de vista da topologia da interligação entre
neurônios, uma rede pode ser de alimentação para
frente (feed-forward) ou recorrentes (backward).
• Nas redes de alimentação para frente, os neurônios
são organizados em camadas e a informação se
desloca em um único sentido entre as camadas. Os
conjuntos de vetores são apresentados na estrada da
rede e é calculado o vetor de saída.
UNOESC – Inteligência Artificial – Leandro Loss
Redes Neuronais Multicamadas
• Nas redes recorrentes não existe direção privilegiada
para a propagação da informação, podendo haver
retroalimentação.
• Um caso limite de rede recorrente é a rede
totalmente conectada onde cada neurônio está
conectado a todos os outros e cada interligação é um
caso particular.
UNOESC – Inteligência Artificial – Leandro Loss
17
Redes Neuronais Multicamadas
• Treinamento:
– Treinar uma rede neuronal significa ajustar os pesos das várias
camadas de forma que a saída coincida com o valor desejado
para uma dada entrada.
– Existem alguns algoritmos de treinamento que, além do ajuste
dos pesos, provocam mudanças na arquitetura da rede, como
a criação o eliminação de neurônios.
– O treinamento pode ser supervisionado ou não
supervisionado.
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento Supervisionado
• O treinamento supervisionado exige um vetor de entrada
com um vetor alvo representando a saída desejada. Juntos
são chamados de par de treinamento.
Apresenta exemplos
Rede
Neuronal
Artificial
Indica as saídas desejadas
Determina o peso
das sinapses (conhecimento)
Novos dados
Rede
Neuronal
Artificial
Saídas previstas
UNOESC – Inteligência Artificial – Leandro Loss
18
Treinamento Supervisionado
Rede
Neuronal
Artificial
x
Vetor de
entrada
⎡ x1 ⎤
⎢x ⎥
⎢ 2⎥
⎢⎣ x3 ⎦⎥
f
Função
não-linear
y
Vetor de
saída
⎡ y1 ⎤
⎢y ⎥
⎢ 2⎥
⎣⎢ y3 ⎥⎦
“Conhecimento”
f(x) = y
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento Supervisionado
• Sabe-se de antemão qual deve ser a resposta da rede para
cada entrada xi.
• O ajuste dos pesos da rede é feito de maneira que a
resposta yi para o vetor de entrada se aproxime do valor
desejado dentro dos limites de tolerância preestabelecidos.
UNOESC – Inteligência Artificial – Leandro Loss
19
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.
• Caracteriza-se pela não existência de saídas desejadas para
as entradas xi, sendo o conjunto de treinamento formado
apenas pelos vetores de entrada.
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento Não-Supervisionado
• 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.
• Isso permite reconstituir entradas deturpadas.
• Útil em processamento de sinal e filtragens.
UNOESC – Inteligência Artificial – Leandro Loss
20
Treinamento por Reforço
• O treinamento por reforço pode ser considerado um
paradigma intermediário entre o aprendizado
supervisionado e o não-supervisionado.
• O conjunto de treinamento é formado apenas pelos vetores
de entrada, mas há a existência de um “crítico” externo.
• Como não há valores de saída desejados, o crítico retorna
um sinal de reforço ou penalidade associado à última ação
da rede.
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento
• Uma rede pode ser treinada com três objetivos diferentes:
– Auto-associação: após o treinamento com um conjunto de
vetores, quando submetida a um vetor similar a um dos
exemplos, mas deturpado, reconstituir o vetor.
– Heteroassociação: após o treinamento com um conjunto de
vetores, quando submetida a um vetor similar ao primeiro
elemento de um par, mas deturpado, reconstituir o segundo
elemento do par.
UNOESC – Inteligência Artificial – Leandro Loss
21
Treinamento
– Detecção de regularidades: descobrir as regularidades
inerentes aos vetores de treinamento e criar padrões para
classificá-los de acordo com tais regularidades.
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento da RNA
• Seja um neurônio dado por:
Saída = -1 se resultado ≤ 0
Saída = +1 se resultado >0
Processamento (ex.: soma)
Ponderação (entrada x peso)
Entrada (-1 ou +1)
• E estabelecendo como convenção:
– Valor +1 = ativo
– Valor -1 = inativo
UNOESC – Inteligência Artificial – Leandro Loss
22
Treinamento da RNA
• Para a situação:
Bom Tempo
Tempo Instável
1
1
0
Chuva
1
0
0
Nadar
1
Saída
Soma
Pesos
Entrada
1
0
0
Bom humor
0
1
Saída
Soma
Pesos
Entrada
Guarda-Chuva
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento da RNA
• Deseja-se ajustar os pesos de forma que:
• Entrada bom tempo ativa Æ saídas nadar e bom
humor
• Entrada tempo instável ativa Æ saídas bom humor
e guarda-chuva
• Entrada chuva ativa Æ saída guarda-chuva
UNOESC – Inteligência Artificial – Leandro Loss
23
Treinamento da RNA
• Uma possível solução é ajustar os pesos
manualmente até que a saída coincida com a saída
desejada para os valores dados de entrada.
• Outra solução é definir uma regra de ajuste dos pesos
(regra de aprendizado).
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento da RNA
• Algoritmo de treinamento da rede neuronal:
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;
4. Corrigir os pesos seguindo uma regra de Hebb até
obter a saída desejada para aquela entrada
5. Voltar ao passo 3
UNOESC – Inteligência Artificial – Leandro Loss
24
Treinamento da RNA
• 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 da ligação entre o neurônio i
e o neurônio j quando o neurônio i estiver ativado e o
estado desejada do neurônio j seja ativo”
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento da RNA
• Esta lei pode ser formalizada da seguinte maneira:
• Seja:
∆Wij = Φxixj
a variação no peso da conexão entre os neurônios i e
j, onde Φ é chamada de taxa de aprendizado e xi e
xj são as atividades dos neurônios.
UNOESC – Inteligência Artificial – Leandro Loss
25
Treinamento da RNA
Condição inicial: entrada [1, -1, -1]; saída desejada [1, 1, -1]
Bom Tempo
Tempo Instável
Chuva
1
-1
-1
Entrada
1
1
1
Pesos
1
-1
-1
Soma
1
-1
-1
Saída
1 -1 -1
1 -1 -1
1 -1 -1
Entrada
1
0
0
Pesos
0
0
1
0
0
1
1
-1
-1
Soma
1
-1
-1
Saída
Bom humor
Guarda-Chuva
Nadar
Nadar
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento da RNA
Bom Tempo
Tempo Instável
Chuva
1
-1
-1
Entrada
1
1
1
Pesos
1
-1
-1
Soma
1
-1
-1
Saída
1 -1 -1
1 -1 -1
1 -1 -1
Entrada
2
1
0
Pesos
0
0
1
0
0
1
2
0
-1
Soma
1
-1
-1
Saída
Bom humor
Guarda-Chuva
Nadar
Nadar
UNOESC – Inteligência Artificial – Leandro Loss
26
Treinamento da RNA
Bom Tempo
Tempo Instável
Chuva
1
-1
-1
Entrada
1
1
1
Pesos
1
-1
-1
Soma
1
-1
-1
Saída
1 -1 -1
1 -1 -1
1 -1 -1
Entrada
3
2
0
Pesos
0
0
1
0
0
1
3
1
-1
Soma
1
1
-1
Saída
Nadar
Bom humor
Nadar
Bom humor
Guarda-Chuva
UNOESC – Inteligência Artificial – Leandro Loss
Treinamento da RNA
• A rede aparenta ter “aprendido” corretamente.
• Problema: se fornecida uma entrada para a qual a
rede não foi treinada.
• Com a regra de treinamento em uso entrada [1, 1, 1]
para a saída [-1, -1, -1] nunca será aprendida.
• Isto se deve a simplicidade extrema da regra de
aprendizado que é utilizada.
UNOESC – Inteligência Artificial – Leandro Loss
27
Treinamento da RNA
• É possível melhorar a regra de aprendizado aplicando
a regra chamada Delta de Widrow
∆Wij = Φ(di - xi)xj
Onde se ajusta o valor de um neurônio di
UNOESC – Inteligência Artificial – Leandro Loss
Backpropagation
• O algoritmo mais conhecido para treinamento de redes
neuronais é o backpropagation (retropropagação).
• Este algoritmo pode ser considerado como uma
generalização da regra delta para redes de alimentação
para frente com mais de duas camadas.
• O backpropagation é um algoritmo de treinamento
supervisionado.
UNOESC – Inteligência Artificial – Leandro Loss
28
Backpropagation
• Seu funcionamento pode ser descrito da seguinte forma:
– Apresenta-se um exemplo à rede e obtém-se a saída
correspondente;
– Calcula-se o vetor de erro que consiste na diferença entre a
saída obtida e a esperada;
– Calcula-se o gradiente do vetor de erro e atualiza-se,
utilizando a regra delta, os pesos da camada de saída;
– Propaga-se para trás os valores desejados de modo a atualizar
os pesos das demais camadas.
UNOESC – Inteligência Artificial – Leandro Loss
Backpropagation
• O algoritmo de treinamento mais usado é o Error
Backpropagation (retropropagação de erro):
Modelo
Yd
+
U
E
Rede
Neuronal
Yrn
UNOESC – Inteligência Artificial – Leandro Loss
29
Backpropagation
• Algoritmo Backpropagation (simplificado):
Passo 1: iniciar pesos com valores aleatórios e pequenos
Passo 2: alimentar a rede com um padrão de treinamento U e com valor
de saída Yd;
Passo 3: calcular a saída de rede usando valores atuais dos pesos Y =
F(U.W);
Passo 4: calcular o erro entre saída produzida e saída desejada (Y – Yd);
Passo 5: corrigir pesos de todas as camadas por retropropagação:
Wi+1 =
Wi-µ.dE(W)
dW
Passo 6: testar a condição de parada (E(k) < Emin), se não atendida,
voltar ao passo 3.
UNOESC – Inteligência Artificial – Leandro Loss
Backpropagation
• A retropropagação do erro de saída corresponde à
utilização do erro da camada de saída para estimar o
erro dos neurônios da camada intermediária.
x1
1
x2
wi23
f’(u2)
2
x3
wo12
e1 f’(u1)
1
wo22
2
e2 f’(u2)
3
x4
UNOESC – Inteligência Artificial – Leandro Loss
30
Redes Neuronais em Controle
• As primeiras aplicações datam da década de 60.
• Aplicações em controle trazem vantagens quando o
processo:
– É difícil de modelar;
– Tem não-linearidades;
– Sofre alteração de parâmetros com o tempo.
UNOESC – Inteligência Artificial – Leandro Loss
Redes Neuronais em Controle
• Algumas possíveis aplicações de interesse são:
– Identificação;
– Controle:
• Adaptativo;
• Robusto;
• Robótica:
– Posição;
– Trajetória;
– Força;
– Flexibilidade.
UNOESC – Inteligência Artificial – Leandro Loss
31
Redes Neuronais em Controle
• Identificação:
– A rede aprende a imitar o mapeamento de entrada/saída
do processo:
Yd
Modelo
+
U
E
Rede
Yrn
Neuronal
UNOESC – Inteligência Artificial – Leandro Loss
Redes Neuronais em Controle
• Controle: controlador “treinável”
– As primeiras tentativas de uso de redes neuronais em
controle tentaram fazer a rede aprender uma lei de
controle existente.
– Passo 1: treinar a rede.
Yp
Lei de
Controle
Yd
(PID)
+
Rede
-
Processo
E
Neuronal
Controladora
UNOESC – Inteligência Artificial – Leandro Loss
32
Redes Neuronais em Controle
– Passo 2: operação normal.
Yd
Yp
Rede
Neuronal
Processo
Controladora
– Resultados com desempenho igual ao da lei de controle.
UNOESC – Inteligência Artificial – Leandro Loss
Aplicação – Reconhecimento de Imagem
• Reconhecimento de imagens utilizando redes neuronais.
• O objetivo era desenvolver um sistema de reconhecimento
de peças em uma esteira com as seguintes características:
– 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 vários objetos em uma imagem;
– Reconhecer objetos parcialmente superpostos.
UNOESC – Inteligência Artificial – Leandro Loss
33
Reconhecimento de Imagem
Capta a imagem
Limpa o fundo
Determina Trilha
Fourier
Acumula exemplos
Identifica a imagem
Treina a rede
UNOESC – Inteligência Artificial – Leandro Loss
Aquisição e Limpeza da Imagem
• Amostrar uma imagem.
• Calcular os componentes RGB.
• Obtém-se uma matriz de 200x256 em que cada pixel é um
número de 0 a 31 que representa a intensidade luminosa
do conto correspondente na imagem.
• Aplicação de threshold.
• Apenas os pixels que compõem a peça permanecem
diferentes de 0 (binarização)
UNOESC – Inteligência Artificial – Leandro Loss
34
Imagem Limpa de Algumas Peças
Peça 1
Peça 3
Peça 4
Peça 2
UNOESC – Inteligência Artificial – Leandro Loss
Detecção do Contorno
• Uma varredura procura uma região clara na imagem
indicado a provável existência de um objeto.
• Algoritmo de contorno aplicado.
Contorno da Peça 3
• Aplica-se transformada de Fourier para caracterizar o
objeto.
UNOESC – Inteligência Artificial – Leandro Loss
35
Treinamento
• Na etapa de treinamento as peças são apresentadas
isoladamente.
• Durante a operação as peças podem aparecer em conjunto.
• Após terminado o processamento de um contorno a peça já
tratada é apagada da imagem.
• Inicia-se a procura e o tratamento de outra peça.
• O procedimento é repetido até que nenhuma peça seja
encontrada.
• Encerrado o processo, uma nova imagem pode ser
capturada.
UNOESC – Inteligência Artificial – Leandro Loss
Peças Sobrepostas
• Obtém-se o contorno da peça de cima e depois se
remove esta peça da imagem até que todas as peças
tenham sido processadas.
UNOESC – Inteligência Artificial – Leandro Loss
36
Classificação
• Camada de entrada com 20 neurônios;
• Uma camada oculta com 10 neurônios;
• Camada de saída com 4 neurônios;
• Rede sem realimentação (feed-forward).
UNOESC – Inteligência Artificial – Leandro Loss
Conclusões
• O número de entradas e saídas depende da
dimensionalidade dos dados.
• O número de neurônios das camadas intermediárias
depende da complexidade do problema.
• Quanto maior o número de neurônios nas camadas
intermediárias, mais complexas são as funções mapeadas,
no entanto, o número excessivo de neurônios
intermediários pode levar a resultados indesejáveis.
UNOESC – Inteligência Artificial – Leandro Loss
37
Conclusões
• O grande desafio no desenvolvimento de modelos
neuronais é selecionar a melhor entre as inúmeras
soluções possíveis.
UNOESC – Inteligência Artificial – Leandro Loss
Conclusões
• Perceptrons:
– Aplicações: reconhecimento de caracteres;
– Vantagem: rede neuronal mais antiga;
– Desvantagem: não reconhece padrões complexos,
sensível a mudanças.
• Backpropagation:
– Aplicações: larga aplicação
– Vantagem: rede mais utilizada, simples e eficiente
– Desvantagem: treinamento supervisionado, exige
muitos exemplos.
UNOESC – Inteligência Artificial – Leandro Loss
38
Conclusões
• Counterpropagation:
– Aplicações: reconhecimento de padrões, análise estatística;
– Vantagem: rapidez do treinamento;
– Desvantagem: topologia complexa.
• Hopfield:
– Aplicações: recuperação de dados e fragmentos de imagens;
– Vantagem: implementação em larga escala;
– Desvantagem: sem aprendizado, pesos preestabelecidos.
UNOESC – Inteligência Artificial – Leandro Loss
Conclusões
• Bidirecional Associative Memories (BAM):
– Aplicações: reconhecimento de padrões;
– Vantagem: estável;
– Desvantagem: pouco eficiente.
• Kohonem:
– Aplicações: reconhecimento de padrões não
especificados;
– Vantagem: auto-organização;
– Desvantagem: pouco eficiente.
UNOESC – Inteligência Artificial – Leandro Loss
39
Bibliografia:
• Bittencourt, G.; 2001. Inteligência Artificial: Ferramentas e
Teorias. Florianópolis, SC: Ed. Da UFSC.
• Rezende. S. O.; 2003. Sistemas Inteligentes: fundamentos e
aplicações. Barueri, SP: Manoele.
• Stemmer, M. R.; Redes Neurais – DAS 6652 – Inteligência
Computacional (apostila).
• Berthold, M.; Hand, D. J.; 2003. Intelligent Data Analysis. New
York, Springer.
UNOESC – Inteligência Artificial – Leandro Loss
UNOESC
Inteligência Artificial
Redes Neuronais
Leandro Loss
[email protected]
http://www.gsigma.ufsc.br/~loss
UNOESC – Inteligência Artificial – Leandro Loss
40

Documentos relacionados