• Nenhum resultado encontrado

aula 16 - Principal Component Analysis

N/A
N/A
Protected

Academic year: 2021

Share "aula 16 - Principal Component Analysis"

Copied!
11
0
0

Texto

(1)

Redução de Dimensionalidade

A aplicação de métodos de aprendizagem de máquina geralmente se depara com problemas de múltiplas variáveis, o que corresponde a um problema de múltiplas dimensões. Assim, é útil, e muitas vezes necessário, reduzir o número de dimensões do problema, para acelerar o processamento, sem comprometer o resultado.

Um exemplo básico de redução de dimensionalidade é a projeção de dados bi-dimensionais em uma única dimensão. Em um problema de duas variáveis (2D), cada amostra necessita de duas informações para serem descritas, as duas coordenadas. Para reduzirmos para uma única dimensão, podemos fazer a projeção das amostras em um único eixo.

Na figura acima, as amostras bi-dimensionais são projetadas sobre um eixo (em verde na figura abaixo). Assim, essas amostras podem, agora, serem representadas somente nesse eixo, configurando uma variável unidimensional.

Repare que essa projeção é diferente da regressão linear, pois a projeção das amostras sobre o eixo escolhido é perpendicular a ele, e não na direção de uma das dimensões. O mesmo conceito pode ser extendido para a redução de amostras em três dimensões para duas, projetando cada amostra sobre um plano inclinado.

(2)

A questão é escolher a inclinação desse eixo (ou plano, ou hiperplano) de forma a melhor representar o conjunto original de amostras. Esse cálculo, que pode ser feito em dados de quaisquer dimensões, é realizado usando a Álgebra Linear.

Matriz de Covariância

Quando um conjunto de dados é unidimensional, o conjunto de amostras pode ser expressa pela sua distribuição estatística.

Essa distribuição, em geral, é descrita pela sua média, que expressa a tendência das amostras, e a variância, que representa a dispersão em torno da média. Quando as amostras possuem mais de uma dimensão, são necessárias mais informações para representação da distribuição estatística.

Nesse caso, além da variância para cada dimensão, são necessárias as co-variâncias entre elas. Assim, tem-se uma matriz quadrada simétrica de covariâncias, com dimensão igual ao número de variáveis do problema. A diagonal principal dessa matriz representa a variância (individual) de cada variável.

(3)

CX=1 n

i =1

n

(Xi− ¯X )(Xi− ¯X )T

Para distribuições de média zero (distribuições normalizadas), temos:

CX=XX

T

n

A partir da análise da matriz de covariância, pode-se obter informações importantes da distribuição de cada variável, e da relação entre elas. Por exemplo, valores altos dos elementos fora da diagonal principal (covariâncias) reflete uma alta correlação entre elas, e portanto, uma redundância na informação. Considere, por exemplo, a figura abaixo:

Temos a distribuição de três populações bi-dimensionais arbitrárias. A figura à esquerda mostra uma dispersão grande em ambas dimensões, e por isso não é possível estimar o valor uma variável baseado no valor da outra. A figura à direita, entretanto, mostra uma alta correlação entre as duas dimensões, para toda a população, representando uma redundância de informação.

Nesse caso, uma única dimensão seria o suficiente para descrever tal população. Pela distribuição ilustrada, a dimensão que representa melhor a distribuição é aquela com maior variância.

Mudança de Base

