5-21 Fisher교수의 Linear Discriminant Analysis 기법 Revision II
Fisher 교수의 목적은 붓꽃의 특징벡터(feature vector)들을 사용하여 붓꽃 종류를 구분하는 즉 Classification 연구였으며 그 구체적인 방법론이 바로 LDA이다. 비록 오래된 이론이긴 하지만 지금의 머신 러닝 이론에 영향을 줄 수 있을 정도로 그 방법론이 신선해 보인다는 점이다.
LDA 기법은 독립된 4개의 성분을 가지는 다시 말해서 4차원적인 붓꽃 데이터의 특징 벡터(feature vector)를 변환시켜 적어도 한 차원 아래인 3차원 또는 2차원 데이터로 차원을 낮추는데 있다. 하지만 1990년대 개발된 SVM(Support Vector Machine)기법에서는 데이터에 임의의 자유도를 추가하여 오히려 차원을 높여서 Classification 목적을 달성하는 경우도 있다.
한편 통계학은 아니지만 이러한 시도는 통계학이 아닌 다른 과학 분야에서도 이루어지고 있다. 즉 비압축성 유체역학 분야에서 반무한 평판 주위를 흐르는 경계 층류를 계산하기 위해 편미분 방정식인 Navier Stokes 방정식을 무차원 변수를 도입하여 변환시키면 한 차원 낮은 것으로 볼 수 있는 상미분 방정식이 얻어지며 Blasius 해가 얻어진다. 그밖에도 이와 같이 차원을 높이거나 낮추는 기법은 특히 현대의 평행 우주론에서 끈 이론과 결부하여 많은 노력들이 이루어지는 분야이다.
특히 LDA 기법에서는 Scatter를 사용하기 때문에 쉽게 이해가 되질 않는 면이 있을 수 있으므로 간단한 수치 예제를 대상으로 그 유도과정을 면밀하게 살펴 볼 필요가 있다. LDA 기법을 검토하기 좋은 예제로는 간단하게는 2차원 예제 즉 class 가 2인 문제가 적격이다. 하지만 그 다음 실전 예제 차원에서 class 가 4인 붓꽃 데이터를 직접 다루는 것이 가장 좋을 듯하다.
다음의 인위적인 수치 예제는 Fisher 의 Linear Discriminant 이해를 도울 수 있는 두뇌 훈련 예제로 보면 좋을 것이다.
10개의 데이터를 좌표 평면에 작도해 보면 2개의 그룹으로 나누어진다. 5개로 구성된 각 class 별 1X2 특성(feature) 벡터들의 평균값을 구해보자.
이 식에서 i 의 범위가 1에서 5까지는 class ‘0’ 이고 6에서 10까지면 class ‘1’ 이 된다.
LDA 기법의 목적은 현재의 데이터 차원(dimension)을 축소함에 있다. 즉 현재 데이터가 2차원이라면 적절한 변환에 의해 1차원 데이터를 생성하는 것이다. 위 그림에서처럼 변환된 직선위에 수직선을 그어 점들의 투영(projection) 작업을 하는 것이다. 2차원적으로 평면상에 펼쳐져 있는 데이터를 하나의 직선상에 1차원 화 하여 직선상에서 분포를 관찰하려는 것이다. 확률 통계에서 흔하게 다루는 정규 분포 문제가 바로 하나의 직선상에서 문제를 다루는 방식임에 유의하자.
어떤 하나의 직선에 투영하기 위한 변환을 다음과 같이 매트릭스를 사용하여 정의 하자.
즉 X 공간에서 하나의 직선에 투영이 되었을 때 Y 공간이 된다고 하자. 위에서 이미 X 공간의 평균 좌표를 구하였으며 위 그림 상에서 별표로 표시하였다. X 공간에서의 평면 데이터 좌표 값과 하나의 직선에 투영된 Y 공간에서의 좌표 값과의 관계는 변환 매트릭스 를 사용하여 다음과 같이 주어진다. 변환 매트릭스 는 2X2로 주어질 수 있다.
X 공간에서 이미 계산된 평균값 (1)에 대응하여 Y 공간에서의 평균값을 다음과 같이 정의 하자.
1)식과 (4)식을 사용하여 하나의 오브젝트 함수를 생성해 보자. 다음 그림을 참조하면 X 공간에서의 2가지 class 데이터 그룹의 평균 좌표들 간의 거리와 Y공간에서의 평균 좌표들 간의 거리를 가시적으로 볼 수 있다.
하지만 투영된 공간에서의 거리만으로는 2가지 class 데이터들의 분산된 특성을 고려하지 못하는 단점이 있을 수 있다. 이 점에 rhks한 Fisher 교수의 아이디어를 고려해 보자.
Y 공간에서 2가지 class 데이타 그룹 각각의 평균 좌표 사이의 거리를 각 class 데이터 그룹별 분산 값을 합하여 나눠줌으로서 normalization 하도록 하자.
Y 공간에서 이 분산 공식을 사용하여 각 class 별 Scatter를 계산 합하여 “Within class scatter라고 두자.
여기서 Fisher의 linear discriminant 함수인 다음의 임계함수
에 함수 를 입력하여 최대화 하도록 하자. 크기만을 가지는 스칼라 함수인 이 임계 함수의 의미는 Y 공간에서 평균좌표들 사이의 거리가 클수록 아울러 각 class 별 분산 값이 작을수록 즉 좁은 공간에 위치할수록 임계함수가 최대가 된다는 점이다. 즉 Fisher 의 linear discriminant는 (6) 식을 최대화 할 수 있는 변환 를 결정함에 사용된다.
X 공간에서 각 class 별 Scatter 와 Within class scatter 계산 공식은 다음과 같이 주어진다.
2차원이 아닌 3차원 이상인 데이터를 다루는 경우에는 X 공간에서의 전체 평균 및 전체 Scatter 값이 사용되는데 unbias 를 감안 각 class 별 Scatter 계산에서 반드시 위에서처럼 샘플 수가 아닌 (샘플 수-1)로 나누어야 함에 주의하자.
Y 공간에서 각 class 별 Scatter 와 Within class scatter 계산 공식은 (5)식으로부터 다음과 같이 유도가 이루어진다.
한편 Y 공간에 투영된 하나의 직선상에서 평균값들의 차이는 X 공간에서의 평균값들과 Between class scatter 를 사용하여 표현할 수 있다.
(8)식과 (9)식을 (6)식에 대입하면 다음과 같은 최종 식이 얻어진다.
매트릭스들의 계산식으로 구성되지만 분자나 분모나 모두 크기를 가지는 스칼라 값임에 틀림없다. 이 식을 최대화 할 수 있도록 미분하여 미분 계수 = 0 조건을 적용한다. 분수형태의 합성함수 미분법을 적용한 후 분자 = 0 조건을 적용하자.
만약 변환 매트릭스가 결정된다면 는 특정 상수 값 λ가 될 것이다. 이 미지의 상수 λ를 대입하면 다음과 같이 eigenvalue 방정식이 얻어진다.
I 는 대각선 요소가 1인 단위 매트릭스이다. 방정식을 풀어 λ값이 결정된 후 단위 크기를 가진다는 조건을 적용하여 변환 매트릭스를 결정하자.
아래 url 주소에서 수치 계산 결과를 참조하도록 하자.
https://steemit.com/kr/@codingart/5-17-fisher-linear-discriminant-analysis-iii
2개의 eigenvalue λ이 결정되지만 그 중에 하나는 0.0 이므로 버리고 0.0 이 아닌 λ값을 대입하면 변환 를 결정할 수 있다. 이 문제의 변환 매트릭스는 2X2 일 수 있지만 eigenvalue 값 중 하나가 0.0 이므로 버리면 변환 매트릭스가 2X1이 되며 이 변환을 사용하면 X 공간에서의 2차원 데이터가 Y 공간에서의 1차원 데이터로 바뀌게 된다.
첫번쨰 데이터를 넣어 계산해 보면 y1값이 계산되고 y2 는 항상 0.0이 된다. y2 는 더 이상 계산할 필요가 없다.
X 공간에서의 몇 개의 점들을 Y 공간으로 투영해 보자.
class 가 2인 경우에 한하여 Fisher 교수의 Linear Discriminant 유도 과정을 revision 해 보았다. 이번 장의 중요성은 이어지는 붓꽃 데이터 처리 과정에서 파이선 컴퓨터 코딩을 따라 가면서 약간의 수정된 내용만 지적하고 거의 그대로 활용하면서 revison 작업이 이루어질 예정이다.