SVD의 직관은 무엇입니까?


50

단일 값 분해 (SVD)에 대해 읽었습니다. 거의 모든 교과서에서 주어진 사양으로 행렬을 세 개의 행렬로 분해한다고 언급되어 있습니다.

그러나 행렬을 그러한 형태로 나누는 직관은 무엇입니까? 차원 축소를위한 PCA 및 기타 알고리즘은 알고리즘에 뛰어난 시각화 속성이 있지만 SVD에서는 그렇지 않다는 점에서 직관적입니다.


4
SVD는 정사각형 행렬 대신 모든 종류의 행렬에 대한 확장이기 때문에 고유 값-고유 벡터 분해의 직관부터 시작할 수 있습니다.
JohnK

인터넷에는 SVD와 그 작동에 관한 많은 메모와 CV에 대한 답변이 있습니다.
Vladislavs Dovgalecs

2
SVD는 압축 / 학습 알고리즘으로 생각할 수 있습니다. 리니어 컴프레서 디 컴프레서입니다. 행렬 M은 SVD의 곱으로 나타낼 수있다. S는 컴프레서 V가 원하는 오류 량 (압축 손실)을 결정하고 D는 압축 해제 프로그램입니다. V의 모든 대각선 값을 유지하면 무손실 압축기가 있습니다. 작은 특이 값을 버리고 시작하면 (제로화) 초기 행렬을 정확하게 재구성 할 수는 없지만 여전히 가깝습니다. 여기서 close라는 용어는 Frobenius 규범으로 측정됩니다.
Cagdas Ozgenc

2
@Cagdas 만약 그렇게한다면 수학적으로 "S" "V"와 "D"를 취하는 것을 신중하게 정의하십시오. 나는 이니셜이 표기법 자체에 과부하 된 것을 보지 못했습니다 (예를 들어 특이 값이 있습니까?). 혼동의 원인이 될 수 있습니다.
Glen_b

3
SVD로 PCA를 추정하는 방법을 알고 있습니까? 그렇다면 SVD에 대한 이해에서 왜 무언가가 빠졌다고 생각하는지 설명 할 수 있습니까? 참조
Aksakal

답변:


63

행렬 (실제, n × p ) 의 SVD를 X = U D V T 로 쓰십시오. 여기서 Un × p 이고, D 는 대각선 p × p 이고 V Tp × p 입니다. 행렬 UV 의 열의 관점에서 우리는 X = p i = 1 d i u i v T iXn×p

X=UDVT
Un×pDp×pVTp×pUVX=i=1pdiuiviT. 이것은 p 랭크 -1 행렬 의 합으로 쓰여진 것을 보여줍니다 . 순위 -1 매트릭스는 어떻게 생겼습니까? 보자 : ( 1 2 3 ) ( 4 5 6 ) = ( 4 5 6 8 10 12 12 15 18 ) 행이 비례하고, 열이 비례한다.Xp
(123)(456)=(45681012121518)

이제 를 흑백 이미지의 그레이 스케일 값을 포함하는 것으로 생각하십시오 . 매트릭스의 각 항목은 하나의 픽셀을 나타냅니다. 예를 들어 비비의 다음 그림 :X

비비의 이미지

그런 다음이 이미지를 R로 읽고 라이브러리를 사용하여 결과 구조의 행렬 부분을 가져옵니다 pixmap.


결과를 재현하는 방법에 대한 단계별 가이드가 필요한 경우 여기 에서 코드를 찾을 수 있습니다 .


SVD를 계산하십시오.

baboon.svd  <-  svd(bab) # May take some time

512×512512512120

baboon.1  <-  sweep(baboon.svd$u[,1,drop=FALSE],2,baboon.svd$d[1],"*") %*%
                   t(baboon.svd$v[,1,drop=FALSE])

baboon.20 <-  sweep(baboon.svd$u[,1:20,drop=FALSE],2,baboon.svd$d[1:20],"*") %*%
                   t(baboon.svd$v[,1:20,drop=FALSE])

다음 두 이미지가 생성됩니다.

개 코 원숭이 이미지의 1 위 및 20 위 재건

왼쪽에서 순위 1 이미지의 세로 / 가로 줄무늬를 쉽게 볼 수 있습니다.

20

랭크 20 비비 재구성에서 잔차 이미지

매우 흥미로운 점은 원본 이미지의 일부를 세로 / 가로 선, 주로 대각선 코털과 질감, 눈의 중첩으로 표현하기 어려운 부분입니다!


11
나는 당신이 낮은 범위가 아니라 낮은 등급의 재구성을 의미한다고 생각합니다. 신경 쓰지 마. 이것은 매우 좋은 예입니다 (+1). 그것이 선형 압축기 압축 해제 기인 이유입니다. 이미지는 선으로 근사됩니다. 실제로 선형 활성화 기능을 갖춘 신경망으로 유사한 자동 인코더를 수행하면 실제로 수직 및 수평 라인뿐만 아니라 모든 기울기가있는 라인이 SVD보다 약간 더 강력하다는 것을 알 수 있습니다.
Cagdas Ozgenc

X=UΣVn×pXUn×nΣn×pVp×p

1
다른 예는 math.stackexchange.com/questions/92171/… 을 참조하십시오
kjetil b halvorsen

@ kjetil-b-halvorsen 저는 PCA를 거부 응용 프로그램으로 사용했을 경우 어떻게 변경이 변경되는지 알고 싶습니다. 여기 stats.stackexchange.com/questions/412123/…에
Dushyant Kumar

