Upload
dinhhuong
View
214
Download
0
Embed Size (px)
Citation preview
Bibliografia
Haykin, S. Neural Networks: A Comprehensive Foundation. 2nd Ed., Prentice Hall, 1999.
Haykin, S. Neural Networks and Learning Machines. 3rd Ed., Prentice Hall, 2008.
Theodoridis, S., Koutroumbas, K. Pattern Recognition, 4th ed., Academic Press, 2008.
Webb, A. R., Copsey, K. D. Statistical Pattern Recognition, 3rd Ed., Wiley, 2011.
Bishop, C. M. Pattern Recognition and Machine Learning, Springer, 2006.
Zhang, G. P. (ed). Neural Networks in Business Forecasting, Idea Group Publishing, 2004.
Definição de uma Rede Neural
• “Uma rede neural é um processador maciçamente paralelo e distribuído constituído por unidades de processamento simples, o qual tem a propensão natural de armazenar conhecimento experimental e torná-lo disponível para uso.” [Haykin99]
Algumas Semelhanças entre uma Rede Neural e o Cérebro
• O conhecimento é adquirido do ambiente pela rede neural através de um processo de aprendizagem
• Os pesos das conexões entre neurônios são utilizados para armazenar o conhecimento adquirido
Características de Redes Neurais • Generalização • Não-linearidade (ao se utilizar neurônios não lineares) • Aprendizagem a partir de exemplos (a partir de tabelas de
entrada-saída • Adaptatividade a mudanças no ambiente • Respostas fornecidas com um nível de confiança • Tolerância a falhas • Facilidade de implementação em Hardware (VLSI) • Analogia neurobiológica
O Cérebro Humano
Sensores Atuadores Rede Neural Estímulos Respostas
Sistema Nervoso Central
Circuitos Inter-regiões
Circuitos locais
Neurônios
Árvores dendrídicas
Microcircuitos neurais
Sinapses
Moléculas
Nív
el d
e Ab
stra
ção
Modelo Computacional de um Neurônio
• Um conjunto de sinapses, ou pesos de conexão
• Um somador dos sinais de entrada ponderados pelos pesos de conexão
• Uma função de ativação para limitar a amplitude de saída do neurônio
Modelo Estocástico
−−+
=)(1 adeprobabilid com1
)( adeprobabilid com1)(
vPvP
xf
)/exp(11)(
TvvP
−+=
Arquiteturas Neurais
• Redes de única camada sem retro-alimentação
Arquiteturas Neurais
• Redes de múltiplas camadas sem retro-alimentação
Arquiteturas Neurais
• Redes recorrentes
Representação do Conhecimento
• O conhecimento normalmente consiste de 2 tipos de informação: – O estado conhecido do ambiente, representado por fatos (informação
a priori). – Observações (medições) sobre o ambiente obtidas em termos de
sensores.
• O conhecimento pode ser rotulado ou não-rotulado • Exemplos (observações) utilizados para treinar uma rede
neural podem ser positivos ou negativos.
Representação do Conhecimento
• Existe um conjunto de quatro regras intuitivas que explicam de uma forma geral a representação do conhecimento numa rede neural [Anderson88]
Representação do Conhecimento
• Regra 1: Entradas similares de classes similares devem normalmente produzir representações similares dentro da rede neural, e devem portanto ser classificadas como sendo da mesma classe.
Representação do Conhecimento
• Regra 2: Objetos que serão classificados em classes diferentes devem receber representações amplamente diferentes dentro da rede neural.
Representação do Conhecimento
• Regra 3. Se uma característica em particular é importante, então deve existir um grande número de neurônios envolvidos na representação daquela característica na rede neural.
Representação do Conhecimento
• Regra 4: A informação a priori e invariâncias devem ser incorporadas ao projeto de uma rede neural, portanto simplificando o problema de aprendizagem.
Representação do Conhecimento
• Como incorporar informação a priori no projeto de uma rede neural? – Restringindo a arquitetura através do uso de
campos receptivos – Restringindo a escolha de pesos sinápticos através
do uso de compartilhamento de pesos
Representação do Conhecimento
• Como Incorporar Invariâncias no Projeto de uma Rede Neural? – Invariância por estrutura – Invariância por treinamento – Espaços de características invariantes
Representação do Conhecimento
• Campos receptivos e compartilhamento de pesos
x1
x2 x3 x4
x5 x6
1
2
Representação do Conhecimento
• Invariância por estrutura – Conexões sinápticas entre os neurônios são
definidas de tal forma que versões transformadas de uma mesma entrada são forçadas a produzir uma mesma saída
– Por exemplo: suponha que forcemos wji=wjk para todos os pixels que estão a uma mesma distância do centro de uma imagem. Então a rede neural construída desta forma será invariante a rotações em torno do centro da imagem.
Representação do Conhecimento
• Invariância por treinamento – Subconjunto das possíveis transformações que um
vetor de entrada pode sofrer são apresentados durante o treinamento
– Exemplo1: para reconhecer objetos visuais independente do ângulo de visão, pode-se treinar a rede com diferentes visões planas do objeto (reconhecimento 3D a partir de imagens 2D).
Representação do Conhecimento
• Invariância por treinamento – Exemplo2: para determinar que uma certa
caligrafia pertence a um indivíduo, pode-se treinar uma rede neural com diferentes amostras de caracteres de um mesmo autor.
– Muito útil quando é difícil se derivar um modelo para os dados.
– Desvantagens: overhead computacional, variações de treinamento precisam ser fornecidas para cada nova classe.
Representação do Conhecimento
• Espaços de Características Invariantes
– Vantagens: redução da dimensão do espaço de entrada,
arquitetura da rede pode ser mais simples, invariância normalmente vale para todas as classes de objetos.
– Possível desvantagem: quando o processo de extração de características é muito complicado ou demanda muito tempo.
Extrator de Características
Invariantes
Classificador Neural
Entrada Estimativa de classe
A praga da Dimensionalidade
• A quantidade de características extraídas pode ter uma grande influência na performance de um sistema de reconhecimento de padrões
• Para ilustrar isto, vamos dividir cada variável de entrada em um certo número de intervalos
A praga da Dimensionalidade
• O valor de cada variável pode ser aproximadamente especificado dizendo em que intervalo ele se encontra
• Isto implica em dividir o espaço de entrada em um enorme conjunto de caixas
x1 x2
x3
• Se cada variável é dividida em M intervalos, então o número total de células é Md, onde d é a dimensão do espaço de entrada
• Considerando que cada célula contém pelo menos 1 ponto dos dados, isto implica que a quantidade de dados necessária para especificar o treinamento cresce exponencialmente com a dimensão d do espaço de entrada
A praga da Dimensionalidade
Redes Neurais e Inteligência Artificial
• Nível de explicação – IA clássica: modelos mentais simbólocos – Redes Neurais: modelos neurobiológicos
• Estilo de processamento – IA clássica: sequencial – Redes Neurais: paralelo
Redes Neurais e Inteligência Artificial
• Estrutura da representação – IA clássica: manipulação formal top-down de uma
linguagem de algoritmos e representações de dados
– Redes Neurais: processadores paralelos distribuídos com a habilidade natural de aprender, e que operam naturalmente de uma maneira bottom-up.
Redes Neurais e Inteligência Artificial
• Extração de regras de redes neurais – Alternativa para unir as abordagens conexionistas
e simbolistas na solução de um problema – Validar o correto funcionamento das redes – Descobrir características de destaque no espaço
de entrada (mineração de dados) – Tornar o conhecimento aprendido compreensível
por seres humanos
Redes Neurais como Grafos Dirigidos
• Um grafo de fluxo de sinal é uma rede de ligações dirigidas que são interconectadas em certos pontos chamados de nós.
• Um nó típico j possui um nó de sinal associado xj. • Uma típica ligação dirigida se origina no nó j e
termina no nó k, tendo uma função de transferência que especifica a forma pela qual o sinal yk no nó k depende do sinal xj no nó j.
Redes Neurais como Grafos Dirigidos
xj yk =wkj . xj wkj
xj yk =f(xj)
f(.)
yk =yi + yj
xj
xj
Redes Neurais como Grafos Dirigidos
• Grafo de fluxo de sinal representando um neurônio
yk f(.)
...
x0=+1
x1
xm
vk
Aprendizagem
• Definição no contexto de Redes Neurais “Aprendizagem é um processo pelo qual os
parâmetros livres de uma rede neural são adaptados através de um processo de estimulação pelo ambiente onde a rede se encontra. O tipo de aprendizagem é determinado pela forma na qual as mudanças de parâmetros ocorrem”
Aprendizagem
• A definição anterior implica no seguinte: – A rede neural é estimulada pelo ambiente – A rede neural sofre mudanças em seus parâmetros livres
como um resultado desta estimulação – A rede neural passa a responder de maneira diferente ao
ambiente devido às mudanças que ocorreram em sua estrutura interna
• Algoritmo de Aprendizagem: conjunto bem definido de regras para a solução de um problema de aprendizagem.
Aprendizagem
• Tipos de Aprendizagem – Correção do erro – Com base em memória – Hebbiana – Competitiva – Com e sem professor
Aprendizagem
• Usos da Aprendizagem – Associação de Padrões – Reconhecimento de Padrões – Aproximação de Funções – Controle – Filtragem
Aprendizagem
• Correção do erro ek(n)=dk(n) – yk(n)
... ... x(n)
x1(n)
x2(n)
xj(n)
xm(n) ek(n)
vk(n) yk(n)
-1
dk(n)
f(.)
Aprendizagem
• Correção do erro – Objetivo: aplicar uma sequência de ajustes
corretivos aos pesos do neurônio k, de forma a passo-a-passo forçar o sinal de saída yk a se tornar cada vez mais próximo do sinal de resposta dk.
– Este objetivo é atingido através da minimização de uma função de custo ou de índice de desempenho E(n), definida como:
)(21)( 2 nenE k=
Aprendizagem
• Correção do erro – A minimização da função E(n) leva a uma regra de
aprendizagem comumente denominada de delta rule ou regra de Widrow-Hoff (1960):
)()()( nxnenw jkkj η=∆
)()()1( nwnwnw kjkjkj ∆+=+
Aprendizagem
• Com base em Memória – Todas as experiências passadas são explicitamente
armazenadas em uma vasta memória de exemplos de entrada-saída corretamente classificados:
– Exemplo: aprendizagem utilizando os k-vizinhos-mais-próximos.
– Uma métrica de distância no espaço de entrada precisa ser especificada.
Niii dx 1)},{( =
Aprendizagem
• Hebbiana (contexto neurobiológico) – Quando um axônio de uma célula A está próximo
o suficiente para excitar uma célula B e repetidamente, ou persistentemente, faz a célula B disparar, então algum processo de crescimento ou mudanças metabólicas passam a ocorrer em uma ou ambas as células de forma que observa-se um aumento na eficiência de A como uma das células responsáveis pelo disparo de B
Aprendizagem
• Hebbiana (contexto computacional) – Se dois neurônios em cada lado de uma conexão
são ativados simultaneamente (sincronamente), então o peso daquela sinapse é seletivamente aumentado.
– Se dois neurônios em cada lado de uma conexão são ativados assincronamente, então o peso daquela conexão é seletivamente diminuida ou eliminado.
Aprendizagem
• Hebbiana (contexto computacional) – Em outras palavras, a regra de Hebb é um
mecanismo para aumentar a eficiência de uma sinapse na forma de uma função da correlação entre as atividades pré e pós sinapticas.
)()()( nxnynw jkkj η=∆
Aprendizagem
• Competitiva – Os neurônios de uma rede neural competem entre si para
se tornarem ativos (através de um mecanismo de inibição lateral).
– Em uma rede baseada em aprendizagem hebbiana, vários neurônios de saída podem estar ativos simultaneamente, porém, com aprendizagem competitiva, apenas um neurônio de saída está ativo num dado instante de tempo.
competição a perde neurônio o secompetição a ganha neurônio o se
0)(
)(kkwx
nw kjjkj
−
=∆η
Aprendizagem
• Sem professor – Por reforço
Ambiente Crítico
Sistema de Aprendizagem
vetor de entrada
heurística de reforço
reforço primário
ações
Aprendizagem
• Sem professor – Não supervisionada ou auto-organizável
– É possível utilizar uma regra de aprendizagem
competitiva para executar uma aprendizagem não supervisionada
Ambiente Sistema de Aprendizagem
vetor de entrada descrevendo o estado do ambiente
Aprendizagem
• Usos da Aprendizagem – Associação de Padrões
xk yk, k=1,2,...,q
– Auto (xk = yk) Vs. Heteroassociação (xk ≠ yk) – Fases de Armazenamento (Storage) e de Uso
(Recall)
Associador de Padrões
vetor de entrada x vetor de saída y
Aprendizagem
• Usos da Aprendizagem – Reconhecimento de Padrões
Rede neural supervisionada para classificação
vetor de entrada x Rede neural não-
supervisionada para extração de características
...
1
Classes de Padrões
2 3
r
vetor de características y
x y
.
.
.
Espaço de observações m-dimensional
Espaço de características q-dimensional
Espaço de decisão r-dimensional
Aprendizagem
• Usos da Aprendizagem – Aproximação de funções – Considere o mapeamento não-linear d=f(x) – Suponha que f(.) seja desconhecida e que dispomos de
apenas um conjunto de amostras da função
– O objetivo é projetar uma rede neural que aproxime a função desconhecida f(.) de tal forma que:
Niii dxF 1)},{( ==
ε<− )()( xfxF
Perceptrons de única camada
• McCulloch and Pitts (1943) – Introduziram a idéia de redes neurais como
máquinas de computação • Hebb (1949)
– Postulou a primeira regra para aprendizagem auto-organizável
• Rosenblatt (1958) – Apresentou o perceptron como o primeiro modelo
de rede neural para aprendizagem supervisionada
Perceptrons de única camada
• O problema da filtragem adaptativa Sistema
Dinâmico
Desconhecido
Entradas
... ...
x1(n)
x2(n)
xj(n)
xm(n) e(i)
v(i) y(i)
-1
d(i)
f(.)
x1(i)
xm(i)
... d(i)
Modelo Adaptativo para o sistema
w1(i)
w2(i)
wj(i)
wk(i)
Perceptrons de única camada • O comportamento externo do sistema pode ser descrito por
um conjunto de pontos P={x(i), d(i); i=1,2,...,n,...} x(i)=[x1(i), x2(i),..., xm(i)]T
• Considerando um neurônio linear (f(x)=x), a saída y(i) tem exatamente o mesmo valor de v(i) (o campo local induzido) y(i)=v(i)=xT(i) w(i) w(i)=[w1(i), w2(i),..., wm(i)]T
• Tipicamente, y(i) é diferente de d(i), e portanto, o resultado de sua comparação resulta em um sinal de erro: e(i)= d(i)- y(i)
Perceptrons de única camada
• A forma pela qual o sinal de erro e(i) é utilizado para controlar os ajustes nos pesos é determinada pela função de custo utilizada para derivar o algoritmo de filtragem adaptativa de interesse.
• Esta questão é fortemente relacionada a um problema de otimização matemática.
Perceptrons de única camada
• Considere uma função de custo C(w) que é continuamente diferenciável com relação a um certo vetor de pesos (parâmetro) w.
• C(w) mapeia elementos de w em números reais é uma medida que permite escolher o vetor w de um algoritmo de filtragem adaptativa de forma que o filtro de comporte de forma ótima.
Perceptrons de única camada
• O problema então se resume a encontrar uma solução ótima w* que satisfaz a condição: C(w*)<=C(w) “Minimize a função de custo C(w) com respeito ao
vetor de pesos w”
Perceptrons de única camada
• Portanto, a condição necessária para uma solução ótima é a seguinte:
• O vetor gradiente da função de custo é escrito da
seguinte forma:
0)(C =∇ w*
T
mwC
wC
wCC
∂∂
∂∂
∂∂
=∇ ,...,,)(21
w
Perceptrons de única camada
• Uma classe de algoritmos de otimização sem restrições que é apropriada para o projeto de filtros adaptativos é baseada no conceito de descendente iterativo (repetitivo) local:
“Partindo de uma estimativa inicial w(0), gere uma seqüência de vetores de peso w(1), w(2),.., de tal forma que a função de custo C(w) é reduzida a cada iteração do algoritmo.” Ou seja, C(w(n+1)) < C(w(n))
Perceptrons de única camada
• Uma classe de algoritmos de otimização sem restrições que é apropriada para o projeto de filtros adaptativos é baseada no conceito de descendente iterativo (repetitivo) local:
“Partindo de uma estimativa inicial w(0), gere uma seqüência de vetores de peso w(1), w(2),.., de tal forma que a função de custo C(w) é reduzida a cada iteração do algoritmo.” Ou seja, C(w(n+1)) < C(w(n))
Espera-se que o algoritmo irá eventualmente convergir para a solução ótima w*
Perceptrons de única camada
• Método do descendente mais inclinado – Os ajustes sucessivos aplicados ao vetor de pesos
w são na direção do descendente mais inclinado, ou seja, na direção oposta ao vetor de gradiente
)(wg C∇=
– O algoritmo é formalmente descrito pela seguinte equação:
)()()1( nnn gww η−=+
Perceptrons de única camada
• Método do descendente mais inclinado – Pela equação anterior, ao passar da iteração n
para a n+1, o algoritmo aplica a correção:
– Esta equação é na verdade uma representação mais formal da regra de correção do erro descrita anteriormente.
)()( nn gw η−=∆
Perceptrons de única camada
• Algoritmo LMS (Least-Mean-Square) – Se considerarmos a derivada dos valores instantâneos de
C(w) com relação ao vetor de pesos w, como sendo uma estimativa da função gradiente:
– podemos então re-escrever a equação de atualização do método da descida mais inclinada como sendo:
)(ˆ)()()( nnenC gxww
=−=∂
∂
)()()(ˆ)1(ˆ nennn xww η+=+
Perceptrons de única camada
• Perceptrons (Rosenblatt) – As técnicas de otimização apresentadas
anteriormente foram desenvolvidas em torno de um neurônio linear (sem função de ativação)
– Perceptrons são construídos a partir de neurônios não-lineares de McCulloch-Pitts.
Perceptrons de única camada
• Perceptrons (Rosenblatt) – Existe um limiar externo (bias) aplicado ao
neurônio de forma que +1 é produzido se a soma de pesos vezes entradas extrapola este liminar, e –1 é produzido no caso oposto.
Classe C2
Classe C1
b
Superfície de decisão w1x1 + w2x2 + b = 0
Perceptrons de única camada
• Perceptrons (Rosenblatt) x(n) = [+1,x1(n), x2(n),..., xm(n)]T
w(n) = [b(n), w1(n), w2(n),..., wm(n)]T wT x > 0 para todo vetor de entrada x pertencente à
classe C1 wT x <= 0 para todo vetor de entrada x pertencente
à classe C2
Perceptrons de única camada
• Perceptrons (Rosenblatt) – Considere vetores de treinamento T1 e T2 pertencentes
às classes C1 e C2, respectivamente, então: w(n+1) = w(n) se w(n)T x(n) > 0 e x(n) pertence a T1 w(n+1) = w(n) se w(n)T x(n) <= 0 e x(n) pertence a T2
– Caso contrário, o vetor de pesos é atualizado de acordo com a regra:
w(n+1) = w(n) - η(n)x(n) se w(n)T x(n) > 0 e x(n) pertence a T2 w(n+1) = w(n) +η(n)x(n) se w(n)T x(n) <= 0 e x(n) pertence a T1
– Prova?
• Arquitetura em camadas
Entrada Saída
Escondida
Perceptron de Múltiplas Camadas Uma ou
mais
Múltiplas camadas escondidas podem
ser reduzidas a uma única camada
escondida com número suficiente
de neurônios
Perceptron de Múltiplas Camadas
–Limitações dos perceptrons de uma camada • Foi provado (Rosemblatt) que se for possível
classificar linearmente um conjunto de entradas, então uma rede de perceptrons pode aprender a solução
Perceptron de Múltiplas Camadas
– Limitações dos perceptrons de uma camada • Um perceptron tenta encontrar uma reta que separa as
classes de padrões • Porém há situações em que a separação entre as
classes precisa ser muito mais complexa do que uma simples reta, por exemplo, o problema do XOR: linearmente inseparável
X Y Z 0 0 0
0 1 1
1 0 1
1 1 0
0 1
1 0
• Como resolver o problema de ser incapaz de resolver problemas linearmente inseparáveis com o perceptron?
• Uma solução seria usar vários perceptrons, cada qual encarregado de separar várias pequenas seções linearmente separáveis das entradas, e combinar as saídas em outro perceptron que daria o resultado da classificação final
Perceptron de Múltiplas Camadas
• O problema com este arranjo em camadas é que os neurônios não podem aprender usando a aprendizagem básica do perceptron
• Os neurônios da primeira camada recebem as entradas diretamente, mas os da segunda camada não conhecem o estado das entradas reais, apenas o resultado do processamento pela 1a camada
Perceptron de Múltiplas Camadas
• Como o aprendizado de perceptrons corresponde ao reforço de conexões entre entradas ativas e neurônios ativos, seria impossível reforçar as partes corretas da rede, uma vez que as entradas são mascaradas pelas camadas intermediárias
Perceptron de Múltiplas Camadas
• Uso de uma função de ativação contínua e diferenciável (ao invés de binária), e.g. sigmóide f(net) = 1 / (1+ e -z . net)
Perceptron de Múltiplas Camadas
• Arquitetura em camadas
Entrada Saída
Escondida
Perceptron de Múltiplas Camadas Uma ou
mais
Múltiplas camadas escondidas podem
ser reduzidas a uma única camada
escondida com número suficiente
de neurônios
• Algoritmo de aprendizagem (backpropagation): 1. Iniciar pesos e limiar para pequenos valores randômicos 2. Apresentar entrada e saída desejada Xp=x0,x1,...,xn-1, Tp=t0,t1,...,tm-1 3. Calcular as saídas da rede, cada camada produz: e passa os resultados como entradas para a próxima camada. As
saídas da última camada são opj
4. Adaptar os pesos
= ∑−
=
1
0
n
iipj xwy if
Perceptron de Múltiplas Camadas
• Algoritmo de aprendizagem (backpropagation): 4. Adaptar os pesos, começar na camada de saída e prosseguir de trás
para frente wij(t+1) = wij(t) + η δpj opj
Para neurônios de saída:
δpj = z opj (1 - opj) (tpj - opj) Para neurônios de camadas escondidas
δpj = z opj (1 - opj) Σk δpk wjk
Perceptron de Múltiplas Camadas
– Algoritmo backpropagation (início da prova): • Vamos definir a função de erro como sendo
proporcional ao quadrado das diferenças entre as saídas reais e desejadas para todos os padres a serem aprendidos:
• O objetivo final será minimizar esta função • A ativação de cada unidade j para um padrão p pode
ser escrita como:
)1(21 )( 2
∑ −=j
p otE pjpj
)2(ownet pii
ijpj ∑=
Perceptron de Múltiplas Camadas
Como resolver o problema de ser incapaz de resolver problemas linearmente inseparáveis com o perceptron?
Uma solução seria usar vários perceptrons, cada qual encarregado de separar várias pequenas seções linearmente separáveis das entradas, e combinar as saídas em outro perceptron que daria o resultado da classificação final
Perceptron de múltiplas camadas
O problema com este arranjo em camadas é que os neurônios não podem aprender usando a aprendizagem do perceptron
Os neurônios da primeira camada recebem as entradas diretamente, mas os da segunda camada não conhecem o estado das entradas reais, apenas o resultado do processamento pela 1a camada
Como o aprendizado de perceptrons corresponde ao reforço de conexões entre entradas ativas e neurônios ativos, seria impossível reforçar as partes corretas da rede, uma vez que as entradas são mascaradas pelas camadas intermediárias
Perceptron de múltiplas camadas
A solução
Usar função de ativação contínua ao invés de binária permite ter-se uma idéia mais realística das entradas, por exemplo, sigmóide ou semi-linear.f(net) = 1 / (1+ e -z . net)
Arquitetura
Entrada Saída
Escondida
A solução
Algoritmo de aprendizagem:1. Iniciar pesos e limiar para pequenos valores randômicos2. Apresentar entrada e saída desejada
Xp=x0,x1,...,xn-1, Tp=t0,t1,...,tm-13. Calcular as saídas da rede, cada camada produz:
e passa os resultados como entradas para a próxima camada. As saídas da última camada são opj
4. Adaptar os pesos
1
0
n
iipj xwy if
Algoritmo de aprendizagem (backpropagation):
4. Adaptar os pesos, começar na camada de saída e prosseguir de trás para frentewij(t+1) = wij(t) + pj opj
Para neurônios de saída:
pj = z opj (1 - opj) (tpj - opj)
Para neurônios de camadas escondidas
pj = z opj (1 - opj) k pk wjk
Algoritmo backpropagation (prova):
• Vamos definir a função de erro como sendo proporcional ao quadrado das diferenças entre as saídas reais e desejadas para todos os padres a serem aprendidos:
• O objetivo final será minimizar esta função
• A ativação de cada unidade j para um padrão p pode ser escrita como:
)1(21 )( 2
j
p otE pjpj
)2(ownet pii
ijpj
Algoritmo backpropagation (prova):
• A saída do neurônio j é definida como:
• Pela regra da cadeia, pode-se escrever a derivada da energia associada ao padrão p com respeito ao peso wij:
• Substituindo (2) em (4):
)3()(netfo pjjpj
)4(w
netnetE
wE
ij
pj
pj
p
ij
p
Algoritmo backpropagation (prova):
• Substituindo (2) em (4):
• uma vez que:
• exceto quando k=i, quando a expressão acima é igual a 1.
)5(
oow
wowww
net
pi
kpk
ij
kj
kpkkj
ijij
pj
0ww
ij
kj
Algoritmo backpropagation (prova):
• A mudança em erro pode ser definida como uma função da mudança nas entradas da rede para um certo neurônio:
• Substituindo em (4):
• Decrementar o valor da Energia, significa portanto tornar as mudanças de pesos proporcional a
)6( pjpj
p
netE
)7(owE
pipjij
p
)8(ow pipjijp opipj
Algoritmo backpropagation (prova):
• Agora precisamos saber qual a expressão de para cada um dos neurônios, se soubermos isto poderemos reduzir a energia.
• Usando (6) e pela regra da cadeia, podemos escrever:
• Considerando o segundo termo acima e usando (3):
pj
)9(neto
oE
netE
pj
pj
pj
p
pj
ppj
)10()(' netneto
pjpj
pj f
Algoritmo backpropagation (prova):
• Considerando agora o primeiro termo de (9) e usando (1), podemos derivar Ep com relação a opj :
• Portanto:
o que é bastante útil para neurônios de saída, mas não para neurônios em camadas intermediárias, uma vez que suas saídas desejadas não são conhecidas
)11()( otoE
pjpjpj
p
)12())((' otnet pjpjpjpj f
Algoritmo backpropagation (prova):
• Assim, se um neurônio não está na camada de saída, pode-se escrever novamente pela regra da cadeia:
também usando (2) e (6) e notando que a soma é cancelada uma vez que a derivada parcial não é zero para apenas um valor, como em (5).
)14(
)13(
kjkpk
k ipiik
pjpk
p
k pj
pk
pj
p
w
owonetE
onet
netE
oE
pk
p
Algoritmo backpropagation (prova):
• Substituindo (14) em (9), finalmente chaga-se à função que representa a mudança no erro, com respeito aos pesos da rede:
• A função acima é proporcional aos erros em neurônios subsequentes, assim o erro deve ser calculado nos neurônios de saída primeiro.
)15()(' wnet jkk
pkpjpj f
Algoritmo backpropagation (prova):
• Usando a função sigmóide como função de ativação, tem-se:
)16()1(
1)( .eo netzpj netf
)17()1(.
))(1)((..
)(')1(2
.
ooeze
pjpj
netz
k
netfnetfknetz
netf
– Demonstrações Práticas • Experimentos de treinamento de Perceptrons de
simples e de múltiplas camadas para o problema do ou exclusivo (XOR)
– Ferramenta JNNS (Java Neural Network Simulator) http://www.ra.cs.uni-tuebingen.de/software/JavaNNS/
• Extração de características (histogramas) e classificação de imagens da Web em duas categorias utilizando Perceptrons de múltiplas camadas (código+imagens):
– Ferramenta Octave http://www.gnu.org/software/octave/
Perceptron de Múltiplas Camadas
Mapas Auto-Organizáveis
• O mapa auto-organizável (SOM: Self-Organizing Map) é um tipo especial de rede neural com aprendizagem não-supervisionada, em que é realizado um processo de aprendizagem competitiva – O neurônio mais próximo do padrão de entrada
(com a menor distância Euclidiana) é declarado vencedor
Mapas Auto-Organizáveis
• Segundo Haykin, o principal objetivo do SOM é transformar um padrão de entrada, de dimensão arbitrária, em um mapa discreto uni- ou bi-dimensional
Mapas Auto-Organizáveis
• SOM bidimensional
Camada de entrada
Camada computacional
Mapas Auto-Organizáveis
• Os mapas auto-organizáveis possuem duas propriedades principais:
1. Quantização vetorial (redução do espaço de entrada)
2. Agrupamento de padrões similares em regiões geograficamente próximas
Mapas Auto-Organizáveis • Algoritmo
1. Inicialize os vetores de pesos com valores aleatórios wj = [wj1, wj2, …, wjm], j=1,2,…n
• Onde m é a dimensão do espaço de entrada e n é o número total de neurônios do mapa
• Restrição: os vetores de pesos devem ser diferentes
2. Para cada padrão de entrada x = [x1, x2, ...xm] • encontre o neurônio mais próximo desse padrão (neurônio
vencedor i(x)=arg min||x-wj||) • atualize os pesos
3. Repita o passo 2 até que não sejam observadas modificações significativas no mapa
Mapas Auto-Organizáveis
• Ajuste dos vetores de pesos • ∆wj = ηh(i(x))(x - wj ) h(i(x)) é a função de vizinhança que mede o grau de participação dos neurônios vizinhos a i(x) no processo de aprendizagem – normalmente uma função Gaussiana
Mapas Auto-Organizáveis
• Exemplo: – agrupamento de 16 animais em 3 categorias
• Caçadores • Pássaros • Espécies pacíficas
– SOM 10x10 • 2000 iterações
Atributos
Mapa Contextual
Caçadores
Pássaros
Espécies pacíficas
Mapas Auto-Organizáveis
• Outros exemplos de aplicação: – Agrupamento e visualização de Músicas
(nepTune Interface – ver video) http://www.cp.jku.at/projects/nepTune/ – Ferramenta Som Toolbox para Matlab (ver
demonstrações som_demo2) http://www.cis.hut.fi/somtoolbox/
Mapas Auto-Organizáveis
• Extensões: – Mapas Auto-Organizáveis Hierárquicos
Construtivos (GHSOM) • Mapas crescem hierarquicamente em função do
aumento do erro de quantização • Adequados à aprendizagem online, em que o número
e a diversidade dos padrões não são previamente conhecidos
• Exemplos: GHSOM Matlab Toolbox (ghsom_demo, ghsom_demo4)
http://www.ofai.at/~elias.pampalk/ghsom/
Mapas Auto-Organizáveis
• Exemplo: recuperação de imagens por conteúdo
cor textura forma GHSOM
Mapas Auto-Organizáveis
• Exemplo: recuperação de imagens por conteúdo
Mapas Auto-Organizáveis
• Exemplo: recuperação de imagens por conteúdo
Sistema
Redes Neurais Recorrentes
• Classe de redes neurais em que há ciclos dirigidos (ou caminhos fechados) na arquitetura
• A realimentação de conexões permite a criação de estados internos
• Diferentemente de redes feedforward, redes recorrentes exibem comportamento temporal dinâmico – as saídas variam com o tempo
Redes Neurais Recorrentes
• Alguns Modelos Históricos – Rede de Hopfield: proposta por John Hopfield
em 1982 – Rede de Jordan: proposta por Michael I. Jordan
em 1986 – Rede de Elman: proposta por Jeffrey L. Elman
em 1990
Rede de Hopfield • Única camada de neurônios totalmente e simetricamente
interconectados a partir de operadores de atraso unitário, não havendo conexões de um neurônio para ele mesmo
• Memória autoassociativa sem camada escondida
• A aprendizagem realizada em um único passo
• Na fase de uso, a propagação de uma entrada requer múltiplos passos até que um estado estável seja atingido (saída da rede)
Operadores de atraso de tempo unitário
wij = wji wii = 0
Rede de Hopfield
• Modos de operação – Contínuo: função de ativação não linear diferenciável (e.g. sigmóide ou
tangente hiperbólica) – Discreto: neurônios de McCulloch-Pitts (função de ativação com limiar
e saídas discretas)
• Neurodinâmica – Exemplo da dinâmica de
estados de saída para uma rede de Hopfieldcom 2 neurônios e 2 estados estáveis
saída do neurônio 1
saíd
a do
neu
rôni
o 2
Rede de Hopfield
• Rede operando em modo discreto (neurônio de McCulloch-Pitts)
net = soma ponderada de pesos por entradas Todas as entradas e saídas são bipolares (-1,1)
Rede de Hopfield
• Pode ser vista como uma memória endereçável por conteúdo – Objetivo: recuperar padrões armazenados em memória
em resposta à apresentação de uma versão imcompleta ou ruidosa daquele padrão
• Os estados estáveis da rede correspondem aos padrões a serem armazenados
• Pode ser vista como um corretor de erros na medida em que pode sobrescrever informação inconsistente à luz das evidências apresentadas à rede
Rede de Hopfield
• A essência de uma memória endereçável por conteúdo é mapear uma memória fundamental em um ponto fixo estável (estado protótipo) de um sistema dinâmico
codificação
decodificação
espaço de vetores armazenados
espaço de memórias fundamentais
Rede de Hopfield
• Considere que a rede recebe como entrada um padrão contendo informação parcial, porém suficiente, sobre uma das memórias fundamentais
• Tal padrão é considerado um estado inicial no espaço de estados
• A dinâmica de operação da rede, mediada pelas conexões recorrentes, fará com que haja uma transição de estados na direção da memória estável
Rede de Hopfield
• Treinamento – Como nos Perceptrons, o algoritmo de treinamento é
derivado a partir da minimização de uma função de energia para um padrão particular
– Minimizar a função de energia de Lyapunov
– Como resultado chega-se à regra de treinamento de uma rede de Hopfield operando em modo discreto (aprendizagem do tipo Hebbiana)
∑∑∑ +−=≠ i
iiji ij
iji xxxwE θ,21
Rede de Hopfield
• Treinamento (fase de armazenamento) – Seja ξ1,ξ2,...,ξµ um conjunto N-dimensional de memórias
fundamentais conhecidas (±1) – Computar os pesos sinápticos como sendo:
Rede de Hopfield
• Inicialização (da fase de recuperação) – Seja ξprobe um vetor de entrada (teste) N-dimensional
apresentado à rede. – O algoritmo de uso é inicializado da seguinte forma:
Rede de Hopfield
• Iteração (da fase de recuperação) até convergência (estabilidade) – Atualizar os elementos do vetor de estado x(n)
assincronamente (i.e. randomicamente e um por vez), conforme a regra:
– Repetir a iteração até que o vetor de estado x permaneça inalterado: x(n) = x(n-1)
Rede de Hopfield
• Geração da saída (da fase de recuperação) – O vetor de saída y resultante da rede de Hopfield é
definido como: y = xfixo
Em que xfixo denota o estado estável computado ao final da
etapa anterior (iteração)
Rede de Hopfield
• Capacidade definida pela teoria da informação como:
em que M denota o número de padrões de treinamento (memórias estáveis) e N, o número de neurônios da rede
• Estados espúrios (mínimos locais de energia): quando M é muito grande, passam a existir estados espúrios (estados que não foram treinados, mas que podem atrair as entradas durante o processo de convergência)
• Demo: http://www.cbu.edu/~pong/ai/hopfield/hopfieldapplet.html
ΝΝΜ
log2≈
Redes Recorrentes Derivadas do MLP
• Incorporam em sua estrutura uma rede estática do tipo Perceptron de múltiplas camadas
• Exploram as capacidades de mapeamentos não lineares dos Perceptrons de múltiplas camadas
• Alguns exemplos: – NARX – Perceptrons Recorrentes por Camada – Jordan – Elman
Redes Recorrentes Derivadas do MLP
• NARX: Nonlinear autoregressive with exogenous inputs – Valores passados e presentes da entrada que representam
as entradas externas da rede: un, un-1,...,un-q+2,un-q+1
– Valores de atraso da saída, representados por: yn, yn-1,...,yn-q+1
– O comportamento dinâmico é denotado por uma função não linear: yn+1 = F(yn, yn-1,...,yn-q+1;un, un-1,...,un-q+2,un-q+1)
Redes Recorrentes Derivadas do MLP
• NARX: Arquitetura
entrada
Saída
Perceptron de Múltiplas Camadas
retroalimentação
Redes Recorrentes Derivadas do MLP
• Redes Recorrentes Simples – Elman: três camadas (entrada, escondida e de saída) mais uma
camada de contexto realimentando a camada escondida – Jordan: a camada de contexto realimenta apenas a camada de saída
Operadores de
atraso de tempo
unitário
Camada Escondida
Camada de Saída
Unidades de Contexto
Vetor de Entrada
Vetor de Saída
Percentron de Múltiplas camadas com apenas uma camada escondida
Redes Recorrentes Derivadas do MLP
• Perceptron Multicamada Recorrente (Layer Recurrent Network): caso mais geral para redes de Jordan e Elman
– Ver exemplos no Matlab http://www.kxcad.net/cae_matlab/toolbox/nnet/newlrn.html http://www.mathworks.com/help/toolbox/nnet/ug/bss36ea-1.html
Operadores de atraso de tempo
unitário
1ª Camada
Escondida
Camada de
Saída
Unidades de Contexto
Vetor de Entrada
Vetor de Saída
Percentron com múltiplas camadas escondidas
2ª Camada
Escondida
Previsão e Análise de Séries Temporais
• Vantagens de empregar Redes Neurais Artificiais na Previsão de Séries Temporais – RNAs podem aproximar qualquer função linear ou não linear com um
nível desejado de precisão – aproximadores universais de funções – Podem aprender padrões lineares e não lineares de séries temporais – Podem extrapolar padrões não aprendidos – generalização – RNAs são métodos não paramétricos – não assumem um processo
particular de geração de ruído (e.g. Gaussiano) – A aprendizagem se dá diretamente a partir dos dados – Permitem aproximar o processo subjacente de geração dos dados – Uma mesma arquitetura permite várias aplicações diferentes – Em resumo, RNAs são um paradigma de previsão bastante flexível
Previsão e Análise de Séries Temporais
• Aspectos a obervar – Os períodos de tempo precisam ser iguais – As unidades de medida não devem mudar com o
tempo – As definições do que está sendo observado não
mudam com o tempo – Os dados são medidos corretamente – Identificar e corrigir erros é muitas vezes possível
(ruído ou falha nos instrumentos pode ser modelado, outliers podem ser descartados etc)
Previsão e Análise de Séries Temporais
Tendência
Sazonalidade
Ciclos Irregularidade
Padrões de Séries Temporais
Previsão e Análise de Séries Temporais
• Modelo de uma série temporal – Modelo Aditivo
Zt = Lt + Tt + St + at • Modelo Multiplicativo
Zt = Lt × Tt × St × at
nível (ou dado) (Lt), Tendência (Tt) Sazonalidade (St) e ruído (at)
dado
te
ndên
cia
sazo
nalid
ade
ruíd
o
*para fazer uma decomposição como esta em R, consultar An R Time Series Tutorial
Previsão e Análise de Séries Temporais
• Irregularidades em uma série temporal: muitas vezes precisam ser tratadas pelo especialista antes da aplicação de um modelo de previsão: pulsos, mudanças de nível, quebras estruturais (alterações bruscas na tendência ou sazonalidade)
pulso
mudança de
nível
Previsão e Análise de Séries Temporais
• Previsão de Séries Temporais com Redes Neurais – esquema geral - autoregressão
•Previsões sobre a mesma série •Uma entrada, uma saída •Múltiplas entradas, uma saída •Múltiplas entradas, múltiplas saídas •Diferentes horizontes de previsão (h=1, 2, ... ) •Janela deslizante para obtenção de múltiplas amostras de treinamento, validação e teste
Previsão e Análise de Séries Temporais
• Esquema geral - regressão (linear ou não linear, simples ou multivariada)
•Entrada proveniente de diferentes séries •Previsão de uma série de saída diferente das séries de entrada
Previsão e Análise de Séries Temporais
• Decisões de um projeto envolvendo Redes Neurais – normalmente envolvem experimentação e experiências anteriores – Pré-processamento e Seleção dos Dados
• Escolha dos conjuntos de dados para treinamento/validação/teste • Filtragem de ruído, preenchimento de dados faltantes, correção de erros etc • Mudança de escala (e.g. transformação logarítmica) • Normalização para [0;1] ou [-1;1] • Seleção de Caracterítiscas
– Modelagem da Arquitetura • Número de entradas, camadas escondidas, neurônios nas camadas escondidas, número de
saídas, funções de ativação, conectividade – Treinamento
• Inicialização dos pesos (quantas vezes?) • Método de trainamento (Backpropagation,...) • Parâmetros de treinamento (taxa de aprendizagem, momentum) • Avaliação do melhor modelo treinado (parada antecipada por validação)
– Avaliação da Rede Neural Treinada • Escolha da métrica de avaliação ou função objetivo
Previsão e Análise de Séries Temporais
• Algumas heurísticas para reduzir a complexidade de um projeto usando RNAs – Número de neurônios em MLPs (n=entradas)
• 2n+1 [Hetch-Nielsen, 1990; Lipmann, 1987 ] • 2n [Wong, 1991 ] , n [Tang&Fishwick, 1991] • n/2 [Kang, 1991] , 0.75n [Bailey&Thompsom, 1990] • 1.5 a 3n [Kaastra&Boyd ,1996 ]
– Funções de ativação • Logística ou tangente hiperbólica para neurônios das camadas
escondida e de saída • Logística na camada escondida e linear na camada de saída
– Empregar um Algoritmo Genético ou outra técnica de otimização para escolher os melhores parâmetros
Previsão e Análise de Séries Temporais
• Recomendações finais – Dados: seleção randômica de amostras, divisão dos dados
em treinamento, teste e validação – Realizar diferentes inicializações e treinamentos para
escolher a melhor rede treinada – Empregar validação cruzada para obter estatísticas
robustas – Empregar métricas robustas para avaliação do erro de
teste – Comparar com outros métodos existentes com resultados
para os mesmos dados
Previsão e Análise de Séries Temporais
• Recomendações finais
Padrões e suas Representações
“Pattern recognition is formally defined as the process whereby a received pattern/signal is assigned to one of a prescribed number of classes (categories).” Simon Haykin
“Humans are good at pattern recognition. We receive data from the world around us via our senses and are able to recognize the source of the data.” …“we can recognize the familiar face of a person even though that person has aged since our last encounter, identify a familiar person by his or her voice on the telephone despite a bad connection, and distinguish a boiled egg that is good from a bad one by smelling it. Humans perform pattern recognition through a learning process; so it is with neural networks.” Simon Haykin
Padrões e suas Representações
“Pattern recognition is the scientific discipline whose goal is the classification of objects into a number of categories or classes. Depending on the application, these objects can be images or signal waveforms or any type of measurements that need to be classified. We will refer to these objects using the generic term patterns.” Theodoridis & Koutroumbas
"The real power of human thinking is based on recognizing patterns. The better computers get at pattern recognition, the more human-like they will become.” Ray Kurzweil.
Padrões e suas Representações
“The power of patterns includes the recognition of environmental and climatic trends, behavioural patterns in predators, prey and competing species or conspecifics, providing an insight into information that would produce significant survival advantages.” Alastair Clarke
”Pattern recognition doesn’t just mean that the brain can easily recognize an entity in the same or a different context, it also means that the same quality, the same valuable property, can be recognized in a different entity, [which gives] the brain a built-in capacity for adaptation to changing environments.” Alastair Clarke
Padrões e suas Representações
• Afinal, o que é um Padrão? – Uma abstração para algum objeto concreto, como
características que descrevem uma assinatura, uma face, uma impressão digital etc
– Algum objeto abstrato, como por exemplo o padrão da economia de um país, ou os padrões de mapas de contorno de pressão utilizados em previsão do tempo
– Uma representação quantitativa ou estrutural de uma entidade ou objeto de interesse (tanto concretos como abstratos – e.g. sistemas de dados)
Padrões e suas Representações
• Alguns Tipos de Padrões:
Padrões e suas Representações
• O que são Classes de Padrões? – Conjunto de padrões (não necessariamente idênticos)
que compartilham propriedades em comum – Exemplos:
• Classe dos caracteres A • Classes das faces, impressões digitais, íris etc, de
determinada pessoa • Classe dos usuários com expertise em programação • Classe das fotografias escolhidas para impressão • Classe das assinaturas falas (/verdadeiras) de um cliente • Classe dos clientes com perfil de bom (/mau) pagador
Padrões e suas Representações
• Classes de Padrões – Variabilidade intraclasse: A A A A A A A A A A
Padrões e suas Representações
• Classes de Padrões – Similaridade intercalasse: 0D 1I B8 2Z
Padrões e suas Representações
• O que é Reconhecimento de Padrões? – Processo de categorizar amostras de dados
observados ou medidos como sendo membros de uma dentre um conjunto de classes ou categorias
– Teoria, algoritmos, sistemas para associar padrões a categorias
– Relacionar padrões recém percebidos com padrões percebidos anteriormente
– Aprender a separar padrões de interesse do seu background
Padrões e suas Representações • Mais formalmente (do ponto de vista Estatístico), há vários
tipos de problemas em reconhecimento de padrões • Seja x um conjunto de dados:
– Classificação (Reconhecimento no sentido clássico): encontrar uma função f: x C, em que C é um conjunto discreto pré-definido de classes
– Regressão: encontrar uma função f: x y, em que y ⊆ ℝ é um espaço contínuo
– Agrupamento: mapear o conjunto de dados x em um número k de partições
– Estimação de densidade: modelar p(x), que é a densidade de probabilidade de x
Padrões e suas Representações • Mais formalmente (do ponto de vista Estatístico), há vários
tipos de problemas em reconhecimento de padrões • Seja x um conjunto de dados:
– Classificação (Reconhecimento no sentido clássico): encontrar uma função f: x C, em que C é um conjunto discreto pré-definido de classes
– Regressão: encontrar uma função f: x y, em que y ⊆ ℝ é um espaço contínuo
– Agrupamento (ou Clusterização): mapear o conjunto de dados x em um número k (normalmente desconhecido) de partições
– Estimação de densidade: modelar p(x), que é a densidade de probabilidade de x
Padrões e suas Representações
x1 x2 x3 x4 x5 x6
c1
c2
x C Classificação
x1 x2 x3 x4 x5 x6
y1
y3 y4 y5
y6
x ℝ Regressão
x1 x2 x3 x4 x5 x6
x Estimação de densidade
x1 x2 x3 x4 x5 x6
x Agrupamento
Processo de Reconhecimento de Padrões
Pós-processamento
Classificação
Extração de Características
Pré-processamento e Segmentação
Aquisição
Entrada
Decisão
Processo de Reconhecimento de Padrões
• Aquisição – Medições das variáveis físicas – Aspectos a considerar: resolução, limitações de armazenamento/transmissão
• Pré-processamento e Segmentação – Remoção de ruídos presentes nos dados – Segmentação de padrões de interesse do seu background
• Extração da Características – Representação em termos de características discriminativas
• Classificação – Emprego de características e modelos aprendidos para associar um padrão a
uma categoria • Pós-processamento
– Avaliação da confiança nas decisões tomadas
Processos Supervisionado e Não Supervisionado
• Usualmente, um processo de classificação requer alguma forma de ajuste de parâmetros livres do classificador
• Tal ajuste precede a classificação propriamente dita, e é associado ao conceito de aprendizagem
• Aprendizagem de Máquina é um ramo da Inteligência Artificial que busca algoritmos que permitam a aquisição automática de conhecimento a partir da dados empíricos
• Vários métodos tem sido propostos para a tarefa de aprendizagem, como árvores de decisão, redes neurais, programação genética, máquinas de vetores de suporte, redes bayesianas, dentre muitas outras.
Processos Supervisionado e Não Supervisionado
• A fim de treinar um classificador a partir de dados de treinamento, podem ser adotados tipicamente dois tipos de processos: supervisionado e não supervisionado
• Na aprendizagem supervisionada os dados de treinamento possuem supervisão, ou seja, há um professor que rotula pares de entrada-saída da forma {xk, ck}, k=1..N estão disponíveis
• Na aprendizagem não supervisionada, por outro lado, não há um professor, apenas as entradas {xk} , k=1..N estão disponíveis . Normalmente associada a processos de agrupamento
Outros Esquemas de Aprendizagem
• A aprendizagem semi-supervisionada: envolve tanto dados supervisionados {xk, ck}, como dados não supervisionados {xk}. Apenas dados críticos precisam ser rotulados
• A aprendizagem por reforço: tipo especial de
aprendizagem não supervisionada em que há o papel do crítico (uma espécie de professor), que realimenta o sistema de aprendizagem informando apenas se as saídas do sistema ocorrem na direção certa ou errada
Exemplo de Aplicação
• Classificação de peixes: Badejo e Salmão • Problema: classificar peixes que passam por uma esteira
de acordo com as 2 espécies
Salmão Badejo
Exemplo de Aplicação
141
• O que pode causar problemas durante a aquisição? – Condições de iluminação – Posição do peixe na esteira – Ruído da câmera – etc…
• Quais os passos do processo? 1. Capturar imagem 2. Isolar o peixe (segmentação) 3. Efetuar medições (extração de características) 4. Tomar uma decisão (classificação)
Exemplo de Aplicação
142
Classificação
Ext. Características
Pré-processamento
Badejo Salmão
Exemplo de Aplicação
143
• Pré-processamento: – Melhoramentos da imagens – Separar peixes em contato ou com oclusão – Encontrar os contornos dos peixes
Exemplo de Aplicação
144
• Possíveis características a serem empregadas: – Tamanho – Brilho – Largura – Número e forma das barbatanas – Posição da boca – etc
• Considere que o pescador nos disse que badejo é normalmente maior que salmão – Apesar disso, em média, existem muito exemplos de
peixe em que esta observação não é válida
Exemplo de Aplicação
145
• A fim de melhorar o reconhecimento, podemos empregar mais de uma característica
• Características isoladas podem gerar muita confusão • Combinações de características podem produzir
resultados ainda melhores
1
2
xx
1
2
::
x lightnessx width
brilho
largura
Exemplo de Aplicação
146
Boas características Más características
Exemplo de Aplicação
147
brilho
largura badejo salmão
Exemplo de Aplicação
148
Modelo mais complexo resulta numa fronteira mais complexa
brilho
largura badejo salmão
Exemplo de Aplicação
149
Diferentes critérios levam a diferentes fronteiras de decisão
brilho
largura badejo salmão
Exemplo de Aplicação
150
• Fronteiras de Decisão – O que aconteceria se consumidores encontrassem
badejo em uma lata de salmão? – Devemos também considerar custos associados a
diferentes erros quanto tomamos decisões – Por exemplo, se a empresa sabe que:
• Consumidores que compram salmão vão achar muito ruim encontrar badejo em suas latas
• Consumidores que compram badejo não ficarão tristes em ocasionalmente encontrar um caro salmão em suas latas
– Como esse conhecimento afetaria a sua decisão?
Exemplo de Aplicação
151
• Problemas típicos com a tarefa de extração de características – Características correlacionadas não
necessariamente aumentam a performance – Pode ser difícil extrair certas características – Pode ser computacionalmente caro extrair muitas
características – Características podem estar ausentes
Ciclo Típico de Projeto de Sistemas de Reconhecimento de Padrões
152
• Treinamento e teste
Coletar Dados
• Dependente do domínio de aplicação
Selecionar as Características mais Apropriadas
• Normalmente independente do domínio
Escolher o Modelo de Classificação
• Supervisionado • Não supervisionado
Treinar o Modelo
• Análise de performance com novos dados
Avaliar os resultados
Extração e Seleção de Características
• Reduzir o número de variáveis de um problema pode levar a melhorias no desempenho de classificação e maior entendimento dos dados – Seleção: um subconjunto das variáveis originais é
selecionado para o projeto do classificador – Extração: aplicação de uma transformação linear ou não
linear sobre as variáveis originais a fim de produzir um conjunto reduzido
Extração e Seleção de Características
• Alguns propósitos da redução de variáveis – Facilitar análise dos dados e descobrir relações escondidas – Produzir uma representação mais estável ou discriminativa
que melhora o desempenho de classificação – Remover informação redundante ou irrelevante – Permitir visualização gráfica do conjunto de dados
• Apesar disso, seleção de características não é uma etapa obrigatória para alguns algoritmos de classificação modernos – SVM, Combinações de múltiplos classificadores
Extração e Seleção de Características
• A redução da dimensionalidade pode ser conseguida de várias formas – Identificando quais variáveis não contribuem para a
classificação – Encontrando uma transformação das medições para
um espaço de características de menor dimensão
Extração e Seleção de Características
• Seleção Vs. extração de características
Extração e Seleção de Características
• Seleção e extração de características podem ser tratados como métodos de transformação – Pesos são aplicados às variáveis originais a fim de se
obter as varíaveis transformadas – Processo de aprendizagem faz o ajuste desses pesos – Seleção: pesos binários – Extração: pesos contínuos
Extração e Seleção de Características
• Aprendizagem requer a otimização de uma função critério J, normalmente baseada em uma medida de distância ou dissimilaridade entre distribuições (e entre padrões) – Seleção: otimização sobre todos os possíveis
subconjuntos Xd de tamanho d das p possíveis
~
características X1, …, Xp , busca-se o subconjunto Xd para o qual
– Abordagens sub-ótimas que adicionam características a um conjunto existente são normalmente adotadas
Extração e Seleção de Características
– Extração: otimização executada sobre todas as possíveis transformações das variáveis
– A classe da transformação é normalmente especificada (por exemplo, uma transformação linear do conjunto de variáveis) e busca-se a transformação à para a qual :
Extração e Seleção de Características
• Seja X uma característica, X o conjunto de todas as características e S = X – {X}
• Características redundantes: são fortemente correlacionadas • Características irrelevantes não contribuem para a regra de
classificação – Forte relevância: X é fortemente relevante s.s.s.
– Fraca relevância: X é fracamente relevante s.s.s. e |
– Irrelevância: X é irrelevante s.s.s
Extração e Seleção de Características
• Caracterização das abordagens para seleção de características – Métodos de filtragem: antes da classificação, propriedades estatísticas
das variáveis são empregadas para remover variáveis que contém pouca informação
• Dependem de medidas das características gerias dos dados de treinamento, como distância e dependência
– Métodos wrapper: computacionalmente mais caros que os anteriores, nestes métodos subconjuntos de treinamento são avaliados dentro de um algoritmo de classificação, tendo a acurácia de classificação como medida da qualidade do conjunto de características – dependente do classificador
– Métodos embarcados (embedded): a busca por um conjunto ideal de características é incorporada ao projeto do classificador – pode ser vista como um problema de busca no espaço combinado de subconjuntos de características e modelos de classificação
Análise de Componentes Principais
• Abordagem muito utilizada para extração de características
Conjunto de Treinamento
X
Normalização
X = X - X
Decomposição
XX=LUV
Seleção de Autovetores V*=[vi’s com maiores ui’s]
Projeção de Padrão de
Teste Y
P = Y × V*
Avaliação de Performance
• Matriz de Confusão–Múltiplas Classes
Classe Verdadeira (Ground Truth)
Classe 1 Classe2 ... Classe C
ClassePredita
Classe 1 Acerto 1 Erro 1,2 Erro 1,C
Classe 2 Erro 2,1 Acerto 2 ... Erro 2,C
...
Classe C Erro C,1 Erro C,2 Acerto C
Avaliação de Performance
• Matriz de Confusão– Duas classes
Classe Verdadeira
Positiva Negativa
ClassePredita
Positiva Verdadeiros Positivos (TP)
Falsos Positivos (FP)
Negativa Falso Negativos (FN)
VerdadeirosNegativos (TN)
Avaliação de Performance
• Tipos de Erro e Relação com Testes Estatísticos– A noção de erro estatístico envolve o estabelecimento de uma hipótese nula H0 que usualmente corresponde a uma condição default da natureza do problema• e.g. a assinatura é verdadeira, a região contém uma face, a pessoa é saudável etc.
– A hipótese alternativa tipicamente é a negação da hipótese nula
Avaliação de Performance
• Tipos de Erro e Relação com Testes Estatísticos
Hipótese nula (H0) éverdadeira Hipótese nula (H0) é falsa
Rejeitar a hipótese nula Erro tipo I(Falsos Positivos – FP)
Saída correta(Verdadeiros Positivos ‐ TP)
Falha em aceitar a hipótese nula
Saída correta(Verdadeiros Negativos – TN)
Erro tipo II(Falsos Negativos – FN)
Avaliação de Performance
• Tipos de Erro e Relação com Testes Estatísticos– Taxa de erro tipo I (taxa de falsa aceitação)
• Também conhecida como tamanho (size) do teste, sendo denotado em Estatística por (alpha)
• Usualmente equivale ao nível de significância do teste• No caso de uma hipótese nula simples, é a probabilidade de erro tipo I
• No caso de uma hipótese composta, é o máximo de todas as possíveis probabilidades de erro tipo I
– Taxa de erro tipo II (taxa de falsa rejeição)• Denotado em Estatística por (beta) está relacionada à potência (power) de um teste de hipóteses
Avaliação de Performance
• Regiões de Acerto e Erro
Avaliação de Performance
• Medidas de Performance
Avaliação de Performance
• Curvas ROC– Gráfico que relaciona as taxas de verdadeiro positivo e falso positivos à medida que um limiar de classificação é variado
– Objetivam avaliar o desempenho de classificadores sob diferentes condições operacionais
Avaliação de Performance
• Curvas ROC– Exemplo
Avaliação de Performance
• Curvas ROC– Exemplo
Avaliação de Performance
• Curvas ROC– Outro Exemplo:Detecção deFaces
Avaliação de Performance
• Particionamento dos Dados– Dados de treinamento para ajuste dos parâmetros livres dos classificadores
– Dados de validação para decidir quando parar o treinamento e evitar o overfitting
– Dados de teste para estimar como será a performance (taxas de acerto e de erro) do sistema num ambiente real
Treinamento Validação Teste
50% 25% 25%
seleção aleatória
• Particionamento dos Dados– Problema em usar apenas um conjunto de teste
– Apenas um experimento de avaliação de performance será realizado
– Mesmo usando seleção aleatória dos padrões que irão compor os conjuntos, há o risco do conjunto de teste ser uma amostra muito fácil ou muito difícil de classificar
Avaliação de Performance
• Particionamento dos Dados– Algumas soluções
– Leave‐one‐out Cross Validation– Reservar um padrão k para teste, treinar com os N‐1
restantes, avaliar a performance no padrão k, repetir o experimento para k=1,…,N e reportar o erro/acerto médio
– K‐fold Cross Validation– Dividir o conjunto de dados em k partições
(subconjuntos disjuntos) de mesma dimensão– Reservar uma partição i para teste, treinar com as k‐1
partições restantes, testar com a partição i, repetir o experimento para i = 1,...,k, e reportar o erro/acerto médio
Avaliação de Performance
• Leave‐one‐out Cross Validation
Avaliação de Performance
N padrões
treinamentotesteTreinar em (N -1) padrõespadrão
k
• K‐fold Cross Validation
Avaliação de Performance
k-partições
treinamentotesteTreinar em (k -1) partiçõesTeste
• O Problema do Overfitting (Super‐especialização)– Fatores como poucos dados de treinamento, modelo de classificação muito complexo (muitos parâmetros livres) treinado exaustivamente podem levar a erros de treinamento muito pequenos e a erros de teste elevados
– Emprego de um conjunto de validação pode ajudar quando o treinamento deve ser encerrado
Avaliação de Performance
• O Problema do Overfitting (Super‐especialização)
Avaliação de Performance
complexidade
Erro de treinamento
Erro de teste/validaçãoPontos de treinamento
Pontos de teste/validação
parar o treinamento