Você está na página 1de 154

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/360458528

Uma Breve Introdução ao Reconhecimento de Padrões

Preprint · May 2022


DOI: 10.13140/RG.2.2.22605.10721

CITATIONS READS

0 3,219

1 author:

Alexandre L M Levada
Universidade Federal de São Carlos
130 PUBLICATIONS   391 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Information geometry in random field models View project

Unsupervised metric learning View project

All content following this page was uploaded by Alexandre L M Levada on 08 May 2022.

The user has requested enhancement of the downloaded file.


Departamento de Computação
Centro de Ciências Exatas e Tecnologia
Universidade Federal de São Carlos

Uma Breve Introdução ao


Reconhecimento de Padrões
Fundamentos básicos de classificação e extração de atributos
para aprendizado de máquina e ciência de dados

Prof. Alexandre Luis Magalhães Levada


Email: alexandre.levada@ufscar.br
Índice
Introdução ao Reconhecimento de Padrões..........................................................................................3
O Problema da classificação de padrões..........................................................................................3
Regressão linear....................................................................................................................................4
Regressão Linear Múltipla.............................................................................................................11
Estimação do vetor de parâmetros.................................................................................................12
O Perceptron.......................................................................................................................................14
Adaline – Adaptive Linear Neuron.....................................................................................................21
Regressão logística.............................................................................................................................24
Perceptron Multicamadas e o algoritmo Backpropagation.................................................................31
Teoria de Decisão Bayesiana..............................................................................................................39
Classificador Bayesiano sob hipótese Gaussiana..........................................................................43
Limites superiores para o erro na classificação Bayesiana............................................................59
Classificação não paramétrica............................................................................................................62
Classificador de Mínima Distância (Nearest Mean Classifier).....................................................62
KNN (K-Nearest Neighbors).........................................................................................................63
Support Vector Machines...............................................................................................................66
Agrupamento de dados.......................................................................................................................78
K-Médias (K-Means).....................................................................................................................78
Gaussian Mixture Models (GMM)................................................................................................80
Autovalores e autovetores: uma breve revisão...................................................................................89
Análise de Componentes Principais (PCA)........................................................................................93
Extração de atributos e redução de dimensionalidade linear.........................................................93
PCA pela Maximização da Variância........................................................................................94
PCA pela Minimização do erro quadrático médio....................................................................97
Análise discriminante linear (LDA)............................................................................................100
Non-negative matrix factorization (NMF)...................................................................................106
Redução de dimensionalidade não linear.........................................................................................110
Kernel Principal Component Analysis.........................................................................................110
Kernel Fisher Discriminant Analysis (KFDA)............................................................................110
Aprendizado de variedades (Manifold Learning).............................................................................117
Isometric Feature Mapping (ISOMAP).......................................................................................117
Local Linear Embedding (LLE)..................................................................................................122
Laplacian Eigenmaps...................................................................................................................125
Locality Preserving Projections (LPP)........................................................................................143
Bibliografia.......................................................................................................................................146
Sobre o autor.....................................................................................................................................147

“Everything makes a pattern in life.”


(Anthony T. Hinks)
Introdução ao Reconhecimento de Padrões
Reconhecer padrões significa classificar objetos em categorias

Mais formalmente, podemos definir esse problema como o de estimar uma função que particiona o
espaço de atributos em regiões de influência.

O Problema da classificação de padrões

Dado Z = (X, Y) tal que , X ={ x⃗1, x⃗2, … , x⃗n } é um conjunto de amostras/vetores, com ⃗ x i∈ Rd e
Y ={ y 1, y 2, … , y n } é um conjunto de rótulos, com y i={1, 2, … , c } , um classificador é uma
função f: X → Y que prediz um y ∈Y para todo ⃗x ∈ X . A função f: X → Y induz uma
partição em X em classes/regiões.

Obs: X: Conjunto de treinamento (o conjunto de todos os vetores observados define o que


chamamos de espaço de características)
Y: Rótulos das amostras de X (ground truth) – pode ou não estar disponível
Classificação supervisionada: é mandatório ter o conjunto de rótulos Y
Agrupamento de dados (clustering): não temos acesso ao conjunto de rótulos Y

Note que se Y é um conjunto contínuo, temos um problema de regressão.

Perguntas: Como estimar função f? Existem diversas abordagens para construir f. Qual a melhor?
Que critérios adotar na definição de f? → Objetivo de reconhecimento de padrões

Existem diversas abordagens que fundamentam o desenvolvimento de classificadores. A figura a


seguir ilustra as abordagens mais conhecidas dentro do reconhecimento de padrões estatístico.
Basicamente, um classificador pode ser supervisionado ou não, quando há ou não presença de
amostras de treinamento rotuladas, paramétrico ou não, se assumimos uma forma definida para as
densidades de probabilidade ou não.
Regressão linear
Regressão linear é um método estatístico de mínimos quadrados que nos permite estudar e analisar
relacionamentos entre duas variáveis aleatórias:

- uma variável, denotada por x, denominada de variável independente ou exploratória;


- outra variável, denotada por y, denominada de variável resposta ou dependente;

Antes de proceder, devemos esclarecer que tipos de relacionamentos não nos interessa estudar na
regressão linear: relacionamentos determinísticos ou funcionais. A figura a seguir ilustra um
exemplo de relacionamento determinístico: a relação entre temperaturas em Celsius e Farenheit.

Note que os pontos (x, y) observados caem diretamente sobre uma linha reta. Isso ocorre porque o
relacionamento entre graus Celsius e Farenheit é dada por:

9
F= C+ 32
5

ou seja, se você conhece a temperatura em Celsius você pode usar essa equação para determinar a
temperatura em Farenheit exatamente. Alguns outros exemplos de relações determinísticas incluem:

- circunferência = 2 π r
- Lei de Ohm: U = Ri
- velocidade = s / t

Para cada uma dessas relações determinísticas existe uma função que descreve exatamente o
relacionamento entre duas variáveis. Regressão linear não está interessada em estudar esses tipos de
relações, mas sim relações estatísticas (não-determinísticas).

O exemplo a seguir ilustra um relacionamento estatístico entre duas varáveis: a variável resposta y é
a mortalidade devido ao câncer de pele (número de mortes para cada 10 milhões de pessoas) e a
variável exploratória x é a latitude do centro de cada um dos 49 estados norte-americanos.
O gráfico sugere um relacionamento negativo entre a latitude e a mortalidade devido ao câncer de
pele, mas o relacionamento não é perfeito, ou seja, o gráfico exibe um comportamento aproximado,
uma tendência, devido ao espalhamento e a incerteza presente nos dados. Alguns outros exemplos
de relacionamentos estatísticos incluem:

- Altura e peso
- Álcool consumido e taxa de álcool no sangue
- Capacidade pulmonar e anos de fumo

Assim, o problema em questão consiste em, dado um conjunto de pontos observados ( x i , y i )


para i=1,.. , n , estimar o melhor relacionamento linear possível entre as duas variáveis. Em
outras palavras, desejamos encontrar a reta que melhor se ajusta aos dados. O grau de ajuste é
definido em termos dos erros entre os verdadeiros valores de y i e suas predições lineares y^ i .
O objetivo consiste em encontrar a reta

y=α +β x

que minimiza a soma dos resíduos ao quadrado, dado por


n n n
Q(α , β)=∑i =1 ei =∑i=1 ( y i− y^ i ) =∑i=1 ( y i−α−β xi )
2 2 2

Derivando Q(α , β) em relação a α e igualando o resultado a zero, tem-se:

d Q( α ,β) n
=∑i=1 ( y i−α−β x i )=0

Aplicando a distributiva:
n n
∑i=1 y i−n α−β ∑i=1 x i=0
Dividindo tudo por n, temos:

ȳ−α−β x̄=0
Isolando α chega-se a:

α= ȳ−β x̄ (I)

Da mesma forma, derivando Q(α , β) em relação a β nos leva a:

d Q( α ,β) n
=∑i =1 ( y i−α−β x i )x i=0

Aplicando a distributiva:
n
∑i=1 ( x i y i−α x i−β x 2i )=0
Separando o somatório nos leva a:
n n n
∑i=1 x i y i−α ∑i=1 xi −β ∑i=1 x 2i =0
Dividindo tudo por n temos:

xy−α x −β x 2=0 (II)

Substituindo a equação (I) na equação (II) temos:


2
xy−( y−β x )x−β x =0

Aplicando a distributiva:

xy−x y+β x 2−β x 2=0

Finalmente, isolando β nos leva a:

xy−x y
β= 2 2
(inclinação da reta)
x −x

Após o cálculo de β , basta substituir seu valor em α para determinar seu valor e
consequentemente a equação da reta desejada. Em geral, após estimar os parâmetros α e β e
construir a reta de regressão, utilizamos a equação da reta para estimar valores de y para novos
valores de x.

Coeficiente de determinação

Em problemas de regressão linear, o coeficiente de determinação , denotado por r 2 é a proporção


da variância da variável dependente que é predita a partir da variável independente. É uma medida
de ajustamento de um modelo estatístico linear generalizado. Seu valor varia de 0 a 1, indicando,
em porcentagem, o quanto o modelo consegue explicar os valores observados. Quanto maior r 2
mais explicativo é o modelo, melhor ele se ajusta a amostra.

A seguir iremos deduzir a expressão de r 2 a partir de um modelo de regressão linear simples.


Da figura acima, fica claro que para um ponto yi vale a relação y i− y=( y i− y^ i )+( y^ i− y) .
Elevando ambos os lados ao quadrado temos:

( y i− y )2=[( y i− y^ i )+( y^ i− y)]2

Somando para todos os pontos (aplicando somatório):

∑ ( y i− y )2=∑ [( y i− y^i )+( y^i− y)]2=∑ ( y i− y^i )2 +2 ∑ ( y i− y^ i )( y^i− y )+∑ ( y^ i− y )2


i i i i i

Iremos chamar as quantidades acima de:

TSS=∑ ( y i − y)2 (Total Sum of the Squares)


i

RSS=∑ ( y i− y^ i )2 (Residual Sum of the Squares)


i

ESS=∑ ( y^ i− y)
2
(Explained Sum of the Squares)
i

Desejamos mostrar que TSS = ESS + RSS. Para isso, devemos mostrar que o termo

∑ ( y i− y^i )( y^ i− y ) (*)
i

é igual a zero. Do modelo de regressão linear sabemos que:

y^ i=α +β x i
y=α +β x

Então,
y^ i− y=α+β x i−α−β x =β(x i−x )
y i− y^ i=( y i− y )−( y^ i− y )=( y i− y )−β( xi −x)

Também sabemos que:

xy−x y
β= (**)
x 2−x 2

O numerador de (**) pode ser reescrito como:

xy−x y=xy−x y−x y + x y

Multiplicando tudo por n (podemos fazer isso pois iremos multiplicar o denominador também):
n n n n n n n

∑ x i y i− y ∑ xi −x ∑ y i +n x y=∑ x i y i− y ∑ x i−x ∑ y i +∑ x y
i=1 i=1 i=1 i=1 i=1 i=1 i=1

Agrupando em um somatório único:


n n n

∑ ( x i y i−x i y − y i x + x y ) =∑ [ y i ( x i−x )− y (x i−x )]=∑ ( xi −x)( y i− y)


i=1 i=1 i=1

Analogamente, o denominador de (**) pode ser reescrito como:

x 2−x 2=x 2−x 2−x 2+ x 2

Multiplicando tudo por n (podemos fazer isso pois multiplicamos o numerador também):
n n n n n n n

∑ x i −x ∑ xi −x ∑ x i +n x =∑ x i −x ∑ x i−x ∑ x i+∑ x
2 2 2 2

i=1 i=1 i=1 i=1 i =1 i=1 i

Agrupando em um somatório único:


n n n n

∑ ( x −x x i−x i x + x )=∑ [ xi ( x i−x )−x (x i−x )]=∑ ( x i−x)( x i−x )=∑ ( xi −x)2
2
i
2

i=1 i =1 i=1 i=1

Portanto, o valor de β é dado por:


n

∑ ( x i−x )( y i− y )
β= i=1 n

∑ ( x i−x )2
i=1

Voltando a equação (*), temos:

∑ ( y i− y^i )( y^ i− y )=β ∑ ( x i−x)( y i − y^ i)


i i

Substituindo ( y i− y^ i ) chegamos em:


β ∑ (x i−x)[ y i− y −β( x i−x )]=β
[∑ (x −x )( y − y )−β ∑ ( x −x) ]
2
i i i
i i i

Finalmente, substituindo o expressão para o β mais interno nos leva a:

[ ]
∑ ( x i−x )( y i− y )
[i ] i
β ∑ ( x i−x)( yi − y)−β ∑ (x i−x ) =β ∑ ( x i−x)( y i− y )− ∑
i 2 2
( x i−x ) =0
i ∑ ( x i−x ) 2
i
i

E portanto, temos a relação desejada TSS = ESS + RSS, dada por:

∑ ( y i− y )2=∑ ( y i− y^ i)2 +∑ ( y^ i− y )2
i i i

Define-se o coeficiente de determinação como a fração entre ESS e TSS:

2 ESS RSS
r= =1−
TSS TSS

Pode-se mostrar que r nada mais é que o coeficiente de correlação de Pearson uma vez que

[ ]
∑ (x i− x)( y i− y )
2

i
∑ ( x i−x)2
∑ ( xi −x) [∑ ( xi−x )( yi− y )]
2 2

ESS
∑ ( y^ i − y)2 β2 ∑ ( x i−x )2 i
i
i
r 2= = i = i
= =
TSS ∑ ( y i − y)2 ∑ ( y i− y )2 ∑ ( y i− y ) 2
∑ (x i−x )2 ∑ ( y i− y )2
i i i i i

Obs:

∑ ( x i−x)( y i − y)=∑ xi y i− y ∑ x i−x ∑ y i+ n x y (dividindo numerador e denominador por n)


i i i i
xy−x y−x y+ x y=xy −x y

∑ ( x i−x)(x i−x )=∑ x 2i −x ∑ xi −x ∑ x i +n x 2 (dividindo numerador e denominador por n)


i i i i
2 2 2 2 2 2
x −x −x + x =x −x

Analogamente, para a variável y temos ∑ ( y i− y )( y i− y )= y 2− y 2


i
Portanto, chegamos em:

2 [ xy −x y ] 2
r= (quadrado do coeficiente de correlação de Pearson)
(x 2−x 2 )( y 2− y 2 )

Quanto melhor a regressão linear ajusta os dados em comparação com a simples média, mais
próximo de 1 o valor de r ² . As áreas na figura a seguir indicam o quadrado dos resíduos.
RSS
r 2=1− (RSS é a soma das áreas dos quadrados em relação a reta de regressão)
TSS

Quanto menor RSS, melhor pois a curva se ajusta melhor aos pontos.

Exercício: Taxas de juros fornecem um bom indicador para a previsão de aquecimento ou


desaquecimento do mercado imobiliário. Em geral, com a queda na taxa de juros, nota-se um
aumento no número de financiamentos imobiliários. Suponha os dados da tabela abaixo, em que x
denota a taxa de juros e y denota o número de financiamentos imobiliários em uma determinada
cidade.

Ano 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996

x (%) 6.5 6.0 6.5 7.5 8.5 9.5 10.0 9.0 7.5 9.0 11.0 15.0

y 2165 2984 2780 1940 1750 1535 962 1310 2050 1695 856 510

a) Encontre a reta de regressão para os dados, computando manualmente os valores α e β


2
Para encontrar α e β devemos computar as quantidades: x , y , xy , x e x2

106 20537 163160 1003.5


x= =8.833 , y= =1711.416 , xy= =13596.667 , x 2= =83.625
12 12 12 12
2 2
x =8.833 =78.021

Assim, temos:

xy−x y 13596.667−8.833∗1711.416 13596.667−15116.937 −1520.27


β= = = = =−271.28
2
x −x
2
83.625−78.021 83.625−78.021 5.604

α= ȳ−β x̄=1711.416−(−271.28)∗8.833=1711.416+2396.216=4107.632
E a equação da reta está definida como:

y=4107.63−271.28 x

b) Estime o número de financiamentos em 1997 se a taxa de juros for reduzida para 12.5%

Aplicando a equação da reta obtida no item a), temos:

^y =4107.63−271.28∗12.5=716.63≈717

c) Compute o coeficiente de correlação de Pearson r

O coeficiente de correlação é dado por:

xy−x y
r=
√(x −x )( y − y )
2 2 2 2

2
e por isso precisamos computar a quantidade y

41212111
y 2= =3434342.58
12

13596.667−15116.937 −1520.27 −1520.7


r xy= = = =−0.9039
√(83.625−78.021)∗(3434342.58−2928924.18) √ 5.6∗505418.4 1682.36
d) De acordo com o modelo, qual deveria ser a taxa de juros para que em um ano fossem realizados
1000 financiamentos?

Para isso devemos resolver a seguinte equação em x:

y=4107.63−271.28 x

1000−4107.63
x= =11.45
−271.28

Regressão Linear Múltipla

Em muitos problemas do mundo real nos deparamos com múltiplas variáveis independentes. Dado
um conjunto de amostras {( ⃗ xi , y i)}ni=1 , com ⃗
x i=[ x i 1 , x i2 , ... , x ik ]∈ R k o objetivo consiste em
estimar o hiperplano em Rk que melhor representa os dados observados. O grau de ajuste do
hiperplano aos vetores é definido em termos dos erros entre os verdadeiros valores de y i e suas
predições lineares y^ i . O modelo linear é dado por:

T⃗
y i=β0+β1 x i 1 +β2 x i2 +...+βk x ik +εi =⃗xi β+ε i para i=1,2,. .., n

com

⃗x Ti =[1, x i 1 , x i 2 , ... , x ik ] e

β=[β0, β1 ,β2 ,... ,βk ] sendo vetores pertencentes a Rk .

Podemos expressar as n equações anteriores ( i=1,2,... , n ) na forma matricial:

⃗y= X ⃗
β +⃗ε

onde

[ ] [ ][ ] []
T
1 x 11 x12 ... x 1 k

[]
y1 x⃗1 β1 ε1
1 x 21 x22 ... x 2 k ⃗ β2 e ⃗ε = ε2
T
⃗y= y 2 , X = x⃗2 = , β=
... ... ... ... ... ... ... ... ...
1 xn 1 xn 2 ... x nk βn εn
yn x⃗n
T
n×k

em que X é a matriz dos dados (data matrix) e ⃗ β é o vetor de parâmetros que controlam o
hiperplano ótimo. Após a cálculo do vetor de parâmetros ⃗
β , podemos estimar o vetor ⃗y para
^ ⃗
novos dados de entrada. Define-se ⃗y= X β como esse estimador linear ótimo de ⃗y . Note que
geometricamente ⃗^y pertence a um subspaço k-dimensional de Rn (hiperplano ótimo). Isso
decorre do fato de que o número de colunas LI de X é k. Note que ⃗^y é a projeção de ⃗y no
hiperplano gerado pelas colunas de X .

Estimação do vetor de parâmetros

Em termos matemáticos, desejamos encontrar o vetor de parâmetros ⃗


β que minimiza a soma dos
resíduos ao quadrado, ou seja:
n
β ) =∑ εi =⃗
J (⃗ ε ⃗ε =( ⃗y −⃗^y) (⃗y− ⃗^y )=(⃗y−X ⃗ ⃗
2 T T T
β) ( ⃗y − X β)
i=1

Assim, a condição para minimizar o funcional J ( ⃗


β) é dada por:
∂J ( ⃗
β)
= X ( ⃗y−X ⃗
T
β)=0
∂⃗β

Resolvendo a equação temos:

X ⃗y −X X ⃗
T T
β=0

(X X) ⃗
T T
β=X ⃗y

⃗^ =( X T X )−1 X T ⃗y = X + ⃗y
β

+ T −1 T
com X =( X X ) X sendo a matriz pseudo inversa de X.
O Perceptron
Trata-se do primeiro modelo matemático baseado no conceito de que a unidade básica de
processamento de informação no cérebro biológico são os neurônios. O estudo desse modelo
primitivo de computação é importante pois ele define a base para o funcionamento de redes neurais
artificiais utilizadas em tarefas de aprendizado profundo. É um classificador supervisionado binário.

O Perceptron foi o primeiro algoritmo algoritmo de aprendizado desenvolvido na história. Sua ideia
inicial é baseada nos trabalhos pioneiros de McCulloch e Piits em 1943, que propuseram uma
analogia entre neurônios biológicos e portas lógicas com saídas binárias. De maneira intuitiva,
neurônios podem ser entendidos como as unidades básicas de redes neurais no cérebro biológico.

O fluxo de informação é como segue: sinais chegam nos dendritos e são acumulados no corpo
celular. Se o valor acumulado excede um determinado limiar, um sinal de saída é gerado pelo
axônio. A figura a seguir mostra esse processo de maneira ilustrativa.

Foi mais tarde, em 1957, que Rosenblatt publicou o primeiro conceito sobre a regra de treinamento
de perceptrons. A ideia básica era desenvolver um algoritmo para aprender os pesos sinápticos do
neurônio que eram multiplicados por um vetor de padrões de entrada para então decidir se o
neurônio deve disparar ou não. No contexto de reconhecimento de padrões esse algoritmo seria útil
para determinar se uma amostra x pertence ou não a uma determinada classe, ou seja, o neurônio
dispararia se x pertencesse a classe 1 e não dispararia se pertencesse a classe 2.
Em resumo a ideia consiste em imitar como um neurônio no cérebro funciona: determinar
condições matemáticas para que se possa decidir quando um ele deve disparar ou permanecer
estático. Nas palavras, de Rosenblatt, o algoritmo perceptron fornece uma maneira objetiva de um
neurônio aprender pesos sinápticos de modo a construir uma superfície de separação linear
(hiperplano) que seja capaz de discriminar os dados em 2 classes ou categorias. A figura a seguir
ilustra a arquitetura básica de um neurônio artificial do tipo perceptron.

Fundamentação matemática

Iremos adotar a convenção de que no problema de classificação binário, a classe 1 ou positiva


possui rótulo +1 enquanto que a classe 2 ou negativa possui rótulo -1.

A primeiro passo consiste na definição de uma função de ativação para o neurônio, responsável por
dizer quando ele dispara ou não. Iremos definir a função g( z ) como sendo a função degrau
unitário, ou seja, ela fornece como saída +1 se o valor de z é maior que θ e -1 se o valor de z é
menor que θ , ou seja:

{
g( z )= +1, z≥θ
−1, z <θ

A figura ao lado ilustra essa função.


Introdução O que o neurônio faz é multiplicar cada peso pela sua respectiva entrada e acumular. Em
seguida, esse valor é passado para a função de ativação, que responde positivamente com +1 ou
negativamente com -1. Sendo assim, temos:
k
z=w 1 x 1 +w 2 x 2+ ...+ wk x k =∑ wi xi =⃗
T
w ⃗x
i=1

T T k
onde w ⃗ =[w1 , w2 , ..., w k ] é o vetor de pesos e ⃗x =[ x1 , x2 , ... , x k ]∈ R é um vetor de padrões
(amostra do conjunto de dados a ser classificado).

Para simplificar a notação, é usual trazer θ para o lado esquerdo da equação e defini-lo como o
componente zero do vetor de pesos, ou seja, w 0=−θ , fazendo x 0=1 . Assim, a função
g( z ) pode ser simplificada para:

{
g( z )= +1, z≥0
−1, z <0

e a variável z torna-se:
k
z=w 0 x 0 + w1 x 1 +w 2 x 2 +...+w k x k =∑ wi x i=⃗
T
w ⃗x
i=0

Algoritmo de treinamento

Por convenção iremos adotar a seguinte notação:

{ x⃗i , di } para i=1,... , n : denota o conjunto de treinamento com as amostras x i e os



seus respectivos rótulos y i
y i=g( x⃗i ) : denota a saída do perceptron para um vetor de entrada ⃗x
w
⃗ : debita o vetor de pesos

O algoritmo é sumarizado pelo seguinte conjunto de passos:

Passo 1: Inicialize o vetor de pesos com coeficientes aleatórios (uniforme [0,1])

Passo 2: Para cada amostra x i do conjunto de treinamento faça:


a) Calcule a saída do neurônio: y i=g( x⃗i )

b) Atualize os pesos sinápticos: w


⃗ =⃗ x i , onde
w + α(d i− y i )⃗ α∈[0,1] é a taxa de
aprendizado.
n
1
Passo 3: Repita o passo 2 um número finito de passos, ou até que o erro ∑|d − y j|
n j=1 j
seja
menor que um limiar γ pré estabelecido.

Pode-se mostrar que se o conjunto de dados é linearmente separável, o algoritmo perceptron


converge para um vetor de pesos que define um hiperplano separador num número finito porém
desconhecido de passos.
Interpretação geométrica

A equação w ⃗ T ⃗x =w 1 x 1+ ...+ wk x k −θ=0 define um hiperplano normal ao vetor de pesos w


⃗ e
deslocado de θ em relação a origem (bias). A figura a seguir ilustra esse cenário em um caso em
que θ=0 (hiperplano passa pela origem).

Suponha que α=0.5 de modo que a regra de atualização dos pesos é dada por:

w
⃗ =⃗
w +0.5(di − y i) ⃗
xi

Note que sempre que a saída do neurônio ( y i ) é igual ao rótulo da amostra ( d i ), o vetor de
pesos permanece inalterado. Se a amostra é positiva, ou seja, d i=1 mas o neurônio prediz
y i=−1 , então o novo vetor de pesos será w ⃗ =⃗w+ ⃗
xi , e o hiperplano será rotacionado de modo
que a amostra em questão seja positiva. Por outro lado, se a mostra é negativa, ou seja, d i=−1
mas o neurônio prediz y i=1 , então o novo vetor de pesos será w ⃗ =⃗w −⃗x i , e o hiperplano será
rotacionado de modo que a amostra em questão seja negativa. A figura a seguir ilustra o processo de
rotação do plano separador ao se classificar uma amostra de maneira errônea.
O processo segue até que todas as amostras positivas encontram-se de um lado do hiperplano e
todas as amostras negativas encontram-se do outro lado.

T
O que percebemos ao final do algoritmo é que se w
⃗ é um hiperplano separador, então:
T
⃗ ⃗x ≥0 para todo ⃗x ∈P
w (classe positiva, y = 1)
T
⃗ ⃗x < 0 para todo ⃗x ∈N
w (classe negativa, y = -1)
Teorema: Convergência do perceptron de incrementos fixos
Sejam os conjuntos de treinamento P e N linearmente separáveis. Considere que as entradas
apresentadas ao perceptron são originadas desses conjuntos. Então, o perceptron converge depois de
n0 iterações no sentido de que

w
⃗ (n0 )=⃗
w (n0 +1)= w
⃗ (n 0+2)=.. .

é um vetor solução para n0≤nmax .

Prova:

Iremos considerar, sem perda de generalidade, que inicialmente o vetor de pesos é nulo, ou seja,
⃗ (0)=⃗
w 0 . Suponha ainda que para n=1,2,3,.. . , w ⃗ T (n) ⃗x (n)< 0 (perceptron prediz y = -1) e
os vetores ⃗x (n) pertençam ao conjunto P (classe positiva). Isso significa que o perceptron
inicialmente classifica incorretamente os vetores ⃗x (1), ⃗x (2), ... ,⃗x (n) . Então, considerando a taxa
de aprendizado α=0.5 , a correção do vetor de pesos será:

w
⃗ (n+1)=⃗
w (n)+⃗x (n) para ⃗x (n)∈P

⃗ (0)=⃗
Dado a condição inicial w 0 é possível iterativamente resolver essa equação:

w
⃗ (1)=⃗x (0)
w
⃗ (2)=⃗x (1)+⃗x (0)
w
⃗ (3)=⃗x (2)+⃗x (1)+⃗x (0)
...
w
⃗ (n+1)=⃗x (1)+ ⃗x (2)+...+⃗x (n) (*)

Como as classes P e N são linearmente separáveis, existe uma solução w ⃗ o para a qual
T
w⃗ o ⃗x ( n)> 0 para todos os vetores pertencentes ao conjunto P. Para essa solução w ⃗ o podemos
definir um número positivo α como:

⃗ To ⃗x (n)
α= min w (menor valor de produto escalar para vetores em P é sempre positivo) (**)
x (n )∈ P

T
Assim, multiplicando ambos os lados de (*) por w
⃗o :

T T T T
w
⃗ow
⃗ (n+1)=⃗
w o ⃗x (1)+ w
⃗ o ⃗x (2)+...+ w
⃗ o ⃗x (n)

De acordo com a definição dada em (**), temos:

⃗ To w
w ⃗ (n+1)≥n α (3)

Em seguida, fazemos uso de uma desigualdade conhecida como desigualdade de Cauchy-Schwarz.


2 2 2 T
Essa desigualdade nos diz que ‖⃗
u⋅⃗v‖ ≤‖u‖ ⋅‖v‖ . Aplicando em relação a w
⃗o e w ⃗ (n+1) :

2 2 T 2
‖⃗
w o‖ ‖⃗
w ( n+ 1)‖ ≥[ w
⃗o w
⃗ (n+1)] (4)

T
onde o produto w ⃗ow⃗ ( n+1) é uma quantidade escalar. A partir das equações (3) e (4) é fácil
perceber que por transitividade temos:
w o‖2‖⃗
‖⃗ w ( n+ 1)‖2≥n2 α2

ou de maneira equivalente
2 2
2 nα
‖⃗
w (n+1)‖ ≥ 2
(5)
‖⃗
w o‖

Note que definimos um limite inferior para a norma do vetor de pesos. A princípio, pode parecer
alarmante, pois quando o número de iterações cresce, a norma aumenta de maneira quadrática.

Agora, vamos seguir uma outra rota de desenvolvimento. Reescrevendo a primeira equação em
termos da variável k:

w
⃗ (k +1)= w
⃗ (k )+⃗x (k ) para k =1,2,... , n e ⃗x (k )∈P

Tomando a norma ao quadrado de ambos os lados da equação anterior:


2 2 2 T
‖⃗
w (k +1)‖ =‖⃗
w (k )‖ +‖⃗x (k )‖ +2 w
⃗ (k) ⃗x (k )
T
Mas w ⃗ (k ) ⃗x (k )<0 pois ⃗x (k )∈P . Então, podemos deduzir que ao remover uma quantidade
negativa do lado direito temos:
2 2 2
‖⃗
w (k +1)‖ ≤‖⃗
w (k )‖ +‖⃗x (k )‖

ou equivalentemente
2 2 2
‖⃗
w (k +1)‖ −‖⃗
w (k )‖ ≤‖⃗x ( k)‖

Adicionando as desigualdades para k =0,1,2,... , n , o lado esquerdo fica:

w (1)‖2−‖⃗
(‖⃗ w (0)‖2 )+(‖⃗
w (2)‖2−‖⃗
w (1)‖2 )+(‖⃗
w (3)‖2−‖⃗
w ( 2)‖2)+...+(‖⃗
w (n+1)‖2−‖⃗
w (n)‖2 )

Note que após cancelar os termos positivos e negativos, a expressão simplifica-se para:
2 2
‖⃗
w (n+1)‖ −‖⃗
w (0)‖

Mas como a condição inicial é ⃗ (0)=⃗


w 0 , temos que o lado esquerdo fica w (n+1)‖2. . O lado
‖⃗
esquerdo da desigualdade fica:
2 2 2 2
‖⃗x (0)‖ +‖⃗x (1)‖ +‖⃗x (2)‖ +...+‖⃗x (n)‖

Como ⃗x (0) não é definida, o lado esquerdo da desigualdade fica:

∑‖⃗x (k )‖2
k=1

e finalmente chegamos na desigualdade:


n
w (n+1)‖2 ≤∑ ‖⃗x (k)‖2
‖⃗
k=1
Definindo β como
2
β= max ‖⃗x (k )‖
⃗x (k)∈ P

podemos escrever
2
‖⃗
w (n+1)‖ ≤nβ (6)

o que mostra que a norma Euclidiana do vetor de pesos é sempre inferior a uma constante vezes o
número de iterações n. A equação (6) define um limite superior para a norma do vetor de pesos.

Note que a equação (5) define um limite inferior enquanto que a equação (6) define um limite
superior. Observe que ambas as equações devem ser satisfeitas simultaneamente, mas a pergunta
que surge é: para quais valores de n elas são consistentes?

É impossível satisfazer as equações (5) e (6) para valores muito grandes de n. Para tais valores o
limite inferior será muito alto e o limite superior será muito baixo, gerando um inconsistência.

Portanto, devemos ter um valor máximo nmax para o qual (5) e (6) são simultaneamente
satisfeitas com igualdade:
2 2
nmax α
=nmax β
wo‖2
‖⃗

Resolvendo a expressão em nmax dado um vetor solução w


⃗ o temos:

2
β‖⃗
wo‖
nmax = 2
α

Provamos que existe um valor de n finito, porém desconhecido a priori, após o qual o vetor de pesos
não mais é atualizado, ou seja, na iteração nmax atinge-se a correta classificação dos padrões.

Problema com o perceptron: Apesar de termos garantias de que o algoritmo converge num número
finito de passos para problemas linearmente separáveis, em casos não linearmente separáveis a
convergência não é garantida.

Adaline – Adaptive Linear Neuron

A principal diferença entre o modelo Adaline (Adaptive Linear Neuron) e o perceptron é na maneira
com que o sinal de erro é utilizado na correção dos pesos. No Adaline os pesos são ajustados com
base numa função de ativação linear.

O diagrama a seguir ilustra a arquitetura de um neurônio Adaline. Note que a função de ativação é
T T
linear, mais precisamente, a identidade, ou seja, g( z )=z . Em outras palavras g( w
⃗ ⃗x )=⃗w ⃗x .
A seguir veremos que isso é na verdade uma melhoria em relação a regra de treinamento do
perceptron.
Definimos de ⃗x o vetor de padrões de entrada e de w ⃗ o vetor de pesos. Sendo assim, a saída
T T T
da função de ativação é y=g( w
⃗ ⃗x )=⃗
w ⃗x =⃗x w⃗ . Definimos o erro como sendo:
T
ε=(d− y )=(d− w
⃗ ⃗x )

onde d é a saída desejada. A ideia é minimizar o erro quadrático médio, ou seja:


2 T 2 2 T T T 2 T T T
E[ε ]=E [(d− w
⃗ ⃗x ) ]=E[d −2 d ⃗x w
⃗ +w
⃗ ⃗x ⃗x w
⃗ ]=E [ d ]−2 E[d ⃗x ] w
⃗ +w
⃗ E[⃗x ⃗x ] w

Fazendo o vetor ⃗p=E [d ⃗x T ] e a matriz de correlação R=E [⃗x ⃗x T ] , nota-se que:

E[ε2 ]=E [ d2 ]−2 ⃗pT w ⃗T Rw


⃗ +w ⃗ =F( w
⃗)

ou seja, o erro é uma função quadrática do vetor de pesos. Temos então que o erro quadrático médio
como função do vetor de pesos é da forma indicada pela figura a seguir (parabolóide convexo). A
derivada segunda é a matriz Hessiana, que é igual a matriz de correlação (positiva semi-definida).

A ideia consiste em aplicar a descida do gradiente para, iniciando em uma solução aleatória (vetor
de pesos inicial), iterativamente caminhar até o ponto de mínimo da função de erro, obtendo então o
vetor de pesos ótimo (que minimiza o erro). Se o problema é linearmente separável esse erro final é
zero, caso contrário assume um valor mínimo positivo.

É possível adotar a descida do gradiente pois a função de ativação linear é diferenciável.

Definindo a função de erro em termos de todas as amostras de treinamento, podemos escrever:


n
1
J ( w)=
⃗ ∑
2 i=1
(d(i)− y (i))2

em que a constante 1/2 é adotada apenas por conveniencia matemática.

A seguir iremos derivar a regra Delta, ou também conhecida como o algoritmo Widrow-Hoff.
Sabemos que a partir do gradiente podemos iterativamente computar:

w
⃗ =⃗
w −η∇ J ( w
⃗)

Para isso, precisamos computar a derivada da função de erro J ( w)⃗ para cada componente do
vetor de pesos, ou seja, w j para j=1,2,... , k , onde k é a dimensionalidade dos dados:

[ ]
n n n
∂J 1 1 1
= ∂ ∑ (d (i )− y (i ))2 = ∑ ∂ [(d(i)− y(i) )2 ]= ∑ 2(d (i )− y (i )) ∂ ( d(i)− y(i) )
∂w j ∂w j 2 i=1 2 i=1 ∂ w j 2 i=1 ∂wj

k
Substituindo ⃗ T ⃗x i=∑ w j x(i)
y= w j temos:
j=1

n k n
∂J
=∑ (d − y ) ∂ (d −∑ w j x j )=∑ (d − y )(−x j )
(i) (i) (i) (i) (i) (i) (i)
∂w j i=1 ∂wj j=1 i=1

Plugando os resultados na regra de aprendizado:


n
w j=w j+ η ∑ (d(i)− y(i) ) x (i)
j
i=1

ou na forma vetorial
n
w w + η ∑ ( d(i) − y(i) )⃗x (i )
⃗ =⃗
i=1

O Adaline (Widdrow-Hoff) tem uma vantagem em relação ao perceptron: converge para um


hiperplano de mínimos quadrados mesmo em casos não linearmente separáveis.
Regressão logística
A regressão logística é similar a regressão linear, mas adaptada para o propósito de classificação. A
principal diferença é que na tarefa de classificação, a variável que estamos tentando prever não é
contínua e sim discreta, pois representa qual é a classe ou categoria do vetor observado.

Suponha um problema de classificação em que se deseja verificar se um tumor é benigno ou não a


partir do tamanho do mesmo. A figura a seguir ilustra o que acontece se tentarmos aplicar a
regressão linear nos dados.

Veja que nesse caso teríamos infinitos valores para a variável de saída. Uma possível solução seria
considerar um simples limiar. Se limiarizarmos a saída do modelo de regressão em 0.5, define-se a
seguinte regra de decisão: se hθ (x )=θ 0+θ 1 x≥0.5 devemos predizer 1 como saída (presença do
tumor) e caso hθ (x )=θ 0+θ 1 x <0.5 devemos predizer 0 como saída (ausência do tumor). Essa
adaptação a primeira vista parece funcionar bem, mas veremos que não. Suponha agora que
observamos o mesmo conjunto de dados, mas com uma única amostra adicional. A figura a seguir
ilustra a situação.

A reta de regressão se altera, de modo que ao se aplicar o mesmo procedimento anterior, vemos que
haverá erro na classificação. O limiar de 0.5 não é mais adequado. Note ainda que na regressão
linear, a saída do modelo pode ser tanto negativa quanto maior que 1, ou seja, hθ (x )<0 ou
hθ (x )≥1 . A regressão logística nos permite ajustar o modelo de regressão para que a saída
sempre esteja limitada, ou seja, 0≤hθ ( x )≤1 .
Para realizar esse ajuste no modelo, iremos modificar a forma da nossa hipótese hθ ( x ) ,
adicionando uma função não linear:

1
hθ (x )=g(θ T x)= T

1+e−θ x

onde a função g definida por:

1
g( z )= −z
1+ e

é chamada de função sigmoide ou logística. A figura a seguir ilustra o gráfico da função logística.

Note que g( z ) tende a 1 quando z →∞ e g( z ) tende a 0 quando z →−∞ . Além disso,


g( z ) e também hθ (x ) , é sempre limitada entre 0 e 1, como desejado. Note que estamos
n
adotando a convenção de que x 0=1 , de modo que θ x=θ 0 +∑ θ j x j .
T

j=1

Existem outras funções com comportamento similar a função logística (crescem de maneira suave
de 0 a 1), mas a escolha pela sigmoide é bastante natural, devido a propriedades matemáticas. Um
exemplo é o cálculo da derivada da função logística, que é definida em termos dela mesma:

[ ]
−z
d 1 d −z −1 −z −2 −z e
g ' (z )= −z
= (1+ e ) =−(1+e ) (−e )= −z 2
dz 1+ e dz (1+e )

Somando e subtraindo 1 no numerador:

g ' (z )=
1+ e−z−1
−z 2
(1+e ) 1+e
=
1
−z

1
−z 2
=
(1+ e ) 1+ e
1
−z
1− (1
1+e−z )
=g(z )(1−g(z ))

Sendo assim, dado o modelo de regressão logística, a próxima pergunta que surge é: como
especificar adequadamente valores para os parâmetros θ ? Para isso, é preciso discutir a
interpretação probabilística do modelo.
Basicamente, a interpretação para hθ (x ) é a de que esse valor representa a probabilidade de que
y = 1 para a entrada x. Por exemplo, supondo um problema de classificação de tumores entre
benignos e malignos de acordo com o tamanho do tumor, os dados de entrada são x 0=1 e

[] x
x 1=TumorSize , gerando os vetores de padrões 2D, x= 0 . Suponha que para os parâmetros
x1
θ escolhidos (iremos aprender como estimar esses parâmetros de maneira ótima), o resultado da
hipótese para um paciente qualquer x é hθ (x )=0.7 . Devemos interpretar essa hipótese como: a
probabilidade de que o tumor do paciente x seja maligno (y = 1) é 70%. Em termos matemáticos:
hθ (x )= p( y =1| x ; θ) (probabilidade de y = 1 dado que observo x, parametrizada por θ )

Como a variável y pode assumir apenas os valores 0 ou 1, temos:

p( y=0| x ; θ)+ p ( y=1 | x ; θ)=1

o que nos leva a:

p( y=0| x ; θ)=1− p( y=1 |θ)=1−hθ (x)

Em resumo,

p( y=1 | x ;θ)=hθ (x )

p( y=0| x ; θ)=1−hθ (x)

Note que essa é uma função massa de probabilidade para a variável aleatória binária y que
desejamos inferir a partir dos dados. Reescrevendo essa f.m.p de maneira mais compacta, temos:
y 1− y
p( y | x ; θ)=[hθ (x)] [1−hθ (x )]

Relação entre regressão linear e logística

A relação entre a regressão linear e a logística vem do fato de que no caso linear a variável
dependente é modelada como uma combinação linear y=θ 0+ θ1 x e ao aplicar a função sigmoide
temos como saída uma probabilidade:

1
p= −y
1+e

Isolando a variável dependente e resolvendo a equação acima temos:

−y −y
p(1+e )=1→ p+ pe =1→ pe =1− p→e =
−y y p
1− p
→ y=log ( )
p
1−p

Nessa interpretação estamos tentando encontrar a melhor sigmoide que se ajusta aos dados.
Interpretação geométrica e superfícies de decisão

T 1
Sabemos que na regressão logística hθ (x )=g(θ x)= p ( y=1 | x ; θ) onde g( z )= −z
. Em
1+ e
termos de classificação, a regra de decisão consiste em predizer y = 1 se hθ (x )≥0.5 e predizer y
= 0 se hθ (x )≥0.5 . Do gráfico da função logística, note que g(z )≥0.5 se z≥0 e portanto
hθ (x )=g(θ x)≥0.5 se θT x≥0 . Em outras palavras, o modelo irá predizer y = 1 se
T

T
θ x≥0 . O outro caso, referente a predição de y = 0 ocorre quando g( z )< 0.5 , e portanto
T T
hθ ( x )=g(θ x)<0.5 se θ x <0 . Agora vamos supor que temos um conjunto de treinamento
como o mostrado na figura a seguir.

O modelo de regressão logística é definido pela equação hθ (x )=θ 0+θ 1 x 1 +θ2 x 2 . Ainda não
discutimos técnicas para a estimação dos parâmetros θ0 , θ1 e θ2 mas suponha que por
algum algoritmo desconhecido os parâmetros foram setados como θ0 =−3 , θ1=1 e θ2=1 .
Isso significa que nosso vetor de parâmetros é θ=[−3, 1, 1] .
Então, de acordo com a regra de decisão devemos predizer y = 1 se −3+ x1 + x 2≥0 , o que
implica em x 1+ x 2≥3 , que define a equação de uma reta.
Note que a superfície de decisão depende exclusivamente dos parâmetros do modelo e não
diretamente dos dados em si. Os dados são utilizados para aprendermos os parâmetros do modelo.
Veremos agora um exemplo mais complexo. Suponha que os dados que desejamos classificar são
ilustrados na figura a seguir.

Como é possível fazer com que a regressão logística classifique os dados corretamente? Note que
uma superfície de decisão linear não é suficiente. Para conseguir superfícies não lineares, devemos
introduzir termos polinomiais na regressão. Sendo assim, podemos modificar hθ (x ) para incluir
termos quadráticos em x:

hθ (x )=g(θ 0 +θ1 x1 +θ 2 x 2+ θ3 x21 +θ 4 x22 )

Agora ao invés de 3, temos 5 parâmetros. Da mesma forma que o caso anterior, suponha que
utilizamos um algoritmo para estimar tais parâmetros de maneira automática e o resultado obtido foi
θ0 =−1 , θ1=0 , θ2=0 , θ3=1 e θ4 =1 , ou seja, θ=[−1, 0, 0, 1,1] .
Seguindo a regra de decisão proposta anteriormente, o modelo em questão deve predizer y = 1 se
−1+ x 21 + x 22≥0 , ou seja, sempre que x 21+ x 22≥1 . Se formos plotar essa superfície, veremos que
se trata de uma circunferência de raio 1 centrada na origem.

Portanto, a regressão logística pode ser generalizada para problemas não linearmente separáveis
pela adição de termos polinomiais. Superfícies de separação quadráticas são muito comuns na
prática, sendo possível gerar, elipses, parábolas e hipérboles, por exemplo. Com termos de
polinômios de mais alta ordem muitas superfícies complexas podem ser construídas ao custo de
aumentar o número de parâmetros ajustáveis do modelo.
A seguir veremos como estimar os parâmetros do modelo de regressão logística utilizando o método
conhecido como máxima verossimilhança.

Estimação dos parâmetros

O problema de estimação dos parâmetros consiste em dado uma amostra aleatória {X , Y } com
X ={x 1 , x 2 , ... , xn } e Y ={ y 1 , y 2 ,... , y n } (observação de n vetores aleatórios independentes
x i e seus rótulos y i ∈{0,1 } ), obter estimativas para os parâmetros θ=[θ0 , θ1 ,... , θk ] do
modelo de regressão logística. O método estatístico mais conhecido, denominado de máxima
verossimilhança, propõe como estimadores os valores:

^
θ=arg max { p(Y | X ;θ) }=arg max { L(θ) } com θ=[θ0 , θ1 ,... , θk ]
θ θ

onde p(Y | X ; θ)=L(θ) é a densidade conjunta dos rótulos y i como função dos parâmetros θ ,
denominada de função de verossimilhança, ou seja:
n
L(θ)= p(Y | X ; θ)=∏ p( y i | x i ; θ) (*)
i=1

yi 1− y i
com p( y i | x i ; θ)=[h θ (xi )] [1−hθ ( xi )]

Calculando a função de verossimilhança (*) temos:


n
L(θ)=∏ [hθ (x i )] y [1−hθ (x i )]1− y
i i

i=1

Devido a tratabilidade matemática, é comum maximizarmos a log-verossimilhança:


n
l(θ)=log L(θ)=∑ { y i log [hθ ( x i )]+(1− y i) log [1−hθ ( x i)] }
i=1

Tendo a função log-verossimilhança, é possível alternativamente interpretá-la como uma função de


custo/erro. Basta tomar o negativo da log-verossimilhança. Em problemas como esse, há uma
relação entre probabilidades e funções de custo: basta tomar o negativo do log da probabilidade.
Sendo assim, maximizar a log-verossimilhança é equivalente a minimizar a função de custo, de
modo que os parâmetros obtidos são considerados ótimos no sentido de minimizar o erro.

Como podemos maximizar a log-verossimilhança? Podemos empregar o método iterativo


conhecido como subida do gradiente (gradient ascent). Escrito em notação vetorial, o método
consistem em, a partir de um vetor inicial θ aplicar a seguinte iteração até a convergência:

θ=θ+α ∇ θ l(θ)

Basicamente o que estamos fazendo é caminhar com um passo de tamanho α na direção do


gradiente, que é a direção de maior aumento da função, a cada passo. Quando a diferença entre 2
vetores θ consecutivos for muito pequena (próximo de zero), atingimos o máximo da log-
verossimilhança. Nesse ponto, o vetor θ armazenará as estimativas ótimas dos parâmetros do
modelo de regressão logística.
Precisamos então derivar uma expressão para o gradiente da função log-verossimilhança. Iremos
iniciar com o caso mais simples de se ter apenas uma amostra de treinamento (x, y) por motivos
didáticos. Para obter o gradiente, basta derivar em relação a um componente θ j genérico:

∂ ∂ ∂
∂θ j l(θ)= ∂θ j [ y log hθ (x )+(1− y) log (1−hθ (x )) ] = ∂ θ j [ y log g (θ x )+(1− y)log (1−g (θ x )) ]
T T

Avaliando a primeira derivada temos:

∂ y log g (θT x )= y ∂ log g(θT x )= y 1 ∂ g (θT x )


∂θ j ∂ θj g (θ x ) ∂ θ j
T

Para a segunda derivada, o resultado é obtido de forma análoga:

∂ (1− y)log (1−g(θ T x))=(1− y ) ∂ log (1−g(θ T x))=−(1− y) 1 ∂ g(θ T x)


∂θ j ∂θ j 1−g(θ x ) ∂θ j
T

Sendo assim, combinando os dois resultados anteriores temos:


[ 1 1 ∂
] T
∂θ j l(θ)= y g(θT x ) −(1− y) 1−g(θ T x ) ∂θ j g(θ x)

T
Aplicando a regra da cadeia na derivada de g(θ x ) :

∂θ j [
∂ l(θ)= y 1 −(1− y)
T
g(θ x )
1
T
1−g(θ x ) ]
g(θ x)(1−g(θ x )) ∂ θ x
T T
∂θ j
T

k
Aplicando a distributiva e sabendo que a derivada de θ x=∑ θ j x j em relação a θ j é
T
xj :
j=1

∂ l(θ)=[ y ( 1−g(θ T x))−(1− y) g(θ T x) ] x =[ y− y h (x)−( h (x)− y h ( x))]x


∂θ j j θ θ θ j

Cancelando os termos, a equação simplifica-se para:


∂θ j l(θ)=[ y−hθ (x )]x j

Portanto, chegamos a seguinte regra para atualização do parâmetro θ j :

θ j=θ j +α( y i−hθ ( x i )) x i ( j)

onde x i ( j ) denota a j-ésima componente do vetor x i . Utilizando a notação vetorial, temos


uma equação mais compacta, para atualização de todo vetor de parâmetros θ de uma só vez:

θ=θ+α ( y i−hθ (xi ))x i


Perceptron Multicamadas e o algoritmo Backpropagation
Perceptrons são modelos computacionais de redes neurais de um único neurônio e uma única
camada. Por essa razão, há várias limitações sobre que tipo de função eles podem aproximar. Vimos
no caso de reconhecimento de padrões que o perceptron é capaz de lidar apenas com problemas
linearmente separáveis. Uma maneira de generalizar esse modelo é através das redes neurais
multicamadas, conhecidas como Multilayer Perceptrons.

Os seguintes pontos destacam as características básicas de perceptrons multicamadas:

- O modelo de cada neurônio da rede inclui uma função de ativação não linear que é diferenciável.
Exemplos de funções comumente adotadas são a função logística e a tangente hiperbólica.
- A rede neural contém uma ou mais camadas escondidas, isto é, camadas entre a camada de entrada
e a camada de saída.
- A rede possui um alto grau de conectividade, com todos os neurônios de uma camada se ligando a
todos os neurônios da camada seguinte. A força de cada conexão é medida pelos pesos sinápticos.

A Figura a seguir ilustra a arquitetura de uma rede perceptron multicamadas com uma camada de
entrada, duas camadas escondidas e uma camada de saída. O fluxo de sinal através da rede neural é
do tipo feed-forward, ou seja, para cada padrão apresentado na camada de entrada, a informação é
calculada e propagada da esquerda para direita, passando pelas camadas intermediárias até atingir
os neurônios da camada de saída.

Um método popular para treinar perceptrons multicamadas é o algoritmo backpropagation, ou retro


propagação. Esse algoritmo é dividido em 2 grandes passos:

a) Na fase forward, os pesos sinápticos da rede são fixados e o sinal de entrada é propagado através
da rede, camada por camada, até atingir a camada de saída. Assim, nessa fase, computações são
restritas aos potenciais de ativação e as saídas dos neurônios na rede.