@CowboyTrader 재미있는 관찰. 머신 러닝 / 신경망에 대한 나의 이해는 꽤 제한적입니다. 그래서 하나의 시끄러운 이미지가 있고 훈련 할 다른 것이 없다면 신경망은 어떻게 작동 할 것입니까?
Dushyant Kumar

3

Am×nmnvA

(1)v1=argmaxvRnAv2subject to v2=1.
v1A
v2=argmaxvRnAv2subject to v1,v=0,v2=1.
v1,,vnRnRnA

합시다 (따라서 는 방향으로 의 폭발력을 정량화합니다 ). 단위 벡터 가 되도록 정의 되었다고 가정하자 식 (2)로 행렬 표기를 사용하여 간결하게 표현 될 수있다 은 IS 매트릭스 열째가 , 은 IS 그 행렬 열은 이며σi=Avi2σiAviui

(2)Avi=σiuifor i=1,,n.
(3)AV=UΣ,
Vn×niviUm×niuiΣ는 IS 가진 대각 행렬 토륨 대각선 엔트리이다 . 행렬 는 직교하므로 (3)의 양변에 를 곱하여 를 얻을 수 우리는 이제 거의 제로 노력 으로 의 SVD를 도출 한 것으로 보일 수 있습니다 . 지금까지 어떤 단계도 어려웠습니다. 그러나 그림의 중요한 부분이 빠져 있습니다. 우리는 가 직교 하다는 것을 아직 알지 못합니다 .n×niσiVVT
A=UΣVT.
AU

중요한 사실은 누락 된 부분입니다 이 직교 함 : 이것이 사실이 아니라면 이라고 주장합니다 문제에 최적이 아닙니다 (1). 실제로, (4)가 만족되지 않으면, 방향으로 약간 섭동 함으로써개선 하는 것이 것이다.Av1Av2

(4)Av1,Av2=0.
v1 v1v2

(모순을 위해) (4)가 만족되지 않는다고 가정하십시오. 경우 직교 방향으로 약간 교란된다 의 규범 변경되지 않는다 (또는 최소한의 표준의 변경 무시할). 지구 표면을 걷더라도 지구 중심으로부터의 거리는 변하지 않습니다. 그러나 방향으로 교란되어 상기 벡터 에서 교란되는 비 직교 방향 등의 표준의 변경 있다 무시할 . 의 규범v1v2v1v1v1v2Av1Av2Av1Av1무시할 수없는 양으로 증가 될 수 있습니다. 이는 이 문제 (1)에 적합하지 않다는 것을 의미하며 이는 모순입니다. 나는이 주장을 좋아한다 : 1) 직관이 매우 분명하다. 2) 직관은 엄격한 증거로 직접 변환 될 수 있습니다.v1

비슷한 주장은 이 과 직교 함을 나타냅니다 . 벡터 은 쌍으로 직교합니다. 이것은 단위 벡터 이 쌍으로 직교하도록 선택 될 수 있음을 의미하며, 이는 상기 행렬 가 직교 행렬 임을 의미한다 . 이것으로 SVD 발견이 완료됩니다.Av3Av1Av2Av1,,Avnu1,,unU


위의 직관적 인 주장을 엄격한 증거로 변환하려면 이 방향으로 교란되면 교란 벡터 가 실제로 단위 벡터가 아니라는 사실에 직면해야합니다 . (표준은 입니다.) 엄격한 증거를 얻으려면 벡터 진정 단위 벡터이다. 당신은 쉽게 표시 할 수 있습니다 (4)은 충분히 작은 값 다음, 만족하지 않는 경우에, 우리는 한 ( 의 표시가 있다고 가정)v1v2

v~1=v1+ϵv2
1+ϵ2
v¯1(ϵ)=1ϵ2v1+ϵv2.
v¯1(ϵ)ϵ
f(ϵ)=Av¯1(ϵ)22>Av122
ϵ올바른 선택). 이것을 표시하려면 . 이는 이 문제 (1)에 적합하지 않다는 것을 의미하며 이는 모순입니다.f(0)0v1

(그런데, 여기 SVD에 대한 Qiaochu Yuan의 설명을 읽는 것이 좋습니다 . 특히, 위에서 논의한 "Key lemma # 1"을 살펴보십시오. Qiaochu가 말했듯이 키 lemma # 1은 "기술의 핵심입니다" 특이 값 분해 ").


0

친구 하루의 시간을 가지고이 강의를보십시오 : https://www.youtube.com/watch?v=EokL7E6o1AE

이 녀석은 매우 직설적입니다. 결국에는 모두 모이기 때문에 건너 뛰지 않는 것이 중요합니다. 처음에는 조금 느리게 보일지라도, 그는 중요한 포인트를 고정하려고 노력하고 있습니다.

다른 설명을 읽을 때 혼란 스러웠 기 때문에 모든 사람이하는 세 가지 행렬을 제공하는 것이 아니라 요약 해 드리겠습니다. 그 행렬은 어디에서 왔으며 왜 그렇게 설정합니까? 강의는 그것을 못 박는 다! 모든 행렬 (영원성 기록)은 동일한 차원의 기본 행렬로 구성한 다음 회전하고 늘릴 수 있습니다 (선형 대수의 기본 정리). 사람들이 던지는 세 가지 행렬 각각은 초기 행렬 (U), 스케일링 행렬 (시그마) 및 회전 행렬 (V)을 나타냅니다.

스케일링 매트릭스는 어떤 회전 벡터가 지배적인지를 보여 주며, 이것을 단일 값이라고합니다. 분해는 U, 시그마 및 V에 대해 해결됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.