인공지능관련/인공지능(AI)

적합도3

학위논문통계 2017. 6. 12. 02:17




0. 이야기 전개 순서


앞으로 이야기 진행 방향에 대해서 조금 이야기 하겠습니다. 큰 그림을 알아야 헤매지 않거든요.



지난번 적합도와 모형의 선택 이야기를 했을 때 오차, (흔히 손실이라고 이야기합니다)를 다음과 같이 정의했습니다.

오차=거리(D, M) 여기서 D는 데이터고 M은 model입니다.


데이터 D, 즉 Y들이 정규분포를 하고 모델 M이 가장 단순한 수학인 선형함수인 경우, 대표적으로 독립변수 X들의 선형결합, b0+b1X1+b2X2+... 인 경우 문제가 쉽게 해결됩니다. 그러나 여기서 이론을 조금만 진행시켜도 골치 아픈 문제들이 많이 생겨납니다.


1) Y가 정규분포가 아니고 예를 들어 0, 1의 값만 갖는 베르누이 시행인 경우 어떻게 할 거인가?


2) 모형이 간단한 모형 M0가 있고 좀 더 복잡한 모형 M1이 있을 경우 이 두 경우를 어떻게 비교할 것인가?


3) 위의 경우는 결정론적인 성격입니다. 확률적인 사고가 아닙니다. 우리가 관찰한 하나의 데이터에서 적합도를 측정해서 판단하는 것인 과연 좋은 것인가 하는 문제가 생깁니다. 당연히 아니죠.


예를 들어 어떤 사업에 투자를 결정할 때 어떤 날 우연히 이익이나 손실이 났다고 하죠. 그럼 이 하루의 손익을 믿고 투자를 결정할 것인가? 절대 그렇지 않죠. 수 많은 상황 속에서 평균적으로 이익이 날 것인가 손실이 날 것인가 판단을 하는 것이죠. 그래서

 

손실=거리(D, M)로 판단하지 않고 리스크=E[거리(D, M)]를 가지고 판단을 한다는 것이죠. 여기서 E는 기댓값, 즉 데이터 D의 확률분포의 기댓값을 구한 것입니다.


현실적으로 이 리스크를 알기 힘들기 때문에 인공지능에서는 데이터를 쪼개 하나는 학습, 즉 모형의 모수들을 추정하는 학습데이타(training data set)와 여기서 나온 모형에서 다시 점검하는 검증데이타(test data set)로 쪼개서 작업을 합니다.


4) 앞에서 이야기한 데이터 D가 정규분포인 경우, 그리고 예측모형이 선형모형인 경우 즉 회귀분석이나 분산분석의 경우입니다. 이 경우 통계학이나 현실 자료 분석에서 너무 많이 사용하는 것이기 때문에 여기에 대해 좀 더 자세히 설명하겠습니다.




1. 정규분포와 선형 모형의 경우


1) 피타고라스 정리


지난번 Y의 변동=독립변수 X들이 설명하는 변동+독립변수가 설명할 수 없는 변동으로 나눠진다고 했습니다. 이걸

회귀분석에서는


SST(또는 TSS)=SSR+SSE


분산분석에서는


SST=BSS+WSS


라고 표현합니다. 그런데 이 SST나 SSR, SSE는 전부 제곱의 형태로 되어 있습니다. 그럼 우리가 딱 생각 나는게 피타고라스 정리입니다.


C2=A2+B2


네 맞습니다. 정확하게 피타고라스 정리를 이야기하고 있습니다. 이 직각 삼각형 그림은 통계학과에서 배우는 모든 회귀분석 책에 나옵니다.


여러분이 지난번 키와 몸무게 데이터에서 딱 세 사람의 데이터만을 가지고 3차원 공간에서 그림을 한번 그려 보세요. 독립변수는 상수항을 표시하는 1벡타와 키 벡타를 그리고 종속변수 Y는 체중 벡터를 그리고요. 그래서 체중 벡터를 1벡터와 키 벡터가 만드는 평면 공간에 투사하면 정확한 직각삼각형이 나오고 SST와 SSR, SSE의 기하학적인 의미를 이해할 수 있습니다.



2) 결정계수와 F 검증


그럼 여러분 생각에 적합도를 이야기 할 때


적합도=SSR/SST(이게 결정계수이고 상관계수의 제곱입니다) 즉 전체 데이터 Y의 변동 중에서 모형, 즉 독립변수 X들이 설명하는 변동 이것으로 검증을 하면 될 것 같은데 이걸로 하지 않고 이상한 F 검증이라는 것을 하는지 의문을 품을 수가 있습니다.


불행히도 결정계수 SSR/SST가 어떤 분포를 하는지 우리가 알 수가 없습니다. 그래서 가설 검증이 불가능하고요. 그러나


SSR/SSE (여기서 자유도는 생락합니다) 이 값은 F 분포를 한다는 것은 쉽게 증명을 할 수 있습니다.


이거 증명은 생각보다 쉽습니다.


1) 정규분포 Y의 제곱은 카이제곱 분포를 한다.

2) 확률변수 X들과 Y들이 독립이면 이 X들과 Y들의 함수 g와 h, 즉 g(X들)과 h(Y들)들도 서로 독립이다. 이 증명은 쉽습니다. 독립의 정의를 알면 2줄이면 끝납니다.

3) 카이제곱/카이제곱 형태에서 분자, 분모 카이제곱들이 서로 독립이면 F 검증을 한다.

4) 투사행렬 P는 PP=P라는 idempotent 성격을 가지고 있다.

 

이 말은 3차원에의 한 점 y를 방바닥으로 수직으로 투사했을 경우 생기는 점 w=Py(1식)라고 표시할 수 있습니다. 그러면 이 방바닥에 있는 점 w를 다시 방바닥에 투사하면 결국 같은 점이 됩니다. 즉,


