PCA 최적화는 볼록합니까?


12

PCA (Principal Component Analysis)의 목적 함수는 L2 규범의 재구성 오류를 최소화하는 것입니다 ( 여기 섹션 2.12 참조) . 또 다른 관점은 투영의 분산을 최대화하려고 시도하는 것입니다. 또한 PCA의 목적 함수는 무엇입니까? ? ).

내 질문은 PCA 최적화 볼록한 것입니까? (나는 여기서 몇 가지 토론을 찾았 지만 누군가가 이력서에 대한 좋은 증거를 제공 할 수 있기를 바랍니다).


3
아니요 . 구속 조건에서 볼록 함수를 최대화 하고 있습니다.
user603

5
"PCA 최적화"의 의미에 대해 구체적이어야한다고 생각합니다. 하나의 표준 공식은 를 로 최대화 입니다. 문제는 볼록성이 의미가 없다는 것입니다. 도메인 은 유클리드 공간이 아닌 구입니다. xAxxx=1xx=1
whuber

1
@ whuber 귀하의 의견에 감사드립니다. 제한된 지식으로 인해 질문을 명확히하지 못할 수 있습니다. 질문을 명확하게 설명하는 데 도움이 될 수있는 답변이 나올 때까지 기다릴 수 있습니다.
Haitao Du

3
나는 당신에게 익숙한 "볼록한"의 정의를 참조 할 것입니다. 그것들 모두가 다른 점들 사이에있는 기능 영역에서 점들의 개념을 포함하지 않습니까? 함수 영역의 기하 구조와 함수 값의 대수 또는 분석 속성을 고려해야한다는 점을 기억해야합니다. 그런 점에서, 도메인을 볼록하게 만들기 위해 분산 최대화 공식을 약간 수정할 수 있습니다. 간단히 대신 이 필요합니다 . 해결책은 동일하며 그 대답은 매우 분명해집니다. , X ' , X = 1xx1xx=1
whuber

답변:


17

아닙니다 . PCA의 일반적인 제형은 볼록한 문제 가 아닙니다 . 그러나 그것들은 볼록 최적화 문제로 변형 될 수 있습니다.

이것의 통찰력과 재미는 단순히 답을 얻는 것이 아니라 변화의 순서를 따르고 시각화하는 것입니다. 그것은 목적지가 아닌 여정에 있습니다. 이 여행의 주요 단계는

  1. 목적 함수에 대한 간단한 표현을 얻으십시오.

  2. 볼록하지 않은 영역을 원래 영역으로 확대합니다.

  3. 볼록하지 않은 목표를 최적의 값을 얻는 지점 을 명백하게 변경하지 않는 방식으로 수정하십시오 .

주의 깊게 살펴보면 SVD 및 Lagrange 멀티 플라이어가 숨어있는 것을 볼 수 있지만 경치가 좋기 때문에 사이드 쇼 일 뿐이며 더 이상 언급하지 않습니다.


PCA의 표준 분산 최대화 제제 (또는 적어도 핵심 단계)는 다음과 같습니다.

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

여기서 행렬 행렬 는 데이터 (일반적으로 제곱과 곱의 합, 공분산 행렬 또는 상관 행렬의 합)로 구성된 대칭의 양의 반음 수 행렬입니다.An×nA

(동일하게, 우리는 제한되지 않은 목표 를 최대화하려고 시도 할 수 있습니다 . 이것은 표현 일뿐만 아니라 더 이상 이차 함수가 아닙니다. 그러나 특별한 경우를 그래프로 표시합니다. 볼록 함수가 아니라는 것을 신속하게 보여줍니다. 보통 조정하면이 함수가 변하지 않는 것을 관찰 한 다음 제약 된 공식 입니다.)x λ x ( )xAx/xxxλx()

모든 최적화 문제는 다음과 같이 추상적으로 공식화 될 수 있습니다.

함수 을 가능한 크게 만드는 적어도 하나의 를 찾으십시오 . f : XRxXf:XR

