본문으로 이동

파이썬을 이용하여 커널법 배우기/선형 주성분 분석 이론

위키책, 위키책

차원 벡터 샘플 집합 가 있다고 하자. 이 샘플 집합과의 거리의 합이 가장 적은 하나의 벡터를 라 하면, 이는 제곱오차(squared-error) 척도 를 최소화하는 값이다.

이 문제의 최적값은 샘플의 평균 값 으로 구할 수 있는데 (즉 ),

다음과 같이 쉽게 증명할 수 있다.

를 특정 방향을 나타내는 단위 벡터라 하자. 샘플 는 샘플 평균 에서 방향으로 만큼 이동했다고 표현할 수 있다.

만약 이 값을 만족시키는 최적의 집합은 앞에서와 마찬가지로 제곱오차 척도를 최소화하는 값으로 구할 수 있다.

위 식을 에 대해서 편미분 수행하고, 이란 사실을 통해 다음 식을 얻을 수 있다.

목적함수 을 최소화하는 값은 식 위식이 0인 경우이다. 따라서 최적의 값을 다음과 같다.

공분산 행렬 를 다음과 같이 정의하고,

식 ()과 ()를 식 ()에 대입하면 다음 식을 얻을 수 있다.

이제 위 식의 최소화 문제는 의 최대화 문제로 해결 가능하다. 라그랑제 승수(Lagrange multipliers) 를 이용하여 다음 식을 나타내고,

최대화 문제는 위 식을 로 미분하여 얻을 수 있다.

위 식을 0으로 설정하면, 최소화 문제는 공분산 행렬 의 고유값 문제로 해결 가능하다.

실제로 이기 때문에 가장 큰 고유값에 대응하는 고유벡터가 최적의 값이 된다. 또한 고유값의 내림차순에 대응하는 고유벡터 몇개를 취함으로써 목적함수 을 더욱 만족시킬 수 있다. 여기서 선택된 고유벡터를 주성분(principal components)라 한다.

주성분 즉, 개의 선택된 고유값을 라 하면, 이 주성분으로 특징 샘플 을 사상하면 를 얻을 수 있다.

또한 원래 샘플 복원은 다음과 같이 수행한다.

여기서 는 복원된 샘플을 의미한다.