b) Na fase backward, um sinal de erro é produzido pela comparação da saída da rede com a resposta
desejada. O sinal de erro resultante é propagado através da rede, novamente camada por camada,
mas desta vez a propagação é realizada de trás para frente, ou seja, da camada de saída para a
camada de entrada. Nessa fase, sucessivos ajustes são feitos aos pesos sinápticos da rede. O cálculo
do ajuste dos pesos na camada de saída é simples, mas para as camadas escondidas é uma tarefa
mais desafiadora, como veremos mais adiante.
Sendo assim, há basicamente 2 tipos de sinais sendo propagados pela rede.

1. Function signals: é um sinal que inicia na camada de entrada e chega na camada de destino. A
cada neurônio da rede pelo qual o estímulo passa, o sinal é calculado como uma função não linear
aplicada ao produto interno entre suas entradas e seus pesos sinápticos.
2. Error signals: Um sinal de erro se original em um neurônio da camada de saída da rede e
propaga-se para trás, camada por camada. Sua computação envolve um gradiente local que depende
diretamente da função de erro.

A Figura a seguir ilustra a direção dos dois fluxos básicos em um perceptron multicamadas.

Os neurônios da camada de entrada são conhecidos como source nodes e atuam como sensores. Não
há processamento nessa camada, apenas leitura dos dados de entrada. Cada neurônio escondido ou
da camada de saída de um perceptron multicamadas é responsável por realizar 2 operações:

i) a computação do function signal que aparece na saída de cada neurônio, expressado como uma
função não linear do sinal de entrada e dos pesos sinápticos.
ii) computação de uma estimativa do vetor gradiente responsável por corrigir os pesos da rede
neural na etapa de backpropagation. O gradiente nada mais é que a variação na função de erro em
termos da variação nos pesos sinápticos da rede. É uma forma de medir quais dos pesos influenciam
mais ou menos o erro total.

A função dos neurônios escondidos


Os neurônios escondidos funcionam como detectores de características (feature detectors). Como
tal, eles possuem um papel fundamental em perceptrons multicamadas. Conforme o processo de
aprendizagem progride, os neurônios escondidos começam gradualmente a descobrir características
salientes que caracterizam os dados de treinamento. Eles fazem isso, executando transformações
não lineares nos dados de entrada criando um novo espaço chamado de espaço de características.
Nesse novo espaço as classes de interesse em problemas de reconhecimento de padrões podem ser
mais facilmente separadas por exemplo. É justamente a composição desse novo espaço de
características a partir do aprendizado supervisionado que distingue um perceptron multicamadas
do modelo de neurônio isolado originalmente proposto por Rosenblatt.

Treinamento de perceptron multicamadas


Considere um perceptron multicamadas com uma camada de entrada com M neurônios, uma ou
mais camadas intermediárias e uma camada de saída com K neurônios. Seja Τ={⃗x (n) , ⃗ N
d (n) }n=1
o conjunto de treinamento, em que ⃗x (n)∈R M denota um vetor de padrões e ⃗ K
d (n)∈ R a saída
desejada de cada padrão de entrada. Seja ainda y j (n) o sinal gerado na saída do neurônio j na
última camada pela entrada ⃗x (n) aplicada a camada de entrada. Então, o sinal de erro produzido
pelo neurônio de saída j é definido por:
e j (n)=d j (n)− y j (n) (*)

onde d j ( n) é j-ésima componente do vetor de resposta desejada ⃗ d (n) . Seguindo a


terminologia adotada no método LMS, o erro instantâneo do neurônio j na camada de saída é:

1
ε j (n)= e2j (n)
2

Somando os erros de todos os neurônios da camada de saída temos o erro instantâneo total da rede:

1
ε (n)=∑ ε j (n)= ∑ 2
e j (n) (**)
j∈C 2 j ∈C

Aprendizado on-line

No aprendizado supervisionado on-line os ajustes nos pesos sináticos do perceptron multicamadas


são realizados num regime exemplo por exemplo. Considere uma época de N amostras de
treinamento organizadas em ordem {⃗x (1), ⃗ d (1)}, {⃗x (2), ⃗
d (2) }, ..., {⃗x ( N ) , ⃗
d ( N) } . O primeiro par
de exemplo {⃗x (1), ⃗ d (1)} é apresentado a rede e o ajuste dos pesos é realizado utilizando o
método do gradiente descendente. Então, o segundo exemplo {⃗x (2) , ⃗ d (2)} é apresentado a rede
o que nos leva a novos ajustes nos pesos sinápticos. Esse processo continua até o último exemplo
{⃗x (N ) , ⃗
d ( N )} , e assim finaliza-se uma época. Idealmente, as amostras de treinamento são
embaralhadas aleatoriamente após cada época, o que faz com que esse método seja conhecido como
descida do gradiente estocástica (stochastic gradient descent). Essa aleatoriedade tem o efeito
desejável de tornar o processo de minimização do erro menos sensível a mínimos locais. Outras
vantagens incluem a capacidade de perceber pequenas mudanças nos dados, o que é positivo
principalmente ao se trabalhar com dados não estacionários, e a facilidade de implementação.

O algoritmo Backpropagation

A popularidade do aprendizado on-line para o treinamento supervisionado de perceptrons


multicamadas se deve em grande parte pelo desenvolvimento do algoritmo Backpropagation. Para
descrever esse algoritmo, considere a figura a seguir que ilustra um neurônio j da camada de saída
sendo alimentado por um conjunto de sinais provenientes da camada anterior.
O campo local induzido v j (n) produzido na entrada da função de ativação associada ao neurônio
j é dada por:
m
v j (n)=∑ w ji (n) y i (n) (***)
i=0

onde m é o número total de entradas (excluindo o bias y 0 ) e w ji é o peso sináptico que liga o
neurônio i da camada anterior ao neurônio j da camada atual. O peso sináptico w j 0
correspondente a entrada fixa y 0=1 é igual ao bias b j aplicado ao neurônio j. Assim, o sinal
y j ( n) que aparece na saída do neurônio j na iteração n é:

y j ( n)=ϕ j ( v j (n)) (****)

onde ϕ j é a função de ativação diferenciável. Exemplos típicos de funções de ativação


diferenciáveis são a sigmóide e a tangente hiperbolida. A função sigmóide é definida como:

1
ϕ ( z)= −z
1+ e

e seu valor está sempre restrito ao intervalo [0, 1]. A função tangente hiperbólica é definida como:

e z−e− z
ϕ ( z)=
e z +e− z

e seu valor está sempre restrito ao intervalo [-1, 1].

De uma maneira similar ao LMS, o algoritmo Backpropagation aplica uma correção Δ w ji (n) ao
peso sináptico w ji (n) que é proporcional a derivada parcial do erro em relação ao peso, ou seja,
∂ ε (n)
. Isso significa que queremos medir a variação do erro em relação a uma pequena
∂w ji (n)
variação do peso sináptico em questão. Se o peso em questão afeta muito o erro, ele deve ser
corrigido de maneira significativa, ao passo que se o peso praticamente não afeta o erro, a correção
é praticamente desnecessária. A partir da regra da cadeia para diferenciação, sabemos que:

∂ ε (n) ∂ ε (n) ∂e j( n) ∂ y j ( n) ∂ v j ( n)
=
∂w ji (n) ∂ e j (n) ∂ y j (n) ∂ v j (n) ∂ w ji (n)

Note que do ponto de vista gráfico estamos quebrando a derivada num conjunto de derivadas mais
simples e fáceis de serem resolvidas, caminhando para trás na figura anterior. Essa derivada parcial
um fator de sensitividade determinando a direção de busca nos espaço dos pesos que mais diminui o
erro. Diferenciando ambos os lados da equação (**) com relação a e j (n) , temos:

∂ ε (n)
=e ( n)
∂e j (n) j

Diferenciando ambos os lados da equação com relação a y j (n) , temos:

∂e j (n)
=−1
∂ y j ( n)
Em seguida, diferenciando a equação (****) em relação a v j (n) , temos:

∂ yj
= ϕ j ' (v j (n))
∂vj

onde ϕ j ' denota a derivada da função de ativação. Pode-se verificar que tanto a função sigmóide
quanto a função tangente hiperbólica possuem derivadas dadas em termos delas mesmas. Para a
função sigmóide vale:

ϕ ' (z)=ϕ ( z)(1−ϕ ( z))

e para a função tangente hiperbólica vale:

ϕ ' (z)=1−ϕ (z )2

Finalmente, diferenciando a equação (***) com relação a w ji (n) temos:

∂ v j (n)
= y i (n)
∂w ji (n)

Combinando os resultados obtidos, a derivada do erro em relação ao peso fica:

∂ ε (n)
=−e j (n) ϕ j ' (v j (n)) y i (n)
∂w ji (n)

A correção no peso sináptico w ji (n) é dada pela regra Delta:

∂ ε (n)
w ji (n+1)=w ji (n)− η (@)
∂ w ji (n)

onde η é a taxa de aprendizado do algoritmo Backpropagation. O sinal de menos na equação


acima se deve ao fato de que queremos realizar uma minimização e portanto devemos caminhar na
direção contrária do vetor gradiente. Note que podemos reescrever a equação (@) como:

w ji (n+1)=w ji (n)+ ηδ j (n) y i (n) (&)

onde o gradiente local δ j (n) é definido por:

∂ ε (n) ∂ ε (n) ∂ e j (n) ∂ y j (n)


δ j (n)= = =e j (n) ϕ j ' (v j (n)) (#)
∂ v j (n) ∂e j ( n) ∂ y j (n) ∂ v j (n)

O gradiente local aponta para a direção que o peso em questão precisa ser modificado para
minimização do erro. De acordo com a equação anterior, o gradiente local δ j (n) para o neurônio
de saída j é igual ao produto do sinal de erro correspondente e j (n) para aquele neurônio e a
derivada da função de ativação ϕ j ' (v j (n)) .

As expressões acima nos mostram que um fator chave para o cálculo dos ajustes dos pesos é o sinal
de erro do neurônio de saída j. Nesse contexto, nós podemos identificar 2 casos distintos,
dependendo de onde na rede neural o neurônio j está localizado. No caso 1, temos um neurônio da
camada de saída. Esse caso é mais simples de lidar, uma vez que o próprio neurônio possui sua
resposta desejada, tornando o cálculo do sinal de erro algo trivial. No caso 2, temos um neurônio
escondido. Embora tais neurônios não sejam diretamente acessíveis, eles compartilham grande
responsabilidade pelo erro na saída da rede. A questão crucial consiste em saber como penalizar ou
recompensar neurônios escondidos pelo erro cometido, sabendo que eles são desprovidos de uma
resposta desejada e portanto de um sinal de erro próprio.

Caso 1: Neurônio j na camada de saída

Nesse caso, temos acesso a resposta desejada e portanto ao próprio sinal de erro. Dessa forma, o
gradiente local é diretamente computado pela equação (&).

Caso 2: Neurônio j em camadas escondidas

Nesse caso, não há resposta desejada, de modo que o sinal de erro deve ser determinado
recursivamente, de modo a utilizar os sinais de erro de todos os neurônios da camada posterior que
o neurônio j está conectado. Para ilustrar esse cenário, vamos considerar a situação mostrada na
figura a seguir, que representa um neurônio j em uma camada escondida da rede.

De acordo com a equação (#), podemos expressar o gradiente local para um neurônio escondido
eliminando o termo ∂ e j( n) da regra da cadeia:

∂ ε (n) ∂ y j (n) ∂ ε (n)


δ j (n)=− =− ϕ ' (v (n)) ($)
∂ y j (n) ∂ v j( n) ∂ y j (n) j j

∂ ε ( n)
Para calcular a derivada parcial devemos lembrar que o erro é dado por:
∂ y j ( n)

1
2 k∑
2
ε (n)= e k (n)
∈C
para k sendo um neurônio da camada de saída. Diferenciando a expressão do erro de ambos os lados
em relação a y j (n) temos:

∂ ε (n) ∂e k (n)
=∑ e k ( n)
∂ y j (n) k ∂ y j (n)

Em seguida, utilizamos a regra da cadeia para escrever:

∂ ε (n) ∂e (n) ∂ v j (n)


=∑ e k ( n) k (A)
∂ y j ( n) k ∂ v j (n) ∂ y j (n)

Entretanto, note que da figura anterior:

e k (n)=d k (n)− y k (n)=d k (n)−ϕ k (v k (n))

e assim,

∂e k (n)
=− ϕ k ' (v k (n)) (B)
∂v k (n)

Note também que para um neurônio k, o campo induzido local é dado por:
m
v k (n)=∑ w kj (n) y j (n) (C)
j =0

Diferenciando a equação anterior com relação a y j (n) temos:

∂ v k (n)
=w jk (n)
∂ y j (n)

Usando as equações (B) e (C) na equação (A), chega-se a derivada parcial desejada:

∂ ε (n)
=−∑ e k (n) ϕ k ' (v k (n)) w kj (n)=−∑ δ k (n) wkj (n) (R)
∂ y j (n) k k

Finalmente, usando a equação (R) em ($), chegamos na equação de retro propagação dos gradientes
locais δ j (n) , dada por:

δ j (n)=ϕ j ' (v j ( n)) ∑ δk (n) w kj (n) (X)


k

onde o neurônio j pertence a uma camada oculta.

O fator externo ϕ j '(v j (n)) envolvido no cálculo do gradiente local δ j (n) na equação (X)
depende somente da função de ativação associada ao neurônio escondido j. O fator restante,
somatório em k, depende de 2 conjuntos de termos. O primeiro conjunto de termos, δk ( n) ,
requer o conhecimento dos sinais de erro e k (n) de todos os neurônios localizados na camada
imediatamente a direita do neurônio j e que estão diretamente ligados a ele. O segundo conjunto de
termos consiste exatamente nos pesos sinápticos associados a essas conexões.
A figura a seguir ilustra uma representação gráfica do fluxo de propagação do sinal dos gradientes
locais na etapa de retro propagação, assumindo que a camada de saída contém m L neurônios.

RESUMO

A seguir é elaborado um resumo do funcionamento do algoritmo Backpropagation.

Passo 1: Alimentar a rede com um padrão de entrada, computando as saídas de cada neurônio

Passo 2: Aplicar a correção dos pesos sinápticos conectando o neurônio i ao neurônio j, ∀ i , j


através da regra delta

w ji (n+1)=w ji (n)+ ηδ j (n) y i (n)

novo_peso = peso + (tx. aprend) * (grad. local) * (i-ésima entrada do neurônio j)

onde o gradiente local δ j (n) depende se o neurônio j em questão é de saída ou


escondido

i) Se neurônio j pertence a camada de saída, o gradiente local é o produto entre a derivada


da função de ativação e o sinal de erro, ambos associados a j:

δ j (n)=e j ( n) ϕ j ' (v j (n))

ii) Se neurônio j pertence a camada escondida, o gradiente local é igual ao produto entre a
derivada da função de ativação de j e a soma ponderada dos gradientes locais computados
para os neurônios da camada a direita conectados a j:

δ j (n)=ϕ j ' (v j ( n)) ∑ δk (n) w kj (n)


k

Perceptrons multicamadas na prática

Um excelente tutorial de como implementar um Perceptron multicamadas em Python a partir do


zero pode ser encontrado em: https://pabloinsente.github.io/the-multilayer-perceptron
Na biblioteca Python scikit-learn, há a classe MPLClassifier no pacote sklearn.neural_network:
https://scikit-learn.org/stable/index.html
Para redes profundas, com diversas camadas ocultas, recomenda-se as bibliotecas Python Keras ou
Tensorflow.
Teoria de Decisão Bayesiana
É uma das teorias que fundamentam a construção de funções discriminantes f.
Abordagem estatística fundamentada em modelos paramétricos (distribuições de probabilidade)
Produz classificadores paramétricos
→ Assume hipótese de que dados seguem uma distribuição de probabilidade (hipótese gaussiana
90% das vezes): modelo para os dados observados é fixo, o que pode variar são apenas os
parâmetros dos modelos (estimar parâmetros é muito importante aqui)

Seja ⃗x ∈R d uma variável aleatória e Y ={ω1, ω2, … , ωc } um conjunto de classes/rótulos.


Definiremos a seguir os componentes para modelar o problema:
a) p(ωi ) : probabilidade à priori das i-ésima classe
→ tipicamente uma proporção (noção intuitiva de quão provável é selecionar amostra de ωi )
Exemplo: num problema de classificar indivíduos em sexo masculino ou feminino, se possuo 300
homens e 700 mulheres, a probabilidade a priori de selecionar um homem é 0.3 e de selecionar uma
mulher é 0.7
b) p(⃗x∣ωi) : probabilidade condicional da classe ωi (verossimilhança)
→ Descreve a função densidade de probabilidade (comportamento de x dado que ele pertence a
classe ωi )
Ex: Ainda no problema de classificar indivíduos, se x é a altura em metros, p(⃗x∣ω1) descreve a
distribuição das alturas dos homens e p(⃗x∣ω2) descreve a distribuição das alturas das mulheres
Obs: Em geral, por simplicidade adota-se a hipótese gaussiana

Ex: problema de duas classes gaussianas


p(x∣ω1) ~ N (μ1, σ 21)
p(x∣ω2) ~ N (μ2, σ 22)

c) p(ωi∣⃗x ) : probabilidade a posteriori de ωi (probabilidade de decidir pela classe ωi dado


que observo amostra x)

Observação de ⃗x me faz alterar a noção intuitiva que tinha sobre o problema. (após observar
⃗x “atualizo” probabilidade a priori das classes para uma probabilidade a posteriori)

A regra de Bayes combina esses 3 ingredientes de modo a permitir o cálculo da probabilidade a


posteriori a partir da densidade condicional e da probabilidade a priori.

p(x | ωi) p(ω i)


p(ωi | x)=
p (x)
onde p(x) é uma constante que não depende da classe ωi (é igual para todas as classes)

Se um classificador incorretamente atribui a observação x a classe ω j quando na verdade


x∈ω i , haverá uma perda Lij (perda por atribuir alguém que pertence a ωi a ω j ).
Assim, considerando um problema de decisão de c classes, temos a definição de uma matriz de
perdas Lc×c , que atribui uma penalidade a cada possível erro cometido:

[ ]
0 L12 L13 ... L1 c
L21 0 L23 ... L2 c
L= L31 L32 0 ... L3 c
... ... ... ... ...
L c 1 Lc 2 L c 3 ... 0

Note que a matriz L pode ou não ser simétrica. Veremos a seguir que matrizes de perda simétricas e
binárias nos levam a um critério muito utilizado na prática (critério de decisão MAP).
Dessa forma, podemos associar uma perda média (risco condicional) a uma classe ω j , com
j=1,2, … , c , ou seja podemos calcular o risco de atribuir uma amostra x a classe ω j .
Matematicamente, o risco condicional r (ω j | x ) é simplesmente o valor esperado condicional da
perda para a j-ésima coluna da matriz L, sendo dado por:
c
r (ω j∣⃗x )=r j ( ⃗x )=∑k=1 Lkj p(ω k∣⃗x )=L1 j p (ω1 | x)+ L2 j p (ω2 | x )+...+ Lcj p (ω c | x)

Obs:
1) risco = perda média
2) o risco de atribuir um objeto x a classe ω j é igual a probabilidade de atribuir x a classe ω1
vezes a perda de se atribuir algo que pertence a classe ω1 a classe ω j mais a probabilidade de
atribuir x a classe ω2 vezes a perda de se atribuir algo que pertence a classe ω2 a ω j mais
a probabilidade de atribuir x a classe ω3 vezes a perda de se atribuir algo que pertence a classe
ω3 a ω j , etc.

Aplicando a regra de Bayes, podemos reescrever o risco condicional como:

1 c
r j( ⃗x )= ∑
p(⃗x ) k=1
Lkj p ( ⃗x∣wk ) p( wk )

Mas como o numerador é constante para todo j=1,2,3,... , c podemos descartá-lo e portanto
o risco de se decidir por ω j é:

c
r j( ⃗x )=∑k =1 Lkj p( ⃗x∣w k ) p( wk )

A Teoria de decisão Bayesiana nos fornece a seguinte regra: atribua a amostra ⃗x à classe que
minimiza o risco condicional (aquela que tem a menor perda média). Em teoria, ao se minimizar o
risco, estamos caminhando no sentido de minimizar a probabilidade de erro. Em outras palavras,
⃗x é atribuído a classe ωi se:

r i (⃗x )< r j (⃗x ) para j=1,2,... , c e j≠i o que equivale a dizer


c c
∑k=1 Lki p( ⃗x∣w k ) p (w k)<∑k =1 Lkj p(⃗x∣w k) p( wk ) para todo j≠i

ou seja, se o risco de decidir por ωi for menor que todos os demais riscos associados as classes
ω j . Para o caso de uma matriz de perdas simétrica e binária, o que significa que L pondera
todos os erros de forma igualitária, apenas considerando erros ou acertos, tem-se:

Lij =1−δij com δij = {1,0, se i= j


se i≠ j

ou seja, L é dada por:

[ ]
0 1 1 ... 1
1 0 1 ... 1
L= 1 1 0 ... 1
... ... ... ... ...
1 1 1 ... 0

e o risco simplifica-se para:


c c c
r i ( ⃗x )=∑k=1 (1−δki ) p ( ⃗x∣wk ) p(w k )=∑k =1 p( ⃗x∣w k ) p(wk )−∑k=1 δ ki p( ⃗x∣w k ) p( wk )

Note que da regra de Bayes sabemos que:

p(⃗x∣w k ) p (w k )
p(w k∣⃗x )=
p ( ⃗x )

e como p(w k∣⃗x ) é a probabilidade a posteriori então a soma para todo k resulta em 1, ou seja:

c 1 c
∑k=1 p(wk∣⃗x )= p(⃗x ) ∑k=1 p(⃗x∣w k) p (w k )=1

o que implica em
c
p( ⃗x )=∑k=1 p( ⃗x∣w k ) p (w k )

e portanto o risco pode ser expresso como (o primeiro termo é uma constante!):
c
r i ( ⃗x )= p( ⃗x )−∑k=1 δki p( ⃗x∣w k ) p(wk )= p( ⃗x )− p( ⃗x∣wi ) p (wi )

uma vez que o segundo termo é não nulo apenas para k = i. Como p(⃗x ) é constante, para
minimizar o risco, devemos maximizar o segundo termo. Porém, note que ao se dividir todos os
riscos por uma constante p(⃗x ) não modificamos qual é a classe que minimiza o risco, o que nos
leva a:

p(⃗x∣wi ) p( wi )
r i (⃗x )=1− =1− p( wi∣⃗x )
p ( ⃗x )
ou seja, o termo a ser maximizado nada mais é que a probabilidade a posteriori da classe ωi , o
que nos leva ao conhecido critério MAP (Máximo a Posteriori), que define a seguinte regra de
decisão: devemos atribuir ⃗x à classe ωi que fornece a maior probabilidade a posteriori, ou
seja:

w *=argmax p (w i∣⃗x )=argmax [ p(⃗x∣w i) p (w i)]


wi wi

onde w * denota a decisão ótima para a amostra ⃗x . Em termos práticos, esse problema de
maximização pode ser resolvido de maneira bastante simples: basta definirmos c funções
discriminantes d j (⃗x) , j=1,2,... , c (uma para cada classe) dadas por:

d j (⃗x)= p(⃗x∣w j ) p(w j)

que por tratabilidade matemática podem ser reescritas aplicando o logaritmo (que é uma função
monotonicamente crescente) como (o log não altera a noção de ordem e portanto não modifica o
máximo da função):

d j (⃗x )=log p( ⃗x∣w j )+log p(w j )

Essas são as funções de decisão para o critério MAP. A ideia consiste em construir c funções de
decisão, uma para cada classe. Vence a classe que obtiver o maior valor de d j (x ) para a amostra
x em questão.

Otimalidade do critério MAP

Porque utilizar o critério MAP?


A regra de decisão MAP é ótima pois minimiza a probabilidade de erro.

w =argmax p (w j∣⃗x )= argmax [ p (⃗x∣w j) p (w j )]


*

wj wj

Considere o caso unidimensional e um problema de 2 classes.


Sabemos que a probabilidade de erro p(ε) é dada por:
c c
p(ε)=∑ p(ε , ω j )=∑ p(ε | ω j) p(ω j ) (marginaliza a distribuição conjunta)
j=1 j=1

Mas sabemos que as probabilidades de erro condicionais em cada classe são definidas pela área da
densidade fora da região de aceitação, ou seja:

p(ε| ω j )=∫C(R ) p(x | ω j )dx


j

onde C( R j ) denota o complemento da região R j (aceitação).

Então,
c
p(ε)=∑ ∫C(R ) p (x | ω j ) p(ω j ) dx
j
j=1

Sabendo que a integral do que está fora da região Rj é igual a um menos a integral do que
está dentro da região R j , temos:

[
p(ε)=∑ p(ω j ) 1−∫R p( x | ω j) dx
j=1
j
]
Aplicando a distributiva chega-se em:
c c c
p(ε)=∑ p(ω j )−∑ p(ω j )∫R p ( x | ω j)dx=1−∑ ∫R p(x | ω j) p (ω j) dx
j j
j=1 j=1 j=1

E portanto, para minimizar a probabilidade de erro, devemos maximizar o produto


p( x | ω j ) p(ω j ) , que é justamente o que diz a regra de decisão MAP.

Classificador Bayesiano sob hipótese Gaussiana

Na prática, é preciso assumir um modelo estatístico para as densidades condicionais de cada


classe, p(x | ω j ) . Devido a facilidade e tratabilidade matemática, em grande parte dos casos é
comum considerar a hipótese de dados normalmente distribuídos, isto é, as densidades condicionais
são Gaussianas com diferentes parâmetros média e variância. É usual que a forma das distribuições
condicionais sejam a mesma para todas as classes, mudando apenas os parâmetros.

Caso unidimensional (1D)

Neste caso a variável observada x é composta por um único atributo. Suponha por exemplo
que desejamos classificar indivíduos entre mulheres ( ω1 ) e homens ( ω2 ) a partir da altura.
Nesse caso, utilizamos apenas uma medida para discriminar entre as classes ω1 e ω2 .
2
p(x | ω 1) é uma N (μ1 , σ1 )
p( x | ω 2) é uma N (μ2 , σ21 )

p( x | ω j )=
√2 π σ
1
2
j
{
exp −
1
2σj
2
(x−μ j)
2
}

A densidade Gaussiana possui apenas 2 parâmetros e portanto necessitamos estimá-los a partir das
amostras de treinamento. Essa é a fase de treinamento do classificador. Para o classificador
Bayesiano sob hipótese Gaussiana no caso 1D, o treinamento consiste basicamente na estimação
dos parâmetros μ j , σ2j para todas as classes, ou seja, para j=1,2,. .. , c .

Estimação de parâmetros no caso Gaussiano 1D

O problema consiste em dado uma amostra aleatória X ={x 1 , x 2 , ... , x n } (observação de n


variáveis aleatórias Gaussianas independentes e identicamente distribuídas), obter estimativas para
os parâmetros μ e σ2 da distribuição Gaussiana. O método mais conhecido, denominado de
máxima verossimilhança, propõe como estimadores os valores:

μ^ , σ^ =arg max { p( X ; ⃗θ) } com ⃗


2 2
θ=(μ ,σ )
2
μ ,σ

onde p( X ; ⃗
θ ) é a densidade conjunta das variáveis observadas como função dos parâmetros, ou
seja:
n
θ )=∏ p (xi ; ⃗
p( X ; ⃗ θ)
i=1

com p( x i ; ⃗θ )=
√2 π σ
1
2 {
exp −
1

2
(x i−μ)2
} .

Devido a tratabilidade matemática, é comum maximizar a log-verossimilhança:


n
θ )=∑ log p(x i ; ⃗
log p( X ; ⃗ θ)
i=1

Sendo assim, temos:


[√ { }]
n n
1 1
θ)=∑ log p(x i ; ⃗θ)=∑ log
log p( X ; ⃗
2
2
exp − 2
( x i−μ)
i=1 i=1 2πσ 2σ

Aplicando o logaritmo:

[ ]
n n
1 1 1
θ )=∑ log
log p( X ; ⃗ (x i−μ) =n log(2 π σ ) − 2 ∑ ( xi −μ )
2 2 −1/ 2 2

i=1 √2 π σ 2
2σ 2
2 σ i=1

Finalmente, chega-se em:


n n
n 1 n n 1
θ )=− log 2 π σ2− 2 ∑ ( x i−μ)2=− log 2 π− log σ 2− 2 ∑ (x i−μ)2
log p( X ; ⃗
2 2 σ i=1 2 2 2 σ i=1

Pode-se mostrar que na família exponencial, cuja distribuição Gaussiana é um membro, a função
log-verossimilhança é côncava, ou seja, ela admite um máximo. Sob essas condições, para
encontrar os parâmetros que maximizam tal função, devemos derivar log p( X ; ⃗
θ) em relação a
cada um dos parâmetros e igualar o resultado a zero:
n
∂ log p ( X ; ⃗ 1
2∑
θ )=−2 (x i−μ)(−1)=0
∂μ 2 σ i=1

Simplificando as constantes temos:


n
1
2∑
(x i−μ )=0
σ i=1

que é o mesmo que


n

∑ ( x i−μ )=0
i=1

Separando o somatório temos:


n

∑ x i−n μ=0
i=1

o que finalmente nos leva a média amostral:


n
1
μ=
^ ∑ x (é a simples média amostral das amostras da classe desejada)
n i=1 i

Repetindo o processo para o outro parâmetro (variância) temos:


n
∂ log p (X ; ⃗ n 1 1
+ 4 ∑ ( x i−μ) =0
2
θ )=−
∂σ 2
2 σ 2σ i=1
2

Rearranjando os termos:
n
n 1 1
= 4 ∑ ( x i−μ)2
2 σ 2σ i=1
2

Simplificando variáveis chegamos em:


n
1
2∑
2
n= (x i−μ)
σ i=1

Isolando σ2 temos finalmente:


n
1
σ^ 2 = ∑
n i=1
(x i−μ)2 (é a variância amostral das amostras da classe desejada)

Funções de decisão

Substituindo a densidade condicional em d j (x ) temos a função de decisão que define o


classificador Bayesiano sob hipótese Gaussiana no caso 1D:

d j (x )=log p( x∣ω j)+ log p( ω j )=log


[√ 1
2πσ
2
j
{
exp −
1
2σ 2j }]2
( x −μ j ) + log p (ω j)

d j (x )=log
[√ ] 1
2 π σ 2j
1

1
2σj
2
(x−μ j)2 + log p( ω j )

1 −
d j (x )=log ( 2 π σ 2
j )
2
2
(x−μ j)2 + log p(ω j )

2σj
1 1 1 1 1
d j (x )=− log ( 2 π σ 2j )− 2 (x−μ j)2 +log p(ω j )=− log ( 2 π )− log ( σ2j ) − 2 ( x−μ j )2+ log p (ω j)
2 2σj 2 2 2σj

o que após algumas simplificações fica (eliminando termos constantes):

1 2 1 2
d j (x )=log p( w j)− log(σ j )− 2 ( x−μ j)
2 2σj

Caso as classes sejam equiprováveis, p(ω1 )= p(ω2)=0.5 e as funções de decisão podem ser
simplificadas ainda mais. Note que quanto maior o valor de d j ( x ) mais evidência a favor da
classe w j . Ao observar uma amostra x, plugamos seu valor em cada uma das funções de decisão
e atribuímos a essa amostra x o rótulo da classe com o maior valor de d j ( x ) .

Obtenção analítica do limiar de decisão

No caso gaussiano 1-D de 2 classes ( ω1 e ω2 ) é possível obter o limiar de decisão


analiticamente, bastando para isso resolver a equação a seguir em x:

d 1 (x)=d 2 ( x)

1 2 1 2 1 2 1 2
log p(w 1)− log σ1− 2 ( x−μ 1) =log p (w 2)− log σ 2− 2 ( x −μ 2)
2 2 σ1 2 2σ 2
Isso significa que queremos encontrar o valor de x tal que há um empate nos valores da função de
decisão, sendo impossível decidir por ω1 ou ω2 .
Por exemplo, suponha um problema 1D de 2 classes equiprováveis, com classes Gaussianas de
variâncias iguais, ou seja, apenas os parâmetros μ1 e μ 2 são diferentes. Nesse caso, é
possível mostrar que o limiar de decisão T é exatamente o ponto médio do segmento de reta
definido pelo intervalo [μ 1 ,μ 2 ] . O cenário de problema desse tipo é ilustrado pela figura a seguir.

Ao igualar as duas funções de decisão, nota-se que como as classes são equiprováveis e com
variâncias iguais, então

1 2 1 2
log p(w 1)− log σ1=log p (w2 )− log σ 2
2 2

e portanto podem ser cancelados da equação, levando a:

1 1
2
( x−μ 1)2= 2 ( x−μ 2 )2
2 σ1 2 σ2

1 1
sendo que como os termos e são iguais e também podem ser cancelados, restando
2 σ 21 2 σ 22

(x−μ1 )2=(x −μ 2)2

Isolando o valor de x, tem-se a solução buscada


2 2 2 2
x −2 x μ 1 +μ 1=x −2 x μ 2+μ 2

2 2
μ1 −μ 2=2 x (μ 1−μ 2)

(μ 1 +μ2 )(μ 1−μ 2)=2 x (μ 1−μ 2)

(μ 1 +μ2 )(μ 1−μ 2)=2 x (μ 1−μ 2)


1
x= (μ 1+μ 2) (o limiar T é o ponto médio do intervalo entre as médias)
2

O efeito das probabilidades a priori p(ω1 ) e p(ω 2) é deslocar o limiar. Se p(ω1 )> p(ω 2)
então o limiar T desloca-se para a direita, se aproximando de μ 2 e assim aumentando a região R1
(de aceitação de ω1 ). Caso p(ω1 )< p(ω 2) , então o limiar T desloca-se para a esquerda, se
aproximando de μ1 e assim aumentando a região R2 (de aceitação de ω2 ).

Isso significa que nesse caso, na prática a classificação pode ser realizada com uma simples regra:
se amostra < T então
atribua amostra a classe 1
senão
atribua amostra a classe 2

Caso multivariado

No mundo real, a grande maioria dos problemas envolve a classificação de objetos que possuem
vários atributos. Nesse cenário, cada amostra é um vetor ⃗x =[x 1 , x 2 ,... , x d ]∈Rd . Na analogia com
o problema da classificação de indivíduos em mulheres e homens, é natural pensar em se utilizar
várias medidas para compor o vetor de padrões como peso, altura, cintura, etc.
d
Objetivo: particionar o espaço R em regiões, de modo a minimizar o erro de classificação

A maior diferença existente no caso multivariado são os modelos estatísticos assumidos para as
densidades condicionais. Agora, precisamos de densidades multivariadas. Novamente, por motivos
de simplicidade e tratabilidade matemática é comum adotarmos a hipótese Gaussiana. Temos então
a Gaussiana multivariada, N (⃗ μ , Σ) , definida por:

p(⃗x|ω j)=
1
d
2
(2 π) |Σ j|
1
2
{1 T −1
exp − (⃗x −μ⃗j ) Σ j (⃗x −μ⃗ j)
2 }
onde μ⃗j é o vetor média da classe ω j e Σ j é a matriz de covariâncias da classe ω j .
Esses dois parâmetros especificam unicamente uma densidade Gaussiana. O vetor média,
pertencente a Rd , especifica o centroide da nuvem de pontos que representa a classe. Já a matriz
de covariâncias d x d define a forma da distribuição, que pode variar entre circular e elíptica. A
forma geral da matriz de covariâncias é dada por:

{ }
2
σ 1 σ12 σ 13 ... σ 1 d
σ 21 σ 22 σ 23 ... σ 2 d
Σ= 2
σ 31 σ32 σ3 ... σ 3 d
2
... ... ... ... σd dxd

onde os elementos da diagonal representam as variâncias de cada um dos d atributos (espalhamento


em cada eixo coordenado) e os elementos fora da diagonal representam as covariâncias entre todos
os pares de atributos. De maneira análoga ao caso 1D, os parâmetros μ⃗j e Σ j podem ser
calculados pelo método da máxima verossimilhança.

Estimação de parâmetros no caso Gaussiano multivariado

O problema consiste em dado uma amostra aleatória X ={ x⃗1 , x⃗2 , ... , x⃗n } (observação de n vetores
aleatórios Gaussianas independentes), obter estimativas para os parâmetros μ⃗j e Σ j da
distribuição Gaussiana. O método mais conhecido, denominado de máxima verossimilhança,
propõe como estimadores os valores:

μ^ , Σ
⃗ ^ =argmax { p ( X ; ⃗
θ)} com ⃗
θ=( μ
⃗ , Σ)
μ ,Σ

onde p( X ; ⃗
θ ) é a densidade conjunta das variáveis observadas como função dos parâmetros, ou
seja:
n
θ )=∏ p ( ⃗
p( X ; ⃗ xi ; ⃗
θ)
i=1

com x i ; ⃗θ )=
p( ⃗
1 1
exp − ( x⃗i−μ
d/2
(2 π) |Σ| 2
1/ 2 {
T −1
⃗ ) Σ ( x⃗i−⃗
μ) }.
Devido a tratabilidade matemática, é comum maximizar a log-verossimilhança:
n
θ )=∑ log p(x i ; ⃗
log p( X ; ⃗ θ)
i=1

Sendo assim, temos:

[ { }]
n n
1 1
θ )=∑ log p(x i ; ⃗
log p( X ; ⃗ θ)=∑ log
T −1
exp − ( x⃗i−⃗
μ) Σ ( ⃗
x i−⃗
μ)
i=1 i =1
d /2
(2 π) |Σ|
1 /2
2

Aplicando o logaritmo, finalmente chega-se em:


[ [ ] ]
n
1 1
θ )=∑ log
log p( X ; ⃗
T −1
− ( x⃗i−⃗
μ ) Σ ( x⃗i−⃗
μ) =
i=1
d /2
(2 π) |Σ| 1 /2
2

[ ]
n
1 (*)
=∑ log (2 π)
−d /2 −1 /2 T −1
+log|Σ| − (⃗
x −⃗
μ ) Σ (⃗x i−⃗
μ) =
i=1 2 i
n
nd n 1
log 2 π− log|Σ|− ∑ ( x⃗i −μ
T −1
=− ⃗ ) Σ ( x⃗i−μ
⃗)
2 2 2 i=1

Derivando a log-verossimilhança em relação a ⃗


μ temos:
n
∂ log p( X ; ⃗ 1
θ )=− ∑ ( x⃗i−⃗
T −1
∂μ μ ) Σ =0
⃗ 2 i=1

Multiplicando ambos os lados por -2 e por Σ :


n

∑ ( ⃗xi −⃗μ )T=0


i=1

Distribuindo o somatório:
n

∑ x⃗i−n ⃗μ =0
i=1

oque nos leva finalmente a:


n
1
⃗^ = ∑ x⃗i
μ (média amostra)
n i=1

Para a cálculo de Σ^ é preciso apresentar algumas propriedades importantes relacionadas a


operação de diferenciação de formas quadráticas. A primeira observação é lembrar que o operador
traço de uma matriz é invariante a permutações cíclicas de produtos de matrizes, ou seja:

tr [ ABC ]=tr[CAB]=tr [BCA ]

onde A, B e C denotam matrizes arbitrárias. O interesse nesse resultado deve-se ao fato de que ele é
útil no cálculo de derivadas de formas quadráticas. Em particular, é preciso computar a derivada de
uma expressão da forma ⃗x T A ⃗x , com relação a matriz A. O segredo consiste em expressão essa
fórmula como segue:

⃗x T A ⃗x =tr [⃗x T A ⃗x ]=tr [⃗x ⃗x T A ]

onde a primeira igualdade advém do fato de que o traço de um escalar é igual ao próprio escalar. Do
cálculo multivariado, pode-se mostrar que:

∂ tr [BA ]=BT
∂A

de modo que podemos utilizar esse resultado para calcular a derivada de uma forma quadrática:

∂ ⃗x T A ⃗x = ∂ tr [⃗x ⃗xT A ]=[⃗x ⃗x T ]T =⃗x ⃗x T


∂A ∂A
Outro resultado importante do cálculo multivariado que será útil é a derivada do logaritmo do
determinante de uma matriz A:

∂ log|A|=( A−1 )T
∂A

De posse desses resultados, podemos computar o estimador de máxima verossimilhança para a


matriz de covariância a partir da equação (*). Note que podemos reescrever a log-verossimilhança:
n
nd n 1
θ )=− log 2 π+ log|Σ−1|− ∑ ( ⃗
log p( X ; ⃗ x i−⃗
μ )(⃗ μ )T Σ−1
x i−⃗
2 2 2 i=1

de modo que agora é possível computar a derivada em relação a Σ−1 :


n
∂ log p( X ; ⃗ n 1
θ )= Σ− ∑ (⃗ x i−⃗
μ )( ⃗ μ )T =0
x i−⃗
∂Σ−1
2 2 i=1

uma vez que a matriz de covariâncias é simétrica, ou seja, Σ T =Σ . Isolando Σ chega-se a:


n
^ 1 ∑ (⃗
Σ= x i−⃗
μ )(⃗
x i−⃗
μ)
T
n i =1

que é a expressão da conhecida matriz de covariância amostral.

A seguir são discutidas brevemente algumas propriedades interessantes das matrizes de covariâncias

Obs: Matriz Σ é simétrica e positiva semi-definida (todos os autovalores são positivos)


→ Diagonal armazena variâncias. Fora da diagonal: covariâncias (medida de dependência entre
atributos). Quanto maior a covariância entre 2 atributos, maior a dependência entre eles.
→ Define a forma da distribuição, ou seja, como a nuvem de pontos está dispersa
A figura a seguir ilustra duas Gaussianas 2D com mesmo vetor média ⃗ μ =[3, 2]T mas cada uma
com sua matriz de covariâncias: a Gaussiana a esquerda possui Σ= 25 0 [ ]0 9
enquanto que a

[ ]
Gaussiana da direita possui Σ= 10 5 . Note que a existência de covariância entre as variáveis
5 5
faz a elipse rotacionar seus eixos.
Em resumo, no caso 2-D temos: Σ=
[ σ21
σ21
σ 12
σ 22 ]
A seguir são listados algumas variantes que podem ocorrer na prática.

a) σ21 =σ22 e σ 12=σ21=0


→ As variâncias são iguais nos 2 eixos e por isso o espalhamento em x1 é igual ao de x2
→ Não há correlação
→ Curvas de nível são circunferências

[ ]
Σ= 3 0
0 3

x1

x2
b) σ21 > σ22 e σ12=σ 21=0
→ Variância maior no eixo x1 (espalhamento maior em x1)
→ Não há correlação
→ Curvas de nível são elipses “deitadas”

x1

x2
c) σ21 > σ22 e σ 12=σ 21=+0.5
→ Variância maior no eixo x1
→ Existência de correlação positiva
→ Curvas de nível são elipses na diagonal (ao aumentar x1 aumenta x2 também)

x1

x2

d) σ21 < σ 22 e σ 12=σ 21=0,5


→ Variância maior no eixo x2
→ Correlação negativa
→ Curvas de nível são elipses na diagonal (aumentar x1 diminui x2)

x1
Distância de Mahalanobis

O termo na exponencial da densidade Gaussiana multivariada (⃗x −μ⃗j)T Σ−1


j (⃗
x −μ⃗j ) é conhecido
como a distância de Mahalanobis entre o vetor ⃗x e o vetor média ⃗
μ

→ Distância não euclidiana (não isotrópica)


→ O referencial da distância de Mahalanobis permite ponderar diferentes direções de maneiras
diferentes (o referencial é a matriz de covariância).
→ Distorce algumas direções do espaço. Faz com que o conjunto dos pontos a uma distância fixa
d do centro seja uma elipse ao invés de um círculo.
→ Note que se a matriz de covariância é igual a identidade Σ=I , a distância de Mahalanobis se
transforma na distância Euclidiana

Funções de decisão

Da mesma forma que no caso 1D, podemos definir funções de decisão para cada classe substituindo
as densidades condicionais em d j ( x ) :

d j (⃗x )=log p( ⃗x|ω j )+log p(ω j )=log


[ 1
d
2
(2 π) |Σ j|
1
2
{1 T −1
}]
exp − (⃗x −μ⃗ j) Σ j (⃗x −μ⃗j ) + log p (ω j)
2

[ ]− 12 (⃗x−μ⃗ ) Σ
d 1
− −
2 2 T −1
d j (⃗x )=log (2 π) |Σ j| j j (⃗x −μ⃗j )+log p(ω j )

d 1 1
d j ( ⃗x )=− log (2 π)− log|Σ j|− ( ⃗x −μ⃗j )T Σ−1
j (⃗
x −μ⃗ j)+ log p( ω j )
2 2 2

Após algumas simplificações (removendo constantes) resulta finalmente em :

1 1 T −1
d j ( ⃗x )=log p( ω j )− log|Σ j|− ( ⃗x −μ⃗j ) Σ j ( ⃗x −μ j )
2 2

Funções de decisão para o caso multivariado

Dependendo da forma com que estimamos as matrizes de covariâncias, o comportamento do


classificador Bayesiano se altera. Basicamente, existem 3 casos específicos a serem estudados:

→ Caso 1) quando todas as matrizes de covariâncias das classes são idênticas e diagonais
(utilizamos a mesma matriz de covariância para todas as classes)
→ Caso 2) quando todas as matrizes de covariâncias das classes são iguais mas não diagonais
(utilizamos a mesma matriz de covariância para todas as classes)
→ Caso 3) quando todas as matrizes de covariâncias são distintas (uma para cada classe)

Veremos a seguir a forma das funções de decisão em cada um dos casos.

Caso 1: Σ j =σ2 I

A função de decisão d j (⃗x ) fica:


1 2 d 1 T 1
d j ( ⃗x )=log p( ω j )− log (σ ) − ( ⃗x −μ⃗j ) 2 I ( ⃗x −μ⃗ j)
2 2 σ

pois o determinante de uma matriz diagonal é o produto dos elementos da diagonal e a inversa de
uma matriz diagonal é simplesmente o inverso de σ2 vezes a matriz identidade.

Assim, temos:

d 1
d j ( ⃗x )=log p( ω j )− log σ 2− 2 ‖⃗x −μ⃗ j‖2
2 2σ

Mas como o termo do meio é constante (não depende de j), podemos eliminá-lo:

1 2
d j ( ⃗x )=log p( ω j )− 2
‖⃗x −μ⃗ j‖

Expandindo o termo quadrático:

1 T T T
d j ( ⃗x )=log p( ω j )− 2
[ ⃗x ⃗x −2 ⃗
μ j ⃗x + μ
⃗j μ⃗ j]

Como o termo quadrático em ⃗x é constante (não depende de j) pode ser descartado, levando a:

1 T 1 T
d j ( ⃗x )= μ
⃗ ⃗x − 2 ⃗
2 j
μj ⃗
μ j +log p(ω j )
σ 2σ

que é uma equação linear em ⃗x e portanto pode ser expressa na formados

⃗ Tj ⃗x +w j 0
d j (⃗x )= w

1 1 T
com w⃗ j= μ

2 j
e o bias w j 0=log p( ω j )− μ μ
⃗ ⃗
2 j j
σ 2σ

Por essa razão, nesse caso, chamamos essa função discriminante de linear.

Iremos agora obter analiticamente as superfícies de decisão para esse caso fazendo:

d j (⃗x )=di (⃗
x)

T T
w
⃗ j +w j 0= w
⃗ i + wi 0

1 T 1 T 1 T 1 T
μ ⃗x + log p(ω j )− 2 ⃗

2 j
μj μ
⃗ j= 2 μ
⃗ i ⃗x +log p(ω i)− 2 ⃗
μi μ
⃗i
σ 2σ σ 2σ

Multiplicando ambos os lados por σ2 e rearranjando os termos:


T
μj ⃗
x −μ
T
⃗ i ⃗x −σ log
2
( )
p (ω j) 1 T
− (⃗
p(ωi ) 2
μj μ
⃗ j −μ
T
⃗i μ⃗ i )=0

Manipulando a expressão podemos reescrever:



⃗ j−μ
T 2
⃗ i ) ⃗x +σ log ( )
p(ω j ) 1
p (ωi )
− (μ
2
⃗ j −μ
T
⃗ i) (μ
⃗ j +μ
⃗ i)=0

Colocando (⃗ μ i )T
μ j−⃗ em evidência:

(⃗
[ ‖⃗
2
μi )T ⃗x + σ 2 log
μ j−⃗
μ j −⃗
μ i‖
p (ω j)
p(ωi) ((⃗
μ j −⃗) 1
μ i)− (⃗
μ +⃗
2 j i
μ ) =0
]
E finalmente chegamos na equação linear de um hiperplano separador:

⃗ T (⃗x −⃗x 0 )=0


w

1
(
p( ω j )
)
2
com w
⃗ =(⃗ μ i) e
μ j−⃗ ⃗x 0= (μ μi )− σ 2 log
⃗ j +⃗ (⃗
μ j− ⃗
μi )
2 ‖⃗
μ j−⃗
μ i‖ p(ω i)

A equação acima define um hiperplano separador que passa pelo ponto x⃗0 e é ortogonal a
diferença das médias. Se as classes são equiprováveis, ou seja, p(ω j)=p (ωi ) , o ponto x⃗0 se
torna a mediatriz do segmento de reta que une as médias (ponto médio).
Caso 2: Σ j =Σ (todas as matrizes de covariâncias são iguais mas não diagonais)

Neste caso, a função de decisão d j ( ⃗x ) fica:

1 T −1 1 T −1 T −1 1 T −1
d j ( ⃗x )=− ( ⃗x −μ
⃗ j) Σ ( ⃗x −μ
⃗ j )+log p (ω j)=log p (ω j)− ⃗x Σ ⃗x + μ
⃗ j Σ ⃗x − μ
⃗ Σ μ ⃗j
2 2 2 j

A expansão de d j (⃗x ) revela um termo quadrático ⃗x T Σ−1 ⃗x que não depende de j. Dessa
forma, chega-se novamente a uma função discriminante linear dada por:
T
d j (⃗x )= w
⃗ ⃗x +w j 0

1 T −1
com w⃗ j=Σ−1 μ
⃗j e w j 0=− μ
⃗ Σ μ ⃗ j + log p(ω j )
2 j

Para obter a superfície de separação, novamente igualamos as funções de decisão. Pode-se


mostrar que o hiperplano separador tem equação:
T
w
⃗ (⃗x −⃗x 0 )=0

com w −1
⃗ =Σ (⃗μ j−⃗
1
μ i ) e ⃗x 0= ( μ
⃗ +⃗
μ )−
log
( p(ω j )
p (ωi )

⃗ j −μ
)
⃗ i)
2 j i (μ ⃗ i)T Σ−1 ( ⃗
⃗ j −μ μ j −⃗
μi )

Note porém que o hiperplano não é mais ortogonal a diferença das médias.
Caso 3: Σ j arbitrário (matrizes de covariâncias diferentes para cada classe)

A função de decisão d j (⃗x ) fica:

1 1
d j ( ⃗x)=log p( ω j )− log|Σ j|− ( ⃗x −μ⃗ j)T Σ−1
j (⃗
x −μ j )
2 2

1 1 1 T −1
d j ( ⃗x)=log p( ω j )− log|Σ j|− ⃗x T Σ−1
j ⃗ μTj Σ−1
x +⃗ j ⃗x− μ
⃗ Σ μ ⃗
2 2 2 j j j

Assim, as funções discriminantes são quadráticas e possuem a forma:

d j (⃗x )=⃗x T W j ⃗x + w
⃗ Tj ⃗x +w j 0

onde

1 1 T −1 1
W j=− Σ−1
j ⃗ j=Σ−1
, w j ⃗μ j e w j 0=− ⃗μ j Σ j ⃗μ j− log|Σ j|+log p( ω j)
2 2 2

Nesse caso, as superfícies de decisão são quadráticas e podem assumir diferentes formas, como
hiperparaboloides, hiperelipsoides, hiperesferas e hiperboloides.
Limites superiores para o erro na classificação Bayesiana

Na classificação Bayesiana é possível obter analiticamente limites para a probabilidade de erro. Tais
limites fornecem gariantias teóricas para a máxima probabilidade de erro em problemas de decisão.

Quando a regra de decisão Bayesiana (critério MAP) é empregada em um problema de


classificação, a probabilidade de erro resultante é a menor possível, e portanto é uma quantidade
muito importante de se conhecer. Entretanto, em muitos casos, computar esse erro é um problema
intratável e ter um limite superior para esse erro se torna muito útil. O limite de Chernoff é um de
tais limites superiores que é razoavelmente fácil de se computar em diversos cenários. O objetivo
dessa seção é apresentar esse limite e discutir alguns resultados que podem ser atingidos para o caso
Gaussiano.

Inicialmente, iremos supor um problema de decisão multivariado de duas classes. Sejam as


x i∈ Rk . A regra de
amostras observadas pertencentes ao conjunto S={⃗x1 , ⃗x 2 , ... ,⃗x n } com ⃗
decisão ótima pelo critério MAP é dada por:
1
p(ω1 | ⃗x ) > p( ω2 | ⃗x ) (*)
<
2

p (⃗x | ω1 ) p(ω1) 1 p (⃗x | ω 2) p (ω2 )


>
p( ⃗x ) < p( ⃗x )
2
Sabemos que a probabilidade de erro é dada por:

p(erro)=∫ p( erro , ⃗x )d ⃗x =∫ p (erro | ⃗x ) p ( ⃗x )d ⃗x

ou seja, devemos minimizar p(erro | ⃗x ) para fazer a probabilidade de erro ser o menor possível.
Iremos calcular a probabilidade de erro ao observar o padrão ⃗x . Note que num problema de
classificação binário, temos:

p(erro | ⃗x )=
{
1−p (ω1 |⃗x), ⃗x ∈ω1
1−p (ω2 |⃗x), ⃗x ∈ω2

o que é equivalente a

{
p(erro | ⃗x )= p (ω2 |⃗x ), ⃗x ∈ω1
p (ω1 |⃗x ), ⃗x ∈ω2

Note que pela regra de decisão MAP definida em (*), podemos escrever:

p(erro | ⃗x )=min[ p (ω1 |⃗x) , p(ω2 | ⃗x )]

Para que seja possível derivar um limite para o erro de Bayes, precisamos fazer uso da seguinte
desigualdade matemática:
β 1−β
min[a , b]≤a b (**)
para a , b≥0 e0≤β≤1 . Iremos omitir a prova desse teorema, mas para entender o resultado

()
β
β 1−β a
de maneira intuitiva, assuma a≥b . Então, devemos mostrar que b≤a b = b , o que é
b
trivialmente verdadeiro pois claramente
a β
b ()
≥1 . Assim, aplicando a desigualdade na expressão
para p(erro) temos:

p(erro)≤∫ min[ p (ω1 | ⃗


x ), p( ω2 | ⃗x )] p ( ⃗x )d ⃗x

Desenvolvendo a equação anterior através da regra de Bayes chega-se a:

1
p(erro)≤∫ min[ p( ⃗x | ω1) p(ω 1), p (⃗x | ω2 ) p (ω2 )] p( ⃗x )d ⃗x
p(⃗x )

o que finalmente nos leva a:

p(erro)≤∫ min[ p ( ⃗x | ω 1) p (ω1 ), p(⃗x | ω2) p(ω 2)]d ⃗x

Usando a desigualdade (**), temos:

p(erro)≤∫ p ( ⃗x | ω1 ) p (ω1 ) p( ⃗x | ω2 )
β β 1−β 1−β
p(ω 2) d ⃗x

Isolando as probabilidades a priori pois são constantes temos:

p(erro)≤εβ = p(ω 1)β p (ω2 )1−β ∫ p( ⃗x | ω1)β p( ⃗x | ω2 )1−β d ⃗x (***)

onde εβ define uma família de limites superiores parametrizados por β . Na teoria de


reconhecimento de padrões estatístico, εβ é conhecido como limite de Chernoff (Chernoff
bound). Pode-se mostrar que se as densidades condicionais p(⃗x | ω1) e p(⃗x | ω2) são
Gaussianas multivariadas, então:

∫ p(⃗x | ω1)β p(⃗x | ω2 )1−β d ⃗x =e−k(β) (****)

onde

β(1−β) T −1 1 |β Σ 1+(1−β) Σ2|


k (β)= (⃗
μ 2−μ
⃗ 1) [β Σ 1+(1−β) Σ2 ] ( ⃗
μ2−μ
⃗ 1)+ log
2 2 β
|Σ1| |Σ2|
1−β

em que |A| denota o determinante da matriz A.

O problema é que computar o limite de Chernoff não é tão direto como gostaríamos. O limite de
Chernoff é calculado numericamente encontrando o valor de β que minimiza e−k(β) e
substituindo seu valor em na expressão (***).

Algumas observações interessantes podem ser feitas sobre o limite de Chernoff. Primeiramente,
note que a integral em (****) é igual a uma exponencial negativa. Isso significa que quanto maior o
valor de k (β) menor o valor de εβ . Note que no caso hipotético de termos a diferença entre as
médias tendendo a infinito, k (β) também tende a infinito, fazendo e−k(β) ser igual a zero,
indicando que a probabilidade de erro é nula (as duas Gaussianas estão muito distantes). Por outro
lado, se as médias forem iguais e as matrizes de covariâncias também forem, k (β) tende a zero,
fazendo o valor de e−k(β) ser igual a 1, que é o maior valor possível.

Um caso particular do limite de Chernoff é o limite de Bhattacharyya, obtido fazendo k =1/2 :

p(erro)≤ε1 /2= √ p(ω1) p(ω 2)e


−k(1/ 2)

onde k (1 /2) é a conhecida distância de Bhattacharyya entre as distribuições, que no caso


Gaussiano é dada por:

| |
Σ 1+ Σ 2

[ ]
−1
1 T Σ1 +Σ 2 1 2
k (1 /2)= (⃗
μ2−⃗
μ 1) (⃗
μ 2−⃗
μ 1 )+ log
8 2 2 √|Σ1||Σ2|
Note que quanto maior a distância de Bhattacharyya entre as Gaussianas, menor o valor de
e−k(1/ 2) e o limite superior para a probabilidade de erro, o que é bastante razoável. Esse limite é
mais fácil de ser computado, sendo uma aproximação muito boa para o limite de Chernoff na
prática.
Classificação não paramétrica
O classificador Bayesiano é um modelo paramétrico, no sentido de que é necessário assumir um
modelo estatístico para os dados a serem classificados. Em algumas situações, a estimação dos
parâmetros de tais modelos pode ser muito difícil, ou até mesmo impossível (por exemplo, se uma
determinada classe possui apenas uma ou duas amostras, como estimar a matriz de covariâncias?).
Por essa razão, diversas técnicas de classificação não paramétricas foram desenvolvidas, dentre as
quais podemos citar o classificador de mínima distância, o classificador KNN e as máquinas de
vetores de suporte (SVM).

Classificador de Mínima Distância (Nearest Mean Classifier)

Regra de decisão: Atribuir ⃗x a classe ω j cuja média é mais próxima (centroide mais
próximo). Em outras palavras, deseja-se minimizar a distância entre ⃗x e a média da classe ω j

2,
D j (⃗x )=‖⃗x −μ j‖ j =1,2, ... c

Porém note que quanto menor esse valor, melhor. Para escrever a função discriminante, tomamos o
negativo de D j (⃗x ) :

T 2 T T T
d j (⃗x )=−D j (⃗x )=−(⃗x −⃗
μ j ) (⃗x −⃗
μ j )=−[‖⃗x‖ −⃗x ⃗
μ j−⃗
μ j ⃗x + μ
⃗ j μ⃗j ]

Como o termo quadrático é constante (independe da classe), temos:

T 1 T
d j ( ⃗x )=⃗x ⃗μ j− μ
⃗ ⃗μ
2 j j

de modo que a regra agora se torna: atribuir ⃗x à classe que maximiza a função d j (⃗x ) .

Interpretação Geométrica

Determinação da superfície de decisão:

d i (⃗x )=d j ( ⃗
x)

T 1 T T 1 T
⃗x μ⃗ i− μ μ i=⃗x μ
⃗i ⃗ ⃗j− μ
⃗ μ⃗
2 2 j j

T 1 T T
⃗x ( ⃗
μi −μ
⃗ j )− (μ μ −μ
⃗ ⃗ ⃗j μ⃗ j)=0
2 i i

T 1
⃗x ( ⃗
μi −μ
⃗ j )− (μ μ j )T ( ⃗
⃗ i−⃗ μi + ⃗
μ j)=0 (o segundo termo é um bias que desloca o hiperplano)
2

1
Ao projetar ( μ⃗ + μ⃗ ) na direção da diferença das médias (μ⃗1−μ⃗2) temos a distância d, que
2 1 2
representa justamente o offset (bias) do hiperplano (distância em relação a origem). A superfície de
decisão é linear (não há termo quadrático) e ortogonal a diferença das médias. O cenário é
equivalente caso 1 do classificador Bayesiano sob hipótese Gaussiana, em que todas as matrizes de
covariâncias são iguais a σ2 I O hiperplano de decisão é definido pelo conjunto de todos os
vetores que distam d da origem e cujo produto escalar com a diferença das médias resulta em zero).
Portanto, trata-se de um classificador não paramétrico e linear.

KNN (K-Nearest Neighbors)

O classificador dos k-vizinhos mais próximos é equivalente a aplicar um classificador Bayesiano


em que as densidades condicionais de cada classe são estimadas de maneira não paramétrica. Em
resumo, cada amostra define uma região de influência no espaço de características de modo que a
construção da superfície de decisão é feita de maneira não-linear (através da união de arestas da
tesselação de Voronoi). Por essa razão, trata-se de um classificador não paramétrico e não linear.
*
Da teoria de probabilidades, sabemos que a probabilidade de um ponto x cair em uma região de
interesse de volume V(x), centrada em x é dada pela integral:

θ=∫V (x) p (x) dx

É uma generalização da área sob a curva,


em que que no caso de múltiplas
dimensões temos o volume.
Para um pequeno volume V:

θ≈ p( x)V (*)

(no caso 1D é a prob. vezes largura dx)


(no caso 2D é a prob. vezes área A)
(no caso ND é a prob. vezes volume V)

A probabilidade θ pode ser aproximada pela proporção de amostras que caem na região de
volume V. Se K é o número de amostras de um total de N que caem na região então:

K
θ≈ (**)
N

Combinando as equações (*) e (**) temos uma aproximação para p( x) :

K
p(x)=
NV

Assim, podemos estimar a probabilidade condicional da classe ω j de modo não paramétrico por:

Kj
p(⃗x|ω j)=
N jV R

onde K j denota o número de amostras da classe w j na região de interesse


N j denota o número total de amostras da classe w j e
V R denota o volume da região de interesse

Sendo assim, a probabilidade a priori é dada por:

Nj
p(ω j)=
N

onde N é o número total de amostras disponíveis. Então, pelo critério MAP, devemos atribuir
⃗x a classe ω j se:

p(ω j| x)> p(ωi|⃗x ) ,∀ i≠ j

ou seja se ,

Kj N j Ki Ni
>
N jV R N NiV R N

o que implica em (após simplificações)

Ki>K j para i=1,2,. .., c


Regra KNN: Atribuir ⃗x à classe com maior representatividade dentre as K amostras mais
próximas.

Tamanho da região de influência: parâmetro K, geralmente escolhido como um inteiro ímpar.


Equivalente a observar os rótulos dos K mais próximos e realizar uma votação por maioria.
Pode ser custoso computacionalmente: para cada amostra ⃗x a ser classificada devemos computar
a distância de ⃗x a cada uma das amostras da base.

Support Vector Machines

- Baseadas na Teoria do Aprendizado Estatístico (TAE), desenvolvida por Vapnik e colegas


- Novo paradigma: aprender uma função ou conceito f a partir de um conjunto de treinamento
- Objetivo: estudar garantias teóricas sobre condições necessárias para o processo de aprendizagem

Limitações gerais de processos de aprendizagem:

a) Overfitting (Super-ajuste): Baixa capacidade de generalização, ou seja, ao ser confrontado com