리콜은 최적화 문제는 볼록 이 즐기는 경우 두 개의 별도의 속성을 :

  1. 도메인 볼록하다. XRn 이것은 여러 가지 방법으로 공식화 될 수 있습니다. 하나는 그 때마다 및 및 , 도 . 기하학적으로 : 선 세그먼트의 두 끝 점이 에있을 때마다 전체 세그먼트는 있습니다. y X 0λ1λx+(1λ)y X X XxXyX0λ1λx+(1λ)yXXX

  2. 함수 볼록하다. f 이것은 또한 여러 가지 방법으로 공식화 될 수 있습니다. 하나는 및 및 ,( 이 조건을 이해 하려면 가 볼록해야했습니다.) 기하학적 : 가 선분 일 때마다 의 그래프 (이 세그먼트로 제한됨)는 위에 있습니다. 또는 및 를 연결하는 세그먼트 에서 . y X 0 λ 1 f ( λ x + ( 1 - λ ) y ) λ f ( x ) + ( 1 - λ ) f ( y ) . X ¯ x y X f ( x , f ( x ) ) ( y , f ( yxXyX0λ1

    f(λx+(1λ)y)λf(x)+(1λ)f(y).
    Xxy¯Xf(x,f(x))R의 N + 1(y,f(y))Rn+1

    볼록 함수의 아키타 입은 비 양성 리딩 계수를 사용하여 지역적으로 포물선입니다. 모든 선분에서 으로 으로 표현할 수 있습니다yay2+by+ca0.

의 어려움 은 가 단위 구 이며 결정적으로 볼록하지 않다는 것입니다. ()XSn1Rn 그러나 더 작은 벡터를 포함하여이 문제를 수정할 수 있습니다. 우리가 확장 될 때 때문이다 계수로 , 곱한 . 경우 , 우리는 확장 할 수있는 취부 길이 곱하여 함으로써 증가 있지만 내에 머물고 단위 공 .xλfλ20<xx<1xλ=1/xx>1f Dn={xRnxx1} 그러므로 다음과 같이 를 재구성하자()

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

그 도메인은 이며 볼록한 모양이므로 반쯤 있습니다. 의 그래프의 볼록성을 고려해야합니다 . fX=Dnf

해당 계산을 수행하지 않더라도 문제 를 생각 하는 좋은 방법 은 스펙트럼 정리에 관한 것입니다. () 이 직교 변환에 의해서 있다고 하면 중 적어도 하나 개를 기초로 확인할 수 에 즉 :은 대각선R n APRnA

A=PΣP

여기서 의 비 대각선 항목은 모두 0입니다. 이러한 의 선택은 에 대해 전혀 아무것도 바꾸지 않고 단지 그것을 묘사 하는 방법을 바꾸는 것으로 생각할 수 있습니다 : 당신의 관점을 회전시킬 때, 함수의 수평 초 표면 (항상 타원체) 는 좌표축과 정렬됩니다.P A x x A xΣPAxxAx

이후 포지티브 semidefinite하고, 모든 대각선 엔트리 음수이어야한다. 우리는 축을 다시 치환하여 (또 다른 직교 변환이므로 로 흡수 할 수 있습니다 ) 을 보장합니다AΣP

σ1σ2σn0.

우리가 할 수있는 경우 새로운 좌표를 (수반 ) 함수 이고x=Pyxy=Pxf

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

이 기능은 확실히 볼록 하지 않습니다 ! 이 그래프는 하이퍼 포물면의 일부처럼 보입니다. 내부의 모든 지점에서 모든 가 음이 때문에 아래쪽이 아니라 위쪽으로 말립니다 . Xσi

그러나 우리는 를 매우 유용한 기술 한 가지로 볼록한 문제로 바꿀 수 있습니다 . () 여기서 최대가 발생할 것을 알고 , 하자가 일정 빼기 에서 , 의 경계에 적어도 점에 대해 . 즉, 임의의 점의 위치를 변경하지 않을 경계 하는 그것의 모든 값이 저하하기 때문에, 최적화 동일한 값으로 경계를 . 이것은 기능 검사를 제안합니다xx=1σ1fXffσ1

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

이것은 실제로 경계점 에서 상수 을 에서 빼고 내부 점에서 더 작은 값을 뺍니다. 이것은 와 비교하여 가 내부에 새로운 세계적 최대치를 갖지 않도록 보장 할 것 입니다.σ1fgfX

을 로 바꾸는이 엉뚱한 손으로 어떤 일이 있었는지 살펴 보자 . 때문에 직교 인, . (실제로 직교 변환의 정의입니다.) 따라서 좌표로 를 쓸 수 있습니다.σ1σ1yyPyy=xxxg

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

모든 에 대해 이기 때문에 각 계수는 0이거나 음수입니다. 결과적으로 (a) 는 볼록하고 (b) 는 때 최적화됩니다 . ( 을 의미하며 일 때 최적을 습니다. 부호- 의 첫 번째 열 )σ1σiiggx2=x3==xn=0xx=1x1=±1y=P(±1,0,,0)P

논리를 요약하자. 왜냐하면 경계에 최적화 여기서 로 인해 상이 단순히 상수 그 경계 및 값 때문에 심지어이다 가까이 의 값 의 내부에 의 최대 값 의 최대 값과 일치해야 .gDn=Sn1yy=1fgσ1gfDnfg


4
+1 아주 좋습니다. 나는 당신이 생각 한대로 하나의 수식을 수정하도록 편집했습니다 (그러나 확인하십시오). 그 외에도 경계 값 변경 되기 때문에 "f가 최적화 된 경계 값을 변경하지 않습니다"라는 문장이 처음에는 혼동된다는 것을 알았습니다 . 빼고 있습니다. 조금 재구성하는 것이 합리적일까요? σ1
아메바는 모니카의 복원 주 모니카

@amoeba 모든면에서 맞습니다. 감사합니다. 나는 그 점에 대한 토론을 증폭시켰다.
whuber

3
(+1) 귀하의 답변에 따르면, 대부분의 사람들이 오목한 기능으로 간주하는 것으로 볼록한 기능을 정의하는 것 같습니다 (볼록 최적화 문제에 볼록 도메인과 최대 값 을 계산 하는 오목한 기능 이 있기 때문일 수 있습니다) 최소값 을 계산 하는 볼록 함수 ))
user795305