w=Pw입니다. 그래서 w=Pw=P(Py)=PPy 그러나 1식에서 w=Py


그래서 PP=P가 됩니다. 즉 투사행렬 P는 두 번 곱하면 다시 P가 되는 성격을 가지고 있습니다.

아마 위 4개의 정리를 이용하면 쉽게 증명이 될 겁니다. 혹시 여기 오는 통계학과 학생들을 위해 썼습니다.



3) 추가적인 설명력


그럼 독립변수가 X(X1, X2, X3, X4, X5)가 5개가 있다고 하죠. 그리고 간단한 모형 M0의 독립변수는 X1, X2, X3, 이고 복잡한 모형 M1는 독립변수가 X1, X2, X3, X4, X5 5개가 다 있다고 하죠. 그럼


SST=SSR+SSE


에서 이게


SST=SSR(X1, X2, X3)+SSR(X4, X5)+SSE


이렇게 간략하게 되는냐 하는 문제가 있습니다. 즉 독립변수 전체의 셜명력이 두 개의 독립변수 집단들의 설명력으로 깔끔하게 쪼개지는가 하는 점입니다.


불행히도 이렇게 안됩니다. 논리적으로도 수학적으로도 위 처럼 SSR이 SSR1+SSR2 이렇게 쪼개지지 않는다는 것이죠. 그럼 이렇게 하는 수 밖에 없습니다.


SSR=SSR(X1, X2, X3)+SSR(X4, X5|X1, X2, X3)


이런 식으로 쪼개는 수 밖에 없다는 것이죠. 뒤 부분의 SSR은 X1, X2, X3가 이미 모형이 들어간 상태에서 독립변수 X4와 X5가 추가적으로 Y의 변동을 설명하는 정도를 의미합니다.


그래서 SPSS에서 분산분석 할 때 type를 설정하라는 메뉴가 나오는데 이 type이 위의 SSR를 쪼개는 유형을 말합니다. 그리고 회귀분석의 t 검증의 해석 역시 다른 독립변수가 이미 들어간 후 이 변수의 추가적 설명력의 대한 검증을 이야기합니다.


다음 시간에는 직각삼각형 그림을 그려서 설명을 하고 구조방정식에서의 거리(D, M)가 뭘 의미하는지 간단하게 설명하겠습니다.




2. Y가 베르누이나 포아송 분포일 경우


Y가 취하는 값이 0과 1 두가지 밖에 없는 경우 모형을 M=b0+b1X1+b2X2+.. 이렇게 놓을 수가 없습니다. 왜냐 하면 x가 취하는 값에 따라 Y의 예측모형인 M은 -무한대에서 +무한대까지 값을 가지기 때문입니다. Y는 0과 1 사이에서 값을 갔는데 그 예측모형은 -무한대에서 +무한대까지 값을 갖는다는 것이 말이 안되는 것이죠.


이런 문제는 현실에서 인공지능에서 흔히 나오는 경우입니다. 판사가 유죄를 선고해야 할지, 무죄를 선고해야 할지, 의사가 수술을 해야 할지 하지 말아야 할지, 기업이 투자를 해야 할지 아니면 포기를 해야 할지, 즉 우리의 의사결정 자체가 이 Y가 0과 1의 값만 취하는 모형입니다. 인공자동차의 경우 중요한 문제 중의 하나가 차가 서야 할지 아니면 계속 운전을 해야 할지 이걸 실시간에 계속 의사결정을 내려야 합니다.


만약 안전을 위해 약간 수상한 상황이 생기면 즉, 앞이나 옆에 이상한 물체가 인식되면 가능하면 정지를 해야 합니다. 그러나 조금 수상하다고 마구 정지하면 뒤에 오는 차와 충돌할 가능성이 많이 생깁니다. 뒤 차는 아무 문제없다고 계속 운전해 나가는데 앞 차가 갑자기 멈추면 충돌 사고가 날 수 밖에 없죠.


하여간 이 Y의 값이 정규분포가 아닐 경우 해결책은 선형식 b0+b1X1+b2X2+.. 에다가 0과 1 사이에 값만 갖는 어떤 함수 g를 덮어 버리는 것입니다. 이 즉 Y 대신 기댓값 E[Y]=g( b0+b1X1+b2X2+..)가 되게끔 모형을 만드는 것입니다. 이 함수 g의 대표적인 함수가 로지스틱 함수이고 또 다른 함수로 누적확률분포가 있을 수 있습니다. 뉴런넷에서는 sigmoid 함수라고 하는 것들입니다.


Y가 베르누이가 아니고 포아송 분포의 경우, 즉 일정 시간이나 일정공간에 사건이 일어난 횟수의 경우 Y의 값은 0 이상입니다. 이 경우 지수함수를 사용합니다.

 

E[Y]=g(b0+b1X1+b2X2+..)= e(b0+b1X1+b2X2+..)


이런 모형을 로그 선형 모형이라 합니다. 로그를 취하면 다시 선형 모형이 나오기 때문입니다.

이에 관한 이론을 통계학에서 일반화 선형모형 이론이라고 하는데 여기서는 함수 g로 이야기하지 않고 g의 역함수인 g-를 사용하고 이를 link 함수라 합니다. 대표적인 link 함수가 logit 함수입니다.

 

logit=p/(1-p)=b0+b1X1+b2X2+..


다음에 조금 더 이야기 하죠.


'인공지능관련 > 인공지능(AI)' 카테고리의 다른 글

적합도5  (0) 2017.07.21
적합도4  (0) 2017.07.09
적합도3  (0) 2017.05.21
적합도2  (0) 2017.05.20
적합도1, 모형 선택  (0) 2017.05.11