novos dados (que não existiam no conjunto de treinamento), classificador apresenta baixa taxa de
acerto (classificador fica excessivamente “viciado” no conjunto de treinamento, por isso o
desempenho é extraordinário no conjunto de treinamento. Porém, não generaliza)

b) Underfitting (Mal-ajuste): Modelo muito simples, fracassa ao aprender a partir do conjunto de


treinamento (não aprende o suficiente) – desempenho muito ruim no conjunto de treinamento

Situação ideal: Busca o compromisso entre Overfitting e Underfitting.

Pergunta: A partir de um espaço de funções F, como escolher f^ de modo a garantir que o erro de
treinamento seja baixo e a capacidade de generalização seja alta? TAE nos fornece condições
matemáticas para se atingir esse objetivo. Tudo isso sem assumir hipóteses acerca da distribuição
dos dados (abordagem não paramétrica)

Objetivo: Qual o melhor classificador f n (para um conjunto de treinamento fixo de tamanho n)


em termos de se aproximar do classificador de menor risco, ou seja, f bayes ?

É preciso primeiramente definir um espaço de funções F da qual nosso calssificador fará parte
(espaço de funções possíveis de serem aprendidas pelo classificador).

A pergunta que surge é: Quando o aprendizado é consistente, ou seja, quando f n consegue


aprender dos dados? A resposta para essa questão pode ser obtida analisando a figura abaixo.

F all : espaço de todas as possíveis funções


f Bayes

Fall Erro de aproximação F : espaço das funções que classificador pode aprender
fF
f F : classificador de mínimo risco em F
Erro de estimação F f bayes : classificador de mínimo risco possível
fn
Podemos associar um risco R a cada possível classificador (assim como visto na Teoria de Decisão
Bayesiana). Denotamos de R( f n) o risco do classificador f n , para uma amostra de tamanho n.

Consistência: f n é um classificador consistente ←→ R( f n) (risco) é minimizado conforme


n→∞ . (ou seja, um classificador é consistente se risco é minimizado quando conjunto de
treinamento cresce – consegue aprender conceito). Em outras palavras, a consistência me diz se
consigo aprender ou não. Um classificador é consistente se, quanto mais amostras apresento a ele,
mais ele minimiza o risco.

Problema: Para F → Fall, aprendizado não é consistente (se F cresce muito, não consigo aprender).

Portanto, devemos restringir F. Porém, enfrentamos um dilema.

Dilema: Se F é muito grande → erro de estimação muito grande (não é consistente pois f n não
consegue se aproximar de f F ). Por outro lado, se F é muito pequeno → erro de aproximação é
muito grande ( f n longe de f bayes pois F restringe possibilidades), mas é consistente.

A pergunta fundamental é: como escolher F contido em F all e f^ ∈ F ? A TAE nos ajuda a resolver
esse problema propondo as Suport Vector Machines (SVM's) que é uma classe de funções
(classificadores) ótimos no que diz respeito ao compromisso entre os erros de estimação e
aproximação (compromisso entre F pequeno ou grande).

SVM's: Classe de funções ou classificadores ótimos dentro do dilema apresentado.

Considerações sobre a escolha de F

Hipótese: dados são gerados de forma i.i.d (independente e identicamente distribuídas) de acordo
com P(⃗x , y ) que descreve a relação entre as amostras e seus rótulos (distrib. conjunta)

O risco esperado, que é uma medida da capacidade de generalização de f, é dado por:

R( f )=∫ c (f ( ⃗x ), y )dP( ⃗x , y )=E [c ( f ( ⃗x ), y )] R(f) é uma medida de desempenho global

Exemplo: função de custo é outra forma de ver a matriz de perdas (contínua x discreta)

1
c ( f (⃗x ), y)= |y−f (⃗x )|
2

{
f ( ⃗x )= −1, x∈ω 1
1, x ∈ω2

Problema: P(⃗x , y ) é desconhecido → impossível minimizar risco esperado R(f)

Existe nesse caso, o risco empírico, que mede o desempenho de f apenas no conjunto de
treinamento.
n
1
Remp (f )= ∑ c(f ( x⃗i ), y i )
n i=1
(Uma média da função de perda)
OBS: Risco empírico nada mais é que uma contagem de quantos erros há no conjunto de
treinamento.

Deseja-se saber: sob quais condições Remp (f )→R (f ) quando n →∞ ?


Depende da classe F de funções que f faz parte→ capacidade de generalização. A TAE fornece
limites para o risco esperado R( f ) com base em medidas de capacidade para as funções f de um
espaço F. Pode-se mostrar que, com probabilidade (1−θ) , θ∈[0,1] .

√ ( )
2n
h ln +1 −ln θ
h 4
R( f )≤Remp ( f )+
n

onde h é a dimensão-VC da classe F e n é o número de amostras.

A dimensão-VC h é um atributo de uma classe de funções F que mede a complexidade das funções f
que se pode aprender desse conjunto. Quanto maior h, mais complexas as funções em F.

Def: A dimensão VC (Vapnik-Chervonenkis) de uma classe de funções/conceitos F é o tamanho


máximo de um conjunto que pode ser fragmentado/particionado (shattered) por funções f ∈F .

Ex:
2
⃗x ∈ R (domínio – plano)
F : conjunto das retas no plano
VC dim ( F)=h=3

As funções f ∈F atribuem rótulo 1 para amostras de uma lado da reta e -1 para amostras do outro
lado. Veremos que o número máximo de pontos que podem ser separados por uma reta no plano é 3,
pois exste uma configuração de 3 pontos no plano (figura abaixo) que pode ser fragmentada
corretamente por uma reta em todas as possíveis combinações de rótulos ( 23=8 ). Dada uma
disposição quaisquer de pontos, quais são as possíveis combinações de rótulos binários essa
configuração geral?

Não importa a combinação de rótulos nos pontos, com uma única reta (f in F) consigo separar as
amostras. Porém, não existe configuração de 4 pontos em R^2 que possa ser particionada por uma
reta (para todas as combinações de rótulos). → Problema do XOR (exige uma função de
complexidade maior que reta)
Princípio da Minimização do Risco Estrutural

O risco empírico R( f ) pode ser minimizado pela escolha adequada por parte do algoritmo de
aprendizado de um classificador f^ que minimize o risco empírico Remp ( f ) e pertença a uma
classe de funções F com baixa dimensão-VC.

Pode-se observar que a equação que define um limite superior para o risco empírico é composta por
dois termos principais:

1) Remp ( f ) : refere-se a um classificador particular f de F: medida local


2) Termo de capacidade: refere-se ao espaço F (classe de funções f que podem ser aprendidas) -
medida global

Podemos dividir o conjunto de todas as possíveis funções (F), conforme ilustra a figura a seguir:

F0 F1 F2 F3

de modo que h0 <h 1< h2< …<hi (conforme o conjunto cresce, sua dimensão VC aumenta)

Suponha um espaço F k e f^k ∈ F k como sendo o classificador de menor risco empírico em


F k . Se k cresce (passamos de F2 para F3 , por exemplo), a dimensão VC h também cresce
e portanto o termo de capacidade aumenta. Por outro lado, o risco empírico Remp ( f^k ) diminui,
pois como as funções se tornam mais complexas, conseguem se adaptar mais aos dados (i.e.,
passam de retas para curvas por exemplo). Analogamente, se k diminui, h diminui, mas
Remp ( f^k ) aumenta.

Objetivo principal: Encontrar o melhor compromisso entre minimização do risco empírico e


definição do conjunto F

Erro

Termo de Capacidade
R( f )

Remp
h
Problema: Computar dimensão VC h de uma classe F não é trivial (pode ser até infinita).

Solução: Restringir classe F


Se F é restringida para a classe de funções lineares, é possível obter resultados exatos que associam
o risco esperado R( f ) ao conceito de de margem (distância mínima de uma amostra à fronteira
de decisão), possibilitando assim a definição do erro marginal.

Pode-se mostrar que para a classe F de funções lineares, com probabilidade (1−θ) , θ∈[0,1] e
ρ> 0 vale a seguinte relação (limite superior para risco esperado):

R( f )≤R ρ (f )+
√( [
c R2
n ρ 2 ( )
2 n 1
log ρ +log ( )
θ ])
onde ρ define a margem de segurança, Rρ (f ) é o erro marginal no conjunto de treinamento
(número de amostras do conjunto de treinamento que não satisfazem a margem de segurança ρ )
e R é uma constante.

Obs: Rρ (f ) : erro marginal → proporção de exemplos cuja margem inferior é ρ

Uma análise da equação nos revela que:


Quanto maior margem ρ , menor o termo de capacidade (aparece no denominador), mas pode
fazer com que muitas amostras não satisfaçam a margem de segurança (aumenta Rρ (f ) ).
Por outro lado, uma margem ρ pequena minimiza Rρ ( f ) (fica mais fácil para amostras
satisfazerem margem) mas aumenta termo de capacidade.

Em resumo:

Caso (i) : ρ muito grande, diminui o termo de capacidade e aumenta o Rρ (Erro marginal)
Caso (ii) : ρ muito pequeno, diminui o Rρ mas aumenta o termo de capacidade

Objetivo: Encontrar hiperplano que maximiza margem e cometa poucos erros marginais (isso é que
minimize Rρ )
→ Essa ideia é a base para a construção das máquinas de vetores de suporte (as SVM's)
Máquinas de vetores de suporte

- Encontrar hiperplanos ótimos dentro do critério estabelecido anteriormente (hiperplanos ótimos no


sentido de generalização).
- Analogia com algoritmo do perceptron para problemas linearmente separáveis.

Observações:

⃗ ⃗x =0
H =ω + ⃗ ⃗x +b=0
H =ω

-
b ⃗ ⃗x +b> 0
ω
⃗‖
‖w

⃗ ⃗x +b< 0
ω
H
H

Existem infinitos valores de ω ⃗ e b que definem um mesmo hiperplano H (bastando multiplicar


pela mesma constante, por exemplo as retas 2x + 1 = 0, 4x + 2 = 0, 6x + 3 = 0). Por essa razão,
define-se o hiperplano canônico H como sendo aquele em que as amostras mais próximas a
ω⃗ ⃗x + b=0 satisfaçam |⃗ ω ⃗x +b|=1 (resulta em 1 ou -1)

ω
⃗⃗x i+ b>1

ω
⃗⃗x i+b<−1

⃗ ⃗x +b=1
H 1=ω

⃗ ⃗x +b=0
H =ω
⃗ ⃗x +b=−1
H 2=ω
Sendo assim, temos o seguinte cenário para um Conjunto de treinamento para problema binário (2
d
classes): T ={(⃗
x i , y i )}, i=1,... , n , ⃗
xi ∈ R , y i ∈{−1, 1}

As amostras mais próximas do hiperplano canônico H devem satisfazer as seguintes condições:

H 1:ω
⃗⃗ x i+ b=1⇒ ω
⃗ x⃗i +(b−1)=0
H2: ω
⃗ x⃗i +b=−1⇒ ω ⃗ x⃗i +(b+1)=0

Combinando as equações anteriores:

ω
⃗ ⃗x i+b≤−1 se y i≤−1
ω
⃗ x⃗i +b≥1, se y i≥1

O que implica que podemos unificar ambas expressões e escrever:

y i (⃗
ω⃗x i+ b)−1≥0, ∀( x⃗i , y i )∈T → Restrição do problema

Podemos computar a distância entre os hiperplanos H1 e H2 (margem – distância entre


vetores de suporte) como:

b+1 b−1 1 2
− = (b +1−b+1)=
⃗ ‖ ‖ω
‖ω ⃗ ‖ ‖ω
⃗‖ ⃗‖
‖ω

de modo que para maximizar a margem de separação (distância entre vetores de suporte), devemos
minimizar ‖ω‖ .

Assim, pode-se definir o seguinte problema de otimização:

1 2
ω‖ sujeito a
minω⃗ , b= ‖⃗ y i (⃗
ω⃗x i+ b)−1≥0 para i=1,2,. .., n (note que há n restrições)
2

Obs: As restrições garantem que não exista dados de treinamento entre margens de separação.

Utilizando multiplicadores de Lagrange, chega-se a:


n
1
ω‖ −∑ α i [ y i ( ω
2
L(⃗
ω,b,α
⃗ )= ‖⃗ ⃗ x⃗i +b)−1] (forma primal do problema de otimização)
2 i=1

A função Lagrangiana (L) deve ser otimizada, o que implica em maximizar as variáveis αi e
minimizar ω⃗ e b. Deve-se portanto encontrar as soluções de:

∂ L( ω
⃗ ,b,α
⃗ )=0
∂b
∂ L( ω
⃗ ,b,⃗
α )=0
∂ω⃗

Resolvendo as equações temos


n n

∑ α i y i =0 e ⃗ =∑ αi y i x⃗i (*)
ω
i=1 i=1
Substituindo as expressões encontradas em (*) na forma primal, obtém-se a forma dual do problema
de otimização:

{ }
n
1
n n αi ≥0, ∀ i=1, 2,... , n
max α⃗ ∑ α i− ∑ ∑ α i α j y i y j ( x⃗i x⃗j) sujeito a n
2 i=1 j=1
i=1
∑ αi y i=0
i=1

Vantagem: função objetivo definida em termos de uma única variável de interesse (vetor α ⃗ ),
além de permitir expressar o problema em termos de produtos escalares. (o que será muito útil na
* *
generalização para SVMs não-lineares). Assim, se α ⃗ é a solução do problema dual, ω⃗ pode
ser computado diretamente pela equação (*). Para computar b* , pode ser mostrado que:
*
αi ( y i ( ω
⃗ x⃗i +b)−1)=0, ∀ i=1,2,... , n (condições de Karush-Kuhn-Tucker são condições
necessárias para que uma solução seja ótima num problema
de otimização)

Note que como δ= y i ( ω ⃗⃗ xi +b)−1=0 apenas para amostras que se encontram sobre os
hiperplanos H 1 ou H 2 , para que (**) seja satisfeita α*i pode ser não nulo apenas para os
vetores ⃗ x i que se encontram sobre os hiperplanos H 1 e H 2 . Isso implica que α*i =0
para todos as demais amostras (que encontram-se além das margens definidas por H 1 e H 2 ).
Esses pontos não participam do cálculo de ω ⃗ . Os dados que possuem α*i > 0 são chamados
“vetores de suporte” e são as amostras mais próximas do hiperplano separador H, sendo as mais
informativas do conjunto de treinamento.

Assim, b* é uma função apenas dos vetores de suporte . Pode-se mostrar que:

b=
* 1

1
n sv x ∈SV y j
j
−⃗
{*
ω x⃗j
}
nsv denota o número de vetores de suporte e SV é o conjunto dos vetores de suporte.

*
Ou ainda, substituindo ω
⃗ por (*):

b=
* 1

1
{
− ∑ αi yi ( x⃗i x⃗j )
n sv x ∈SV y j ⃗x ∈SV
j
*

i
} (<>)

Solução dada em termos dos produtos internos entre cada par de vetores de suporte.
Portanto, como resultado tem-se a seguinte regra de decisão/classificação:

ω ⃗x +b }=sgn { ∑ y i α i (⃗
* * * *
g(⃗x )=sgn {f (⃗x )}=sgn {⃗ x i ⃗x )+ b }
x i ∈SV

onde sgn denota a função sinal, de modo que a amostra ⃗x é classificada como classe 1 se
g(⃗x )< 0 (sinal negativo) e classificada como classe 2 se g(⃗x )> 0 . Note que os parâmetros a
* * *
serem aprendidos na etapa de treinamento ω ⃗ e b . Enquanto ω ⃗ controla a inclinação do
hiperplano separador ótimo, b* define sua posição em relação as margens H 1 e H 2 .
SVM com margens suaves

Ideia: Lidar com sobreposição entre as classes, permitindo que alguns elementos/amostras possam
violar a restrição e situem-se entre as margens.

ω x i+ b)≥1−ϵi , ϵi≥0 (variáveis de folga) (R1)


y i (⃗

Variáveis de folga tem o papel de suavizar as margens (algumas amostras podem permanecer entre
hiperplanos H 1 e H 2 ). Nesse caso, a função objetivo fica:

{ }
n
1
minω⃗ , b ,⃗ϵ ω‖2+ C( ∑ ϵi )
‖⃗ sujeito a restrição R1 acima, onde ϵ i∈[0,1] indica dados entre
2 i=1

as margens

Assim como no caso anterior a forma dual é dada por:


n n n
1
max⃗α [ ∑ αi − ∑ ∑ αi α j y i y j ( ⃗
xi x⃗j )]
i =1 2 i=1 j=1

sujeito as restrições ∑ α i y i =0, ∀ i (note que agora αi é limitada superiormente por cte C)
i=1
0≤αi≤C

Se α*i ⃗ * continua sendo dado pela equação (*).


é solução do problema o vetor ω

Entretanto, pode-se mostrar que os ϵ *i são dados:


n
ϵ =max {0,1−[ y i ∑ y j α j ( x⃗i x⃗j)]+ b }
* * *
i
j=1

Assim como no caso anterior, b* precisa ser computado como uma média num conjunto SV de
vetores de suporte. Na definição desse conjunto, temos as duas seguintes condições (KKT):

α*i ( y i( ω
⃗ * x⃗i +b *)−1+ ϵ* )=0 (I)

(C−α *i ) ϵ*i =0 (II)

Os pontos ⃗ x i para os quais α*i > 0 são os SV's. Porém, nesse caso existem vários tipos de
vetores de suporte, de acordo com os valores de α*i e ϵ *i :

i) Se α*i <C , então pela equação (II) temos que ϵ *i =0 e da equação (I) conclui-se que esses
SV's estão sobre as margens (hiperplanos H 1 e H 2 ).
ii) Se α*i =C , tem-se 3 situações possíveis:
A) ϵ *i >1 → ERROS (SV's cruzam o hiperplano – erro de treinamento)
B) 0⩽ϵ*i <1 → amostras entre margens (OK – Não é erro)
C) ϵ *i =0 → caso raramente ocorre (sobre as margens de acordo com (I))
α=0

ρ αi =C ,ϵi ∈[0,1]

αi <C ,ϵ i =0
ϵi >1

α=0 H

αi <C ,ϵ i =0

*
Sendo assim, para calcular b computa-se a média dada pela equação (<>) sobre todos os SV's
com α*i <C , ou seja:

b*=
1
∑ (1
− ∑ α *i y i ( ⃗
n v :(α <C ) x⃗ ∈ SV :(α <C) y i x⃗ ∈ SV
*
j
*
i
x i x⃗ j)
)
OBS: Note que o somatório mais externo é sobre os SV's que satisfazem α*i <C e o segundo
somatório (interno) envolve todos os SV's (tanto livres quanto limitados).

SVM Não-Lineares

- Problemas não-linearmente separáveis

Solução: Mapear dados de entrada para um espaço de dimensão maior.


2 3
Ex: Φ: R ⇒R
2
⃗x ∈R
Φ(⃗x )=Φ(x 1, x 2)=(x 2,i √ (2) x 1 x 2, x22 )∈R 3 (vetor do plano mapeado para vetor no espaço)
Ideia: Mapear dados para novo espaço (maior dimensão) e aplicar SVM linear (em geral, margens
suaves)

Problema (Forma Dual):

[ ]
n n n
1
maxα⃗ ∑ αi − ∑ ∑ α α y y (Φ( ⃗xi )Φ( x⃗j ))
2 i=1 j =1 i j i j
i=1

e a solução é novamente dada por:

g(⃗x )=sgn {f (⃗x )}=sgn { ∑ y i α *i (Φ ( ⃗


xi ) Φ( x⃗ j ))+ b* }
x i ∈SV

Obs: b* é dado pela mesma expressão anterior (margens suaves) com aplicação da função Φ .

b*=
1

n sv : α < C x⃗ ∈ SV :α <C
*
j
* [ 1
− ∑ α*i y i Φ ( ⃗
y j x ∈SV i
x i) Φ( x⃗j)
]
Problema: Como projetar operador de mapeamento Φ ?

- Cômputo variável devido a alta dimensão (i.e., como fazer para mapear do plano para R100?)
- Pode ter dimensão infinita

Solução: Funções de Kernel (não é necessário conhecer mapeamento em si, apenas como realizar
produtos escalares no novo espaço)

K(⃗
xi , ⃗
x j )=Φ ( ⃗
x i) Φ ( x⃗j )

A função Kernel recebe dois vetores no espaço de entrada e retorna o valor do produto escalar entre
eles no espaço de características (maior dimensão)

Ex:

Φ : R ⇒ R , Φ (⃗x )=Φ(x 1, x 2)=( x 2,1 √ (2) x 1 x 2, x 22)


2 3

x i=(x 1 i , x 2 i) , x⃗j=( x 1 j , x 2 j )

K ( x⃗i , x⃗j )=Φ( x⃗i) Φ ( x⃗j )=(x 1 i √(2) x 1 i x 2 i , x 2i )(x 1 j √(2)x 1 j x2 j , x 2 j )
2, 2 2, 2

2 2 2 2 2
(x 1i x 1 j +2 x 1 i x 2 i x 1 j x 2 j + x 2 i x 2 j )=( x⃗i x⃗k )

x i x⃗k )2=(x 1 i x 1 j + x 2 i x 2 j )2=x 21 i x 21 j +2 x1 i x1 j x 2 i x 2 j + x 22 i x 22 j=K (⃗


uma vez que (⃗ x i , x⃗j )

Obs: Uma função de kernel K satisfaz as condições de Mercer se dá origem a uma matriz positiva
semi-definida K onde K ij =K ( x⃗i , x⃗ j) (Os autovalores são todos maiores ou iguais a zero).
Exemplo de Kernels:
d
a) Polinomial: K ( x⃗i , x⃗j )=(⃗
x i x⃗j )

{ }
2
−‖⃗
xi− x⃗j‖
b) Gaussiano: K ( x⃗i , x⃗j )=exp σ

c) Sigmoidal: K ( x⃗i , x⃗j )=tanh( x⃗i x⃗j) (função tangente hiperbólica)


Teorema de Cover: Fornece garantias de separabilidade linear. Se as transformações forem não-
lineares e as dimensões forem suficientemente altas, é possível tornar o problema linearmente
separável.

Outros desafios

Como generalizar SVM's para o caso de múltiplas classes?

→ Reduzir problema multiclasse para vários problemas binários

Basicamente, existem 2 abordagens:

i) Um contra todos: generalizar função discriminante (sem sgn), retornando um score


Dentre todos os valores retornados pelas funções discriminantes, tomar o máximo

ii) Um contra um: n(n-1)/2 (combinação de n tomados de 2 a 2)


Discriminar entre cada possível par de classes (disputas entre classe 1 x classe 2, classe 1 x
classe 3, classe 2 x classe 3) e o vencedor recebe um voto. Maior vencedor será a classe escolhida.
Desvantagem: se número de classes é muito alto, inúmeras combinações possíveis
Agrupamento de dados
Até aqui os métodos de classificação discutidos foram supervisionados, ou seja, todos fazem uso
dos rótulos das classes no conjunto de treinamento. A seguir veremos algoritmos utilizados para
classificar dados de maneira não supervisionada, através do agrupamento de dados (clustering).

K-Médias (K-Means)

→ Método não supervisionado (não faz uso de rótulos disponíveis no conjunto de treinamento)
→ Algoritmo de clustering: agrupamento de dados de acordo com similaridade
→ Depende fortemente da distância utilizada (Euclidiana, norma L1, Mahalanobis, cosseno, ...)

Dados X ={⃗x 1 , ⃗x 2 ,... , ⃗x n } com ⃗x i∈ R d , o algoritmo tem como objetivo particional as n


amostras em k < n grupos S={s 1 , s2, ... , s k } de modo a minimizar o espalhamento intra-cluster,
ou seja, o objetivo consiste em encontrar :
k
argmin
∑ ∑
S i=1 ⃗x ∈ s
μ i‖2
‖⃗x −⃗ onde ⃗
μi é o centroide (ponto médio) de s i
i

Note que desejamos que os centros dos grupos estejam o mais próximo possível dos dados.

Pode-se verificar que encontrar a solução ótima para esse problema é NP-Hard para um número
qualquer de dimensões d. A heurística adotada pelo K-médias para simplificar o problema consiste
em fixar o valor de K.

O funcionamento do algoritmo segue os seguintes passos:

→ K sementes são geradas aleatoriamente

→ K grupos são criados associando cada amostra a


semente mais próxima
→ Computa-se o novo centroide de cada um dos K
grupos como sendo a média dos elementos do grupo

→ Os passos anteriores são repetidos até que a


convergência seja atingida (centroides não se movem)

Algoritmo: São quatro passos principais.

P1) Especificar um conjunto de K centros (escolher K amostras aleatoriamente)


→ K é o parâmetro do método (representa o número desejado de agrupamentos)
→ Escolha randômica do conjunto X (amostras)

P2) Associar cada amostra x i ao agrupamento mais próximo (centro mais próximo)

P3) Atualiza os centros dos clusters (novo centro é a média dos pontos do agrupamento)

1
μ(tj +1)= ∑ ⃗x , j=1,2, ... ,c
N j x ∈ω i
i j

P4) Se não houverem mudanças nos rótulos (centros não mudaram), algoritmo convergiu
→ Critério de parada
Senão, retorne ao passo P2.

Problemas:
→ Sensibilidade à escolha randômica do conjunto de centros iniciais. Diversas vezes é comum
utilizar-se de algum tipo de supervisão na seleção dos centros iniciais (1 amostra representativa de
cada classe).
→ Escolha incorreta do número de clusters (K)
→ Dados com anisotropia (dados fortemente correlacionados)
Gaussian Mixture Models (GMM)

Esse classificador não supervisionado pode ser considerado como uma generalização do algoritmo
k-médias, em que ao invés de tentar estimar apenas os centroides de cada agrupamento, tentamos
estimar além deles a forma e a proporção de cada Gaussiana da mistura observada.

Dados X ={⃗x 1 , ⃗x 2 ,... , ⃗x n } com ⃗x i∈ R d , assumimos que as observações são amostras iid
(independentes e identicamente distribuídas) de uma densidade p(⃗x ) . Assumimos também que a
densidade p(⃗x ) é uma mistura finita de K componentes:
K
p(⃗x ; ⃗θ )=∑ πk p (⃗x | ⃗
μ k , Σ k )=π 1 p(⃗x | μ
⃗ 1 , Σ 1)+ π2 p(⃗x | μ
⃗ 2 , Σ2 )+...+π K p(⃗x | ⃗
μ K , ΣK )
k=1

K
onde ∑ πk=1 e ⃗
θ=( π1 , ..., π K , ⃗
μ1 , ..., ⃗
μ K , Σ 1 , ... , Σ k )
k=1

→ As componentes ⃗ k , Σk ) são densidades Gaussianas multivariadas dadas por:


p(⃗x | μ

p(⃗x|μ
⃗ k , Σ k )=
1
d /2
(2 π) |Σk|
1
{ T −1
exp − (⃗x −μ⃗k ) Σk (⃗x −μ⃗k )
2
1 /2 }
→ Os pesos π k representam a probabilidade de que um ⃗x selecionado aleatoriamente tenha
sido gerado gerado pela componente k.

As figuras a seguir ilustram exemplos de mistura de Gaussianas no caso 1D e 2D.


K-médias x GMM

Enquanto no K-médias o único parâmetro a ser estimado é o centroide ⃗ μ k de cada cluster


(componente), no modelo GMM temos de estimar 3 parâmetros: o centroide ⃗ μ k , a forma do
cluster (dado por Σ k ) e as proporções π k (probabilidades de amostra pertencer a cada cluster)
Para a estimação dos parâmetros do modelo GMM, devemos utilizar o método da máxima
verossimilhança (maximum likelihood estimation). Entretanto, em modelos de mistura de
distribuições não há solução analítica para esse problema de otimização. Para isso, foi desenvolvido
o algoritmo EM, Expectation Maximization, que é um método numérico iterativo para obter os
estimadores de máxima verossimilhança de um modelo estatístico incompleto.

O algoritmo EM: Expectation-Maximization

O algoritmo EM é utilizado para encontrar estimadores de máxima verossimilhança (EMV’s) de


parâmetros de modelos estatísticos nos casos em que as equações não podem ser resolvidas
analiticamente. Tipicamente, isso ocorre porque tais modelos envolvem variáveis latentes além dos
parâmetros desconhecidos e dos dados observados. Ou seja, ou dados faltantes existem nas
observações, ou o modelo pode ser reformulado de maneira mais simples assumindo a existência de
variáveis não observadas (latentes), que geralmente especificam o componente da mistura que cada
amostra pertence.
Para encontrar uma solução de máxima verossimilhança é necessário calcular as derivadas da
função log-verossimilhança com relação a todos os parâmetros desconhecidos e variáveis latentes e
simultaneamente resolver todas as equações obtidas. Em modelos estatísticos com variáveis
latentes, como é o caso do modelo GMM, isso é geralmente impossível.

Formulação matemática

Dado um modelo estatístico que gera um conjunto X de observações, um conjunto de variáveis


latentes Z e um vetor de parâmetros ⃗
θ , temos que a função verossimilhança é dada por:

L( ⃗
θ ; X , Z)= p ( X , Y | ⃗θ )

O estimador de máxima verossimilhança do vetor de parâmetros ⃗


θ é determinado pela
maximização pela verossimilhança marginal dos dados observados:

θ ; X)=p (X | ⃗θ )=∫ p( X , Z | ⃗θ )dZ


L( ⃗

Entretanto, essa quantidade é geralmente intratável, pois computar a integral quase nunca é
possível. O algoritmo EM busca encontrar o EMV da verossimilhança marginal iterativamente
aplicando os dois passos a seguir:

1. Expectation (E step): Calcular o valor esperado da log-verossimilhança com respeito a


distribuição condicional de Z dado X, utilizando a estimativa atual dos parâmetros ⃗
θ(t ) .

Q( ⃗
θ | ⃗θ (t ) )=E Z| X , ⃗θ [log L( ⃗θ ; X , Z )]
(t )

2. Maximization (M step): Encontrar os parâmetros que maximizam essa quantidade.

⃗ argmax
θ(t +1)= ⃗ Q( ⃗θ | ⃗θ(t ))
θ
Os modelos típicos nos quais o algoritmo EM é aplicado usam Z como variável latente indicando a
pertinência das amostras X em um de um conjunto de grupos/clusters.
Obs:
1) As observações X podem ser tanto discretas quanto contínuas (Gaussianas por exemplo);
2) As variáveis latentes Z são discretas, podendo assumir um número fixo de valores, de modo que
podemos associar uma variável latente por observação;
3) Os parâmetros são contínuos e podem ser de dois tipos: parâmetros associados a todas as
amostras, e parâmetros associados com um valor específico de variável latente;

Prova de corretude

Antes de aplicar o algoritmo EM no modelo GMM é essencial entender como as iterações propostas
anteriormente fazem o método convergir para o EMV. O conceito chave para entender a
convergência do EM é saber que ele funciona melhorando Q( ⃗ θ | ⃗θ (t ) ) ao invés de melhorar
diretamente a log-verossimilhança marginal log p ( X | ⃗ θ ) . A ideia dessa prova consiste em
verificar que melhorias no primeiro implicam em melhorias no segundo.

Para todo Z com probabilidade p(Z | X , ⃗


θ ) não nula podemos escrever:

p(X , Z | ⃗
θ )= p( Z | X , θ ) p(X | ⃗θ )
Aplicando o logaritmo e rearranjando os termos temos:

log p( X | ⃗
θ )=log p ( X , Z | ⃗θ )−log p( Z | X , θ )

A seguir tomamos o valor esperado sobre todos os possíveis valores dos dados desconhecidos Z sob
a estimativa atual dos parâmetros ⃗ θ(t ) . Isso pode ser feito multiplicando ambos os lados por
p( Z | X , ⃗
θ(t) ) e somando para todo Z:

EZ | X , ⃗θ [log p( X | ⃗
(t) θ )]=E Z| X , ⃗θ [log p( X , Z | ⃗θ )]+ E Z | X , ⃗θ [log p ( Z | X , ⃗θ )]
(t ) (t)

Como o termos do lado esquerdo não depende de Z (é constante), seu valor esperado é igual a ele
mesmo:

θ )=∑ p (Z | X , ⃗θ(t) ) log p (X , Z | ⃗θ )−∑ p( Z | X , ⃗θ (t ))log p(Z | X , ⃗θ )