2
@amoeba 미묘한 주장이다. 그러나 의 새로운 최대 값 은 경계에서만 발생합니다. 그것은 당신의 반례를 배제합니다. 주목할 가치가있는 또 다른 요점은 우리는 원래 내부에 새로운 로컬 (또는 글로벌) 최대 값이 나타나는지 실제로 신경 쓰지 않는다는 것입니다. 우리는 원래 경계의 로컬 최대 값에만 관심이 있기 때문입니다. 그러므로 우리는 지역 경계를 최대한 움직이거나 사라지게하지 않는 를 자유롭게 바꿀 수 있습니다 . gXf
whuber

2
그래, 난 동의. 결과 가 "볼록"하고 경계에 최대 값을 가지면 내부에서 가 어떻게 수정 되는지 는 중요하지 않습니다 . 당신의 는 경계에 최대를 가지고 있으며, 이것은 전체 논쟁을 작동시킵니다. 말이된다. fgg
아메바는

6

아니.

매트릭스 의 랭크 PCA는 다음 과 같이 공식화 될 수있다kM

X^=argminrank(X)kMXF2

( 는 Frobenius norm입니다 ). 도출에 대해서는 Eckart-Young 정리를 참조하십시오 .F

규범은 볼록하지만 최적화 된 세트는 볼록하지 않습니다.


PCA 문제 의 볼록한 완화 를 볼록한 낮은 순위 근사라고합니다.

X^=argminXcMXF2

( 는 핵 규범 입니다. 은 벡터에 대한 0이 아닌 요소 수의 볼록한 이완 과 같이 순위의 볼록한 이완입니다 )11

자세한 내용 은 희소성 통계 학습 , 6 장 (행렬 분해)을 볼 수 있습니다 .

보다 일반적인 문제와 문제가 볼록성과 관련이있는 경우 일반화 된 낮은 순위 모델을 참조하십시오 .


1

면책 조항 : 이전 답변은 원래의 제형에서 PCA가 볼록하지 않지만 볼록 최적화 문제로 변환되는 방법을 설명하는 데 꽤 효과적입니다. 내 대답은 Unit Spheres와 SVD의 전문 용어에 익숙하지 않은 가난한 영혼 (예 : btw, 알기 쉬운)을위한 것입니다.

저의 출처는 티브 라니 교수의 강의 노트입니다.

볼록 최적화 기술로 최적화 문제를 해결하려면 두 가지 전제 조건이 있습니다.

  1. 목적 함수는 볼록해야합니다.
  2. 구속 조건 함수도 볼록해야합니다.

PCA의 대부분의 제형은 매트릭스의 순위에 대한 제약을 포함한다.

이러한 유형의 PCA 제형에서, 조건 2가 위반된다. 따라서 구속 조건 은 볼록하지 않습니다. 예를 들어, , 각각 왼쪽 위 모서리와 오른쪽 아래 모서리에 각각 1을 갖는 2 × 2 0 행렬로 설정하십시오. 그런 다음 각각의 순위는 1이지만 평균은 2입니다.J 11 J 22rank(X)=k,J11J22


" "가 무엇을 의미하고 왜 그 순위에 제약이 있는지 설명해 주시겠습니까? 이것은 PCA에 대한 나의 이해와 일치하지 않지만 아마도 주요 구성 요소 만 찾는 더 전문화 된 버전을 생각하고있을 것 입니다. kXk
whuber

예, 는 변환 된 (회전 된) 데이터 매트릭스입니다. 이 공식에서, 우리는 등급 이상의 행렬을 찾습니다 . 더 정확한 설명을 보려면 내 답변의 링크를 참조하십시오. kXk
honeybadger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.