인공지능을 좋아하는 곧미남

주성분분석(PCA) 본문

머신러닝/차원축소

주성분분석(PCA)

곧미남 2022. 5. 31. 21:48

주성분 분석(Principal Component Analysis, PCA)에 대해 알아보겠습니다. PCA는 차원 축소를 위한 방법론 중 하나이고, 고차원의 데이터를 저차원의 데이터로 표현할 수 있는 방법입니다.

 

<INDEX>

1. PCA 정보 손실

 

2. PCA 최적화 함수

 

3. PCA 라그랑주함수(제약조건)

 

4. opencv의 contours point data를 가지고 pca를 통해 산출한 고유 벡터를 통해 데이터 분포의 방향 표현 알고리즘 설명


 

1. PCA 정보 손실

차원에 대한 내용을 추가한다면, 상기 그림에서 2D 데이터 분포에서 해당 분포를 가장 잘 표현할 수 있는 1D 벡터공간을 생성하는 것이 PCA의 목적이라고 생각하시면 됩니다.

 

하지만, 2D에 존재하는 데이터를 1D로 표현을 하면, 정보 손실이 발생합니다.

 

이때, 정보 손실이란 아래 그래프에서 본다면, 

x1과 x3, x2와 x4는 같은 1D상에 존재하기 때문에 정보가 겹쳐 손실이 발생합니다.

 

이러한 경우를 최소화하기 위해 PCA는 저차원으로 투영된 데이터의 분산을 최대화하는 최적화 문제로 정의합니다.

2. PCA 최적화 함수

$$\begin{equation}\sigma^{2} = \frac{1}{n}\sum_{i=1}^{n}(u^{T}x_{i})^2\end{equation}$$

위와같이 분산을 구하는 식은 Z의 원소와 Z원소의 평균의 차이의 제곱합을 나타내며 이는 투영하고자하는 벡터u와 투영 전 데이터 x의 내적과 같습니다. 이렇게하여 분산을 최대화하는 최적화 방정식을 풀면됩니다.

 

하지만, 이때 벡터 u의 크기에 비례하여 분산의 크기도 커집니다. 따라서, 라그랑주함수를 추가하여 벡터 u를 단위벡터로 크기를 제한합니다.

3. PCA 라그랑주함수(제약조건)

아래 라그랑주함수를 추가하여 벡터 u가 단위벡터라고 제약조건을 정해줍니다.

$$u^{T}u = 1$$

이때 왜 u벡터를 단위벡터라고 제약을 하냐면, 분산이 커지는 이유가 벡터의 크기에 선형적으로 영향이 있기 때문입니다. 그래서 이러한 단위벡터 공간 제약조건으로 설정함으로써 벡터의 크기에 의한 분산의 커짐을 방지할 수 있습니다.

 

$$\max_{L(u)} = \frac{1}{n}\sum_{i=1}^{n}(u^{T}x_{i})^2 + \lambda(1-u^{T}u)$$

 

따라서, 이러한 목적함수의 최적화를 하기위해서는 u에 대한 라그랑주 함수(L(u))의 미분값이 0이 되는 식이 분산을 최대로 하는 값이 됩니다.

$$\frac{\partial L(u)}{\partial u}=2\Sigma{u}-2\lambda{u}$$

$$\Sigma{u} = \lambda{u}$$

이때, u는 공분산 행렬의 고유벡터이고 람다는 고유값이라는 사실을 알 수 있습니다.

 

이들을 주성분이라고 칭하고 고유값이 클수록 많은 정보를 유지한다고 합니다.

 

그래서 고유값이 큰 순서대로 나열한 고유 벡터로 차원을 축소한 데이터를 얻을 수 있다.

 

Best u벡터로 투영시켜버림! z = u*xi

 

또한, 공분산행렬을 가지는 고유벡터가 고유값이 가장 큰 주 성분이 된다.

4. opencv의 contours point data를 가지고 pca를 통해 산출한 고유 벡터를 통해 데이터 분포의 방향 표현 알고리즘 설명

저의 Github에 업로드 해놓았으니 코드 참고 부탁드립니다.

 

알고리즘 절차

1. Binary Object의 Contours Point를 추출 (N, 2)

2. Contours Points로 PCA를 통해 고유값 및 고유벡터를 산정

3. 고유값이 가장 큰 고유벡터의 방향을 각도로 표현

 

Github:https://github.com/sangheonEN/Die_Centering_Project/blob/main/video_task/image_preprocessing/Angle_extract_contours/angle_extract.py

 

 

 

 

Comments