As distribuições ilustradas na figura anterior, estão distribuídas num domínio bidimensional, onde as dimensões são ortogonais. Para evitar a redundância (como na figura à direita), podemos projetar as amostras sobre a reta que corta a distribuição das amostras. Tal projeção corresponde a uma rotação de eixos, passando das direções (ortogonais) r1 e r2, para as direções u1 e u2 (também

(4)

De forma genérica, podemos representar a rotação de eixos ortogonais de forma matricial. Por exemplo, considere Xm x n uma matriz de dados, com m amostras n-dimensionais. Podemos

transformar a matrix X na forma:

PX = Y

P é a matriz que transforma X em Y, ou seja, geometricamente, é a matriz que rotaciona a matriz X. Para a matriz Y ser equivalente a X (mesma dimensão), a matriz P deve ter dimensões n x n. Assim, a matriz Y pode ser escrita como:

Y =

[

p1x(1)p1x(m) ⋮ ⋱ ⋱ pnx(1)pnx(m)

]

onde pi é a i-ésima coluna (um vetor) de P e x(i) é a i-ésima amostra (também um vetor) de X. Portanto, a i-ésima amostra de Y, é um vetor cujos elementos são o produto interno da i-ésima amostra de X com a linha correspondente de P:

yi=

[

p1x (i) p2x (i)pnx (i )

]

Em outras palavras, o j-ésimo elemento de Y, é a projeção de x(i) sobre a j-ésima linha de P. Assim, a matriz P é a nova base ortogonal para representar as amostras (linhas) da matriz X.

A questão que surge é a escolha de P. A partir da análise do conceito da matriz de covariância feito anteriormente, (1) a matriz Y ideal é aquela a qual sua matriz de covariância CY é diagonal, ou seja, os elementos fora da diagonal principal são nulos, ou seja, as variáveis em Y são não-correlatas. (2) Cada dimensão sucessiva de Y deve ser ordenada de acordo com sua variância.

Em resumo, supondo um caso genérico de n variáveis (dimensões), a escolha de P pode seguir os seguintes passos:

(5)

1- Selecionar a direção normalizada no espaço n-dimensional onde a variância de X é maximizada. Salvar essa direção como p1;

2- Achar outra direção, ortogonal à p1, a qual a variância de X é maximizada. Salvar essa direção como p2;

3- Continuar esse procedimento até obter n direções.

O conjunto resultante de direções p ordenadas decrescentemente é chamado de componentes principais (principal components). É importante frizar que os vetores-base (componentes principais) são ordenadas de acordo com a variância das projeções de X sobre seus eixos.

Autovetores

Conforme descrito acima, devemos achar uma matriz ortonormal P tal que Y = PX, e a matriz de covariância CY = (1/n)YYT é uma matriz diagonal. Utilizando as propriedades da Álgebra Linear:

CY=1 nY Y T CY= 1 n(PX)(PX) T CY= 1 nPX X T PT CY=P ( 1 nX X T )PT CY=P CXP T

Sabemos também que, se uma matriz A é simétrica, e E é a matriz formada pelos seus autovetores, teremos A = EDET, onde D é uma matriz diagonal. Dessa forma, se escolhermos a matriz P onde

cada uma de suas colunas é um autovetor de CX = (1/n)XXT, teremos que a matriz CY será diagonal, ou seja, suas dimensões serão não-correlatas.

Em outras palavras, as componentes principais de X são os autovetores de CX = (1/n)XXT, e o i-ésimo elemento de CY, será a variância da projeção de X em pi. Dessa forma, o algoritmo de PCA consiste em normalizar as amostras X (subtraindo suas médias), e calcular os autovetores de CX.

(6)

Decomposição em Valor Singular (Singular Value Decomposition)

Esse método algébrico fornece uma solução mais abrangente, e mais genérica, para o cálculo dos autovetores e autovalores de uma matriz. Esse método é muito usado pois os algoritmos numéricos para seus cálculos geralmente mais estáveis.

Considere uma matriz qualquer X de dimensões m x n, logo, XTX é uma matriz quadrada, simétrica

de dimensões n x n. Podemos definir:

- o conjunto de vetores de dimensão n x 1 { ^v1, ^v2,⋯, ^vr} que são autovetores de XTX com os

respectivos autovalores {λ1, λ2,⋯, λr} , com r < n;

- σi

λi um número real positivo, definido como valor singular;

- { ^u1, ^u2,⋯, ^ur} o conjunto de vetores de dimensão m x 1 definidos por u^i

1

σiX ^vi

- u^i⋅ ^uj=

{

1 i= j

0 i≠ j

- ‖X ^vi‖=σi

Logo, temos X ^viiu^i . Essa equação mostra que X multiplicado por um autovetor de XTX,

resulta em um escalar multiplicado por outro vetor. O conjunto de autovetores { ^v1, ^v2,⋯, ^vr} e o conjunto de vetores { ^u1, ^u2,⋯, ^ur} são ambos bases ortonormais no espaço r-dimensional.

Generalizando essa análise em uma forma matricial, podemos definir a matriz diagonal Σ, cuja diagonal principal contém os autovalores ordenados de forma decrescente:

Σ=

[

σ1 0 ⋯ 0 0 ⋱ ⋮ σr ⋮ 0 ⋱ 0 ⋯ 0

]

m x n

Repare que a matriz foi redimensionada, adicionando quantos zeros forem necessários para igualar o seu número de linhas com a dimensão dos vetores u, e o seu número de colunas com a dimensão dos vetores v. Assim, as matrizes U e V são, respectivamente, formadas por { ^u1, ^u2,⋯, ^um} e

(7)

A partir dessas definições, é fácil provar que:

X=U ΣVT Podemos manipular a equação acima, na forma:

UTX=ΣVT

UTX=Z onde Z = ΣVT. Note que os vetores coluna { ^u

1, ^u2,⋯, ^um} são linhas da matriz UT., por isso ela é chamada espaço coluna de X, ou vetores singulares a esquerda. Comparando com a equação PX = Y, vista anteriormente, a matriz realiza o mesmo papel de { ^p1, ^p2,⋯, ^pn} , ou seja, as colunas da matriz U são as componentes principais de X. Em outras palavras, ao decompor a matriz X em valores singulares, as colunas da matriz U serão os autovetores de X.

A partir da análise das componentes principais feita anteriormente, podemos assumir U como uma matriz de mudança de base, ou rotação de eixo, e Z será a projeção das amostras de X sobre seus eixos ortogonais.

Por simetria, os vetores singulares a direita, ou espaço linha de X, pode ser obtido:

X=U ΣVT XV =U Σ (XV )T=(U Σ)T VTXT=UTΣ VTXT=Z Onde Z = VTΣ.

Em resumo, o SVD é uma forma mais abrangente de calcular os autovetores de uma matriz, e numericamente mais estável. Assim, podemos achar as componentes principais fazendo o SVD na matriz de covariância da matriz de dados X.

(8)

Principal Component Analysis

Assumindo que a matriz de dados possui dimensões m x n, onde m é o número de amostras e n é o número de variáveis (dimensões), fazemos os seguintes passos:

- Normalizar as amostras para média zero;

- Calcular a matriz de covariância de X (CX = (1/m)XTX); - Fazer a decomposição em valores singulares da matriz CX; - Analisar a matriz U com as componentes principais.

Como a matriz de CX é quadrada e simétrica, de dimensões n x n, a matriz U será, também, n x n, assim, serão obtidos os n autovetores, ordenados de forma decrescente com relação aos seus autovalores, ou seja, as n componentes principais.

O propósito inicial do PCA é a redução de dimensionalidade, portanto, somente uma fração das componentes principais serão usadas. Reduzindo o problema de n para k dimensões (k < n), serão usadas somente k vetores coluna de U. Como os vetores coluna são ordendados, selecionamos os primeiros k vetores.

U=

[

u^1 u^2⋯ ^uk⋯ ^un

]

Ureduced=

[

u^1 u^2⋯ ^uk

]

Onde a matriz Ureduced tem dimensões n x k. Para projetar uma amostra x(i) sobre as componentes

principais de Ureduced, basta aplicar a transformação mostrada anteriormente:

z(i)=UreducedT x(i )

Repare que o vetor z(i) terá dimensão k x 1. O espaço k-dimensional é uma representação algébrica

do espaço n-dimensional do problema, por isso, cada dimensão k pode não ter sentido, ou representação prática, no problema de n variáveis. Uma vez feita a projeção das amostras sobre as componentes principais, é preciso obter a representação dessas projeções no espaço n-dimensional. Na figura abaixo, a esquerda, as amostras de X estão representadas no espaço bi-dimensional, e se deseja projetar essas amostras sobre a componente principal (verde). A representação dessas amostras no espaço unidimensional é mostrado na figura a direita.

(9)

Apesar da redução do número de dimensões do problema, as amostras em z1 não tem sentido físico (ou prático). Para retornar essas amostras para o espaço bi-dimensional, basta aplicar a última equação no sentido oposto:

x(i)appr

=Ureducedz(i)

Onde xappr(i) é a representação aproximada da amostra z(i) no espaço bi-dimensional.

Escolha do número de dimensões (k)

Ao reduzir a dimensionalidade, é preciso definir quantas componentes principais k serão usadas. Uma forma quantitativa é definir o erro de representação dessa redução, na forma:

1 m

i=1 m ‖x(i)−x appr (i ) ‖2 1 m

i=1 m ‖x(i)‖2 ⩽ϵ

(10)

O termo no numerador é o erro quadrático médio da projeção, e o denominador é a variância total dos dados. O valor de k deve ser o menor valor cuja a expressão acima seja satisfeita. O valor de ε representa o quanto da variância dos dados será retida.

Por exemplo, se ε for 0.01, significa que 99% da variância total dos dados será retida, ou seja, as principais informações sobre a distribuição estatística dos dados serão mantidas. Esse valor de ε pode variar, mas é usual utilizar valores menores ou iguais a 0.1.

Para determinar o valor de k, portanto, deve-se calcular as componentes principais para um valor determinado, calcular o erro acima, e verificar se atende ao valor de ε estipulado. Esse processo deve ser repetido sucessivamente para diferentes valores de k, escolhendo o menor deles que atende à expressão acima.

Esse processo tem alto custo computacional. Entretanto, é possível calcular o valor do erro algebricamente. Se as componentes principais forem calculadas utilizando SVD, as matrizes U, V e Σ serão obtidas. Os valores singulares σi, presentes na diagonal principal de Σ, podem ser utilizadas.

É possível provar que:

1 m

i=1 mx(i) −xappr(i ) ‖2 1 m

i=1 m ‖x(i)‖2 =1−

i=1 k σi

i=1 n σi

Onde k é o número de dimensões para a projeção das amostras. Assim, se fixarmos ε = 0.01, basta achar o valor de k, utilizando a matriz Σ obtida por SVD e achar o menor valor que satisfaça:

i=1 k σi

i=1 n σi ⩾0.99

Em Matlab/Octave, esse cálculo é bastante simples, pois várias funções já estão disponíveis. Por exemplo, já existe uma função pronta para o cálculo da SVD:

(11)

Essa função faz a decomposição da matriz A, retornando as componentes principais a esquerda (U), a direita (V) e a matriz de valores singulares (S). Portanto, o algoritmo PCA é facilmente implementado.

Uma das principais vantagens do PCA, é o fato desse algoritmo ser não-paramétrico, ou seja, aplicá-lo sobre um conjunto definido de dados retorna sempre o mesmo resultado. Entretanto, essa vantagem pode ser uma fraqueza. Por exemplo em dados cuja distribuição em mais de uma dimensão não seja ortogonal, como na figura B abaixo, ou quando a relação entre as dimensões não seja linear, como na figura A.

Nesses casos, as componentes principais não representarão as principais características estatísticas das amostras. Contudo, é possível “transformar” as amostras em A em uma relação linear, se aplicarmos uma função trigonométrica às amostras, e usar o valor dessas funções no lugar de seus valores originais. Ou aplicar uma função linear nas amostras em B, e transformar as distribuições em componentes ortogonais.

Referências

Documentos relacionados

1. Suponha que L seja LLC. Nenhuma das duas ´e inerentemente amb´ıgua.. Escreva MTs n˜ ao determin´ısticas de duas fitas que reconhe¸cam as linguagens:.. Como as LREs s˜ ao

SME5941 - Tópicos Matemáticos em Análise de Dados I.. Aula 1: Principal Component Analysis

Este tipo de variável é denominado variável binária ou lógica, e as funções algébricas definidas para as variáveis binárias são conhecidas como álgebra

“Deus não tende para nada, nem Nele, nem fora Dele, pois Ele é todo bem-aventurado; Ele não causa nada, pois Ele é tudo” (77a); “Esta ideia da

Note-se que esta taxa de crescimento pode em geral depender n˜ ao s´ o do instante em quest˜ ao como tamb´ em da pr´ opria dimens˜ ao da popula¸ c˜ ao.. Se a popula¸ c˜ ao est´

Ficam as partes cientes que o prazo para quaisquer medidas processuais contra atos de expropriação, como embargos ou recursos, começará a fluir dez dias após a realização

conectar diversos e díspares campos de saber – incluindo direitos internacionais da criança, direito de família, estudos culturais, pedagógicos e literários – que

É a palavra que modifica o sentido do verbo, do adjetivo ou outro advérbio, e exprime circunstâncias de lugar, tempo, modo, afirmação, negação, intensidade e