log p( X | ⃗
Z Z

log p( X | ⃗
θ )=Q( ⃗θ | ⃗θ(t ))+ H ( ⃗θ | ⃗θ(t )) (*)

onde H (⃗ θ | ⃗θ (t ) ) é definido como o negativo do segundo somatório do termo a direita (entropia da


distribuição condicional). Note que essa última equação é válida para qualquer valor de ⃗ θ
incluindo ⃗ θ =⃗θ , ou seja:
(t )

log p( X | ⃗
θ(t ))=Q ( ⃗θ(t ) | ⃗θ(t ))+ H ( ⃗θ(t) | ⃗θ(t) ) (**)

Subtraindo a equação (**) da equação (*) temos:

log p( X | ⃗
θ )−log p ( X | ⃗θ(t) )=Q( ⃗θ | ⃗θ(t ))−Q ( ⃗θ(t) | ⃗θ(t ))+ H ( ⃗θ | ⃗θ(t) )−H ( ⃗θ(t) | ⃗θ(t )) (***)
A desigualdade de Gibbs nos diz que se P={ p 1 , p2 ,... , p n } e Q={q1 , q2 ,... , q n } são
distribuições de probabilidade então a entropia da distribuição P é sempre menor ou igual que a
entropia cruzada de P com Q:
n n
−∑ pi log pi≤−∑ pi log qi
i=1 i=1

Dessa forma, pela desigualdade de Gibbs pode-se concluir que H (⃗ θ | ⃗θ (t ) )≥H (⃗θ (t ) | ⃗θ(t ) ) . Ora, se
isso é verdade, então H (⃗
θ | ⃗θ (t ) )−H (⃗θ (t ) | ⃗θ(t ) )≥0 e podemos concluir:

log p( X | ⃗
θ )−log p ( X | ⃗θ(t) )≥Q( ⃗θ | ⃗θ(t ))−Q ( ⃗θ(t) | ⃗θ(t ))≥0

novamente pela desigualdade de Gibbs. Ou seja, conforme Q( ⃗ θ | ⃗θ (t ) ) se aproxima de


Q( ⃗θ(t ) | ⃗θ (t ) ) , a diferença entre a log-verossimilhança estimada e a verdadeira tende a zero. Em
outras palavras, ao escolher ⃗ θ de modo a melhorar Q( ⃗θ | ⃗θ (t ) ) além de Q( ⃗θ(t ) | ⃗θ (t ) ) não
pode acarretar log p( X | ⃗ θ ) decrescer abaixo de log p( X | ⃗θ(t )) , de modo que a verossimilhança
marginal dos dados é não decrescente.

O algoritmo EM não é perfeito. Assim como todo método, ele apresenta algumas desvantagens,
como: 1) EM modelos cuja log-verossimilhança é multimodal, podemos ficar presos em máximos
locais; 2) Convergência pode ser lenta;

Modelo de mistura de Gaussianas de 2 componentes

Seja X ={ x⃗1 , x⃗2 , ... , x⃗n } uma amostra de n observações independentes de uma mistura de duas
distribuições Gaussianas multivariadas de dimensão d e seja Z ={z 1 , z 2 ,... , zn } as variáveis
latentes que determinam a componente de que a observação se origina. Então,

X i |( Zi =1)∼N (μ⃗1 , Σ1 ) e X i |( Zi =2)∼N (μ⃗2 , Σ 2) onde

P( Zi =1)=π1 e P( Zi =2)=π2=1−π 1

Isso significa dizer que a densidade condicional de x i dado Z i igual a j é dada por:

xi | Z i= j , μ⃗j , Σ j)=
f (⃗
1
d /2
(2 π ) |Σ j|
1
2
1/ 2 {
exp − (⃗x −μ⃗j )T Σ−1 x −μ⃗j)
j (⃗ } (*)

O objetivo é estimar os parâmetros desconhecidos representando o valor da mistura entre as


Gaussianas, através das médias e matrizes de covariâncias:


θ =( π1, π 2, μ⃗1 , μ⃗2 , Σ 1 , Σ2)

onde a função de verossimilhança incompleta é dada por:


n 2
θ ; X)=∏ ∑ π j f ( ⃗x i | Z i= j , μ⃗j , Σ j )
L( ⃗
i=1 j=1

A função de verossimilhança completa pode ser expressa por:


n 2
θ ; X , Z)= p ( X , Z | ⃗θ )=∏ ∏ [ π j f (⃗x i | Zi = j , μ⃗j , Σ j )]
L( ⃗
I (zi = j )

i =1 j=1

onde I( Z i= j) é uma variável indicadora que assume valor 1 se Z i= j .

Aplicando exponencial e logaritmo:

{ }
n 2
θ ; X , Z)=exp log ∏ ∏ [ π j f (⃗x i | Zi = j , μ⃗j , Σ j )]I (z = j )
L( ⃗ i

i=1 j=1

{∑ ∑ }
n 2
L( ⃗
θ ; X , Z)=exp I ( z i= j)[log π j + log f ( ⃗
x i | Z i = j , μ⃗j , Σ j )]
i=1 j=1

xi | Z i= j , μ⃗j , Σ j) pela expressão em (*):


Substituindo f (⃗

{ }
n 2
1 1 d
L( ⃗
θ ; X , Z)=exp ∑ ∑
i=1 j=1
T −1
I ( z i= j)[log π j− 2 log|Σ j|− 2 (⃗x −μ⃗j) Σ j (⃗x −μ⃗ j)− 2 log 2 π ]

A seguir iremos detalhar o passo E do algoritmo.

Passo E: Dado a estimativa atual dos parâmetros ⃗ θ(t ) , a distribuição condicional de Z i dado
X é determinada pelo Teorema de Bayes (probabilidade a posteriori):
(t ) (t )
x | Z = j , μ⃗j , Σ j ) P(Zi = j)
f (⃗
xi ,⃗
(t)
T =P (Z i= j | ⃗
j ,i θ (t ) )= 2 i i
∑ f ( x⃗i | Z i= j, μ⃗ j(t ) , Σ(tj ) ) P(Z i= j)
j=1

(t ) (t)
xi | Z i= j , μ⃗j , Σ j ) π1
f (⃗
T (t) xi ,⃗
j ,i=P (Z i = j| ⃗ θ (t ) )= (t ) (t) (t ) (t )
f ( x⃗i | Z i=1, μ⃗1 , Σ1 ) π1 +f ( ⃗
xi | Z i=2, μ⃗2 , Σ 2 ) π2

Essas medidas são como os scores de cada amostra pertencer a classe j, também conhecidas como
“membership probabilities” e usualmente são consideradas as saídas do passo E. Na realidade, em
termos matemáticos, esse passo E é responsável por definir a seguinte função para Q( ⃗
θ | ⃗θ (t ) ) :

[ ] [∑ ]
n n
θ | ⃗θ (t ) )=E Z| X , ⃗θ [ log L( ⃗θ ; X , Z) ]=EZ | X , ⃗θ log ∏ L( ⃗θ ; x⃗i , Z i) =EZ | X , ⃗θ
Q( ⃗ (t ) (t) (t) log L( ⃗θ ; ⃗
xi , Z i ) =
i=1 i=1

n n 2
=∑ E Z | X , ⃗θ (t) [ log L( ⃗θ ; ⃗x i , Zi )]=∑ ∑ P(Z i= j| x⃗i , ⃗θ(t) ) log L(θ⃗j ; ⃗x i , Z i )=
i=1 i=1 j=1

n 2
1 1 d
=∑ ∑ T (tj ,i) [log π j− log|Σ j|− (⃗x−μ⃗j )T Σ−1 x −μ⃗j )− log 2 π ]
j (⃗
i=1 j=1 2 2 2

Todos os parâmetros necessários no passo E são conhecidos anteriormente com exceção de T (t)
j ,i
que é computado no início do passo E. O valor esperado condicional não precisa ser calculada
completamente pois os parâmetros π , ⃗ μ e Σ aparecem em termos lineares separados e
portanto podem ser maximizados independentemente.
Passo M: Para iniciar, iremos estimar os parâmetros π(t1 +1) e π(t2 +1) . Para isso, note que é
possível simplificar a função Q( ⃗
θ | ⃗θ (t ) ) descartando termos constantes:

{[∑ ] [∑ ] }
n n
=argmax Q ( ⃗
θ , ⃗θ(t ))=argmax
(t +1) (t +1) (t ) (t )
π ,π T log π1+ T 2 ,i log π2
1 2
π1, π2 π1 , π 2 i =1
1 ,i
i=1

Note que isso implica que solução desse problema é dada pelo estimador de máxima
verossimilhança. Nesse caso, pode-se verificar que ele possui expressão analítica fechada. Para isso
basta derivarmos Q( ⃗θ | ⃗θ (t ) ) em relação a π1 e igualarmos o resultado a zero, lembrando que
π2 =1− π1 . Dessa forma temos:

[ ] [ ]
n n
Q( ⃗
θ | ⃗θ (t ) )= ∑
i=1
(t )
T 1 ,i log π 1+ ∑
i=1
(t)
T2, i log(1− π1)

Aplicando a derivada temos:

∂Q( ⃗
θ | ⃗θ (t ) )
[ ] [∑ ]
n n
1 1
∂π1
= ∑
i=1
T (t1 ,i) π1 +
i=1
T (t)
2 ,i
(1−π1 )
(−1)=0

E isolando π1 :

[ ] [∑ ]
n n

∑ T 1 ,i (1− π1)−
i=1
(t)

i=1
(t )
T 2, i π1=0

[∑ ] [ ∑ ] [ ∑ ]
n n n
(t) (t ) (t )
T 1 ,i − T 1 ,i π 1− T 2 ,i π1 =0
i=1 i=1 i=1

[∑ ] ∑
n
T (t1 ,i) n
i=1 1
π1 = = T (t)
[∑ ]
n
(t ) (t )
n i=1
1, i

(T 1 ,i +T 2, i)
i=1

Sendo assim, para um j arbitrário temos:


n
1
π j= n ∑ T (tj ,i)
i =1

Para os parâmetros μ⃗j e Σ j temos a seguinte função objetivo:


n
1 1
[
θ | ⃗θ (t ) )=∑ T (tj ,)i − 2 log|Σ j|− 2 ( x⃗i−μ⃗j )T Σ−1
Q( ⃗
i=1
x i−μ⃗ j)
j (⃗ ]
Aplicando a derivada em relação a μ⃗j temos:

∂Q( ⃗
θ | ⃗θ (t ) ) n (t) −1
=∑ T j ,i Σ j ( ⃗
x i−μ⃗ j)=0
∂ μ⃗j i=1

E isolando μ⃗j :
n


i=1
(t )
xi −μ⃗j )=0
T j,i(⃗

n n

∑ T (tj ,)i ⃗x i−∑ T (tj ,)i μ⃗j=0


i=1 i=1


i=1
(t )
T j ,i ⃗
xi
μ⃗j= n


i=1
T (t)
j ,i

Para o cálculo da matriz de covariâncias Σ j é preciso apresentar algumas propriedades


importantes relacionadas a operação de diferenciação de formas quadráticas. A primeira observação
é lembrar que o operador traço de uma matriz é invariante a permutações cíclicas de produtos de
matrizes, ou seja:

tr [ ABC ]=tr[CAB]=tr [BCA ]

onde A, B e C denotam matrizes arbitrárias. O interesse nesse resultado deve-se ao fato de que ele é
útil no cálculo de derivadas de formas quadráticas. Em particular, é preciso computar a derivada de
uma expressão da forma ⃗x T A ⃗x , com relação a matriz A. O segredo consiste em expressão essa
fórmula como segue:
T T T
⃗x A ⃗x =tr [⃗x A ⃗x ]=tr [⃗x ⃗x A ]
onde a primeira igualdade advém do fato de que o traço de um escalar é igual ao próprio escalar. Do
cálculo multivariado, pode-se mostrar que:

∂ tr [BA ]=BT
∂A

de modo que podemos utilizar esse resultado para calcular a derivada de uma forma quadrática:

∂ ⃗x T A ⃗x = ∂ tr [⃗x ⃗xT A ]=[⃗x ⃗x T ]T =⃗x ⃗x T


∂A ∂A

Outro resultado importante do cálculo multivariado que será útil é a derivada do logaritmo do
determinante de uma matriz A:

∂ log|A|=( A−1 )T
∂A

De posse desses resultados, podemos computar o estimador de máxima verossimilhança para a


matriz de covariância a partir da equação (*). Note que podemos reescrever a log-verossimilhança:
n n
1 1
2∑ j |− ∑ T j ,i ( x
Q( ⃗
θ | ⃗θ (t ) )= T (tj ,i) log|Σ−1 (t)
xi −μ⃗j )T Σ−1
⃗i−μ⃗j)( ⃗
i=1 2 i=1
j

uma vez que o determinante da inversa é igual ao inverso do determinante, de modo que agora é
possível computar a derivada em relação a Σ−1
j :
∂Q( ⃗
θ|⃗θ (t ) ) 1 n (t ) 1
n
= ∑ T j ,i Σ j− ∑ T (tj ,)i ( ⃗
xi −⃗
μ )( ⃗ μ )T =0
xi −⃗
∂ Σj
−1
2 i=1 2 i=1

uma vez que a matriz de covariâncias é simétrica, ou seja, Σ Tj =Σ j . Isolando Σ j chega-se a:


n


i=1
(t )
T j , i (⃗
x i−⃗
μ )( ⃗
x i−⃗
μ)
T

Σj= n


i=1
T (t)
j ,i

Resumo do método EM+GMM

Basicamente os passos do algoritmo EM são:

μ k , Σk
1. Inicializar os parâmetros ⃗ e πk

a) E-step: associar a cada amostra ⃗x n um score γ( z nk ) para cada cluster k


b) M-step: Dados os scores, ajustar μ⃗ k , Σ k e π k para cada cluster k

2. Avaliar a função log verossimilhança. Se log verossimilhança estabilizou, algoritmo convergiu.

Obs: uma maneira de inicializar os parâmetros é utilizar o algoritmo k-médias para obter:

⃗ (0)
μ k =⃗μk (centroides)

Σ k =cov (cluster (k)) (matriz de covariâncias de cada cluster) ou Σk =I

Nk
π k= (proporção do num. de amostras em cada cluster)
N

Equações de atualização (EM)

π j p( ⃗xi | μ
⃗ j , Σj)
E-step: Calcular scores T (t)
j ,i é definido como T (t)
j ,i = K


k=1
πk p (⃗x i | μ
⃗k , Σk)

Note que isso equivale a preencher uma matriz K x N

M-step: atualização dos parâmetros


N
N j =∑ T j ,i
(t)

i=1

N
1
Nj ∑
⃗ (tj +1)=
μ T (t)
j ,i ⃗
xi
i=1

N
1
= ∑ T j ,i (⃗x i−⃗
(t +1) (t ) (t +1) (t+1 ) T
Σ μ j )(⃗x i−⃗
μj )
j
N j i=1

(t +1) Nj
πj =
N
Verossimilhança (Log-Likelihood)
→ logaritmo da densidade conjunta como função dos parâmetros
→ medida de confiança de que dados X ={⃗x 1 , ⃗x 2 ,... , ⃗x n } foram gerados pelos parâmetros
estimados

