Redes Neurais - Computação UFCGhmg/disciplinas/posgraduacao/rn-copin-2014.3/... · – A rede...

Post on 11-Nov-2018

212 views 0 download

transcript

PPGCC/UFCG Set/2014

Um curso sobre

Redes Neurais Por

Herman Martins Gomes hmg@dsc.ufcg.edu.br

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