고급통계모형/판별분석discrimnant

판별분석1

학위논문통계 2016. 7. 25. 23:26

 

 

1.

사람들은 0-9까지 숫자를 어떻게 인식할까요? 여러분 스스로 한번 논리적으로 생각해보세요.

 

 

조그만 생각해보면 간단히 답이 나옵니다. 숫자는 직선과 곡선의 결합으로 되어 있습니다. 수평선, 수직선, 수평에서 몇 도 각도로 기울어진 사선과 오른쪽으로 볼록한 곡선, 왼쪽으로 볼록한 곡선 이런 것으로 이루어져 있다는 것이죠. 이런 기학적인 부분들이 어떻게 연관되어 있는가에 따라 숫자가 달라진다는 것이죠.

 

 

여기까지는 인정하시겠죠. 그럼 그동안 인공지능을 연구한 사람이 이런 접근 방법으로 숫자를 인식하려고 노력하지 않았겠습니까? 그러나 다 실패했다는 것이죠. 이게 성공했다면 이미 이런 식으로 접근한 방법론이 인공지능이나 뉴런넷 교과서에 이미 다 나와 있겠죠.

 

 

이와 같이 숫자 인식하는 간단한 것조차 인간이 사물을 인지하는 능력하고 아무런 관계가 없습니다.

 

 

그러나 조그만 더 생각을 해보죠. 우리가 실제 숫자를 인식할 때 위와 같은 방법으로 곰곰이 생각할까요? 물론 있기는 있습니다. 중요한 사건이 터졌을 때 숫자 이미지가 훼손 되었을 경우 위와 같은 방식으로 생각을 한다는 것이죠.

 

그러나 일상적으로 우리가 숫자 인식하는 것은 숫자 이미지를 보는 순간 바로 판단한다는 것이죠. 사람들은 뇌에 있는 신경세포의 뉴런과 여기에 그물처럼 연결된 축에서 숫자를 보는 순간 축의 강도가 달라지고 뉴런이 활성화되고 비활성화되고 이런 것이 순간적으로 이루어져 숫자를 판별한다고 그냥 믿고 있습니다.

 

 

여기까지가 끝입니다. 이 이야기를 좀 더 구체화하여 실제 뉴런넷에서 적용해서 수학적으로 모형화시켜 실제 문제에 적용시킨 예를 보지 못했습니다. 뉴런넷 책 설명에도 앞에서 이야기한 정도에서 바로 끝납니다.

 

 

간단한 숫자 인식하는 것도 제대로 못하는 이런 상황에서 기계가 인간이 되어 스스로 추론하고 판단해서 앞으로 엄청난 사회가 온다는 주장이 얼마나 과장된 주장인지 아시겠죠.

 

 

그냥 큰 데이터에서 확률적 모형을 적용하고 무조건 결과에 잘 피팅(fitting)시키는 것에 불과합니다. 아직까지는요.

 

 

흔히 이야기하는 다중페셉트론 뉴런넷의 경우를 한번 보죠. 중간 은닉층에 활성화 함수가 들어 있다는 것 빼면 이건 그냥 우리가 아는 1차 함수랑 크게 다르지 않습니다.

 

y=ax

z=by

 

이렇게 되어 있으면 z와 x는 무슨 관계일까요?

 

당연히 z=(b*a)x=cx

 

 

즉 일차함수가 되는 것이죠. 여기서 x는 투입층, y는 은닉층, z는 결과층입니다. 은닉층이 많아도 개념을 똑같습니다.

 

y1=ax, y2=by1, y3=cy2, y4=dy3, z=ey4, 즉 y1, y2, y3, y4 등 4 개의 은닉층이 있어도

 

z와 x와의 관계는

 

z=(e*d*c*b*a)x

 

 

이런 일차식에 불과하다는 것이죠. 단지 각 은닉층과 결과층에서 활성화 함수라는 것을 더 적용시키는 것에 불과합니다.

 

 