[∑ ]
N K
θ )=∑ log
log p ( X | ⃗ π k p(⃗xn | μ
⃗ k , Σk )
n=1 k=1

Deve ser computado ao final de cada iteração, quando fica constante, significa que algoritmo
convergiu, pois estamos no ponto de máxima verossimilhança.
Autovalores e autovetores: uma breve revisão
Seja V um espaço vetorial de n dimensões equipado com produto interno. Então, podemos definir:
n
⟨⃗u , ⃗
v ⟩=⃗ v = ∑ ui v i
u⋅⃗
i=1

n
v =∑ v i =‖⃗v‖
2 2
⟨⃗v , ⃗
v ⟩=⃗
v⋅⃗
i=1

Geometricamente:

Um operador linear é uma matriz que mapeia um vetor de entrada ⃗v para um vetor de saída ⃗
u

u =P ⃗
⃗ v (analogia com y=f ( x ) )

Pergunta motivadora: Dado um operador P , para quais vetores ⃗v a saída ⃗ u =P ⃗


v aponta
para a mesma direção da entrada, apenas sendo esticado ou encolhido? Em termos matemáticos
temos:

u =P ⃗
⃗ v =λ ⃗v (*)

→ Todos os vetores ⃗v que satisfazem a equação (*) são chamados de autovetores de P


→ Todos os escalares λ que satisfazem a equação (*) são chamados de autovalores de P .

λ é o fator de escala da redução ou incremento de tamanho do vetor

Def: Dizemos que ⃗v ∈ R n é um autovetor de Pn×n com autovalor λ se ⃗v ≠⃗


0 e:

P⃗v =λ ⃗v

Ex: Seja P=I n×n o operador identidade. Então, I n×n ⃗v =1 ⃗v ,ou seja, ∀ ⃗v ∈ Rn , ⃗v é
autovetor de I n×n com autovalor igual a 1

2
Ex: operador projeção em R
Seja w ⃗ ∈S , então Ps w⃗ =⃗
w , portanto todo vetor que pertence a reta S é um autovetor de Ps
com autovalor λ=1 . Seja ⃗x ∈ S _|_ , então Ps ⃗x =0 ⃗x , portanto todo vetor que pertence a
_|_
S é um autovetor de Ps com autovalor λ=0 .

Como calcular os autovalores e autovetores de uma matriz A?

Da equação (*) sabemos que:

A⃗
v =λ ⃗v

A⃗
v −λ I ⃗
v =0

( A−λ I ) ⃗v =0

Teorema: O sistema linear A⃗


v =0 admite solução não nula se e somente se det ( A)=0

Portanto, devemos ter que det ( A−λ I )=0

Ex: Encontrar os autovalores e autovetores da matriz A= [ 3 / 2 −1 /2


−1 /2 3 / 2 ]
A−λ I = [ 3 /2−λ −1/ 2
−1/ 2 3 /2−λ ]
Sabemos que ( A−λ I )⃗v =0 admite solução se det ( A−λ I )=0 ou seja:

( )
2
3 1
−λ − =0
2 4

o que implica em:

9 3 2 1
−2⋅ λ+ λ − =0 , que é a equação do segundo grau λ 2−3 λ+ 2=0 , cujas soluções são:
4 2 4
3−1
λ 1= =1
2

3+1
λ 2= =2
2

Para obter o autovetor associado ao autovalor λ 1=1 temos:

{ []
1 1 1
v 1 − v 2=0
[ 1/2 −1/2 v 1 0
=
−1/2 1/2 v 2 0 ][ ] [ ] → 2
1
2
1
− v1 + v 2=0
→ v 1=v 2 → ⃗v(1)= √ 2
1
2 2 √2

Para obter o autovetor associado ao autovalor λ 2=2 temos:

{ []
1 1 1
− v1 − v 2=0
[−1/2 −1/2 v 1 0
=
−1/2 −1/2 v 2 0 ][ ] [ ] → 2
1
2
1
− v1 − v 2=0
→ v 1=−v 2 → ⃗v(2)= √ 2

1
2 2 √2

Def: Se P é um operador linear que possui n autovalores distintos então os autovetores de P definem
uma nova base para Rn

[ ]
| | ... |
Q= v⃗1 ⃗
v 2 ... ⃗v n (matriz dos autovetores)
| | ... |

Obs: Uma matriz é dita positiva semidefinida se todos seus autovalores forem maiores ou iguais a 0

Def: Seja P um operador linear. Se a matriz Q dos autovetores de P define uma nova base para
n
R , então PQ=Q Λ onde Λ é a matriz diagonal dos autovalores.
[ ] [ ]
| - ⃗p1 - | ⃗p1 ⃗
v 1 ⃗p1 ⃗v 2 ... ⃗p1 ⃗vn
| - ⃗p2 - | ⃗p ⃗v ⃗p2 ⃗v 2 ... ⃗p2 v⃗ n
Note que P= e assim PQ= 2 1 .
... ... ... ... ... ... ... ... ...
| - ⃗pn - | ⃗pn ⃗v 1 ⃗pn ⃗
v2 ... ⃗pn ⃗vn

[ ]
| | ... |
Observando PQ , podemos reescrever a matriz como PQ= P ⃗v 1 P ⃗
v 2 ... P ⃗
vn
| | ... |

[ ][ ]
v11 λ1 v 12 λ2 ... v 1 n λn
| | ... |
v λ v 22 λ2 ... v 2 n λn
O lado direito é dado por Q Λ= 21 1 = λ1 ⃗
v 1 λ 2 ⃗v 2 ... λnP ⃗v n
... ... ... ...
| | ... |
v n 1 λ1 v n 2 λ 2 ... v nn λ n

Portanto, o que temos definido em PQ=Q Λ são n equações do tipo P⃗v i=λi ⃗v i , i==1,...,n

Def (Eigendecomposition): Seja P uma matriz quadrada n x n, Q a matriz dos autovetores de P nas
colunas e Λ a matriz diagonal dos autovalores de P. Então P pode ser decomposta como:
−1
P=Q Λ Q

Para verificar essa igualdade basta partir de PQ=Q Λ . Multiplicando ambos os lados pela
inversa de Q, temos:
−1 −1
PQ Q =Q Λ Q
−1
P I=Q Λ Q

o que nos leva ao resultado desejado.

Obs: Se P é uma matriz ortogonal, Q−1=QT e portanto P=Q Λ Q


T
Análise de Componentes Principais (PCA)
Extração de atributos e redução de dimensionalidade linear

O objetivo dos métodos de redução de dimensionalidade consiste em a partir de um conjunto de


dados X ={⃗x 1 , ⃗x 2 ,... , ⃗x n } com ⃗x i∈R d , obter um novo conjunto de amostras com um número
reduzido de atributos Y ={⃗y 1 , ⃗y 2 ,... , ⃗y n } com ⃗y i ∈R k onde k < d . Buscamos uma
transformação (geralmente linear) que gere o conjunto Y a partir do conjunto X. Isso geralmente
requer a projeção em subespaços lineares.

Intuitivamente, em problemas de classificação temos a percepção de quanto maior a


dimensionalidade dos dados de entrada, mais fácil é discriminá-los em classes. Isso é válido apenas
se o número de amostras é infinito. Porém, em problemas reais, onde o número de amostras é
limitado, observa-se um fenômeno conhecido como a maldição da dimensionalidade.

O que é a maldição da dimensionalidade?

- Efeitos negativos causados pelo aumento arbitrário do número de atributos na classificação.

Volume de uma hiperesfera tende a se concentrar próximo a casca:


Na normal multivariada, densidade passa a se concentrar próximo a “cauda” da distribuição, longe
do centroide (média). Métodos paramétricos (Bayesiano, GMM) tem desempenho prejudicado.

Fenômeno de Hughes:
Para um número finito de amostras, existe uma dimensionalidade ótima k* após a qual o
desempenho da classificação cai.
Número de amostras como função do número de atributos:
Em classificadores não paramétricos (KNN, SVM), em geral, o número de amostras de treinamento
é uma função exponencial do número de atributos.

Por essa razão, é importante se ter uma etapa prévia a classificação para realizar uma redução de
dimensionalidade. A Análise de Componentes Principais é uma família de técnicas para tratar dados
de alta dimensionalidade que utilizam as dependências entre as variáveis para representá-los de uma
forma mais compacta sem perda de informação relevante. PCA é uma dos métodos mais simples e
robusto de realizar redução de dimensionalidade. É uma das técnicas mais antigas e foi redescoberta
muitas vezes em diversas áreas da ciência, sendo conhecida também como Transformação de
Karhunen-Loeve, Transformação de Hotelling ou decomposição em valores singulares.

→ Método linear: assume hipótese de que daos encontram-se num subespaço Euclidiano do Rn
→ Método não supervisionado (não requer rótulos das classes)
→ Decorrelaciona os dados de entrada eliminando redundâncias

[] []
x1
y1
d x ⇒ k
⃗x ∈ R = 2 ⃗y ∈R = ... , k ≪d
... W pca
yk
xd

PCA pela Maximização da Variância

Seja Z =[T T , ST ] uma base ortonormal para R


d
, como:

T T =[ w⃗1, w⃗2, ... , w⃗k ] (d componentes que desejamos reter no processo de redução)
S T =[ w⃗k+1 , w⃗k +2 ,... , w⃗d ] (componentes restantes que deve ser descartadas)

onde T representa o novo sistema de eixos coordenados (subespaço PCA) e S representa o


subespaço eliminado durante redução de dimensionalidade.

O problema em questão pode ser resumido como: dado um espaço de entrada, deseja-se encontrar
as direções w ⃗ i que, ao projetar os dados, maximizam a variância retida na nova representação.
Ou seja, queremos encontrar as direções em que o espalhamento dos dados é máximo. A pergunta
que surge é: quais são essas direções?

Primeiramente, note que podemos escrever ⃗x ∈ R d como (expansão na base ortonormal):


d d
⃗x =∑ ( x⃗T w⃗ j) w⃗ j=∑ c j w⃗ j (cj são os coeficientes da expansão)
j=1 j=1

Assim, o novo vetor ⃗y ∈R k pode ser obtido pela transformação:


d
⃗y=T ⃗x → ⃗y =⃗x T =∑ c j w
T T T T
⃗ j [ w⃗1, w⃗2, ... , w⃗k ]=[c1, c 2, ... , c k ]
j=1

uma vez que usando a propriedade de ortonormalidade (base ortonormal):

w
T
{
⃗ i w⃗ j= 1, se i= j
0, se i≠ j

Dessa forma, busca-se uma transformação linear T que maximize a variância retida nos dados, ou
seja, que maximize o seguinte critério:
k
J PCA
1 (T )=E[‖⃗y‖2 ]=E [⃗y T ⃗y ]=∑ E[c 2j ] (*)
j=1

Note que E[ ⃗y T ⃗y ]=E[ y 21 ]+ E[ y 22 ]+...+ E[ y 2k ] é justamente a soma das variâncias em cada eixo
coordenado da nova representação. Como c j =⃗xT w⃗ j (projeção de ⃗x em wj ⃗ ), podemos
escrever (substituindo c em *):
k k k
J PCA
1 (T )=∑ E[ w
⃗ Tj ⃗x ⃗x T w⃗ j ]=∑ w ⃗ j =∑ w
⃗ Tj E[⃗x ⃗x T ] w ⃗ Tj Σ x w⃗ j sujeito a ‖⃗
w j‖=1
i=1 i=1 j=1

em que E[⃗x ⃗x T ]=Σx denota a matriz de covariância dos dados observados.

O problema então consiste em resolver:


k
argmax w
w
∑ ⃗ Tj Σx w⃗ j
⃗ j j=1
sujeito a ‖w⃗ j‖=1, para j=1, 2, ..., k

o que significa encontrar as k direções ortogonais w⃗ j que maximizam o somatório acima.

Trata-se portanto de um problema de otimização com restrições de igualdade. É sabido que a


ferramente matemática mais adequada para esse tipo de problema são os multiplicadores de
Lagrange, utilizados para criar a função Lagrangiana, que incorpora as restrições diretamente na
função objetivo.
Em matemática, em problemas de otimização, o método dos multiplicadores de Lagrange permite
encontrar extremos (máximos e mínimos) de uma função de uma ou mais variáveis suscetíveis a
uma ou mais restrições.

max f ( x , y ) sujeito a
g( x , y )=c

O método consiste em utilizar essa nova variável ( λ normalmente), chamada de multiplicador


de Lagrange para definir uma nova função: a função Lagrangiana, assim definida:
L( x , y , λ)=f (x , y)−λ(g ( x , y )−c )

Nesta função, o termo λ pode ser adicionado ou subtraído. Se f(x,y) é um ponto de máximo para
o problema original, então existe um λ tal que ( x , y , λ) é um ponto estacionário para a
função lagrangiana.
Para múltiplas restrições no problema, a generalização é direta:
m
L( x , y , λ1 , λ 2 , ... , λm )=f ( x , y )−∑ λi ( g i( x , y)−c i)
i =1

Utilizando multiplicadores de Lagrange podemos reescrever a função objetivo do PCA como:


k k
J PCA
1 (T , λ j)=∑ w
⃗ Σx w⃗ j −∑ λ j ( w
T
j ⃗ Tj w⃗ j −1)
j=1 j=1

Derivando o funcional em relação a w⃗ j e igualando o resultado a zero, chega-se em:

∂ J (T , λ )=Σ w⃗ −λ w =0
j x j j j
∂ w⃗ j

o que nos leva a:

Σ x w⃗ j=λ j w⃗ j (problema de autovalores e autovetores)

e portanto nos diz que os vetores w⃗ j da nova base devem ser autovetores da matriz de
covariâncias.

→ w⃗ j : autovalores da matriz de covariância Σ x


→ Vetores da base PCA são autovetores de Σ x

Para otimizar o critério definido anteriormente, note que:


k k k k
argmax w ⃗ j=argmax ∑ w ⃗ j= argmax ∑ λ j‖⃗
w j‖2= argmax ∑ λ j
w

⃗ j j=1
⃗ Tj Σ x w
w⃗ j j=1
⃗ Tj λ j w
w
⃗ j j=1 w⃗ j j=1

ou seja, devemos maximizar a soma dos k autovalores. Isso define a regra a ser utilizada pelo PCA:
devemos escolher para compor a nova base os K autovetores da matriz de covariâncias associados
aos K maiores autovalores.

Após aplicar PCA, os dados projetados na base PCA não exibem correlação, ou seja, a matriz de
covariâncias torna-se diagonal.

Def: Toda matriz A simétrica e positiva semidefinida possui uma decomposição A=Q Λ Q T onde
Q é a matriz dos autovetores (nas colunas) e Λ é a matriz diagonal dos autovalores. Sabemos
que matrizes de covariâncias são matrizes positivas semidefinidas.

Além disso, pode-se mostrar que se ⃗y= A ⃗x ( ⃗y é uma transformação linear de ⃗x ) então a
matriz de covariância de ⃗y é transformada por Σ y = A T Σ x A .
Combinando os fatos definidos acima, a matriz de covariâncias dos dados transformados Σy é
dada por:

Σ y = A T Q Λ QT A

onde A é a matriz dos autovetores de Σ x , ou seja, é igual a Q e portanto:

[ ]
λ1 0 ... 0
Σ y =Q T Q Λ Q T Q=Λ= 0 λ 2 ... 0
0 0 ... 0
0 0 ... λn

sendo que QT Q=I pois a base formada pelos autovetores é ortonormal

→ Dizemos portanto que após a transformação PCA, os dados encontram-se decorrelacionados


(matriz de covariâncias é diagonal), o que significa que não há correlação entre os novos atributos
gerados a partir do PCA (elimina as dependências existentes entre as variáveis).

Interpretação geométrica no caso 2D

PCA pela Minimização do erro quadrático médio

Um segundo critério otimizado pela representação PCA é a minimização do erro quadrático médio
(MSE) entre os dados originais e a nova representação mais compacta. Em outras palavras, isso
significa que o PCA é ótimo em termos de compactação, pois esse método descarta as componentes
menos importantes no sentido de minimizar o erro de aproximação. Sendo assim, é possível definir
o funcional a ser minimizado como:
[‖ ‖]
k 2

(T )=E [‖⃗x −⃗y‖ ] =E ⃗x −∑ ( w


PCA 2 T
J 2 ⃗ ⃗x ) w
⃗j j
j=1

Aplicando a definição de norma ao quadrado temos:

[( )( )]
k T k
J PCA
2 (T )=E ⃗x −∑ ( w
⃗ ⃗x ) w
⃗j
T
j ⃗x −∑ ( w
T
⃗ j ⃗x ) w
⃗j
j=1 j=1

Após a distributiva ser aplicada chegamos em:

[ ( ) ( ) (∑ )]
k k T k T k
J PCA
2 (T )=E ⃗x T ⃗x −⃗x T ∑ ( w T
⃗ j ⃗x ) w
⃗ j− ∑ ( w⃗ Tj ⃗x ) w⃗ j ⃗x + ∑ (w⃗ Tj ⃗x ) w⃗ j (w T
⃗ j ⃗x ) w
⃗j
j=1 j=1 j=1 j=1

Rearranjando os termos:

[ ] [ ] [( )(∑ )]
k k k k
J 2 (T )=E [‖⃗x‖ ]−E ∑ ( w⃗ j ⃗x )(w⃗ j ⃗x ) −E ∑ w⃗ j ( ⃗x w⃗ j )⃗x + E ∑ w⃗ j (⃗x w⃗ j)
PCA 2 T T T T T T T
(w
⃗ j ⃗x ) w
⃗j
j=1 j=1 j=1 j=1

Aplicando distributiva no último termo e rearranjando os valores esperados:


k k k k
(T )=E [‖⃗x‖ ]−∑ E [( w
⃗ ⃗x ) ]−∑ E [ (⃗
w ⃗x ) ] + ∑ ∑ E [ ( w ⃗ l]
PCA 2 T 2 T 2 T T T T
J 2 j ⃗ j ⃗x )(⃗x w
⃗l )w
⃗jwj
j =1 j=1 j=1 l=1

Notando que os vetores w


⃗ j formam uma base ortonormal, o produto escalar é nulo para j≠l

k k k
J PCA
2 (T )=E [‖⃗x‖2 ]−∑ E [( w
⃗ Tj ⃗x )2 ]−∑ E [ (⃗
w Tj ⃗x )2 ] + ∑ E [ (⃗
w Tj ⃗x )2 ]
j =1 j=1 j=1

chegamos finalmente em:


k
J PCA
2 (T )=E [‖⃗x‖2 ] −∑ E [( w
⃗ Tj ⃗x )2 ]
j =1

Note que o primeiro termo não depende de w⃗ j , sendo uma constante. Então para minimizar o
erro devemos maximizar o segundo termo, que nada mais é que a variância retida em cada novo
eixo coordenado da base T:
k k k
J PCA
2 (T )=E [‖⃗x‖ ]−∑ E[ w
2
⃗ ⃗x ⃗x w⃗ j ]=E [‖⃗x‖ ]−∑ w
T
j
T
⃗ j =E [‖⃗x‖ ]−∑ w
⃗ E [⃗x ⃗x ] w 2
⃗ Tj Σ x w⃗ j T
j
T 2

j =1 i=1 j =1

Ou seja, caímos no mesmo problema resolvido anteriormente de maximizar a variância. Como esse
problema já foi resolvido, sabemos que a solução é dada na forma de uma equação de autovalores e
autovetores Σ x w⃗ j=λ j w
⃗ j . Isso significa que voltando ao funcional acima temos a equivalência:

k k
J PCA
2 (T )=E [‖⃗x‖2 ]−∑ w
⃗ Tj λ j w⃗ j=E [‖⃗x‖2 ]−∑ λ j
j =1 j=1
ou seja, para minimizar o erro quadrático médio, devemos selecionar os k autovetores associados
aos k maiores autovalores da matriz de covariâncias, o que é exatamente a mesma conclusão obtida
anteriormente.

Importante: Os dados precisam estar centralizados, ou seja, média deve ser nula para que a rotação
dos eixos seja realizada de maneira correta (isso significa que ⃗
x i=⃗
x i−μ
⃗x ∀i )

Limitações do PCA

Embora a redução de dimensionalidade implementada pelo PCA seja ótima do ponto de vista da
compactação dos dados, pois minimiza o erro quadrático médio entre a representação original e a
nova representação, ela não é ótima para a discriminação dos dados em classes. A figura a seguir
ilustra um simples exemplo dessa limitação.

Algoritmo PCA

1. Ler dataset X ={⃗x 1 , ⃗x 2 ,⃗x 3, ... ,⃗x n } com ⃗x i∈ R d


n
1
2. Computar o vetor média μ x a matriz de covariâncias: Σ x = ∑ (⃗x −⃗μ )(⃗x −⃗μ x)T
n i=1 i x i
3. Obter autovalores e autovetores de Σ x
4. Selecionar os k autovetores associados aos k maiores autovalores da matriz de covariâncias,
denotados por w⃗1 , w⃗2 , … , w⃗k
5. Definir a matriz de transformação W PCA =[ w⃗1 , w⃗2 , … , w⃗k ] ( n x k )
6. Projetar dados na nova base: ⃗y=W TPCA x⃗i com autovetores nas linhas de W TPCA , ou seja, a
matriz transposta é k x n e ⃗ x i vetor coluna n x 1
Análise discriminante linear (LDA)

- Método supervisionado (utiliza rótulos das classes).


- Objetivo: maximizar a separabilidade entre as classes.

Pergunta: como medir a separação entre projeção de diferentes classes?

Iremos supor inicialmente o caso mais simples: há duas classes ω1 e ω2 com médias

1 1
μ1 =
⃗ ∑
n 1 ⃗x ∈ω
μ 2= ∑ ⃗x i
⃗x i e ⃗
n2 ⃗x ∈ω
i 1 i 2

Podemos calcular as suas projeções em uma dada direção w


⃗ como:

μ1 '=
1
n1 ⃗x ∈ω
i 1
( 1
∑ w⃗ T ⃗x i=⃗w T n ∑ ⃗x i = w⃗ T ⃗μ1
1 ⃗x ∈ω
i 1
)
μ 2 '=
1
n2 ⃗x ∈ω
i 2
( 1
∑ w⃗ T ⃗x i=w⃗ T n ∑ ⃗x i =⃗wT μ⃗2
2 ⃗x ∈ω
i 2
)
Um critério adequado a ser maximizado é a distância entre a projeção das médias: |μ1 '−μ 2 '|
A intuição é que quanto mais distantes as médias projetadas, mais separadas as classes.

Porém, esse critério tem alguns problemas.


~− μ
Note que a distância entre as médias é maior no eixo horizontal, ou seja: |μ^1−μ^2|>|μ ~|
1 2

Mas, a separabilidade é maior no eixo vertical.

Isso ocorre pois o critério não leva em consideração a variância ou espalhamento das classes.

Solução: normalizar a distância entre as médias pelo espalhamento.


n
1
Seja o conjunto X ={x 1, x 2, ... , x n } com média μ x = ∑ x i . Define-se o espalhamento como:
n i=1

n
s 2=∑ (x i−μ x )2
i=1

Note que o espalhamento (scatter) nada mais é que a variância multiplicada por n (n. de amostras).
T
⃗ ⃗x i a projeção das amostras na direção do vetor w
Seja y i= w ⃗ . Então os espalhamentos das
classes ω1 e ω2 são definidos por:

s^1 = ∑ ( y i−μ1 ')


2 2

y i ∈ω 1

s^22= ∑ ( y i−μ2 ')2


y i ∈ω 2

Então, o critério de Fisher a ser maximizado é dado por:


2
(μ 1 '−μ 2 ' )
J ( w)=
⃗ 2 2
(*)
s^1 + s^2

ou seja, deseja-se maximizar a distância entre as médias, minimizando o espalhamento das classes.

Pergunta: Como podemos expressar esse critério em função do vetor w


⃗ ?

Antes da projeção, pode-se definir as matrizes de espalhamento das classes ω1 e ω2 como:

S 1= ∑ (⃗x i−⃗
T
μ 1)(⃗x i−⃗μ1 ) e
⃗xi ∈ ω 1

S 2= ∑ (⃗x i−⃗
T
μ 2)(⃗x i−⃗μ 2)
⃗xi ∈ω 2
Seja S W =S 1+ S 2 a matriz de espalhamento intra-classe (within-class). Note que:

T
s^1 = ∑ ( y i−μ1 ' ) = ∑ ( w μ 1) = ∑ [ w μi ) ] [ w ⃗ i)]
2 2 T T 2 T T
⃗ ⃗x i− w
⃗ ⃗ ⃗ ( ⃗x i−⃗ ⃗ ( ⃗x i−μ
y i ∈ω 1 y i ∈ω 1 ⃗xi ∈ω 1

Rearranjando os termos dos produtos internos temos:

s^1 = ∑ [ ( ⃗x i−⃗
T
⃗ ] [( ⃗xi −μ ⃗ ]= ∑ w ∑ (⃗x i−μ⃗1 )( ⃗xi −μ⃗ 1)T w⃗
2 T T T T T
μ 1) w ⃗ 1) w ⃗ ( ⃗x i−μ μ 1) w
⃗ 1)( ⃗x i−⃗ ⃗ =w

⃗xi ∈ ω1 ⃗x i ∈ω 1 x i ∈ω 1

o que nos leva a:


2 T
s^1 =⃗
w S1 w

De forma análoga podemos escrever:


2 T
s^2 =⃗
w S2 w

Assim, o denominador da equação (*) pode ser expresso como:


2 2 T T
s^1 + s^2 =⃗
w ( S1 + S2 ) w=
⃗ w⃗ SW w

que é uma forma quadrática em w


⃗ .

Defina a matriz de espalhamento entre classes (between-class) como:

μ 1−⃗
S B =(⃗ μ 1−⃗μ2 )T
μ 2 )(⃗

Essa matriz de alguma forma mede a separação dos vetores médias antes da projeção.

Note que o numerador da equação (*) pode ser expresso por:


T
(μ 1 '−μ 2 ' )2=( w ⃗ 2 ) =[ w ⃗ 2) ] [ w μ1−μ⃗ 2) ]
T T 2 T T
⃗ μ ⃗ μ
⃗ 1− w ⃗ (⃗μ1 −μ ⃗ (⃗

Rearranjando os produtos internos:

T T
(μ 1 '−μ 2 ' ) =[ ( ⃗ ] [ (μ⃗1−μ⃗ 2) w⃗ T ]= w⃗ T (μ⃗1−⃗μ2 )(μ⃗ 1−μ⃗2)T w⃗ = w⃗ T S B w⃗
2
μ1−μ⃗ 2) w

Assim, o critério de Fisher pode ser reescrito como:


T
w
⃗ SB w

J ( w)=
⃗ T
w
⃗ SW w

A condição necessária para maximização da função objetivo é:

∂J ( w
⃗)
=0
∂w⃗

o que implica em:


[ ∂∂w⃗ w⃗ S w⃗ ] w⃗ S
T
B
T
W w
⃗ −w ⃗ ∂ w
⃗ T SB w
∂w
⃗ [
⃗ T SW w

] =0
⃗ T SW w
(w ⃗ )2

pela regra do quociente da derivação. Computando as derivadas chega-se em:


T T
2 SB w
⃗ (w
⃗ SW w
⃗ )−2 S W w
⃗ (w
⃗ SB w
⃗ )=0

Dividindo por 2 ambos os lados temos:


T T
SB w
⃗ (⃗
w SW w
⃗ )−SW w
⃗ (w
⃗ S B w)=0

T
Dividindo a equação pelo escalar w ⃗ :
⃗ SW w

T
(w
⃗ SB w
⃗)
SB w
⃗− T
SW w
⃗ =0
(w
⃗ SW w
⃗)

T
(w
⃗ SB w
⃗)
Como a razão λ = T
é um escalar, chega-se a:
(w
⃗ SW w
⃗)

⃗ = λ SW w
SB w ⃗

o que define um problema de autovalor generalizado. Se a inversa de S W existe, ou seja, se


S W tem posto completo, temos:

−1
⃗ =λ w
(S W S B ) w ⃗ (**)

mostrando que a direção de projeção w ⃗ deve ser o autovetor associado ao maior autovalor da
−1
matriz S W S B . Par o caso de duas classes é possível cderivar uma expressão fechada para o vetor
solução w⃗ . Note que S B w ⃗ aponta para a mesma direção da diferença das médias:

T
SB w μ 1−⃗
⃗ =(⃗ μ 2)(⃗
μ1−⃗
μ 2) w

Mas como α =(⃗ μ 2 )T w


μ 1−⃗ ⃗ ⃗ =α (⃗
é um escalar temos que S B w μ1−⃗
μ 2) . Voltando a equação (**)
−1
S W α (μ μ 2 )=λ w
⃗ 1−⃗ ⃗

Como α e λ são escalares, não alteram a direção do vetor w


⃗ . A direção do vetor é que
importa, de modo que podemos escrever w
⃗ como:
−1
w μ 1−⃗
⃗ =SW (⃗ μ2 )

Análise discriminante múltipla (MDA)

No caso do problema de classificação admitir múltiplas classes ω1, ω2, ... , ωC podemos reduzir a
dimensionalidade dos dados de entrada para no máximo C – 1 dimensões. Nesse caso, definimos o
vetor após a transformação como:
⃗y i=W T ⃗x i

onde W T é a matriz de projeção em que cada coluna representa uma direção ortogonal w
⃗j ,
m d
⃗x i∈R e ⃗y i ∈R com d <C−1<m . Sejam

ni : o número de amostras da classe ωi


μi : a média da classe ωi

μ : a média global

Então, temos:
n
1 1
μi = ∑ ⃗x j
⃗ μ = ∑ ⃗x i
e ⃗
ni ⃗x ∈ωj i
n i=1

A função objetivo a ser maximizada generaliza-se para:


T
|W S B W|
J (W )= T
|W S W W|

onde |A| é o determinante da matriz A e as matrizes S W e S B são definidas por:

C C
S W = ∑ S i =∑ ∑ (⃗x k −⃗μ i)(⃗x k−⃗μ i )T
i=1 i=1 ⃗x k ∈ω i

C
S B =∑ ni (⃗
μ i−⃗
μ )(⃗ μ )T
μ i−⃗
i=1

Pode-se mostrar que o posto da matriz S B é no máximo C – 1, ou seja, o número de linhas ou


colunas linearmente independentes é limitado superiormente por C – 1. Em outras palavras, o
número máximo de direções discriminantes que podem ser encontradas pelo MDA é C – 1.

A condição para a maximização da função objetivo J (W ) é:

∂J (W )
=0
∂W

o que implica em

[ ∂W∂ |W T
] T
S B W| W SW W −W S B W
T
[ ∂W∂ |W T
] =0
SW W|
T 2
|W S W W |

Sabendo que

∂ |X T A X|=2|X T A X|(X −1 )T
∂X

e que W é uma matriz ortogonal, ou seja, W −1=W T , temos:


2|W T SB W|W W T S W W −2|W T SW W|W W T S B W =0

Dividindo por dois e como W W T =I pois a matriz é ortogonal, chega-se a:


T T
|W S B W |S W W −|W S W W|S B W =0

Dividindo ambos os lados pelo escalar |W T SW W| :

T
|W S B W|
T
S W W −S B W =0
|W SW W|

o que nos leva a

λ SW W −S B W =0

ou seja

S B W = λ SW W

que é a equação de um problema de autovalor generalizado. Se S W admite inversa:

−1
(S W S B )W = λ W

mostrando que devemos selecionar para compor as colunas de W, os k ≤C−1 autovetores de


(S−1
W S B ) associados aos k maiores autovalores.

Limitações:

1. Número de atributos é sempre inferior ao número de classes; problemas com poucas classes e
dimensionalidade muito alta em geral não funcionam muito bem com LDA.

O número de linhas/colunas linearmente independentes de uma matriz A é denominado de posto ou


rank de A. Observa-se no LDA que o rank da matriz S W é no máximo C−1 , com C
denotando o número de classes do problema. Da álgebra linear, essa afirmação implica na
existência de apenas C-1 autovalores não-nulos.

2. Situações em que a função objetivo J (W ) tende a zero


μ1≈μ⃗ 2≈...≈⃗μC
Muito comum quando as médias das classes são muito próximas: ⃗

3. Situações em que a função objetivo J (W ) sempre assume valores altos


Classes exibem grande sobreposição quando projetadas em qualquer direção w

Tutorial prático de LDA em Python: http://sebastianraschka.com/Articles/2014_python_lda.html

Algoritmo LDA

1. Ler dataset X ={⃗x 1 , ⃗x 2 ,⃗x 3, ... ,⃗x n } com ⃗x i∈ R d


2. Computar os vetores médias μ j de cada classe, j = 1, …, C
3. Computar as matrizes de espalhamento de cada classe S j = ∑ ( ⃗xi −⃗
μ j )(⃗x i−⃗μ j)T , j = 1, .., C
x i ∈ω j

4. Computar a matriz de espalhamento intra-classes S W =S 1+ S 2+...+ SC
C
5. Computar a matriz de espalhamento entre-classes S B =∑ ni ( μ
T
μ )(⃗
⃗ i−⃗ μ i−⃗
μ)
i=1
−1
6. Obter autovalores e autovetores de S S B
W
4. Selecionar os k autovetores associados aos k maiores autovalores, denotados por w⃗1, w⃗2, … , w⃗k
5. Definir a matriz de transformação W LDA =[ w⃗1 , w⃗2 , … , w⃗k ] ( n x k )
6. Projetar dados na nova base: ⃗y=W TLDA x⃗i com autovetores nas linhas de W TLDA , ou seja, a
matriz transposta é k x n e ⃗ x i vetor coluna n x 1

Non-negative matrix factorization (NMF)

Métodos de redução de dimensionalidade buscam encontrar um subespaço que melhor representam


os dados originais de acordo com um critério objetivo. O método NMF difere dos demais no
aspecto de que ele aprende representações baseadas nas partes do todo, ao contrário de aprender
representações holísticas. Essa ideia está mais de acordo com a motivação biológica, visto que há
evidências de que o reconhecimento de objetos se dá de maneira hierárquica, com as partes
compondo o todo. A figura a seguir ilustra a diferença entre PCA e NMF na extração de atributos de
imagens de faces. Note que NMF é capaz de decompor a face em várias de suas componentes:
olhos, nariz, boca, etc.). Em geral, NMF é capaz de prover uma representação mais esparsa.
Formalmente, o problema consiste em, dada uma matriz não negativa V, encontrar fatores não
negativos W e H, tal que V ≈WH . NMF pode ser aplicado a análise estatística de dados
multivariados da seguinte maneira: dado um conjunto multivariado de vetores n-dimensionais, esses
vetores são colocados nas colunas de uma matriz n x m V, em que m é o número de amostras
disponíveis. Essa matriz é então fatorada em uma matriz n x r W e uma matriz r x m H, de modo
que r é escolhido ser menor que n e m, fazendo com que W e H sejam bem menores que a matriz
original V.

A importância da decomposição V ≈WH se deve ao fato de que a multiplicação de matrizes


pode ser implementada como o cálculo dos vetores colunas de V como combinações lineares do
vetores colunas de W, ou seja:

⃗v i≈W ⃗hi

de modo que cada ⃗ h i (coluna de H) é como se fosse a representação dos vetores ⃗v i num
espaço de menor dimensão. Em outras palavras, cada vetor ⃗v i é aproximado por uma
combinação linear das colunas de W ponderadas pelos componentes de ⃗ h i . Portanto, W pode ser
interpretada como uma base que é otimizada para aproximação linear de dos dados em V. Como
relativamente poucos vetores de base são utilizados para representar muitos vetores de dados
(apenas r), boa aproximação só pode ser alcançada se os vetores de base descobrirem estrutura que
é latente nos dados.

Para encontrar uma fatoração aproximada V ≈WH é preciso primeiramente definir funções de
custo que quantificam a qualidade da aproximação. Funções de custo podem ser construídas
utilizando medidas de distância entre matrizes não negativas A e B. Uma medida muito conhecida é
a distância Euclidiana quadrática entre A e B:
‖A−B‖2=∑ ( Aij −Bij )2
i, j

Essa medida é limitada inferiormente por zero, atingindo esse limite se e somente se A = B.

Outra medida útil é a divergência entre A e B:

D( A || B)=∑ A ij log
i, j
( A ij
Bij
− A ij + Bij
)
Assim como a distância Euclidiana, essa medida é limitada inferiormente em zero, atingindo esse
valor se e somente se A = B. Se ∑i , j Aij =∑i , j Bij =1 de modo que tanto A quanto B
representem densidades de probabilidade, essa medida se reduz a divergência de Kullback-Leibler.

Assim, é possível definir duas formulações matemáticas para o NMF como problemas de
otimização:

Problema 1: Minimizar ‖V −WH‖2 em relação a W e H sujeito as restrições W , H≥0 .

Problema 2: Minimizar D(V ||WH ) em relação a W e H sujeito as restrições W , H≥0 .

Embora as funções ‖V −WH‖2 e D(V ||WH ) sejam convexas apenas em W ou apenas em H,


elas não são convexas em ambas variáveis. Isso significa que há vários pontos de mínimos locais,
sendo que a obtenção da solução ótima global não é garantida.

Para alcançar um compromisso entre velocidade e facilidade de implementação, foram propostas as


regras de atualização multiplicativas. Essas regras tem a vantagem se oferecer convergência mais
rápida que a descida do gradiente, além de serem menos sensíveis ao tamanho do passo, algo
inconveniente para aplicações em larga escala.

Teorema 1: A distância Euclidiana ‖V −WH‖ é minimizada a partir das seguintes regras


iterativas
n T
n+1 n ((W ) V )ij
H ij =H ij n T n n
(*)
(( W ) W H )ij
n +1 n (V ( H n+ 1)T )ij
W ij =W ij (**)
(W n H n+1 (H n +1)T )ij

onde n denota o contador de iterações e W 0 e H 0 são inicializadas com números aleatórios


positivos, sendo uma escolha comum entradas com distribuição uniforme [0,1]. Note que em (*) o
numerador do fator multiplicador é uma matriz r x m e o denominador desse mesmo fator também é
uma matriz r x m. Sendo assim, a divisão é realizada de maneira pontual e a multiplicação por
n
H ij também é pontual. Apenas as multiplicações dentro dos parêntesis são multiplicações de
matrizes usuais. O mesmo vale para (**), onde o numerador e o denominador do fator multiplicador
são matrizes n x r.

Note que essas regras de atualização são invariantes se e somente se são um ponto estacionário da
medida de distância, ou seja, quando V =WH . Note que o fator multiplicador em (*) simplifica-
se para a matriz constante de 1’s quando V =WH :

[ ]
1 1 1 ... 1
((W n )T V )ij ((W n)T W n H n )ij
n T n n
= n T n n
= 1 1 1 ... 1
((W ) W H )ij ((W ) W H )ij ...
1 1 1 ... 1 r×m

O mesmo ocorre para o fator multiplicador em (**):

[ ]
n+1 T
1 1 1 ... 1 n n +1 n+1 T
(V (H ) )ij (W H (H ) )ij
n n+ 1 n+1 T
= n n +1 n+1 T = 1 1 1 ... 1
(W H ( H ) )ij (W H ( H ) )ij ...
1 1 1 ... 1 n×r

A prova do teorema será omitida. Para os leitores interessados, a prova matemática completa
encontra-se no artigo1.

Teorema 2: A divergência D(V || WH ) é minimizada a partir das seguintes regras iterativas

V
∑ H njk (W n Hik n )
n +1 n k ik
W ij =W ij (***)
∑H n
jr
r

V
∑ W n+1
ki
kj

(W H n )
n +1
k
H n+1 n
ij =H ij
kj
(****)
∑W n+1
ri
r

onde n denota o contador de iterações e W 0 e H 0 são inicializadas com números aleatórios


positivos, sendo uma escolha comum entradas com distribuição uniforme [0,1]. Note que em (***)
quando V =WH , temos:

1 Lee, D. D. and Seung, H. S. “Algorithms for non-negative matrix factorization”, Advances in Neural Information
Processing Systems, 2001.
(W n H n )ik
∑H n
jk
(W n H n )ik ∑ H njk
k
W nij +1=W nij =W nij k
=W nij
∑H n
jr ∑H n
jr
r r

Similarmente, em (****), se V =WH , temos:

(W n +1 H n )kj
∑W n+1
ki
(W n +1 H n )kj ∑ W nki+1
k
H n+1 n
ij =H ij =H nij k =H nij
∑ W n+1
ri ∑ W ri
n +1

r r

de modo que as atualizações convergem para o valor final, conforme esperado.


Redução de dimensionalidade não linear
Tanto o PCA quanto o LDA são métodos lineares de redução de dimensionalidade. Um problema é
que muitas vezes desejamos extrair novos atributos que sejam funções não lineares dos dados de
entrada. Para isso, é necessário incorporar Kernels no processo de redução de dimensionalidade, de
modo a conseguir capturar não linearidades presentes nos dados, de maneira muito similar com o
que é feito com as máquinas de vetores de suporte. Apresentamos neste capítulo dois métodos não
lineares: KPCA, ou Kernel Principal Component Analysis e KFDA, Kernel Fisher Discriminant
Analysis.

Kernel Principal Component Analysis

A Análise de Componentes Principais nos permite realizar apenas redução de dimensionalidade


linear. Entretanto, quando os dados possuem uma estrutura intrínseca mais complexa com a
presença de não linearidades, o PCA padrão falha em capturar informação relevante durante o
processo de redução de dimensionalidade. Para essas situações, o Kernel PCA nos permite
generalizar o PCA linear a partir da incorporação de funções de kernel e um mapeamento para um
espaço intermediário de maior dimensão. A teoria de Vapnik-Chevonenkis mostra que, sob certas
condições, mapeamentos que nos levam para um espaço de maior dimensão do que a dimensão do
espaço de entrada geralmente fornecem um maior poder de discriminação.

Seja ϕ (⃗x ) um mapeamento não linear do espaço m dimensional de entrada para um espaço
intermediário de dimensão M, com m < M. Um problema que pode ocorrer na prática é que
mapeamentos para espaços de muitas dimensões podem causar um aumento significativo no custo
computacional. A ideia consiste em utilizar o kernel trick, a mesma estratégia adotada nas máquinas
de vetores de suporte, para expressar o algoritmo de redução de dimensionalidade KPCA apenas em
termos de produtos internos, de forma que torna-se possível computar produtos internos em espaços
de maior dimensão sem conhecer o mapeamento propriamente dito, ou seja, sem a necessidade de
projetar os dados. Essa é a estratégia do método Kernel PCA.

A primeira hipótese que devemos assumir é que a média dos dados no espaço intermediário de
maior dimensão (RM) é nula, ou seja:
n
1
∑ ϕ (⃗x i )=0
n i=1

Assim, a matriz de covariâncias M x M dos dados neste espaço pode ser estimada por:
n
1
C= ∑
n i=1
ϕ (⃗x i ) ϕ (⃗x i )T (*)

e os autovalores e autovetores de C satisfazem:

C ⃗v k = λk ⃗v k para k =1, 2 , ..., M (**)

A seguir veremos um resultado muito importante que nos permite expressar os autovetores da
matriz de covariância em termos de ϕ (⃗x i) .
Teorema: Os autovetores de C podem ser expressos como combinações lineares dos atributos do
espaço intermediário de maior dimensão, ou seja:
n
⃗v k =∑ α ki ϕ (⃗x i)
i=1

Note que das equações (*) e (**), temos:


n
1
C ⃗v k = ∑
n i=1
ϕ (⃗x i) ϕ (⃗x i)T ⃗v k = λk ⃗v k

o que implica em:


n n
1
⃗v k = ∑
n λ k i=1
( ϕ (⃗xi )T ⃗v k ) ϕ (⃗x i )=∑ α ki ϕ (⃗x i) ($)
i=1

uma vez que o produto interno entre parêntesis é um escalar, ou seja:

1
α ki= ϕ ( ⃗x i)T ⃗v k (#)
n λk

Dessa forma, encontrar os autovetores de C é equivalente a encontrar os coeficientes α ki .


Substituindo a equação (#) na equação ($), temos:

(∑ )
n n n
1

n i=1
ϕ (⃗x i )ϕ (⃗x i )T αkj ϕ (⃗x j ) =λ k ∑ αkj ϕ (⃗x j)
j=1 j=1

Reescrevendo a equação anterior, note que:

( )
n n n
1
∑ ϕ (⃗x i )
n i=1
∑ α kj ϕ (⃗x j )T ϕ (⃗x j ) = λ k ∑ α kj ϕ (⃗x j )
j=1 j=1

T
Aplicando o kernel trick, ou seja, K (⃗x i ,⃗x j)= ϕ (⃗xi ) ϕ (⃗x j ) , temos:

( )
n n n
1
∑ ϕ (⃗x i )
n i=1
∑ α kj K (⃗x i , ⃗x j ) =λ k ∑ αkj ϕ (⃗x j)
j=1 j=1

Multiplicando ambos os lados da equação por ϕ (⃗x l)T nos leva a:

( )
n n n
1

n i=1
ϕ (⃗x l )T ϕ (⃗x i) ∑ αkj K (⃗x i , ⃗x j) = λk ∑ α kj ϕ (⃗x l)T ϕ (⃗x j)
j=1 j=1

Aplicando o kernel trick novamente, chega-se em:

( )
n n n
1
∑ K (⃗x l , ⃗xi )
n i=1
∑ α kj K (⃗x i ,⃗x j) =λ k ∑ α kj K (⃗xl , ⃗x i)
j=1 j =1

o que pode ser expresso na notação matricial como:


K2 ⃗
αk =( λ k n)K α
⃗k

onde K é a matriz de kernel em que o elemento K ij =K (⃗x i ,⃗x j) e α ⃗ k é um vetor coluna de n


T
dimensões tal que α⃗ k =[ α k 1 , α k 2 , ... , αkn ] . Simplificando a equação anterior, temos finalmente:

αk =( λk n) α
K⃗ ⃗k

mostrando que os vetores α ⃗ k são os autovetores da matriz de kernel. Para uma nova amostra
⃗x que não pertence ao conjunto de dados, a projeção na k-ésima componente principal pode ser
calculada como:
n n
y k (⃗x )=ϕ (⃗x ) ⃗v k =∑ α ki ϕ (⃗x ) ϕ (⃗x i )=∑ α ki K (⃗x , ⃗x i)
T T

i=1 i=1

A grande vantagem de empregar o kernel trick é que nós não precisamos computar o mapeamento
ϕ (⃗x i) explicitamente para cada amostra do conjunto de dados.Nós podemos construir a matriz de
kernel diretamente a partir dos dados. Dois tipos de kernel particularmente úteis na redução de
dimensionalidade não linear são os kernels polinomiais e Gaussianos, dados por:
T d
K (⃗x , ⃗y )=(⃗x ⃗y +c)

K (⃗x , ⃗y )=exp −
(
‖⃗x −⃗y‖2

2 )
onde c e σ2 são parâmetros que controlam o deslocamento e a largura dos kernels em questão.
Na prática, o que pode ocorrer é que a média dos dados projetados pode não ser nula. Para torná-la
nula, devemos centralizar os dados, ou seja, computar:
n
~ 1
ϕ (⃗xi )= ϕ ( x⃗i )− ∑ ϕ ( x⃗k )
n k=1

Assim, a matriz de kernel correspondente torna-se:

( )( )
n T n
~ 1 1
x i , x⃗j )=~
K (⃗ ϕ ( x⃗i )T ~
ϕ ( x⃗j)= ϕ ( x⃗i )− ∑ ϕ ( x⃗k ) ϕ ( x⃗ j)− ∑ ϕ ( x⃗k )
n k=1 n k=1

Aplicando a distributiva, temos:


n n n n
~ 1 1 1
x i , x⃗j )= ϕ ( x⃗i )T ϕ ( x⃗j )− ∑ ϕ ( x⃗i )T ϕ ( x⃗k )− ∑ ϕ ( x⃗k )T ϕ ( x⃗j)+ 2 ∑ ∑ ϕ ( x⃗k )T ϕ ( x⃗l )
K (⃗
n k=1 n k=1 n k=1 l =1

Por fim, utilizando a matriz de kernel, temos:


n n n n
~ 1 1 1
K (⃗ xi , x⃗j)− ∑ K ( x⃗i , x⃗k )− ∑ K ( x⃗k , x⃗j )+ 2 ∑ ∑ K ( x⃗k , x⃗l )
x i , x⃗j )=K ( ⃗
n k=1 n k =1 n k=1 l=1

o que, na forma matricial, pode ser expresso como:


~
K=K −1n K −K 1n+ 1n K 1n

onde 1n é uma matriz n×n com todos os elementos iguais a 1/n. A seguir apresentamos um
algoritmo que descreve o método Kernel PCA.

A figura a seguir ilustra a diferença ente o PCA padrão e o Kernel PCA em um dataset que exibe
comportamento não linear. Note que a projeção dos dados na componente principal do PCA padrão
não fornece uma boa representação em termos de compactação, pois os dados do hemisfério norte
se misturam com os dados do hemisfério sul. Por outro lado, a projeção obtida pelo Kernel PCA é
muito mais representativa, pois consegue extrair uma espécie de “esqueleto” dos dados em questão.

Porém, assim como o PCA padrão, o Kernel PCA é não supervisionado, ou seja, não é otimizado
para problemas de classificação. Para esse tipo de situação, o método Kernel Fisher Discriminant
Analysis será apresentado a seguir.

Kernel Fisher Discriminant Analysis (KFDA)

- Generalização não linear para Análise Discriminante Linear (LDA)

Seja X ={⃗x 1 , ⃗x 2 ,…, ⃗x n } com ⃗x i∈ Rm e seja ϕ : R m →R M , com M > m , um mapeamento


não linear. Considere um problema de classificação de duas classes: ω1 e ω2 . No KFDA,
deseja-se maximizar o seguinte critério:
⃗ T S ϕB w
w ⃗
J ( w)=
⃗ (*)
⃗ T Sϕw w
w ⃗

em que
ϕ ϕ ϕ ϕ ϕ T
μ 1−⃗
S B =(⃗ μ 2 )(⃗
μ 1 −⃗
μ2 ) é a matriz de espalhamento entre classes no espaço de maior dimensão e
ϕ ϕ ϕ
S w =S1 +S 2 é a matriz de espalhamento intra classe, com

S j = ∑ ( ϕ (⃗x i)−⃗
ϕ ϕ ϕ T
μ j )( ϕ (⃗x i)−⃗
μj ) para j=1, 2 e
x i ∈ω j

nj
1
μ = ∑ ϕ (⃗x i)

ϕ
j para j=1, 2
n j i=1

A seguir veremos um resultado fundamental sobre o vetor solução w


⃗ .
M
Teorema: Qualquer vetor solução w ⃗ ∈R deve fazer parte do espaço gerado por todas as
amostras de treinamento ϕ (⃗x i) , para i = 1, 2, …, n

n
⃗ =∑ α i ϕ (⃗x i )
w (1)
i=1

⃗ ϕj para calcular a
Sendo assim, podemos utilizar a equação (1) juntamente com a definição de μ
projeção de ⃗μ ϕj na direção de w ⃗ , como:

(∑ )( )
n T n1 n n1 n n1
1 1 1
w T
⃗ μ
⃗ = ϕ
1 αi ϕ (⃗x i) ∑
n1 j=1
ϕ (⃗x j) = ∑ ∑ αi ϕ (⃗x i)T ϕ (⃗x i )= ∑ ∑ α i K (⃗xi , ⃗x j)
n1 i=1 j=1 n1 i=1 j=1
(2)
i=1

(∑ )( )
n T n2 n n2 n n2
1 1 1
w T
⃗ μ
⃗ = ϕ
2 αi ϕ (⃗x i) ∑
n2 j=1
ϕ ( ⃗x j) = ∑ ∑ αi ϕ (⃗x i)T ϕ (⃗x i )= ∑ ∑ α i K (⃗xi , ⃗x j ) (3)
n2 i=1 j=1 n2 i=1 j=1
i=1

Note que as projeções dependem apenas da matrizes de kernel K (⃗x i ,⃗x j) . Essa matriz associa
cada amostra da classe j com toda outra amostra da classe j, sendo n j x n j .

⃗ 1∈Rn como:
Definindo o vetor m

n1
1
m1 (i)= ∑ K (⃗x i , ⃗x k ) em que ⃗x k ∈ ω1 e ⃗x i é a i-ésima amostra da base
n1 k=1

Note que o escalar acima é a média da i-ésima linha da matriz de kernel, considerando apenas as
colunas das amostras que pertencem a classe ω1 .

Assim, podemos reescrever a equação (2) como:


n
w ⃗ ϕ1 =∑ αi m1 (i)=⃗
⃗ Tμ αT m
⃗ 1 onde αT
⃗ =[ α1 , α2 ,…, αn ]
i=1
De modo análogo, a equação (3) fica:
n
⃗ =∑ αi m2 (i)=⃗
T
⃗ μ
w ϕ
2 αT m
⃗ 2 onde αT
⃗ =[ α1 , α2 ,…, αn ]
i=1

Podemos então, expressar o numerador de (*) como:


T ϕ T ϕ ϕ ϕ ϕ T
w
⃗ SB w w (μ
⃗ =⃗ μ2 )(μ⃗ 1 −μ⃗ 2 ) w
⃗ 1 −⃗ ⃗=

( w⃗ T ⃗μϕ1 −⃗w T μ⃗ ϕ2 )(μ⃗ ϕ1 T w⃗ −⃗μ ϕ2 T w⃗ )=

=( ⃗ ⃗ 2 )( m ⃗ )=
T T T T
α m α m
⃗ 1−⃗ ⃗1 α m2 α
⃗ −⃗

αT (m
=⃗ ⃗ 2 ) (m
⃗ 1− m m 2 )T α
⃗ 1−⃗ ⃗=

T
α Mα
=⃗ ⃗
T
onde M =( m ⃗ 2) (m
⃗ 1− m ⃗ 2)
⃗ 1−m

Utilizando uma manipulação algébrica um pouco mais complexa, podemos reescrever o


denominador da equação (*). Primeiramente, note que:

( )( )(∑ )
n T 2 nj n
⃗ T S ϕw w
w ⃗= ∑ α i ϕ (⃗xi ) ∑ ∑ (ϕ (⃗x k )−⃗μϕj )( ϕ( ⃗x k)−⃗μϕj )T α l ϕ (⃗x l )
i=1 j=1 k=1 l=1

Agrupando os somatórios, temos:


2 n nj n
⃗ =∑ ∑ ∑ ∑ α i ϕ (⃗x i ) ( ϕ (⃗x k )−μ
T ϕ T ϕ ϕ T
w
⃗ Sw w ⃗ j )( ϕ (⃗x k )−μ
⃗ j ) αl ϕ (⃗x l )
j=1 i=1 k=1 l=1

Aplicando a distributiva:
2 n nj n
w T
⃗ S w ϕ
w
j=1 i=1 k=1 l=1
[
⃗ =∑ ∑ ∑ ∑ ( αi ϕ (⃗x i)T ϕ (⃗x k )− αi ϕ (⃗xi )T μ
⃗ j )( α l ϕ (⃗x k ) ϕ (⃗x l)−αl μ
ϕ T
⃗j
ϕ T
) ϕ (⃗x i)]

Lembrando que
nj
1
ϕ
μj=
⃗ ∑ ϕ (⃗x i)
n j i=1

podemos reescrever a equação anterior como:

[( )( )]
2 n nj n nj nj
1 1
⃗ =∑ ∑ ∑ ∑ αi ϕ (⃗x i) ϕ (⃗x k )− ∑ α i ϕ (⃗x i )T ϕ (⃗x p) α l ϕ (⃗x k )T ϕ (⃗x l)− ∑ αl ϕ (⃗x l)T ϕ (⃗x q )
T ϕ T
w
⃗ S w w
j=1 i=1 k=1 l=1 n j p=1 n j q =1

Mas pela definição da matriz de kernel, sabemos que:


K (⃗x i ,⃗x j)= ϕ (⃗xi )T ϕ (⃗x j )

o que nos leva a:

[( )( )]
2 n nj n nj nj
1
w
T
⃗ =∑ ∑ ∑ ∑ αi K (⃗x i ,⃗x k )−
⃗ Sw w
ϕ
∑ α K (⃗x i ,⃗x p ) αl K (⃗x l ,⃗x k )− n1 ∑ αl K (⃗x l , ⃗x q)
n j p=1 i
j=1 i=1 k=1 l=1 j q=1

Aplicando novamente a distributiva nos parêntesis, note que teremos 4 termos. O primeiro termo,
que chamaremos de T1, fica:

T 1 =αi αl K (⃗x i ,⃗x k ) K (⃗x l , ⃗x k )

O segundo termo, T2, que é o primeiro termo cruzado, é definido por:

αi αl n j

T 2 =− ∑ K (⃗x i , ⃗x k ) K (⃗x l , ⃗x q)
n j q =1

De forma similar, o segundo termo cruzado, T3, é dado por:

αi αl n j

T 3 =− ∑ K (⃗xi , ⃗x k ) K (⃗x i ,⃗x p )


n j p =1

Por fim o último termo, T4, é calculado como:

αi α l n n j j

2 ∑∑
T 4= K (⃗x i ,⃗x p )K (⃗x l , ⃗x q )
n j p=1 q=1

Note que os dois termos cruzados, T2 e T3, são de fato idênticos. Assim, podemos escrever:

[ ]
nj
2 n n
αi αl n j
αiαl n n j j

w T
⃗ =∑ ∑ ∑ ∑
⃗ S w ϕ
w α i αl K (⃗x i , ⃗x k ) K (⃗x l , ⃗x k )−2 ∑ K (⃗x i ,⃗x k ) K ( ⃗xl , ⃗x q)+ n2 ∑ ∑ K (⃗x i , ⃗x p )K (⃗x l , ⃗x q )
j=1 i=1 k=1 l=1 n j q=1 j p=1 q=1

Pode-se mostrar que:

αi αl n n j j
αi αl n j

∑ ∑ K (⃗x i , ⃗x p) K (⃗x l ,⃗xq )= n ∑ K (⃗x i , ⃗x k) K (⃗x l ,⃗x q )


n 2j p=1 q =1 j q=1

Note que é possível efetuar a soma do segundo com o terceiro termo, resultando em:

[∑ ∑ ∑ ( )]
2 n nj n nj
αα
⃗ =∑ αi α l K (⃗x i , ⃗x k ) K (⃗x l ,⃗x k )− i l ∑ K (⃗x i ,⃗x k )K (⃗xl , ⃗x q)
T ϕ
w
⃗ S w w
j=1 i=1 k=1 l=1 n j q=1

Distribuindo os três somatórios mais internos:

[ (∑ ) ]
2 n nj n n nj n nj
1
w ⃗ =∑
⃗ T S ϕw w ∑ ∑ ∑ α i K (⃗xi , ⃗x k ) K (⃗x l ,⃗x k ) αl−∑ ∑ ∑ αi K (⃗x i ,⃗x k ) K (⃗x l ,⃗x q ) α l
j=1 i=1 k=1 l=1 i=1 k=1 l=1 q=1 nj
Reescrevendo na notação matricial, temos que o primeiro termo fica:
n nj n

∑ ∑ ∑ αi K (⃗x i , ⃗x k ) K (⃗x l , ⃗x k) αl =⃗αT K j K Tj ⃗α


i=1 k=1 l =1

T
onde α ⃗ =[ α1 , α2 ,…, αn ] e K j é a matriz de kernel de dimensões n×n j da classe ω j .
Em termos práticos, a matriz K 1 (⃗x i , ⃗x j ) é construída variando ⃗x i para todas as amostras da
base de dados e ⃗x j para todas as amostras da classe ω1 . De modo similar, a matriz
K 2 (⃗x i , ⃗x j ) é construída variando ⃗x i para todas as amostras da base de dados e ⃗x j para
todas as amostras da classe ω2 .

O segundo termo na forma matricial torna-se:

( )
n nj n nj
1
∑ ∑ ∑ αi ∑ K (⃗x i , ⃗x k ) n K (⃗x l , ⃗x q ) αl =⃗
T
α K j 1n K j α
⃗ j
T

i=1 k=1 l =1 q =1 j

1
onde a matriz 1n é uma matriz n j×n j com todas as entradas iguais a . Assim, temos:
j
nj
2
⃗ =∑ ( α ⃗)
T ϕ T T T T
w
⃗ S w w⃗ Kj Kj α α K j 1n K j α
⃗ −⃗ j
j=1

Colocando em evidência os termos em comum, podemos simplificar ainda mais:

[∑ ]
2 2
⃗ =∑ [ α ⃗ ]=⃗
T ϕ T T T T
w
⃗ S w w⃗ K j ( I −1n ) K α α j j K j (I −1n ) K j α
j

j=1 j=1

Identificando que o termo entre colchetes nada mais é que a soma de duas matrizes, podemos
escrever:

N=N 1 + N 2=K 1( I −1n ) K T1 + K 2 ( I −1n ) K T21 2

Note que como K 1 é n×n1 , I é n1×n1 , 1n é n1×n1 e K Tj é n1×n , temos que


1

a matriz N 1 tem dimensões n×n . Pelo mesmo raciocínio, como K 2 é n×n2 , I é


n2×n2 , 1n é n2×n2 e K Tj 2
é n2×n , temos que a matriz N 2 tem dimensões
n×n . Portanto, a matriz final N também tem dimensões n×n , como era de se esperar,
n
uma vez que α ⃗ ∈R .
E assim, finalmente chegamos em:

⃗ T S ϕw w
w αT N α
⃗ =⃗ ⃗

O critério a ser maximizado fica:


T
α
⃗ Mα⃗
J (α
⃗ )= T
α Nα
⃗ ⃗

A condição necessária para obtenção da solução ótima é:


α)
∂J (⃗
=0
∂α⃗

Utilizando a regra do quociente para a derivação, temos:

Mα αT N α
⃗ (⃗ ⃗T M α
⃗ )−( α ⃗) N α

T 2
=0
α Nα
(⃗ ⃗)

Isso implica que:

Mα ⃗T N ⃗
⃗ (α α )−( ⃗αT M ⃗α ) N α
⃗ =0
T
Dividindo ambos os lados por α
⃗ Nα
⃗ , chega-se a:

αT M ⃗α )
(⃗

⃗− α =0
N⃗
αT N α
(⃗ ⃗)

⃗T M ⃗
α α
Note que T
é um escalar, e por isso iremos chamá-lo de λ . Assim, chegamos a:
α
⃗ Nα ⃗


⃗ =λ N ⃗
α

Multiplicando ambos os lados por N−1 :

(N−1 M ) α
⃗ =λ α

Portanto, a solução é dada pelo autovetor associado ao maior autovalor de N−1 M .

Obs: Não é raro, a matriz N ser singular ou próxima da singularidade. Nesses casos, devemos
adicionar uma pequena perturbação na diagonal principal de N:

N=N + ϵ I , onde I é a matriz identidade e ϵ =10− 4 ,10−5 , .. .

Uma pergunta que surge é: como podemos projetar uma nova amostra que não pertence ao conjunto
de treinamento (out-of-sample problem)?

Lembrando do teorema, sabemos que todo vetor solução pode ser expresso como uma combinação
linear das amostras, ou seja:
n
⃗ =∑ α i ϕ (⃗x i )
w
i=1

Assim, a projeção de uma nova amostra ⃗x em w


⃗ fica:
n n
⃗ =∑ α i ϕ (⃗x )T ϕ (⃗x i)=∑ αi K (⃗x , ⃗xi )
y= ϕ (⃗x )T w
i=1 i=1

onde K representa a função de kernel aplicada na nova amostra em relação a cada amostra da
base.
KFDA multiclasses

O método apresentado na seção anterior, fornece uma projeção dos dados para a reta real em
problemas de classificação binários. É possível generalizar o KFDA para lidar com múltiplas
classes. Para isso, devemos modificar o cálculo das matriz M :
C
M =∑ n j ( m
T
⃗ j −⃗
m*)( m
⃗ j −⃗
m *)
j=1

⃗ * ∈Rn são dados por:


⃗ j,m
onde m

nj
1
m j (i)= ∑ K (⃗x i , ⃗x k ) em que ⃗x i deve variar entre todas as amostras da base e ⃗x j deve
n j k=1
variar entre todas as amostras da classe ω j

n
1
m* (i)= ∑ K (⃗x i ,⃗x k )
n k=1
em que ⃗x i e ⃗x j devem variar entre todas as amostras da base

A matriz N também pode ser generalizada como:


C
N=N 1 + N 2 +...+ N C =∑ K j ( I−1n )K Tj j
j=1

em que a matriz K j (⃗xi , ⃗x k ) é construída variando ⃗x i para todas as amostras da base de dados
e ⃗x k para todas as amostras da classe ω j .

A solução ótima nesse caso consiste em obter os d autovetores associados aos d maiores autovalores
da matriz N−1 M . A nova base é então definida por:

W =[ α α2 ,... , α
⃗1 , ⃗ ⃗ d] (cada coluna de W representa um vetor α k )

Como fica a projeção dos dados? Temos agora d direções, definidas pelos vetores w
⃗ 1, w
⃗ 2 , ... , w
⃗d .

n n
⃗ k =∑ α ik ϕ (⃗x )T ϕ (⃗x i)=∑ αik K (⃗x , ⃗x i)
y k = ϕ (⃗x )T w
i=1 i=1

em que ⃗x i deve variar por todas as amostras da base.


Aprendizado de variedades (Manifold Learning)
Frequentemente em tarefas de tomada de decisão ser capaz de visualizar conjuntos de dados
complicados é uma tarefa nada trivial. Isso porque conjuntos de dados que representam objetos do
mundo real podem apresentar um elevado número de atributos. Pense em quantos atributos
podemos extrair de uma pessoa: peso, altura, circunferência craniana, quadril, etc… Para plotar
todas essas informações precisaríamos ser capazes de enxergar em mais de 3 dimensões, o que é
impossível. Dessa forma, vários algoritmos para visualização de dados foram criados para reduzir a
dimensionalidade dos dados de maneira não linear, conseguindo projetar esses dados multivariados
em espaços de 2 e 3 dimensões, preservando algumas características intrínsecas deles. Nesta seção
iremos introduzir 3 desses métodos: os algoritmos Laplacian Eigenmaps, ISOMAP e LLE.
Pergunta: Porque não usar simplesmente o PCA?

Em vários casos, métodos lineares não são capazes de aprender a estrutura geométrica dos dados.
Hipótese de que dados pertencem a um espaço Euclidiano não é válida. É preciso encontrar uma
métrica mais adequada que a distância Euclidiana (metric learning).

Isometric Feature Mapping (ISOMAP)

Ideia geral: Construir um grafo unindo os vizinhos mais próximos, computar os menores caminhos
entre cada par de vértices e, conhecendo as distâncias entre os pontos, encontrar um mapeamento
para o plano que preserve essas distâncias.

Hipótese: caminhos mínimos em grafos podem aproximar bem as verdadeiras distâncias geodésicas
nos espaços não Euclidianos (variedades)

O algoritmo ISOMAP pode ser resumido em 3 grandes passos:

Passo1: Induzir um grafo a partir do conjunto de dados {⃗x i , y i } para i = 1,2,…,n onde ⃗x i
denota o vetor de características que representa a i-ésima amostra e y i denota a classe ou
categoria a que o vetor pertence, sendo geralmente um inteiro maior que zero.

Passo 2: Montar a matriz de distâncias ponto a ponto D


Para cada amostra ⃗x i do conjunto
Aplicar o algoritmo de Dijkstra para obter os caminhos mínimos de ⃗x i aos demais
Fazer D ij igual ao tamanho do menor caminho entre ⃗x i e ⃗x j

Passo 3: De posse da matriz D, encontrar um conjunto de pontos no subespaço Euclidiano Rk tal


que as distâncias sejam preservadas. Esse problema é solucionado pelo algoritmo MDS
(Multidimensional Scaling)
Obs: Trata-se de uma abordagem global (utiliza todos os pontos para estimar as distâncias)

Teorema: (Asymptotic Convergence Theorem)


Dados λ 1 , λ 2 ,μ> 0 tão pequenos quanto desejados, então para uma densidade suficientemente
grande de amostras a desigualdade a seguir:

(1−λ1 )d M (⃗x i ,⃗x j )≤dG (⃗x i , ⃗x j )≤(1+λ 2) d M (⃗x i , ⃗x j )

é satisfeita com probabilidade (1−μ) . Em outras palavras, esse resultado nos diz que a distância
estimada no grafo ( d G ) fica limitada num intervalo muito estreito em relação a verdadeira
distância na variedade/manifold ( d M ), ou seja d G tende a d M .

Multidimensional Scaling (MDS)

Objetivo: Dada uma matriz de distâncias par a par, recuperar quem são as coordenadas dos pontos
k
⃗x r ∈R ,r =1,2,. .., n , onde K é definido pelo usuário (plano, espaço 3D, etc…)

A distância entre os vetores ⃗x r e ⃗x s é d 2rs =‖⃗ 2 T


x r −⃗x s‖ =(⃗x r −⃗x s ) (⃗x r −⃗x s)

2
A matriz de distâncias é dada por D={d rs }, r , s=1,2,... , n (r é linha, s é coluna)

Seja B a matriz dos produtos internos


T
B={brs }, onde brs =⃗x r ⃗x s

O método MDS baseia-se na resolução de 2 subproblemas:


i) Encontrar a matriz B a partir de D
ii) recuperar as coordenadas dos pontos a partir de B

Subproblema 1: Encontrar B a partir de D

Hipótese: a média dos dados é nula (pontos estão ao redor do vetor nulo)
n

∑ ⃗x r =0 (caso contrário há infinitas possibilidades, basta transladar os pontos)


r=1

De d 2rs a partir da distributiva, temos:

2 T T T
d rs =⃗x r ⃗x r +⃗x s ⃗x s−2 ⃗x r ⃗x s (*)

Assim, a partir da matriz D, podemos obter a média de uma coluna s como:


n n n n n
1 1 1 2 1

n r =1
d 2rs = ∑ ⃗xTr ⃗x r + ∑ ⃗x Ts ⃗x s− ∑ ⃗xTr ⃗x s= ∑ ⃗x Tr ⃗x r +⃗x Ts ⃗x s (**)
n r=1 n r =1 n r=1 n r =1

Analogamente, podemos computar a média de uma linha r como:


n n n n n
1 1 1 2 1

n s=1
d 2rs = ∑ ⃗xTr ⃗x r + ∑ ⃗x Ts ⃗x s− ∑ ⃗xTr ⃗x s=⃗x Tr ⃗x r + ∑ ⃗x Ts ⃗x s (***)
n s=1 n s=1 n s=1 n s=1

E finalmente, podemos computar a média dos elementos de D como:


n n n n n n n n n n
1 1 1 2 1 1
2 ∑ ∑ rs
d 2 = 2 ∑ ∑ ⃗xTr ⃗x r + 2 ∑ ∑ ⃗x Ts ⃗x s− 2 ∑ ∑ ⃗x Tr ⃗x s = ∑ ⃗x Tr ⃗x r + ∑ ⃗x Ts ⃗x s =
n r =1 s=1 n r=1 s=1 n r=1 s =1 n r=1 s=1 n r =1 n s=1

n
2
= ∑ ⃗x Tr ⃗x r (****)
n r=1

Note que de (*) é possível definir brs como:

1
brs =⃗x Tr ⃗x s =− (d 2rs −⃗x Tr ⃗x r−⃗x Ts ⃗x s )
2

Mas de (***) podemos isolar o termo −⃗x Tr ⃗x r :

n n
1 1
−⃗x ⃗x r =− ∑ d 2rs + ∑ ⃗x Ts ⃗x s (1)
T
r
n s=1 n s =1

E de (**) podemos isolar o termo −⃗x Ts ⃗x s :

n n
1 1
T
−⃗x s ⃗x s =− ∑
n r=1
d rs + ∑ ⃗x r ⃗x r (2)
2
n r =1
T

Então, fazendo (1) – (2) temos:


n n n
1 1 2
T T
−⃗x r ⃗x r −⃗x s ⃗x s=− ∑
n r =1
d rs − ∑ d rs + ∑ ⃗x r ⃗xr
2
n s=1
2
n r=1
T

De (****) podemos escrever:


n n n
2 1

n r =1
⃗x r ⃗x r= 2 ∑ ∑ d rs
T

n r=1 s=1
2

De modo que temos uma expressão completa para brs em função dos elementos de D:

( )
n n n n
1 2 1 1 1
brs =− d − ∑ d2 − ∑ d2 + ∑ ∑ d2
2 rs n r =1 rs n s=1 rs n2 r=1 s=1 rs

1
Chamando de ars =− d rs podemos escrever:
2
n
1
ar .= ∑ ars (média na linha r)
n s=1

n
1
a. s= ∑ a (média na coluna s)
n r=1 rs
n n
1
a..= ∑ ∑ ars
n2 r=1 s=1
(média em D)

expressando brs como:

brs =ars −a r . −a. s +a.. (@)

1
Definindo a matriz A={ars }, r , s=1,2,. .., n , como A=− D pode-se mostrar que a relação
2
entre B e A é ainda mais simplificada, sendo dada por:

B=H A H onde a matriz H é definida por

1 T
H=I − ⃗1 ⃗
1 sendo ⃗ T
1 =[1,1,... ,1] (vetor de 1’s com n dimensões)
n

[ ]
1 1 ... 1
1 1 ... 1
Dessa forma tem-se que ⃗
1 ⃗1 =U=
T
... ... ... ...
1 1 ... 1

Note que B=H A H nada mais é que a forma matricial da equação (@) uma vez que

1 1
( 1
n )(
1
n
1
n
1
n)( 1
B=H A H= I − U A I − U = A− U A I − U = A−A U− U A + 2 U A U
n n n )( )
Portanto, temos a matriz B.

Subproblema 2: Recuperar as coordenadas ⃗x r ∈R p a partir de B

Note que a matriz B dos produtos internos pode ser expressa por:
T
B n×n=X n×p X p ×n

onde n é denota número de amostras e p denota o número de dimensões.

A matriz B possui 3 propriedades importantes:


a) simétrica
b) O rank de B é p (número de linhas/colunas linearmentre independente: gera uma base em Rp)
c) positiva semi-definida: ∀ ⃗x ∈ Rn ,⃗x T B ⃗x ≥0

Isso implica em dizer que a matrix B possui p autovalores não negativos e n - p autovalores nulos.
Assim, pela decomposição espectral de B (eigendecomposition) pode-se escrever:
T
B=V Λ V onde

Λ=diag( λ 1 , λ 2 , ... , λ n) é a matriz diagonal dos autovalores de B e


[ ]
| | ... |
| | ... |
V= ⃗
v1 v2
⃗ ... ⃗v n é a matriz dos autovetores de B
| | ... |
| | ... | n ×n

Sem perda de generalidade iremos considerar λ 1≥λ 2≥λ 3≥...≥λ n


Devido aos n – p autovalores nulos, B pode ser escrita como:
T
B=V ' Λ ' V ' onde

Λ '=diag (λ 1 , λ 2 , ... , λ p ) é a matriz diagonal dos autovalores de B e

[ ]
| | ... |
| | ... |
V '= ⃗
v1 v2
⃗ ... ⃗v p
| | ... |
| | ... | n× p

Mas como
T T 1 /2 1 /2 T
B n×n=X n×p X p ×n=V ' Λ ' V ' =V ' Λ ' Λ' V '

temos finalmente que

X n× p =V ' n× p Λ ' 1/p×2 p onde Λ ' 1 /2=diag ( √ λ1 , √ λ2 ,... , √ λ p)

Cada linha de X n× p terá a coordenada de um vetor ⃗x i∈R p , onde p é uma parâmetro que
controla o número de dimensões do espaço de saída: se desejamos um plot em 2D, p = 2, em caso
de um plot 3D, k = 3, etc.

Algoritmo MDS

Entrada: D={d 2rs } (obtida criando grafo e executando Dijkstra n vezes)

1
1. Faça A=− D
2

1 T
2. Faça H=I − ⃗1 ⃗
1
n

3. Compute B=H A H

4. Encontrar os autovalores e autovetores de B

5. Tomar os K autovetores associados aos K maiores autovalores de B e montar V ' n×k e


Λ '=diag (λ 1 , λ 2 , ... , λ k )

1/ 2
6. Calcular X n×k =V ' n×k Λ ' k×k
Convém destacar que o algoritmo ISOMAP é totalmente não supervisionado, no sentido que ele não
usa qualquer informação sobre a distribuição das classes. Ele tenta encontrar uma representação
mais compacta dos dados originais apenas preservando as distâncias.

Limitação do ISOMAP: não convexidade dos dados (presença de buracos na variedade) pode ser
um problema.

A figura a seguir ilustra uma diferença entre o PCA e o ISOMAP na redução de dimensionalidade.
Note que a projeção linear do PCA destrói os dados, enquanto o ISOMAP consegue aprender a
geometria intrínseca dos dados.

Relação do ISOMAP com Kernel PCA

Lembre-se que no Kernel PCA, após a construção da matriz de kernel K, nós temos que remover a
média dos dados utilizando a seguinte relação:
~
K=K −1n K −K 1n+ 1n K 1n

onde 1n é uma matriz n×n com todos os elementos iguais a 1/n. Seja o vetor ⃗e definido
como:

1 T
⃗e = [1 ,1 , ... ,1]
√n
É fácil notar que podemos escrever a seguinte igualdade

eT
1n=⃗e ⃗

de modo que temos:


~ T T T T
K=K −⃗e ⃗e K −K ⃗e ⃗e + ⃗e ⃗e K ⃗e ⃗e
Colocando os fatores comuns em evidência, podemos escrever:
~ T T T
K=[( I−⃗e ⃗
e ) K ]−[( I−⃗e ⃗e ) K ] ⃗e ⃗
e

Novamente, note que é possível agrupar termos, colocando em evidência, o que nos leva a:
~
K=(I −⃗e ⃗e T ) K (I −⃗e ⃗e T )

No algoritmo ISOMAP, um dos passos consiste na obtenção da matriz de produtos internos B a


partir da matriz de distâncias D, fazendo o seguinte cálculo:

1
B=− H D H
2

onde H=(I −⃗e ⃗e T ) , o que nos leva a:

1
e T )D(I −⃗e ⃗e T )
K iso =− (I −⃗e ⃗
2

Portanto, o Kernel PCA se torna o ISOMAP quando a matriz de kernel é igual ao negativo de
metade da matriz das distâncias geodésicas.

Local Linear Embedding (LLE)

Um outro algoritmo não supervisionado para redução de dimensionalidade não linear é o LLE,
também conhecido como Local Linear Embedding (Imersão Linear Local).

Hipótese: Supondo uma densidade alta de amostras é esperado que um vetor ⃗x i e seus vizinhos
definam um patch linear (pertençam a um mesmo plano).

Sendo assim, torna-se possível caracterizar a geometria local por coeficientes lineares:

⃗x^ i≈∑ wij ⃗x j para ⃗x j ∈ N (⃗x i)


j

(podemos tentar reconstruir um vetor como uma combinação linear dos seus vizinhos)

O método tenta minimizar a soma dos erros quadráticos de reconstrução locais:


2
E(W )=∑ |⃗x i−∑ w ij ⃗x j|
i j

Problema: Encontrar matriz de pesos W que minimiza E(W) sujeito a:

i) w ij=0 se vi não é vizinho de vj no grafo

ii) ∑ wij=1 (soma de cada linha deve ser 1)


j

Sem perda de generalidade pode-se expressar E(W) como o erro de local (sem somatório):
⃗ )=|∑ w j (⃗xi −⃗x j )| =∑ ∑ w j w k (⃗x i−⃗x j )(⃗x i−⃗x k )T
2
E( w
j j k

Definindo a matriz C como


T
C jk =(⃗x i−⃗x j)(⃗x i−⃗x k )

temos

⃗ )=∑ ∑ w j C jk w k = w
E( w ⃗T
⃗ Cw (produto matriz vetor: faça j =1 e varie k)
j k

Então, o problema passa a ser:

min w ⃗ T sujeito a
⃗Cw ∑ w j =1
j

Usando multiplicadores de Lagrange e após algumas manipulações algébricas, pode-se chegar na


seguinte expressão para w j :

∑ C−1jk
k
w j=
∑ ∑ C−1jk
j k

onde o numerador é soma de todos elementos da linha j da matriz inversa de C e o denominador é a


soma de todos os elementos da matriz inversa de C. Pode-se mostrar que esse passo é equivalente a
resolver o seguinte sistema linear:

⃗ =⃗1 , onde ⃗
Cw 1 é um vetor de 1’s

e em seguida zerar todos os coeficientes w j tais que ⃗x i não seja vizinho de ⃗x j .

wj
Logo após, devemos normalizar os coeficientes fazendo w j=
∑wj
Nessa primeira etapa, estimamos os pesos que melhor construíam cada ponto baseado em seus
vizinhos. A ideia da segunda etapa é fixar esses pesos e tentar ajustar novas coordenadas y (em um
espaço de menor dimensão) que minimizem o erro de reconstrução.

Tendo os pesos W, busca-se ⃗y i ∈R k de modo a minimizar uma função de custo de imersão:

ϕ (Y )=∑ |⃗y i −∑ w ij ⃗y j|
2
(fixo pesos e ajusto coordenadas dos pontos para min. erro)
i j

Na forma matricial, temos:

ϕ (Y )=Tr [(Y −WY ) (Y −WY ) ]


T

onde
[ ] [ ]
- - ⃗y 1 - - - - w
⃗1 - -
- - ⃗y 2 - - - - w
⃗2 - -
Y= - - ⃗y 3 - - W= - - w
⃗3 - - (matriz de pesos n x n)
... ... ... ... ... ... ... ... ... ...
- - ⃗y n - - n×k - - w
⃗n - - n×n

Desenvolvendo a expressão anterior:

ϕ (Y )=Tr [(Y −WY ) (Y −WY ) ]=Tr {[( I−W )Y ] [(I −W )Y ]}=Tr [ Y ( I −W ) (I −W )Y ]


T T T T

Chamando de M a matriz (I −W )T ( I −W ) , chega-se a:


T
ϕ (Y )=Tr [Y M Y ]

Para garantir a unicidade da solução, consideramos 2 restrições:

i) ∑ ⃗y i=0 (média nula)


i

1 T
ii) YY =I (matriz de covariância = identidade)
n

Temos portanto um problema de otimização, definido por:

1 T
T
argmin Tr [Y M Y ] sujeito a
Y
∑ ⃗y i=0 e
n
YY =I
i

Solução: Multiplicadores de Lagrange


T T
L(Y , λ)=Tr [Y M Y ]−λ(YY −n I )

Derivando em relação a Y nos leva a:

∂L
=MY + M T Y −λ Y =0
∂Y

Como a matriz M é simétrica

2 MY =λ Y

Como a constante multiplicadora 2 não afeta os autovalores e autovetores de M, pode-se escrever:

MY =λ Y (problema clássico de autovalores e autovetores)

Assim, voltando ao problema temos:

argmin Tr [Y T M Y ]=argmin Tr [λ YY T ]=argmin Tr [ λ I ]=∑ λ i


Y Y Y i
Portanto, para minimizar a soma dos autovalores, devemos escolher para compor a matriz Y n×k
os k autovetores associados aos k menores autovalores não nulos da matriz M.

Obs: 0=λ n≤λ n−1≤λ n−2≤...≤λ1 (descartar os autovetores que possuem autovalores nulos)

[ ]
| | ... |
| | ... |
Y n×k = ⃗
v n−1 v n−2
⃗ ... ⃗v n−k
| | ... |
| | ... | n×k

Cada linha da matriz Y representa a coordenada de uma amostra no espaço de saída. No caso 2D,
apenas os 2 autovetores associados aos 2 menores autovalores não nulos são selecionados.

Algoritmo LLE

Passo 1: Induzir grafo G a partir dos dados

for i = 1 : n
computar distâncias de ⃗x i a todo ⃗x j
encontrar k menores distâncias
associar amostras ⃗x i aos vizinhos

Passo 2: Obter pesos W que minimizam erro

for i = 1 : n
criar matriz Z com todos os vizinhos de ⃗x i nas colunas
subtrair ⃗x i de toda coluna de Z
computar covariância local C=Z T Z
resolver sistema linear C w⃗ =⃗1 , onde ⃗1 é um vetor coluna de 1’s
setar w i ( j)=0 se ⃗x i não é vizinho de ⃗x j
w i ( j)
normalizar pesos: w i ( j)=
∑ wi ( j)
j

Passo 3: Computar coordenadas da imersão

criar matriz M =( I −W )T ( I −W )
encontrar os k autovetores associados aos k menores autovalores não nulos de M
montar matriz Y das coordenadas

[ ]
| | ... |
| | ... |
Y n×k = ⃗
v n−1 v n−2
⃗ ... ⃗v n−k (cada linha de Y é um ponto)
| | ... |
| | ... | n×k

Obs: Trata-se de uma abordagem local (os pesos para reconstrução são estimados localmente)
Laplacian Eigenmaps

Ideia geral: Aproximar variedade Riemanniana por um grafo e encontrar um mapeamento para R k
que preserva localidades, ou seja, pontos próximos na variedade devem permanecer próximos no
espaço Euclidiano. Utiliza como ferramenta matemática a matriz Laplaciana do grafo.

Para melhor compreender essa importante técnica de redução de dimensionalidade não linear,
iremos apresentar uma breve introdução a Teoria de Grafos Espectral.

Introdução a Teoria de Grafos Espectral

Objetivo: estudar grafos como objetos matemáticos que fornecem aproximações discretas para
espaços não Euclidianos (como variedades Riemannianas – superfícies curvas, etc).

Em particular, estamos interessados em estudar o espectro desses grafos, ou seja, os autovalores e


autovetores de matrizes que os definem, como por exemplo a matriz de adjacências e a matriz
Laplaciana.

Hipótese: G = (V, E) é um grafo básico simples, conexo e não direcionado.

Matriz de adjacência como operador linear

Seja G = (V, E) com |V| = n e seja ⃗f =[f 1 , f 2 ,... , f n ]∈ Rn um vetor de coeficientes dos vértices
v ∈V . Dizemos que f i : V → R é uma função que mapeia cada v ∈V para um número real.
É uma versão discreta de uma função definida em uma variedade (espaço com curvatura) em que o
número de pontos do domínio da função é finito.

Nesse contexto, desejamos analisar o papel da matriz de adjacências como um operador linear que
pode ser aplicado nessa “função” f, que é um vetor em Rn . Sabemos que a matriz de adjacências
é definida pela matriz quadrada n x n que satisfaz:

{
aij = 1, i ~ j
0, c.c.

Ex:
[ ]
0 1 1 1
1 0 0 1
A=
1 0 0 0
1 1 0 0

Como a matriz A é simétrica, todos os autovalores de A são reais. Seja ⃗g ∈R n com ⃗g= A ⃗f .
Note que o i-ésimo elemento do vetor ⃗g é o produto da i-ésima linha de A com ⃗f , pois

a 1 , ⃗f ⟩
g1=⟨ ⃗
g2=⟨⃗a 2 , ⃗f ⟩
a 3 , ⃗f ⟩
g3=⟨ ⃗ a i , ⃗f ⟩=∑ f j
gi=⟨⃗ (soma os valores de f onde há aresta, ou seja nos
j ∈ηi
vizinhos do vértice i)

a n , ⃗f ⟩
gn=⟨ ⃗

Ex:

g1=2+1+3−2=4

Em outras palavras, o coeficiente gi armazena a soma dos valores de ⃗f para todos os


vizinhos do vértice i.

Apesar de simples e intuitivo, veremos a seguir que esse operador (A) não possui propriedades
matemáticas desejáveis, como por exemplo ser uma matriz positiva definida. Isso é importante pois
no estudo de problemas de otimização, formas quadráticas envolvendo um vetor ⃗f qualquer
como ⃗f T A ⃗f são sempre positivas e convexas, ou seja, é garantido a existência de pontos ótimos
(máximos ou mínimos de tais funcionais).

Iremos definir a quantidade h como segue:

h= ⃗f A ⃗f
T

Vimos anteriormente que ⃗g= A ⃗f , então:


n n
h= ⃗f T ⃗
i=1 i=1 [ (∑ f )]=f ∑ f + f ∑ f +...+ f ∑ f = ∑ f f
g = ∑ f i gi = ∑ f i
j∈ ηi
j 1
j∈ η1
j 2
j∈ η2
j n
j∈ ηn
j
(i , j)∈ E
i j

Uma matriz A é dita ser positiva definida se ∄ ⃗f ∈ Rn tal que h<0 . Porém, é fácil verificar que
a matriz de adjacências A não pode ser positiva definida pois para um grafo de 5 vértices como o
definido a seguir, podemos encontrar o vetor ⃗f =[−1,1, 1, 1,1] para o qual h é negativo.
Aplicando a definição de h, temos:

h=(−1) 1+(−1)1+(−1)1+(−1) 1+1(−1)+1(−1)+1 (−1)+1(−1)=−8

Portanto, a conclusão é que a matriz A não é positiva definida. Uma das decorrências desse fato é
que seus autovalores não são todos positivos, ou seja, é possível se ter autovalores negativos.
Informalmente falando, o espectro desse operador não é bem comportado como gostaríamos.

Uma observação relevante consiste na definição de tais critérios quando o grafo G = (V, E, w) é
ponderado. Nesse caso os resultados são análogos. A matriz de adjacência fica:

{
aij = w ij , i~ j
0 , c.c.

e pode-se mostrar (verifique isso) que

gi= ∑ w ij f j
j∈η i

h= ⃗f A ⃗f =
T
∑ wij f i f j
(i , j )∈ E

o que nos mostra que ainda assim A não é positiva definida.

O espectro de A

Sem perda de generalizada iremos considerar λ 1≥λ 2≥...≥λn (ordenados do maior ao menor)

A seguir são listadas algumas propriedades do espectro da matriz de adjacências.


n
1. Tr ( A)=∑ λi=0 (os autovalores são distribuídos ao redor do zero)
i=1

n n
2. Tr ( A2 )=∑ λ2i =∑ d (v i ) (soma dos autovalores ao quadrado = soma dos graus)
i=1 i =1

3. d≤λi≤d max (maior autovalor é limitado pelo grau médio e grau máximo)
n
4. Energia de G: E(G)=∑ |λi|
i=1

A matriz Laplaciana como operador

Def: A matriz Laplaciana é definida por L = D – A, onde D=diag( d (v 1 ) ,d (v 2), ... , d( v n )) é a


matriz diagonal dos graus e A é a matriz de adjacências.

Toda a informação contida na matriz A está na matriz L, mas o espectro de L é mais bem
comportado, fazendo com que ela seja preferível.

No caso de um grafo não ponderado, os elementos de L são dados por:

{
d (v i ), i= j
l ij = −1, i~ j
0, c.c

e no caso ponderado temos:

{
∑ wij , i= j
j
l ij =
−w ij , i ~ j
0, c.c

Iremos prosseguir com a mesma análise feita anteriormente com a matriz A. Seja o vetor
⃗f =[f 1 , f 2 ,... , f n ]∈ Rn em que f i denota o valor da função no vértice v i . Considere
⃗g=L ⃗f . Então:

gi=⟨ ⃗l i , ⃗f ⟩=d (v i) f i −∑ f j =f i + f i +...+f i −f j −f j −...−f j = ∑ ( f i−f j )


1 1 k
j∈ ηi j∈ηi

ou seja, o i-ésimo elemento de ⃗g é a soma das diferenças entre f i e seus vizinhos.

Iremos verificar agora que L é positiva semidefinida. Seja h= ⃗f T L ⃗f , então

h= ⃗f T L ⃗f =⃗f T D ⃗f −⃗f T A ⃗f =∑ f 2i d ii −∑ ∑ f i f j
i i j

Multiplicando e dividindo por dois:

1
(∑ f i d ii −2 ∑ ∑ f i f j + ∑ f j d jj
)
2 2
h=
2 i i j j

Mas como d ii =∑ aij temos:


j

1 1
(∑ ∑ a f −2∑ ∑ f f wij + ∑ ∑ aij f j =
) 2 [∑ ∑ (f −2 f f + f )]
2 2 2 2
h= ij i i j i i j j
2 i j i j j i i j

o que finalmente simplifica-se para:


1
h= ∑
2 (i , j )∈ E
(f i −f j)
2

e portanto ∄ ⃗f ∈ Rn para o qual h<0 . Em outras palavras, chegamos a conclusão que a matriz
Laplaciana L é positiva semidefinida (pois ⃗f T L ⃗f pode ser igual a zero). Isso significa que todos
os seus autovalores são positivos, fato que será de extrema importância nos problemas que veremos
mais adiante.

Os cálculos desenvolvidos consideram um grafo não ponderado. Fazendo os mesmos cálculos


considerando um grafo ponderado, pode-se chegar em (verifique isso):

gi = ∑ w ij ( f i−f j)
(i , j)∈ E

1
h= ∑
2 (i , j )∈ E
wij (f i −f j)
2

mostrando que no caso de termos os pesos definidos como distâncias, o valor de h continua sendo
sempre positivo.

O espectro de L

Sem perda de generalizada iremos considerar μ1 ≥μ 2≥...≥μ n (ordenados do maior ao menor)

1. Note que o vetor ⃗f =[1,1,. .. ,1] é sempre um autovetor de L, associado ao autovalor λ=0
(é o menor autovalor possível).

L ⃗f = ⃗
0 =0 ⃗f

2. A soma dos autovalores é igual a duas vezes o número de arestas.


n

∑ μ j=2|E|
j=1

3. Se G tem k componentes conexos então existem k autovalores nulos.

4. μ n−1 : segundo menor autovalor de L (menor autovalor não nulo) é conhecido como
conectividade algébrica de G (algebraic connectivity). É uma medida de quão fácil é separar os
vértices em clusters. Se μ n−1 é pequeno mais fácil separar (mais modular é G), se μ n−1 é
grande mais difícil (menos modular é G).

⃗v n−1 : Fiedler vector (autovetor associado menor autovalor não nulo. Tem um papel importante
na imersão Laplaciana (utilizada para partição do grafo em clusters)
n
5. Pode-se mostrar que a soma dos coeficientes de um autovetor é nula, ou seja, ∑ ⃗v i ( j)=0
j=1

6. Pode-se mostrar que os coeficientes de um autovetor são limitados, ou seja, −1≤⃗


v i ( j )≤1

Laplacianas Normalizadas
Em alguns casos, é comum utilizar versões normalizadas da matriz Laplaciana. Basicamente, a
motivação para esse fato é se ter um limite superior para o maior autovalor. Pode-se mostrar que nas
matrizes Laplacianas normalizadas 0≤μ i≤2 .

1. Versão normalizada não simétrica

L1=D−1 L

onde D é a matriz diagonal dos graus.

2. Versão normalizada simétrica


−1/ 2 −1/ 2
L2=D LD

Imersão Laplaciana

Objetivo: encontrar um mapeamento suave ⃗f dos vértices de G para a reta real de modo a
preservar proximidades, ou seja, o que é próximo no grafo deve permanecer próximo na reta.

Deseja-se minimizar seguinte critério:

J ( ⃗f )= ∑ wij (f i−f j )
2

(i , j)∈E

pois deseja-se que se v i e v j são vizinhos, f i≈ f j (coordenadas na reta sejam próximas)

O problema consiste em determinar quem deve ser ⃗f ∈R n .

Sabemos que o critério J ( ⃗f ) pode ser expresso por ⃗f T L ⃗f , de modo que o problema de
otimização torna-se:

argmin ⃗f L ⃗f
T

f ∈R
n

Porém para termos uma solução válida é preciso considerar algumas restrições. A primeira delas é
garantir que a norma da solução ⃗f ∈ R n seja limitada unitária, ou seja, ⃗f T D ⃗f =1 . Em outras
palavras, o que importa é a direção do vetor não seu comprimento.

A segunda restrição visa eliminar a solução trivial, que é aquele vetor ⃗f ∈R n que mapeia todos
os vértices do grafo para o mesmo ponto na reta, fazendo com que ⃗f seja constante, ou seja,
queremos que a solução seja ortogonal ao vetor ⃗ 1 =[1,1,. .. ,1] . Sendo assim, o problema fica:

argmin ⃗f L ⃗f
T
sujeito a ⃗f T D ⃗f =1 e ⃗f T D ⃗1=0

f ∈R
n

Utilizando multiplicadores de Lagrange, podemos escrever a função Lagrangiana a ser minimizada


como:

J ( ⃗f , λ ,μ )=⃗f L ⃗f −λ( ⃗f D ⃗f −1)


T T

Para encontrar o mínimo dessa função podemos derivar e igualar a zero:


∂ J ( ⃗f , λ)=L ⃗f −λ ( D ⃗f −0)=L ⃗f −D λ f =0
∂ ⃗f

Assim, obtemos uma equação de autovalor e autovetor:

L ⃗f =λ D ⃗f

Voltando a definição do problema temos:

argmin ⃗f T L ⃗f =argmin ⃗f T λ D ⃗f =argmin λ ⃗f T D ⃗f =argmin λ



f ∈ Rn ⃗
f ∈ Rn ⃗f ∈ Rn ⃗f ∈R n

ou seja, a solução deve ser o autovetor associado ao menor autovalor não-nulo da matriz Laplaciana
normalizada (para evitar o mapeamento constante):

⃗f =⃗v com λ=⃗


μn −1
n−1

Isso significa que a solução ⃗f é o Fiedler vector e o mínimo valor obtido para J ( ⃗f ) é a
conectividade algébrica de G. Por essa razão dizemos que quanto menor for μ n−1 , melhor o
mapeamento obtido.

Note que a imersão Laplaciana á parecida com o PCA, mas ao invés de ser restrita a espaços
Euclidianos, permite que a redução de dimensionalidade seja não linear.

Um passo importante na aplicação prática dessa técnica na classificação binária de padrões consiste
em induzir um grafo G ponderado a partir das amostras da base de dados, de modo a gerar a matriz
de adjacências A.

Há basicamente 2 formas de se criar um grafo G a partir dos dados. É evidente que em ambos os
casos, cada amostra representará um vértice do grafo e se duas amostras estiverem ligadas em G, o
peso da aresta será a distância entre os respectivos vetores.

1. Grafo KNN:

Parâmetro de entrada K: número de vizinhos de cada vértice


Para cada amostra ⃗x i do conjunto
Computar a distância Euclidiana de ⃗x i a cada outro ⃗x j

d (⃗x i ,⃗x j)= √(x i (1)−x j (1))2 +( x i (2)−x j (2))2+...+( x i (n)−x j (n))2

Selecionar as K amostras mais próximas de ⃗x i


Criar em G as arestas entre ⃗x i e as K amostras selecionadas com peso igual a d (⃗x i ,⃗x j)

2. Grafo R-neighborhood:

Parâmetro de entrada R: raio que define região de influência de cada amostra


Para cada amostra ⃗x i do conjunto
Computar a distância Euclidiana de ⃗x i a cada outro ⃗x j

d (⃗x i ,⃗x j)= √( x i (1)−x j (1))2 +(x i (2)−x j (2))2+...+( x i (n)−x j (n))2
Se d (⃗x i ,⃗x j)≤R
Criar aresta entre ⃗x i e ⃗x j em G com peso igual a d (⃗x i ,⃗x j)

Algoritmo (imersão Laplaciana na reta)

1. Dado o conjunto de amostras {⃗y i ∈Rd } para i=1,2,. .., n induzir o grafo G (matriz A)

2. Computar a matriz Laplaciana L = D – A. Normalizar Laplaciana: L = D-1 L

3. Decomposição espectral de L (autovalores e autovetores): obter ⃗f =⃗v n−1

4. Particionar G com a regra:


se ⃗v n−1 (i)<0 → vértice v i recebe rótulo 0
se ⃗v n−1 (i)≥0 → vértice v i recebe rótulo 1

5. Repetir para cada subgrafo (partições) até que o número de clusters seja o desejado.

O processo descrito anteriormente pode ser generalizado para mais de uma dimensão. A pergunta é:
e se desejássemos encontrar um mapeamento dos vértices de G não para uma reta mas para um
plano, ou seja, R2. Nesse caso, devemos encontrar dois vetores ⃗f 1 e ⃗f 2 ortogonais. Essa ideia
pode ser generalizada para um número k de vetores, originando o método conhecido como
Multidimensional Laplacian Eigenmaps.

Multidimensional Laplacian Eigenmaps

Iremos assumir que no caso geral ⃗f j ∈ Rn , para j=1,2,. .. , k com k < d são as coordenadas
dos vértices em um espaço k dimensional, ou seja, cada ⃗f j representa o mapeamento dos
vértices a um eixo de um sistema coordenado. Seja F a matriz n x k em que cada coluna está
disposto um ⃗f j :

[ ]
| | ... |
| | ... |
F= ⃗f 1 ⃗f
2 ... ⃗f
n
| | ... |
| | ... | n×k

Isso significa que cada linha representa a coordenada de um vértice no espaço k dimensional. Seja

ϕ i a i-ésima linha de F (coordenada do vértice v i ). Podemos generalizar o critério J
definido anteriormente para:

J ( F)= ∑ w ij‖⃗
ϕ i −⃗
ϕ j‖
2

(i , j)∈ E

Assim ao se minimizar J ( F) estamos forçando que vértices próximos no grafo permaneçam


próximos no espaço k dimensional.

Sendo assim, pode-se mostrar que:

argmin J (F) = argmin


F n×k F n×k
∑ ⃗
ϕTi Lij ⃗
ϕ j=argmin Tr (F T L F ) sujeito a
Fn ×k
FT D F=I
(i , j)∈ E
A restrição força que os vetores ⃗f j ∈R n de F formem uma base ortonormal. Sendo assim, temos
um novo problema de otimização, dessa vez multivariado.

Definindo a função Lagrangiana, temos a matriz diagonal doa multiplicadores Λ :


T T
J ( F , Λ)=Tr ( F L F )−Λ (F D F−I )

Derivando e igualando a zero:

∂ J (F , Λ )=LF+ LT F−Λ D F=0


∂F

Como a matriz Laplaciana é simétrica temos:

LF=Λ D F

o que implica em um problema generalizado de autovalores e autovetores.

Substituindo no problema de otimização:

F n×k
T
Fn×k
T
Fn×k
T
argmin Tr ( F L F )=argmin Tr (F Λ D F)=argmin Tr ( Λ F D F)=argmin Tr (Λ)=argmin
F n×k Fn ×k
∑ λk
k

ou seja, para minimizar o critério definido, devemos escolher como vetores para formar a nova base
os k autovetores associados aos k menores autovalores não nulos da matriz Laplaciana e então
projetar os dados na nova base, realizando a imersão no espaço k-dimensional.

A solução é portanto dada por F a seguir:

[ ]
| | ... |
| | ... |
F= ⃗v n−1 ⃗v n−2 ... ⃗v n −k (matriz dos novos eixos coordenados)
| | ... |
| | ... | n×k

Sendo assim, os dados na nova representação são computados por:


−1/ 2 T
X k×n =Λ k×k F k×n

onde cada coluna da matriz X representa as coordenadas normalizadas de cada amostra no espaço k
dimensional gerado. A multiplicação pela matriz diagonal com o inverso dos autovalores Λ−1/
k×k
2

serve apenas para que os atributos fiquem todos na mesma escala.

Algoritmo: Laplacian Eigenmaps

1. Dado o conjunto de amostras {⃗y i ∈Rd } para i=1,2,. .., n induzir o grafo G (matriz A)
2. Computar a matriz Laplaciana L = D – A e normalizá-la: L = D-1 L.

3. Decomposição espectral de L: obter os k autovetores associados aos k menores autovalores não


nulos e montar matriz Fn ×k com autovetores nas colunas:
[ ]
| | ... |
| | ... |
F= ⃗v n−1 ⃗v n−2 ... ⃗v n −k
| | ... |
| | ... | n×k

−1/ 2 T −1/ 2
4. Opcional: computar X k×n =Λ k×k F k×n , onde Λ k×k é a matriz diagonal do inverso dos
autovalores

Variantes do algoritmo

Na literatura são reportadas algumas variações do algoritmo, sendo a mais conhecida a ponderação
das arestas do grafo com os seguintes pesos (entre passos 1 e 2):

{ }
2
‖⃗y i −⃗y j‖
w ij=exp − 2

onde σ é um parâmetro empírico que controla o decaimento exponencial. A justificativa para


essa ponderação vem da analogia que se faz da matriz Laplaciana como uma aproximação discreta
para o operador de Laplace-Beltrami em variedades Riemannianas e sua relação com a equação do
calor (heat flow).
Outras versões do algoritmo consideram diferentes formas de se calcular a matriz Laplaciana:

i) Matriz L tradicional (não normalizada)


ii) Matriz normalizada
a) L1=D−1 L
b) L2=D−1/ 2 L D−1/ 2

Veremos a seguir a relação de cada uma das matrizes Laplacianas com um tipo específico de corte
em grafos, o que auxilia no entendimento sobre quando usar uma ou outra matriz.

Interpretação geométrica

A matriz Laplaciana de um grafo é análoga ao operador Laplaciano em uma variedade. Essa seção
fornece uma justificativa do porque as autofunções desse operador possuem propriedades desejáveis
para imersão em R.
Considere uma variedade suave e diferenciável M definida em Rk . Como fizemos com grafos,
estamos buscando por um mapeamento da variedade M para a reta real de modo que pontos
próximos em M sejam mapeados próximos na reta. A ideia é que vizinhos em M devem ser vizinhos
na reta. Seja f : M → R esse mapeamento. O gradiente ∇ f é uma campo vetorial na variedade
pois associa a cada ponto de M um vetor tal que para um pequeno δ x (deslocamento
infinitesimal), pode-se mostrar que:

|f (x+ δ x )−f (x)|≈|⟨ ∇ f , δ x ⟩|

A intuição por trás dessa aproximação é que se o vetor deslocamento infinitesimal δ x é


ortogonal ao gradiente, ou seja, se o produto escalar dos dois é nulo, estamos numa curva de nível
da função, de modo que a função é constante e seus valores não se alteram. Assim, a variação em f
para um deslocamento infinitesimal em M é zero.
Aplicando a desigualdade de Cauchy-Schwarz, temos:

|f (x+ δ x)−f (x )|≈|⟨ ∇ f ,δ x ⟩|≤‖∇ f‖‖δ x‖

Sendo assim, pode-se notar que se a norma do gradiente ‖∇ f‖ é pequena, pontos próximos de x
serão mapeados para pontos próximos em Rk . Em outras palavras, uma forma de garantir
suavidade em f é buscar um mapeamento que, em média, melhor preserva localidade, ou seja:

argmin
f
∫‖∇ f‖2 com ‖f‖=1
M

O Laplaciano é um operador diferencial definido por:

([ ]) ( )
n
∂f ∂f ∂f ∂2 f ∂2 f ∂ 2 f ∂2 f
=−∑ 2 =−
2
L(f )=∇ f =−div (∇ f )=−div , , ... , + +...+
∂ x1 ∂ x2 ∂ xn i=1 ∂ xi ∂ x21 ∂ x 22 ∂ x 2n

onde div denota o operador divergente, que transforma um campo vetorial num campo escalar.
Pode-se mostrar que os operadores -div e ∇ são adjuntos, ou seja, para uma função f : M → R
e um campo vetorial X, vale:

∫ ⟨ X , ∇ f ⟩=−∫ div ( X) f
M M
isto é, pode-se trocar o gradiente de um argumento pelo negativo do divergente no outro argumento
ou vice-versa. Sendo assim:

∫‖∇ f‖2 =∫ ⟨ ∇ f , ∇ f ⟩=−∫ ⟨ div (∇ f ) , f ⟩=∫ L(f ) f (*)


M M M M

Note que L é positivo semidefinido e a função f que minimiza (*) tem que ser uma autofunção do
operador L.

Cortes em grafos e sua relação com a imersão Laplaciana

Nesse ponto, deseja-se buscar por uma justificativa do porque utilizar o método Spectral Clustering.
Veremos a seguir que existe uma forte ligação entre cortes mínimos e esse algoritmo.

Motivação: definir funções objetivo para medir qualidade das partições

Cortes em grafos são um poderoso ferramental para avaliar partições em conjuntos de dados.
Idealmente, buscam-se cortes que minimizem a soma dos pesos das arestas do corte. Em termos
matemáticos, podemos definir o seguinte critério intuitivo:
k
1
cut ( A1 , A 2 , ... , A k )= ∑ w( A i , Ai )
2 i=1

onde w (A , A)= ∑ wij (soma dos pesos das arestas que saem/entram em A)
(i , j)∈ E
i∈ A
j∈ A

Note que podemos expressar o valor do corte A1, A2, …, Ak alternativamente como:
k
cut ( A1 , A 2 ,... , A k )=∑ cut ( Ai , A i )
i=1

1
onde cut ( Ai , A i)= w( A i , Ai )
2

Ideia: obter o corte mínimo, aquele que rompe menos arestas (sinaliza boas partições no grafo)

Problema: heterogeneidade, isto é, tamanho das partições pode ser muito diferente. Por exemplo,
uma partição pode conter apenas 1 vértice a outra conter os demais n-1 vértices. É preciso balancear
o tamanho das partições encontrando um compromisso.

Medidas do tamanho de partições

Tipicamente, existem 2 medidas para a extensão de uma partição:

1. |Ai| : número de elementos na partição (tamanho)

2. vol( A i)= ∑ d ( v j ) : soma dos graus dos elementos na partição (volume)


j∈ Ai

Isso nos permite definir 2 cortes balanceados muito utilizados em problemas de particionamento:

a) Rcut: normalizado pelo tamanho

1
k
w ( Ai , A i) k cut ( Ai , A i)
RCut ( A 1 , A 2 , ... , A k )= ∑ |A | =∑ |A |
2 i =1 i i=1 i

b) Ncut: normalizado pelo volume

