A otimização do PCA é convexa?


12

A função objetivo da Análise de Componentes Principais (PCA) é minimizar o erro de reconstrução na norma L2 (consulte a seção 2.12 aqui . Outra visão é tentar maximizar a variação na projeção. Também temos um excelente post aqui: Qual é a função objetivo do PCA ? ).

Minha pergunta é que a otimização do PCA é convexa? (Encontrei algumas discussões aqui , mas gostaria que alguém pudesse fornecer uma boa prova aqui no CV).


3
Não. Você está maximizando uma função convexa (com restrições).
user603

5
Eu acho que você precisa ser específico sobre o que você entende por "otimização de PCA". Uma formulação padrão é maximizar xAx sujeito a xx=1 . O problema é que a convexidade nem faz sentido: o domínio xx=1 é uma esfera, não um espaço euclidiano.
whuber

1
@whuber obrigado pelo seu comentário, talvez não seja possível esclarecer a questão devido ao conhecimento limitado. Posso esperar por algumas respostas que possam me ajudar a esclarecer a pergunta ao mesmo tempo.
Haitao Du

3
Gostaria de referir qualquer definição de "convexa" com a qual você esteja familiarizado. Todos eles não envolvem um conceito de pontos no domínio de uma função "entre" outros pontos? Vale lembrar, porque você deve considerar a geometria do domínio de uma função, bem como quaisquer propriedades algébricas ou analíticas dos valores da função. Sob essa luz, ocorre-me que a formulação maximizadora de variância pode ser ligeiramente modificada para tornar o domínio convexo: basta exigir xx1 vez de xx=1 . A solução é a mesma - e a resposta se torna bastante clara.
whuber

Respostas:


17

Não, as formulações usuais de PCA não são problemas convexos. Mas eles podem ser transformados em um problema de otimização convexa.

O insight e a diversão disso é acompanhar e visualizar a sequência de transformações, em vez de apenas obter a resposta: está na jornada, não no destino. Os principais passos nessa jornada são

  1. Obtenha uma expressão simples para a função objetivo.

  2. Amplie seu domínio, que não é convexo, em um que seja.

  3. Modifique o objetivo, que não é convexo, para aquele que é, de uma maneira que obviamente não altera os pontos nos quais atinge seus valores ideais.

Se você vigiar de perto, poderá ver os multiplicadores SVD e Lagrange à espreita - mas eles são apenas uma exibição lateral, para interesse cênico, e não vou comentar mais sobre eles.


A formulação padrão de maximização de variância do PCA (ou pelo menos sua etapa principal) é

(*)Maximize f(x)= xAx  subject to  xx=1

onde o matriz A é um simétrica, matriz positiva-semidefinido construída a partir dos dados (geralmente a sua soma dos quadrados e produtos de matriz, a sua matriz de covariâncias, ou a sua matriz de correlação).n×nA

(Equivalentemente, podemos tentar maximizar o objetivo irrestrito . Essa expressão não é apenas mais desagradável - ela não é mais uma função quadrática - mas representar graficamente casos especiais mostrará rapidamente que não é uma função convexa Geralmente, observa-se que essa função é invariante sob os redimensionamentos x λ x e depois a reduz à formulação restrita ( ) .)xAx/xxxλx()

Qualquer problema de otimização pode ser formulado abstratamente como

Encontre pelo menos um que torne a função f : XR a maior possível.xXf:XR

Lembre-se de que um problema de otimização é convexo quando possui duas propriedades separadas:

  1. The domain XRn is convex. This can be formulated in many ways. One is that whenever xX and yX and 0λ1, λx+(1λ)yX also. Geometrically: whenever two endpoints of a line segment lie in X, the entire segment lies in X.

  2. A função é convexa. f Isso também pode ser formulado de várias maneiras. Uma é que sempre que e y X e 0 λ 1 , f ( λ x + ( 1 - λ ) y ) λ f ( x ) + ( 1 - λ ) f ( y ) . (Precisávamos de XxXyX0λ1

    f(λx+(1λ)y)λf(x)+(1λ)f(y).
    X sejam convexos em ordem para esta condição de fazer qualquer sentido) Geometricamente:. sempre é qualquer segmento de linha emX, o gráfico def(conforme restrito a esse segmento) fica acima ou no segmento de conexão(x,f(x))e(y,f(y))emRn+1.xy¯Xf(x,f(x))(y,f(y))Rn+1

    O arquétipo de uma função convexa é localmente em toda a parte parabólica com coeficiente líder não-positiva: em qualquer segmento de linha que pode ser expressa sob a forma com um 0.yay2+by+ca0.

