let us not love with words or tongue but actions and truth.

IT/패턴인식

특징추출2 - PCA, LDA

sarah0518 2022. 12. 8. 22:39

주성분 분석 principal component analysis

Karhunen-Loeve (KL) 변환 또는 Hotelling 변환이라고도 부름

정보 손실을 최소화하는 조건에서 차원 축소

 

 

저차원으로 투영한다는 것의 의미

저차원으로 투영한 뒤에, 원래 점들을 구별할 수 없으면 좋은 차원축소X

(c)에서 가장 정보의 손실이 최소화되는 방향으로 저차원으로 축소한 것임

(c)가 변환된 공간에서의 분산이 가장 큼

 

 

정보손실

원래 훈련 집합이 가진 정보란 무엇일까?

 샘플들 간의 거리 or 그들 간의 상대적인 위치 등

 PCA는 샘플들이 원래 공간에 ‘퍼져있는 정도를’

변환된 공간에서 얼마나 잘 유지하느냐를 척도로 삼음

→ 이 척도는 변환된 공간에서 샘플들의 분산으로 측정함

→ 목표: 변환된 샘플들의 분산을 최대화하는 축을 찾는 것

 

 

분산 계산 예시)

 

 

분산을 가장 크게하는 축 찾기

목표: 분산을 최대화 하는 u를 찾는 것 (u는 단위벡터)

라그랑제 multiplier를 사용하여 최대화 하는 u를 찾으면 됨

위의식을 미분

빨간색은 아래 빨간글씨 참조

위의 식의 의미는

훈련 집합의 공분산 행렬 Σ를 구하고,

그것의 고유 벡터를 구하면 그것이 바로 최대 분산을 갖는 u가 됨

 

 

공분산행렬 특징 참고

 

Eigen value(lambda), Eigen vector

고유값이 큰 순으로 d개의 Eigen vector만 골라서 PCA를 수행함

따라서 D 차원을 d 차원으로 줄인다면 고유값이 큰 순으로 d 개의 고유 벡터를취함.

 

 

 

PCA예제) 

** 차원이 5이상이면 손으로 풀기 어려움

노란색은 원점에서 부터의 거리라고 할 수 있음

 

 

 

 

변환 행렬

U= transpose(u)

 

 

power 설명

0.9, 0.95 power일 경우 

D는 100차원이었는데, d(대략 10)차원으로 축소하여

90%정도의 설명력(power)를 갖는 것을 의미함

 

 

PCA 사례)

얼굴데이터를 차원축소함

원래 n2차원을 1차원의 eigen vector로 표현한뒤

다시 n2차원으로 변형한것을 eigen face라 함

얼굴이라는 것은 어느정도 평균을 가지고 있는 데이터이기에 

차원축소의 결과가 효과적임

 

 

 

Fisher의 선형 분별: Linear Discriminant Analysis (=LDA)

클래스 정보가 있을 때, 주로 사용

 

 

 PCA와 Fisher LD 비교

차원을 축소한다는 것은 같지만 PCA와 Fisher LD는 목표가 다름

 PCA는 정보 손실 최소화 (샘플의 부류 정보 사용 안함)

 Fisher LD는 분별력을 최대화 (샘플의 부류 정보 사용함) - class 정보 활용

(b)가 가장 좋은 축임. 왜냐하면 파란점 검은색점이 잘 분류 되었으므로

 

 

 

PCA와 동일하게 평균, 분산을 먼저 구함

클래스 내의 평균: 

클래스 내의 분산: 

 

 

목적함수: 

 부류간 퍼짐between-class scatter (B)

 부류내 퍼짐within-class scatter (w)

 

위의 값을 미분하면

이 식을 참고하여

 

 

 

위의 결과를 활용한 예제) 

 

 

특징추출의 실용적 관점

- 거리개념이 없다면(eg. 혈액형) one-hot벡터로 변환하여 특징을 추출함

- 특징마다 동적 범위가 크게 다르면?

   : 특징값을 정규화 시켜서 사용함

'IT > 패턴인식' 카테고리의 다른 글

군집화  (0) 2022.12.15
특징 선택  (0) 2022.12.14
특징추출 - 퓨리에 변환  (0) 2022.12.07
순차데이터의 인식  (1) 2022.12.01
질적 분류  (0) 2022.11.24