1
k
w( Ai , Ai ) k cut( A i , Ai )
NCut (A 1 , A 2 , ... , A k )= ∑ =∑
2 i=1 vol( Ai ) i=1 vol( A i)

Note que ambos as funções objetivo assumem valor pequeno se os clusters A i não são tão
pequenos.
k
1
Observe que a função ∑ é minimizada se todos os valores de |Ai| forem iguais. Por
i=1 |Ai|
exemplo, considere um problema com 3 classes em que n = 9. Suponha que o cluster 1 contenha
uma única amostra, o cluster 2 também contenha uma única amostra e o cluster 3 contenha as
demais 7 amostras. Nesse caso, teríamos 1+1+ 1/7=15 /7=2.142 . Agora, suponha o caso em
que os 3 clusters contenham 3 amostras cada. Nessa situação teríamos 1/3 + 1/3 + 1/3 = 1.

O objetivo em problemas de particionamento de grafos consiste em obter o melhor corte possível no


sentido de minimizar as funções objetivos. Porém, encontrar o corte que minimiza Rcut ou Ncut
mesmo para k = 2 (duas classes) é um problema NP-Hard, pois tipicamente teríamos que avaliar
todos os possíveis cortes. Sendo assim, veremos a seguir como aproximar o Rcut para o caso
binário, ou seja, quando se tem duas classes. Note que para k = 2 temos:

1
i) cut ( A , A )= [ w( A , A)+w ( A , A )]
2
ii) RCut ( A , A)=
2 [
|A|
+
|A|
=
|A| ]
1 w( A , A) w (A , A) cut( A , A) cut ( A , A )
+
|A|

iii) NCut (A , A )=
[
2 vol( A )
+
vol( A)
=
vol( A)
+
]
1 w( A , A) w( A , A) cut ( A , A) cut ( A , A)
vol( A)

O objetivo consiste em resolver o seguinte problema:

min RCut ( A , A)
A⊂V

Para isso iremos associar o Rcut com a matriz Laplaciana L. Seja ⃗f ∈ R n dado por:

{ √
|A|
, v ∈A
|A| i
f i=

|A|
√, v ∈A
|A| i

Sabemos que minimizar

⃗f T L ⃗f = 1 ∑ w ij ( f i−f j)2
2 (i , j)∈ E

é o objetivo da imersão Laplaciana. Note que existem 2 tipos de arestas (i, j) para as quais f i ≠f j
(observe que se ambos v i e v j pertencem a mesma partição, f i −f j=0 . Assim, as duas
possibilidades são

i) v i ∈A e v j∈ A
ii) v i ∈ A e v j∈ A

Dessa forma, substituindo os valores de f i podemos expressar a equação anterior como:

[ (√ √ ) ] [ ( √ √ )]
2 2
⃗f T L ⃗f = 1 ∑ w |A| |A| 1 |A| |A|
+ + ∑ w ij − −
2 (i, j )∈ E ij |A| |A| 2 (i , j)∈ E |A| |A|
i∈ A i∈ A
j∈A j∈ A

Expandindo os quadrados temos:

i∈ A
[( √ √
|A| |A| |A| |A| 2 (i , j)∈E |A| )]
⃗f T L ⃗f = 1 ∑ wij |A| +2 |A| |A| + |A| + 1 ∑ w ij |A|+ 2 |A| |A| + |A|
2 (i, j )∈ E |A| |A| |A|
i∈A
[( √ √ )]
j∈A j∈A

Simplificando a expressão anterior chega-se a:

[ (
2 (i, j )∈ E
i∈ A
|A| |A| )]
⃗f T L ⃗f = 1 ∑ wij |A| +|A| +2 + 1 ∑ wij |A| + |A| +2
2 (i , j )∈ E |A| |A|
i∈ A
[ ( )]
j∈A j∈ A
Retirando as constantes para fora do somatório:

(
⃗f T L ⃗f = |A| + |A| +2 1
|A| |A| 2 )
[( ∑
(i , j)∈E
i∈A
j∈ A
wij + ∑
(i , j)∈E
i∈A
j∈ A
w ij
)]
Reescrevendo a equação temos:

( )[
⃗f T L ⃗f = |A| +1+|A| +1 1 ( w( A , A)+w ( A , A ) )
|A| |A| 2 ]
A equação pode ser simplificada ainda mais:

(
⃗f T L ⃗f = |A|+|A|+ |A|+|A| cut (A , A)
|A| |A| )
Como |A|+|A|=|V| , temos:

(
⃗f T L ⃗f = |A|+|A|+ |A|+|A| cut (A , A)
|A| |A| )
Notando que a expressão ente parêntesis é a definição de Rcut, chega-se finalmente a:

⃗f T L ⃗f =|V|RCut ( A , A)

Algumas observações importantes devem ser feitas nesse ponto:

1. Note que o vetor ⃗f ∈ R n definido como anteriormente é ortogonal ao vetor ⃗


1

√ (√ )
n
|A| |A|
1 ⟩=∑ f i =|A|
⟨ ⃗f , ⃗ +|A| − =√|A||A|−√|A||A|=0
i=1 |A| |A|

2. Note que a norma do vetor ⃗f ∈R n é √n


n
|A| |A|
‖f ‖ = f f =∑ f i2=|A| +|A| =|V|=n
⃗ 2 ⃗T ⃗

i=1 |A| |A|

Portanto, o problema de minimizar o Rcut é equivalente a:

min ⃗f L ⃗f
T
sujeito a ⟨ ⃗f , ⃗
1 ⟩=0 e ‖⃗f ‖=√ n
⃗f

{ √
|A|
, v i∈ A
com f i = |A|

|A|

, v ∈A
|A| i
Note que infelizmente esse problema é NP-Hard, pois como o vetor solução tem n componentes,
sendo que cada componente pode assumir 1 de 2 valores (binário), temos um total de 2n
soluções candidatas. Certamente fazer uma busca exaustiva por esse espaço de soluções é
computacionalmente inviável uma vez que o número de soluções cresce exponencialmente
(situação análoga a percorrer todos os vértices de um hipercubo no Rn).

Solução viável: Relaxar o problema, permitindo que o vetor ⃗f ∈ R n tenha componentes f i


quaisquer, ou seja, f i ∈ R . Vimos que a solução nesse caso é dada pela imersão Laplaciana na
reta, ou seja, ⃗f deve ser o autovetor associado ao menor autovalor não nulo de L Após esse
passo, devemos quantizar os componentes de ⃗f , fazendo f i =0 se f i < 0 ou f i =1 se
f i ≥0 . Isso é justamente a descrição do algoritmo spectral clustering.

Conclusão: Imersão Laplaciana é uma boa aproximação para Rcut

Aproximação para Rcut com K arbitrário

Dada uma partição de V em k conjuntos A 1 , A 2, ... , Ak , é possível definir k vetores coluna


indicativos ⃗ T
h j=[h1 j , h2 j , ..., h nj ] como:

{
1
, v ∈Aj
hij = √|A j| i para i=1,2,. .., n e j=1,2,. .. , k (*)
0, v i ∉A j

Assim, definimos a matriz H ∈R n×k como a matriz que contém esses k vetores como suas
colunas. Note que ⟨ ⃗h j , ⃗hk ⟩=0 para j≠k e ⟨ ⃗h j , ⃗hk ⟩=1 para j=k , o que implica em
dizer que as colunas de H formam uma base ortonormal, ou seja, H T H=I .

Sabemos que:

1
h Tk L ⃗hk = ∑ w ij (hk (i)−hk ( j))2

2 (i, j )∈ E

Existem apenas 2 tipos de arestas para os quais a diferença entre parêntesis é não nula:
i) v i ∈A k e v j∈ A k
ii) v i ∈ A k e v j∈ A k
Assim, substituindo os valores de hk (i) e hk ( j) temos:

( ) ( )
2 2
1 1 1 1
h Tk L ⃗hk = ∑ w ij
⃗ −0 + ∑ wij 0−
2 (i , j )∈ E √|A k| 2 (i , j )∈ E √|A k|
i ∈ Ak i ∈ Ak
j∈ A k j∈ A k

Simplificando a expressão acima chega-se em:

1 1 1 1 1 1 cut ( Ak , A k )

h k L ⃗hk =
T

|A k| 2 (i , j)∈E
wij + ∑
|A k| 2 (i , j )∈ E
wij =
|A k| 2
[ w( A k , A k )+w ( A k , A k ) ]=
|A k|
i∈ A k i ∈ Ak
j ∈ Ak j∈ A k

Além disso, não é difícil verificar que:


h k L ⃗hk =( H L H)kk
T T

ou seja, ⃗ h k L ⃗hk é o k-ésimo elemento da diagonal da matriz


T T
H L H . Combinando as
expressões obtidas anteriormente, podemos definir Rcut como:
K K
Rcut ( A 1 , A 2 ,... , A K )=∑ ⃗hk L ⃗
h k =∑ ( H L H )kk =Tr ( H L H )
T T T

k=1 k=1

o que nos leva ao seguinte problema de otimização:


T T
min Tr (H L H) sujeito a H H=I com H definido conforme a equação (*)
A1 , A 2 ,... , Ak

Note que esse também é um problema NP-Hard e portanto computacionalmente inviável de ser
resolvido. Novamente, podemos relaxar o problema, permitindo que os coeficientes da matriz H
sejam números reais. Assim, o problema relaxado se torna:

min Tr ( H T L H ) sujeito a
n ×k
H T H=I
H ∈R

onde a matriz H é da formados

[ ]
| | ... |
| | ... |
⃗ ⃗
H= h1 h2 ... ⃗
hk
| | ... |
| | ... | n×k

A solução para esse problema é dada pela escolha dos K autovetores associados aos k menosres
autovalores não nulos de L, ou seja, devemos fazer a seguinte atribuição:

⃗h1=⃗v n−1

h 2=⃗v n−2
...

h k =⃗v n−k
Após a definição da matriz H, uma maneira que quantizá-la, ou seja tornar seus valores discretos, é
aplicar um algoritmo para clusterização como k-médias utilizando K sementes, por exemplo. Assim,
cada coluna de H, terá uma variável indicadora da pertinência ou não da amostra i ao cluster j.

Sendo assim, vimos que o algoritmo Spectral Clustering pode ser visto como a solução de um
problema de otimização relaxado: minimizar o Rcut.

Aproximação para Ncut com K = 2

Técnicas muito similares as utilizadas anteriormente para Rcut podem ser empregadas para derivar
o algoritmo Spectral Clustering como um método que surge da relaxação de outro problema: a
minimização do Ncut.

min Ncut ( A , A)
A⊂V

Para isso iremos associar o Ncut com a matriz Laplaciana normalizada. Seja ⃗f ∈ R n dado por:

{ √vol( A)
, v i∈ A
vol( A)
f i= (**)


vol( A)
vol( A)
, vi ∈ A

Sabendo que vol( A)+ vol( A)=vol(V ) , ao computar ⃗f T L ⃗f chega-se em:

⃗f T L ⃗f =vol(V )Ncut ( A , A ) (faça os cálculos baseado na derivação do Rcut e verifique isso!)

Seja D=diag(d (v 1 ) ,d (v 2) , ... , d( v n )) a matriz diagonal dos graus. Assim, como ⃗f era
1 no Rcut, segue que ⟨ D ⃗f , ⃗1 ⟩=0 . De maneira análoga, como ⃗f T ⃗f =1
ortogonal ao vetor ⃗
no Rcut, segue que ⃗f T D ⃗f =vol(V ) (soma dos graus).

Sendo assim, o problema de minimizar Ncut pode ser expresso como:

min ⃗f L ⃗f
T
sujeito a ⟨ D ⃗f , ⃗1 ⟩=0 e ⃗f T D ⃗f =vol(V ) com ⃗f definido conforme (**)
⃗f

Novamente, vemos que se trata de um problema NP-Hard. Relaxando o problema, permitimos que
⃗f ∈ R n (variáveis contínuas). Fazendo ⃗g=D1 /2 ⃗f temos que ⃗f =D −1 /2 ⃗
g . Substituindo as
variáveis no problema original temos:

min ⃗
gD
−1 /2 −1 /2
L D ⃗g sujeito a ⟨D 1/ 2 ⃗g , ⃗ T
1⟩=0 e ⃗g ⃗g=vol(V )
n
g ∈R

Solução: Imersão Laplaciana normalizada

O vetor ⃗g deve ser o autovetor associado ao menor autovalor não nulo da matriz Laplaciana
normalizada L2=D−1/ 2 L D−1/ 2 .

A generalização para k arbitrário é idêntica ao caso do Rcut. Utilizando o traço da matriz


Laplaciana normalizada. A solução para o caso geral, consiste em gerar a matriz H tal que cada
coluna é um autovetor de L2=D−1/ 2 L D−1/ 2 . Devemos selecionar os k autovetores associados aos
k menores autovalores não nulos de L2.

Resumo: Resolver min Rcut e min Ncut são problemas NP-Hard. Utilizando Spectral
Clustering, estamos resolvendo uma versão aproximada desses problemas que são polinomiais. Se
empregamos a matriz L, temos uma boa aproximação para Rcut, ao passo que se empregamos a
matriz Laplaciana normalizada L2=D−1/ 2 L D−1/ 2 , temos uma boa aproximação para Ncut.

Locality Preserving Projections (LPP)

Ideia: aproximação linear para Laplacian Eigenmaps

Busca-se por um mapeamento suave que preserve vizinhanças, ou seja, proximidade no grafo deve
implicar em proximidade na reta.

Sabe-se que um critério para ótimo para esse cenário é definido pela imersão Laplaciana, onde
busca-se pelo mapeamento ⃗y=[ y1 , y 2 ,... , y n ] que minimize:

1
T
⃗y L ⃗y= ∑
2 (i , j)∈ E
wij ( y i− y j)
2

No algoritmo LPP, assume-se que a relação entre vetores ⃗x i∈ R D no espaço de entrada e


T T
⃗y i ∈R k no espaço de saída é linear, ou seja, ⃗y i =a⃗ ⃗x i . A matriz X dos dados de entrada é da
forma:

[ ]
| | ... |
| | ... |
X = ⃗x 1 ⃗x 2 ... ⃗x n
| | ... |
| | ... | D×n

onde n denota o número de amostras e cada coluna da matriz denota uma amostra ⃗x i∈ R D .
Dessa forma, o critério anterior pode ser reescrito como:

1
2 (i ∑
T T T 2
⃗y L ⃗y = wij (⃗
a ⃗xi −⃗
a ⃗x j)
, j)∈ E

Expandindo o termo quadrático temos:

1
T
⃗y L ⃗y = ∑ w [⃗aT ⃗x i ⃗x Ti ⃗a−2(⃗aT ⃗x i ⃗xTj ⃗a )+⃗a T ⃗x j ⃗x Tj ⃗a ]
2 (i , j) ij

Notando que o primeiro e o terceiro termos são idênticos, podemos agrupá-los:

1 1
T
⃗y L ⃗y = ∑ w ( 2⃗aT ⃗x i ⃗x Ti ⃗a )− 2 ∑ w ij(2⃗aT ⃗x i ⃗x Tj ⃗a )
2 (i , j) ij (i , j)

Como sabemos que d ( vi )=∑ wij , o primeiro termo pode ser simplificado:
j

⃗y L ⃗y =∑ ⃗ ⃗ −∑ ⃗aT ⃗x i wij ⃗x Tj ⃗a
T T T
a ⃗x i d (v i) ⃗x i a
i (i , j)

Definindo a matriz diagonal dos graus como D=diag(d (v 1 ), d (v 2),... , d (v n)) :

⃗y L ⃗y =∑ ⃗
a ⃗x i Dii ⃗x i ⃗a−∑ ⃗
T T T T T
a ⃗xi w ij ⃗x j ⃗
a
i (i , j )

Usando a notação de produto matriz vetor, podemos escrever:


T T T T T
⃗y L ⃗y =⃗
a XDX a⃗ −⃗
a X W X ⃗a

onde W é a matriz de adjacências ponderada. Colocando em evidência os termos em comum,


chegamos em:
T T T T T
⃗y L ⃗y =⃗
a X ( D−W ) X a⃗ =⃗
a X LX ⃗a

onde L denota a matriz Laplaciana.

Portanto, o problema de otimização passa a ser escrito como:


T T T T
argmin ⃗a X L X ⃗a sujeito a a⃗ X D X ⃗a =1
a

em que a restrição é a forma generalizada de expressar Y T Y =I . Aplicando multiplicadores de


Lagrange, temos a função Lagrangiana dada por:
T T T
L( ⃗
a , λ )=⃗
a X LX a⃗ −λ ( ⃗
a XDX⃗
a −1)

Derivando em relação ao vetor ⃗


a e igualando o resultado a zero:

∂ L(⃗ T
a , λ )=X L X ⃗
T
a − λ ( X D X ⃗a )=0
∂⃗
a
o que nos leva ao problema de autovalores e autovetores generalizado:
T T
X L X a⃗ =λ X D X ⃗a

ou ainda
T −1 T
(X D X ) (X L X ) ⃗
a =λ ⃗a

Assim, a solução para esse tipo de problema é bastante conhecida. Temos que o vetor a
⃗ deve ser
o autovetor associado ao menor autovalor de Z =( X D X T )−1 ( X L X T ) .

Se o problema for definido no espaço Rk , a generalização é natural. Nesse cenário, A é uma


matriz em que cada coluna é um autovetor de Z. A regra generaliza-se para: deve-se escolher os k
autovetores associados aos k menores autovalores de Z. O algoritmo a seguir ilustra os passos do
método LPP.

Kernel LPP

Como o método LPP é uma aproximação linear do Laplacian Eigenmaps, é possível torná-lo não
linear com a utilização de kernels. Considere um mapeamento não linear ϕ : R m →R M para um
espaço intermediário de maior dimensão, e seja ϕ ( X ) a matriz dos dados neste espaço R M, ou
seja, ϕ ( X )=[ ϕ ( x⃗1 ) , ϕ ( x⃗2 ),... , ϕ ( x⃗n)] . Então, o problema de autovalores e autovetores do método
LPP pode ser expresso por:
ϕ ( X ) L ϕ ( X)T ⃗v = λ ϕ ( X ) D ϕ ( X )T ⃗v (@)

o que nos leva ao seguinte problema de autovetores generalizado:


T −1 T
( ϕ (X ) D ϕ ( X ) ) ϕ ( X) L ϕ ( X ) ⃗v =λ ⃗v (*)

Para generalizar o algoritmo LPP para o caso não linear, o problema deve ser formulado em termos
de produtos internos, uma vez que pelo kernel trick temos:

x i , x⃗j )= ϕ ( x⃗i )T ϕ ( x⃗j )


K (⃗

Conforme visto anteriormente no Kernel PCA, os autovetores da equação (*) podem ser expressos
como combinações lineares de ϕ ( x⃗1), ϕ ( x⃗2) ,... , ϕ ( x⃗n) , ou seja:

n
⃗v =∑ α i ϕ ( x⃗i )=ϕ ( X) α

i=1

T n
onde α
⃗ =[ α 1 , α 2 , ... , α n ] ∈ R . Assim, a equação (@) pode ser expressa por:

ϕ ( X ) L ϕ ( X)T ϕ ( X) α
⃗ =λ ϕ (X )D ϕ ( X )T ϕ ( X) α

Multiplicando ambis os lados por ϕ ( X )T , temos:

ϕ ( X )T ϕ ( X ) L ϕ ( X)T ϕ ( X ) α T T
⃗ = λ ϕ ( X ) ϕ ( X ) D ϕ ( X) ϕ ( X )⃗
α

o que, após a utilização do kernel trick fica:

K LK α
⃗ =λ K D K ⃗
α

Portanto, temos o seguinte problema generalizado:

( K D K )−1 K L K α
⃗ =λ α

de modo que devemos escolher como α⃗1 , α⃗2 , ..., α⃗d os d autovetores associados aos d menores
autovalores da matriz (KDK )−1 ( KLK ) . Para uma nova amostra que não pertence ao conjunto de
dados original, as projeções nos autovetores v⃗k , k = 1, 2, …, d são dadas por:

n n n
v⃗Tk ϕ (⃗x )=∑ αk (i) ϕ ( x⃗i )T ϕ (⃗x )=∑ α k ( i) ϕ (⃗x )T ϕ ( x⃗i )=∑ α k (i) K (⃗x , x⃗i )
i=1 i=1 i=1

onde α k (i) é a i-ésima componente do vetor α⃗k .


Bibliografia
1) R. O. Duda, P. E. Hart, and D. G. Stork, Pattern Classification, 2nd ed. (Wiley-Interscience,
2000) p. 688 pages.
2) S. Theodoridis and K. Koutroumbas, Pattern Recognition, 4th ed. (Academic Press, 2008) p. 984
pages.
3) A. R. Webb and K. D. Copsey, Statistical Pattern Recognition, 3rd ed. (Wiley, 2011) p. 666
pages.
4) K. Fukunaga, Introduction to Statistical Pattern Recognition (Academic Press, 1990).
5) J. A. Lee and M. Verleysen, Nonlinear Dimensionality Reduction (Springer, 2007).
6) X. Huo, X. Ni, and A. K. Smith, “A survey of manifold-based learning methods,” in Recent
Advances in Data Mining of Enterprise Data: Algorithms and Applications, Series on Computers
and Operations Research, Vol. 6, edited by T. W. Liao and E. Triantaphyllou (World Scientific,
2008) pp. 691–745.
7) L. Cayton, “Algorithms for Manifold Learning,” Tech. Rep. (University of California San Diego
(UCSD), 2005).
8) T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning, 2nd ed. (Springer,
2009).
9) T. Y. Young and T. W. Calvert, Classification, Estimation and Pattern Recognition (Elsevier,
1974).
10) D. D. Lee and H. S. Seung, “Learning the parts of objects by non-negative matrix
factorization,” Nature 401, 788–791 (1999).
11) B. Schlkopf, A. Smola, and K. R. Mller, “Kernel principal component analysis,” in Advances in
Kernel Methods Support Vector Learning (MIT Press, 1999) pp. 327–352.
12) T. F. Cox and M. A. A. Cox, Multidimensional Scaling, Monographs on Statistics and Applied
Probability, Vol. 88 (Chapman & Hall, 2001) p. 295 p.
13) J. B. Tenenbaum, V. de Silva, and J. C. Langford, “A global geometric framework for nonlinear
dimensionality reduction,” Science 290, 2319–2323 (2000).
14) U. von Luxburg, “A tutorial on spectral clustering,” Statistics and Computing 17, 395–416
(2007).
15) T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms, 3rd ed.
(MIT Press, 2009) p. 1312 p.
16) S. Roweis and L. Saul, “Nonlinear dimensionality reduction by locally linear embedding,”
Science 290, 2323–2326 (2000).
17) M. Belkin and P. Niyogi, “Laplacian eigenmaps for dimensionality reduction and data
representation,” Neural Computation 15, 1373–1396 (2003).
18) X. He and P. Niyogi, “Locality preserving projections,” in Advances in Neural Information
Processing Systems 16, edited by S. Thrun, L. K. Saul, and B. Schölkopf (MIT Press, 2004) pp.
153–160.
19) Kleinberg, J. and Tardos, E. Algorithmic Design, Addison Wesley, 2005.
20) Papa, J. P. and Falcão, A. X. A Learning Algorithm for the Optimum-Path Forest Classifier,
International Workshop on Graph-Based Representations in Pattern Recognition (GbRPR), 2009,
pp. 195-204.
21) Haykin, S. Neural Networks and Learning Machines, Prentice Hall, 2008.
22) Lorena, A. C. and Carvalho, A. C. P. L. F. Uma Introdução às Support Vector Machines, Revista
de Informática Teórica e Aplicada (RITA), vol. 14, n. 2, 2007.
23) Ng, Andrew. Machine Learning, Coursera (Stanford University):
https://pt.coursera.org/learn/machine-learning
24) Notas de aula do curso de Reconhecimento de Padrões do Prof. Nelson D. A. Mascarenhas no
PPGCC da UFSCar – 2005.
Sobre o autor
Alexandre L. M. Levada é bacharel em Ciências da Computação pela Universidade Estadual
Paulista “Júlio de Mesquita Filho” (UNESP), mestre em Ciências da Computação pela
Universidade Federal de São Carlos (UFSCar) e doutor em Física Computacional pela Universidade
de São Paulo (USP). Atualmente é professor adjunto no Departamento de Computação da
Universidade Federal de São Carlos e seus interesses em pesquisa são: filtragem de ruído em
imagens e aprendizado de métricas via redução de dimensionalidade para problemas de
classificação de padrões.

“Antes de pensar em desistir, lembre-se: a última parte de uma árvore a crescer são os frutos.”
(Anônimo)

View publication stats

Você também pode gostar