1936년 하면 이미 까마득한 옛날일 것이다. 하지만 지금의 머신 러닝 작업의 원조로도 볼 수 있는데, Fisher 교수는 하바드에서 연구차 방문한 Anderson 교수와 함께 농장에서 열심히 붓꽃 데이터 베이스 즉 Iris flowers dataset을 만들었다. Anderson 교수는 식물 발생학 연구자였지만 Fisher 교수는 바이오통계학자였다.
미국에서 농과대학에서 통계학을 전문적으로 강의하고 연구하는 교수들이 있는데 농업통계학인줄 알았는데 나중에 보니 바이오 통계학이라고 하는 것을 알게 되었다. Fisher 교수의 역할은 Anderson교수가 채집한 붓꽃 데이터를 대상으로 특징 벡터(feature vector)들을 사용하여 꽃 종류를 구분하는 즉 Classification 연구가 이루어졌으며 그 방법론이 바로 LDA 이다. 비록 오래된 이론이긴 하지만 그 방법론이 공분산 매트릭스 계산과정이 많아 쉽게 이해가 되질 않는 특성이 있다. 따라서 구체적인 2차원 특징 벡터 데이터를 대상으로 LDA 기법 공식들을 유도 과정을 살펴 보기로 한다.
class 별로 feature column 벡터 별로 5개씩 평균값을 구해보자.
하나의 직선에 투영하기 위한 변환을 다음과 같이 매트릭스를 사용하여 정의 하자.
즉 X 공간에서 하나의 직선에 투영이 되었을 때 Y 공간이 된다고 하자. 위에서 이미 X 공간에서 평균 좌표를 구하였으며 위 그림 상에서 별표로 표시하였다. X 공간에서의 평면 데이터 좌표 값과 하나의 직선에 투영된 Y 공간에서의 좌표 값과의 관계는 변환 매트릭스 개념을 사용하여 다음과 같이 주어진다.
X 공간에서 이미 계산된 평균값 (1)에 대응하여 Y 공간에서의 평균값을 다음과 같이 정의 하자.
(1)식과 (4)식을 사용하여 하나의 오브젝트 함수를 생성해 보자. 다음 그림을 참조하면 X 공간에서의 2 데이터 그룹의 평균 좌표들 간의 거리와 Y공간에서의 평균 좌표들 간의 거리를 가시적으로 볼 수 있다.
하지만 투영된 공간에서의 거리만으로서는 2그룹 데이터들의 분산된 특성을 고려하지 못하는 단점이 있을 수 있다. 이 점에 대한 Fisher 교수의 아이디어를 고려해 보자.
Fisher Solution
Y 공간에서 2 class 데이타 그룹 각각의 평균 좌표 사이의 거리를 각 class 데이터 그룹별 분산 값을 합하여 나눠줌으로서 normalization 하도록 하자.
Y 공간에서 이 분산 공식을 사용하여 각 class 별 scatter를 계산 합하여 “within class scatter라고 두자.
여기서 Fisher의 linear discriminant 함수는 다음의 임계함수를 최대화 할 수 있도록 함수 를 사용하여 정의해 보자. 이 임게 함수의 의미는 Y 공간에서 평균좌표들 사이의 거리가 클수록 아울러 각 class 별 scatter 즉 분산 값이 작아 좁은 공간에 위치할수록 임계함수가 최대가 된다는 점이다.
즉 Fisher 의 linear discriminant는 위 식을 최대화 하는 과정에 해당한다.
J(w)를 최대화 할 수 있는 최적 w 값을 결정하는 알고리듬을 살펴보자.
X 공간에서 각 class 별 scatter 와 within class scatter 계산 공식은 다음과 같이 주어진다.
Y 공간에서 각 class 별 scatter 와 within class scatter 계산 공식은 (5)식으로부터 다음과 같이 유도가 이루어진다.
한편 Y 공간에 투영된 하나의 직선상에서 평균값의 차이는 X 공간에서의 평균값들과 between class scatter 를 사용하여 표현할 수 있다.
(8)식과 (9)식을 (6)식에 대입하면 다음과 같은 최종 식이 얻어진다.
이 식이 최대값을 가지기 위한 조건은 한번 미분한 미분 계수=0 조건을 적용한다. 분수형태의 합성함수 미분법을 적용한 후 분자=0 조건을 적용하자.
최대화 되어야 할 함수 J(w)는 최적 w 값이 결정된다면 특정 상수 λ가 될 것이다. 이 λ값을 대입하면 eigenvalue 방정식이 얻어진다.
방정식을 풀어 λ값이 결정되면 아울러 w도 동시에 결정이 되며 이 w를 이용해 X공간에서의 데이터들을 특정한 직선에 투영이 가능해진다.
공식 유도과정이 좀 복잡해 보이므로 실제 수치 계산을 해보도록 하자.