Uma dificuldade com é que X é a esfera unitária S n - 1R n , que decididamente não é convexa. ()XSn1Rn No entanto, podemos modificar esse problema incluindo vetores menores. Isso ocorre quando escalamos por um fator λ , f é multiplicado por λ 2 . Quando 0 < x x < 1 , podemos escalar x até o comprimento da unidade multiplicando-o por λ = 1 /xλfλ20<xx<1x, aumentando assimfmas ficar dentro da bola unidadeDn={x R n|x'x1}. Vamos reformular()comoλ=1/xx>1f Dn={xRnxx1}()

(**)Maximize f(x)= xAx  subject to  xx1

Seu domínio é X=Dn o que claramente é convexo, então estamos no meio do caminho. Resta considerar a convexidade do gráfico de .f

Uma boa maneira de pensar sobre o problema mesmo que você não pretenda realizar os cálculos correspondentes - é em termos do Teorema Espectral. () Diz que, por meio de uma transformação ortogonal , você pode encontrar pelo menos uma base de R n na qual A é diagonal: ou seja,PRnA

A=PΣP

onde todas as entradas fora da diagonal de são zero. Essa escolha de P pode ser concebida como algo que não muda nada em A , mas apenas muda como você a descreve : quando você gira seu ponto de vista, os eixos das hipersuperfícies de nível da função x x A x (que sempre elipsóides) se alinham com os eixos das coordenadas.ΣPAxxAx

Since A is positive-semidefinite, all the diagonal entries of Σ must be non-negative. We may further permute the axes (which is just another orthogonal transformation, and therefore can be absorbed into P) to assure that

σ1σ2σn0.

If we let x=Py be the new coordinates x (entailing y=Px), the function f is

f(y)=yAy=xPAPx=xΣx=σ1x12+σ2x22++σnxn2.

This function is decidedly not convex! Its graph looks like part of a hyperparaboloid: at every point in the interior of X, the fact that all the σi are nonnegative makes it curl upward rather than downward.

However, we can turn () into a convex problem with one very useful technique. Knowing that the maximum will occur where xx=1, let's subtract the constant σ1 from f, at least for points on the boundary of X. That will not change the locations of any points on the boundary at which f is optimized, because it lowers all the values of f on the boundary by the same value σ1. This suggests examining the function

g(y)=f(y)σ1yy.

This indeed subtracts the constant σ1 from f at boundary points, and subtracts smaller values at interior points. This will assure that g, compared to f, has no new global maxima on the interior of X.

Let's examine what has happened with this sleight-of-hand of replacing σ1 by σ1yy. Because P is orthogonal, yy=xx. (That's practically the definition of an orthogonal transformation.) Therefore, in terms of the x coordinates, g can be written

g(y)=σ1x12++σnxn2σ1(x12++xn2)=(σ2σ1)x22++(σnσ1)xn2.

Because σ1σi for all i, each of the coefficients is zero or negative. Consequently, (a) g is convex and (b) g is optimized when x2=x3==xn=0. (xx=1 then implies x1=±1 and the optimum is attained when y=P(±1,0,,0), which is--up to sign--the first column of P.)

Let's recapitulate the logic. Because g is optimized on the boundary Dn=Sn1 where yy=1, because f differs from g merely by the constant σ1 on that boundary, and because the values of g are even closer to the values of f on the interior of Dn, the maxima of f must coincide with the maxima of g.


4
+1 Very nice. I edited to fix one formula to what I think you intended (but please check). Apart from that, I found the sentence "That won't change any boundary values at which f is optimized" to be confusing at first, because the boundary values do change: you are subtracting σ1. Maybe it makes sense to reformulate a bit?
amoeba says Reinstate Monica

@amoeba Right on all counts; thank you. I have amplified the discussion of that point.
whuber

3
(+1) In your answer, you seem to define a convex function to be what most people would consider to be a concave function (perhaps since a convex optimization problem has a convex domain and a concave function over which a maximum is computed (or a convex function over which a minimum is computed))
user795305

2
@amoeba It's a subtle argument. Note, however, that the new maxima--those of g--are found to occur only on the boundary. That rules out your counterexamples. Another point worth noting is that in the end we don't really care whether new local (or even global) maxima happen to show up in the interior of X, because we are originally concerned only about local maxima on its boundary. We are therefore free to alter f in any way that will not make any of those local boundary maxima move or disappear.
whuber

2
Yes, I agree. It does not matter how f is modified on the inside, if the resulting g is "convex" and happens to have maxima on the boundary. Your g does happen to have maxima on the boundary, and this makes the whole argument work. Makes sense.
amoeba says Reinstate Monica

6

No.

Rank k PCA of matrix M can be formulated as

X^=argminrank(X)kMXF2

(F is Frobenius norm). For derivation see Eckart-Young theorem.

Though the norm is convex, the set over which it is optimized is nonconvex.


A convex relaxation of PCA's problem is called Convex Low Rank Approximation

X^=argminXcMXF2

( is nuclear norm. it's convex relaxation of rank - just like 1 is convex relaxation of number of nonzero elements for vectors)

You can see Statistical Learning with Sparsity, ch 6 (matrix decompositions) for details.

If you're interested in more general problems and how they relate to convexity, see Generalized Low Rank Models.


1

Isenção de responsabilidade: As respostas anteriores fazem um bom trabalho ao explicar como o PCA em sua formulação original não é convexo, mas pode ser convertido em um problema de otimização convexo. Minha resposta é voltada apenas para aquelas pobres almas (como eu) que não estão tão familiarizadas com o jargão das Esferas Unitárias e SVDs - o que é bom saber.

Minha fonte é esta nota de aula do Prof. Tibshirani

Para que um problema de otimização seja resolvido com técnicas de otimização convexa, existem dois pré-requisitos.

  1. A função objetivo deve ser convexa.
  2. As funções de restrição também devem ser convexas.

A maioria das formulações de PCA envolve uma restrição na classificação de uma matriz.

Nesse tipo de formulações de PCA, a condição 2 é violada. Porque, a restrição querank(X)=k, is not convex. For example, let J11, J22 be 2 × 2 zero matrices with a single 1 in the upper left corner and lower right corner respectively. Then, each of these have rank 1, but their average has rank 2.


Could you please explain what "X" refers to and why there is any constraint on its rank? This doesn't correspond with my understanding of PCA, but perhaps you are thinking of a more specialized version in which only k principal components are sought.
whuber

Yeah, X is the transformed (rotated) data matrix. In this formulation, we seek matrices that are at least of rank k. You can refer to the link in my answer for a more accurate description.
kasa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.