또 데이터 x가 단지 실수가 아니라 벡터값이 들어가는 것이죠. 숫자 이미지라는 0=(0,0,0,1,0,...,0), 1=(0,0,1,1,0,,,,,0) 이런 식의 벡터 이미지가 들어가는 것이죠. 그래서 기존에 알려진 어떤 물체의 정보, 숫자라면 0에서 9까지, 또는 남녀 구별하는 것이라면 남자인지 여자인지 이런 구별의 정보가 데이터에 있으면 여기에 잘 맞을 수 있도록 a, b, c, d, e 값을 구해낸다는 것이죠. 그런 다음 기존의 새로운 물체가 들어오면 앞에서 구한 a, b, c, d, e 이런 값에 적용해서 판별을 한다는 것이죠. 나중에 이 판별이 틀렸으면 다시 학습, a, b, c, d, e 값을 변형시키는 것이죠. 물론 이 과정에서 검증하는 작업도 하는데 제가 이런 작업을 직접해본 게 아니라서 그 과정이 얼마나 중요한지는 잘 모르겠습니다.

 

 

그래도 뇌세포와 조금 비슷한게 Boltzmann 머신이고 딥 러닝에서 약간 느슨한 형태의 restricted Boltzman machine이 사용되는 모양입니다. 이것도 제가 인터넷에서 본 책에서는 구체적인 적용은 설명하지 않고 추상적인 이론 설명만 있네요. 나중에 기회가 있으면 다른 책이나 논문을 더 봐야 평가를 할 수 있을 것 같습니다.

 

 

2.

 

앞에서 이야기한 것처럼 데이터에 우리가 판별하려는 정보가 들어 있으면 이것 supervised 방식이라고 하고, 지도 학습이라고 하나요. 그렇게 이야기하고 이런 정보가 없으면 unsupervised 방식이라 합니다. 좀 더 넓게 이야기 하면 통계학에서 종속변수 개념이 있으면 supervised라 하고 그렇지 않으면 unsupervised라고 하는 것 같습니다.

 

 

통계학에서 unsupervised의 대표적인 분석이 군집분석이라는 것입니다. 생물학에서 기존에 알려져 있지 않던 동물이나 식물집단을 좀 더 세분화 할 때 서로 비슷비슷하게 뭉쳐져 있는 것으로 일단 분류를 한다는 것이죠. 그리고 비슷하게 뭉쳐져 있는 것들의 특징을 파악해 이름을 새로 붙이는 것이죠.

 

 

또 경영학에서 타켓 마케팅에도 유용하게 사용될 수 있습니다. 대표적인 것이 자동차 시장이죠. 어떤 차는 차도 크고, 엔진 파워도 크고, 가격도 비싸고 또 모양새는 좀 보수적이고, 어떤 차는 차는 작지만 엔진 파워도 크고, 이렇게 수 많은 특징을 가진 차가 시장에 다양하게 있다는 것이죠. 그래서 이런 시장에 나와 있는 차들을 서로 비슷한 것 끼리 모울 수가 있고, 기존에 활상화되지 않았던 시장도 파악할 수 있죠. 니치 마켓이라고 하나요.

 

 

supervised 방법의 가장 대표적인 방법이 지금 소개하려는 판별분석이고 그리고 앞에서 언급한 로지스틱 회귀분석 등이 있습니다.

 

 

 

 

3. 판별분석(Discriminant Analysis)

 

조금 상식적이고 간단한 문제를 생각해보죠. 사람의 키 정보를 가지고 성인 남자인지 여자인지 판단을 해보는 문제를 생각해보죠.

 

만약 키가 170이라 하면 당연히 남자로 판단하겠죠, 또 키가 155라 하면 당연히 여자라 판단하겠죠. 우리의 이런 판단은 어디서 나왔을까요?

 

두 가지 생각을 할 수 있습니다. 키가 170이라는 정보가 들어왔다고 하죠.

 

1) 먼저 확률을 구합니다. a=Pr(키=170 |남자일때), b=Pr(키=170 |여자일때)

즉 a, b 두 확률을 구해 a가 크면 남자라 판단하고 b가 크면 여자라 판단하는 것이죠. 이건 주류통계학 생각이고 베이지안 생각은 아닙니다. 아래 그림을 참조하죠.


    


 

      

