귀하의 질문에 대한 답변을보다 명확하게하는 방식으로 Nyström 근사값을 도출해 봅시다.
Nyström의 핵심 가정은 커널 함수의 순위가 입니다. (실제로 우리는 대략 순위 라고 가정 하지만, 단순성을 위해 지금 은 정확히 순위 라고 가정합시다 .) 이것은 모든 커널 매트릭스가 최대 , 특히
순위를 가짐을 의미합니다
순위 입니다. 따라서 이 아닌 고유 값 이 의 고유 분해 를 로
쓸 수 있습니다.mmmm
K=⎡⎣⎢⎢k(x1,x1)⋮k(xn,x1)…⋱…k(x1,xn)⋮k(xn,xn)⎤⎦⎥⎥,
mmKK=UΛUT
저장된 고유 벡터와 형상의 및 고유치 배치 , 대각 행렬.
Un×mΛm×m
따라서 일반적으로 임의적으로 균일하지만 다른 체계에 따라 요소를 선택하겠습니다 .이 단순화 된 버전에서 중요한 것은 이 전체 순위에 있다는 것입니다. 일단 우리가 블록의 커널 행렬로 끝나도록 점의 레이블을 다시 지정하십시오 :
에서 ( ) 및 ( )의 각 항목을 평가하지만 항목을 평가하고 싶지 않습니다. .mK11
K=[K11K21KT21K22],
K11m×mK21(n−m)×mK22
이제이 블록 구조에 따라 고유 분해를 분할 할 수 있습니다 :
여기서 은 이고 는 입니다. 그러나 이제 입니다. 알려진 행렬 을 고유 분해하여 과 를 찾을 수 있습니다 .
K=UΛUT=[U1U2]Λ[U1U2]T=[U1ΛUT1U2ΛUT1U1ΛUT2U2ΛUT2],
U1m×mU2(n−m)×mK11=U1ΛUT1U1ΛK11
또한 입니다. 여기에서 제외한이 방정식의 모든 것을 알고 있으므로 고유 값이 의미하는 바를 풀 수 있습니다. 양변에 을 하면
이제 를 평가하는 데 필요한 모든 것이 있습니다 :
K21=U2ΛUT1U2(ΛUT1)−1=U1Λ−1
U2=K21U1Λ−1.
K22K22=U2ΛUT2=(K21U1Λ−1)Λ(K21U1Λ−1)T=K21U1(Λ−1Λ)Λ−1UT1KT21=K21U1Λ−1UT1KT21=K21K−111KT21=(K21K−1211)(K21K−1211)T.(*)(**)
(*)에서, 단순히 정의로 보았던 Nyström 임베드 버전을 발견했습니다. 이것은 우리가 블록에 대해 대치하고있는 효과적인 커널 값을 알려줍니다 .K22
(**)에서 shape 인 피쳐 행렬 가 이러한 대치 된 커널 값에 해당함을 알 수 있습니다. 우리가 사용하는 경우 대한 지점, 우리는 한 세트가 차원 특징
가 올바른 커널 매트릭스에 해당
하는지 신속하게 확인할 수 있습니다 .
K21K−1211(n−m)×mK1211mm
Φ=⎡⎣⎢K1211K21K−1211⎤⎦⎥.
ΦΦΦT=⎡⎣⎢K1211K21K−1211⎤⎦⎥⎡⎣⎢K1211K21K−1211⎤⎦⎥T=⎡⎣⎢K1211K1211K21K−1211K1211K1211K−1211KT21K21K−1211K−1211KT21⎤⎦⎥=[K11K21KT21K21K−111KT21]=K.
따라서 우리가해야 할 일은 차원의 특징 인 정규 학습 모델을 훈련시키는 것 입니다. 이것은 에 대한 학습 문제의 커널 버전과 정확히 동일합니다 (우리가 가정 한 가정에서) .mΦK
이제, 개별 데이터 포인트에 대한 에서 기능 대응
파티션 2
의 포인트 경우 벡터 는 의 관련 행 이므로 스태킹 이것들은 우리에게 – 는 파티션 2의 포인트에 동의합니다. 또한 파티션 1에서도 작동합니다. 거기에서 벡터는 의 행입니다. 이므로 쌓아 되고 다시 동의합니다.xΦ
ϕ(x)=[k(x,x1)…k(x,xm)]K−1211.
x[k(x,x1)…k(x,xm)]K21K21K−1211ϕ(x)K11K11K−1211=K1211Φ. 따라서 ... 보이지 않는 훈련 시간 테스트 포인트 대해서는 여전히 그렇습니다 . 당신은 같은 일을 :
커널이 랭크 이라고 가정하기 때문에 행렬 의 순위도 이며 의 재구성 은 여전히 와 동일한 논리로 정확합니다 .
xnewΦtest=Ktest,1K−1211.
m[KtrainKtest,trainKtrain,testKtest]mKtestK22
위에서 우리는 커널 행렬 가
정확히 등급 이라고 가정했다 . 일반적으로 그렇지 않습니다. 예를 들어 가우시안 커널의 경우 는
항상 순위 이지만 후자의 고유 값은 일반적으로 매우 빨리 떨어 지므로 순위 의 행렬에
가깝고 또는 의 재구성에
가깝습니다. 은 ( 는) 실제 값에
가깝지만 정확히 동일하지는 않습니다. 그들은 가까이의 고유 공간 나은 재구성 수 있습니다 도착의 그것과
KmKnmK21Ktest,1K11K전반적으로 올바른 포인트를 선택하는 것이 실제로 중요한 이유 입니다.
m
경우 있음을 유의하십시오 어떤 제로 고유 값을 가지고, 당신은 pseudoinverses과 역원을 대체 할 수있는 모든 것이 여전히 작동; 당신은 대체 함께 재건에 .K11K21K21K†11K11
원하는 경우 고유 분해 대신 SVD를 사용할 수 있습니다. 이후 PSD이며, 무엇의 수행 scikit은 배울 그래서, 그들은 같은 일을하고 있지만 SVD는 커널 매트릭스와 같은 약간의 수치 오류에 조금 더 강력한 될 수 있습니다. scikit-learn의 실제 구현 은 pseudoinverse 대신 를 역으로 사용하지만이를 수행합니다.Kmax(λi,10−12)