2)


두 번째는 남자집단의 평균 키와 여자 집단의 평균 키를 구해서 170과 거리를 재 본다는 것이죠. 남자 키의 평균이 174.3이고 여자 평균키가 161.5라고 하면 170은 남자 평균 키하고 가깝겠죠. 그래서 남자라 판단한다는 것이죠.

 

키만 가지고 판별하기에는 너무 오판이 많겠죠. 그래서 좀 더 현실적으로 하면 몸무게도 추가할 수 있습니다. 즉 데이터의 키와 몸무게 정보가 들어오면 여자지 남자지 판단한다는 것이죠.

 

이렇게 데이터의 변수가 두 개인 경우나 아니면 세 개, 네 개 더 있어도 위의 두 개의 생각은 다 적용됩니다.

 

 

마지막으로 좀 골치 아픈 방법이 있는데 이게 최초에 나온 방법입니다. 이 판별분석은 통계학에서 유명한 Fisher 라는 사람이 만들었습니다. 주류 통계의 대부분의 생각은 이 사람을 거쳤다고 보시면 됩니다. 제가 서 있는 라인의 대가인 Jaynes 교수는 이 Fisher를 학문적인 것만 아니라 인간적으로도 신랄하게 비판합니다. 이분 책에 보시면 있습니다. 인터넷에 돌아다닙니다. Probability Theory: The Logic of Science 이라는 두꺼운 책인데 수학은 거의 안 나오는데 어렵습니다. 특히 주류 통계학에 익숙해져 있는 사람은요.

 

이 사람은 생각은 논문 쓰신 분들은 다 아시는 기초 분석인 분산분석(ANOVA)에 있습니다.

키 x1과 몸무게 x2 이 두 개의 변수, 즉 정보가 들어왔을 때 어떻게 남녀를 분류하는가?

 

이 Fisher의 생각은 기존의 알려진 데이터에서 두 개의 변수의 선형 결합식을 만듭니다.

 

 

 

즉, z=a+b*x1+c*x2

 

 

 

이 두 개 변수의 결합식을 만든 다음 새로운 사람의 키와 몸무게 정보가 들어오면 위의 식에 대입해서 양 집단의 평균과의 거리를 비교해서 남여 구별을 합니다. 그런데 위의 식을 어떻게 만들것인가 이게 문제죠. 즉 기존의 알려진 정보의 데이터 식에서 a, b, c 값을 어떻게 추정할 것인가 하는게 핵심 문제입니다.

 

 

이 사람의 생각은 남자 데이터 집단과 여자 데이터 집단을 위의 z식, 즉 판별식이라 합니다. 이 z 식에 투사(projection)를 한 다음 그렇면 남자 집단의 키와 몸무게 데이터는 일차원 변수 데이터로 변하고, 여자 집단의 키와 몸무게도 일차 변수 데이터로 변합니다. 즉 위의 그림과 같은 1차원 선상의 데이터로 변합니다.

 

 

이때 남자와 여자 집단의 평균은 가능하면 멀리 떨어져 있고, 그룹간 변동이라 합니다. 남자 집단 내에서의 변동과 여자 집단 내에서의 변동은 가능하면 작게 하는 그렇게 만들어 주는 a, b, c를 구한다는 것이죠.

 

 

아래 그림은 Johnson & Wichern의 Applied Multivariate Statistical Analysis 책에 있는 그림입니다. 인공지능을 심각하게 공부해야 하는데 기초 수학 특히 행렬이 약하거나 통계학이 약하면 이 책을 꼭 공부해야 합니다. 이것도 인터넷에 떠돌아 다닙니다.




 

 

그러나 위의 세 개의 생각은 거의 비슷합니다. 이런 이야기를 다음에 더 이야기하고 고유값, 고유벡터, 주성분분석, 그리고 인공지능에서 많이 나오는 SVM에 대해서도 간단하게 이야기해보죠.

 

 

 

 

 

 

 

 


'고급통계모형 > 판별분석discrimnant' 카테고리의 다른 글

판별분석2  (0) 2016.08.06