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

적합도1, 모형 선택

학위논문통계 2017. 5. 11. 01:59

 

 

오늘은 적합도에 관해서 조금 이야기를 해 보겠습니다.

 

 

우리가 관심을 가지고 있는 현상을 Y라고 하고 이 현상을 잘 설명해 줄 수 있는 변수를 X라고 하죠. X는 (X1, X2, X3,...) 같이 여러 개의 변수일 수 있습니다.

 

요새 사람들이 다이어트에 관심이 많으니까 몸무게를 Y라고 하죠. 그리고 이 몸무게에 영향을 주는 변수를 X라고 하죠. 예를 들어 X=(키, 허리둘레) 이런 것들이 있을 수 있죠.

 

그럼 통상 우리는 Y를 설명하기 위해서 가장 간단한 수학 모형을 사용합니다. 선형결합(linear combination), 즉 직선 모형을 사용합니다. 중학생도 아는 이 간단한 수학식을 대부분 사용한다는 것이죠. 이게 직선 모양이 아니면 굉장히 복잡한 문제들이 생겨납니다.

 

뉴럴넷 자체가 이런 기본적인 선형식에서 출발합니다.

 

그래서 우리는 모형식을

 

Y=b0+b1*X+b2*X2

 

말로 쓰면

몸무게=b0+b1*키+b2*허리둘레

 

 

위의 모형을 통계학에서는 회귀분석 모형이라고 하고 또 뉴렬네트웍의 기본 모형입니다. 아래 그림을 보시죠.

 

 

 

 

 

왼쪽이 투입층(input layer)이고 오른쪽이 결과층(output layer)입니다.

 

 

사람에 따라서는 키는 몸무게에 영향을 준다고 생각하지만 허리둘레는 몸무게에 별 영향이 없다고 생각할 수 있습니다. 이런 경우 모형식은

 

Y=b0+b1*X

말로 쓰면

 

몸무게=b0+b1*키

 

 

이렇게도 생각할 수 있습니다.

 

 

위의 X=(키, 허리둘레) 두 개의 독립변수가 들어간 모형은 M1이라고 하고 아래 X=(키) 한 개의 독립변수가 들어간 모형을 M0라고 하죠.

 

그럼 모형 M0는 M1에 네포(nested) 되었다고 합니다. 즉 Mo가 M1의 간단한 모형이고 b2=0인 특수한 케이스인 모형입니다.

 

 

그럼 이 두 개의 모형 M0과 M1 중 어떤 것을 선택하는 것이 좋을까 하는 문제가 생깁니다. 물론 이런 판단은 우리가 조사한 데이터를 보고 결정을 해야 하겠죠.

 

 

이걸 우리가 아는 가설검증의 모양으로 고치면

 

H0(귀무가설): M0이 맞다

H1(대립가설): M1이 맞다

 

이런 식으로 되고 여러분이 아는 통계학 책에서는

 

H0: b2=0이다.

H1: b2=0이 아니다

 

이런 식으로 됩니다. 수준이 낮은 통계학책에서 나오는 가설 모양을 쓰지 않고 위의 모형 M0, M1을 쓰면 상당히 전문가 냄새가 납니다. 좀 잘난 척을 할 수 있다는 것이죠.

 

그러나 고급 개념을 이해하려면 위의 모형으로 생각하는 습관을 길러야 합니다. 더 고급스럽게 하면 확률분포로 쓸 수도 있습니다.

 

 

상식적으로 이 두 개의 모형 중에서 현상 몸무게를 더 잘 설명하는 모형이 좋겠죠. 즉 모형의 적합 정도가 더 좋은 것을 선택한다는 것이죠. 그러나 앞에서 여러 번 이야기를 했지만 이 독립변수를 많이 넣으면 넣을수록 적합도, 설명력은 항상 올라가게 되어 있습니다. 대선 후보 지지 같은 황당한 변수로 넣어도 무조건 적합도, 설명력은 올라가게 되어 있습니다.

 

그래서 원칙이 좀 더 복잡한 모형을 쓰면 적합도, 설명력은 올라가는데 상당히 많이 올라가야 복잡한 모형 M1을 사용하고 올라가도 별로 올라가지 않으면 가능하면 간단한 모형 M0를 선택한다는 것이죠. 이게 통계학에서 절약의 법칙이라고 하고 오캄의 면도날이라는 법칙입니다.

 

 

뉴럴네트웍에서는 원래 이런 문제를 해결하는 복잡한 이론이 없기 때문에 소위 복잡한 모형을 항상 선택하게 되는 과적합(overfitting) 문제가 생깁니다.

 

 

그럼 이 적합도를 어떻게 측정할가요?

 

가장 간단한 방법이 관심있는 현상 Y와 이것을 설명하는 모형식 즉 g(X)간의 거리를 구하는 방법입니다. 우리 예를 들면

 

거리(Y, g(X)) = (Y-g(X)2

 

 

이걸 구하면 된다는 것이죠. 위 식에서 루트는 뺐습니다. 위의 공식이 모형식 g(X)가 현상 Y를 설명하지 못하는 부분이죠. 이 오차가 적은 모형을 선택하면 된다는 것이죠.

 

그럼 간단히 M1인 경우 g(X)=b0+b1*X1+b2*X2 또는 M0인 경우 g(x)=b0+b1*X1 과 같이 직선식이라고 하죠.

 

그럼

 

거리(Y, M1)=(Y-b0-b1*X1-b2*X2)2

 

거리(Y, M0)=(Y-b0-b1*X1)2

 

 

그럼 어떤 문제가 생기는가 하면 우리가 데이터, 즉 설문조사나 또는 관찰 실험에서 Y와 X를 관찰하였다고 해도 b0, b1, b2 값을 모르니까 저 거리를 구할 수가 없다는 것입니다.

 

그래서 데이터에서 먼저 저 모르는 값 b0, b1, b2 등을 먼저 구해야 합니다. 이 모르는 값 b0, b1, b2 등을 통계학에서 모수(parameter)라고 하고 데이터에서 이 모르는 모수 값을 구하는 것을 추정(estimation)이라 하고 우리가 현재 가지고 있는 데이터에서 이 모수값에 대해 통박을 굴려서 나온 값을 추정치(estimate)라고 합니다.

 

 

그럼 데이터를 가지고 이걸 어떻게 구하는가? 당연히 이 거리(Y, g(X))를 가장 적게 만드는 b0, b1, b2 값을 구하면 됩니다. 이런 방법을 최소제곱법(least square)라고 합니다. 가장 고전적인 방법이죠.

 

간단합니다. 최소값을 구하니까 미분해서 0으로 놓고 방정식을 풀면 됩니다.

 

 

위의 식은 확률적인 개념이 들어간 것이 아니니까 결정론적인 세계관에서 적용되는 것입니다. 문제는 현재 가지고 있는 데이터에서 저 방법으로 쓴 게 다른 데이터에서는 좋은 결과를 가지고 온다는 보장은 없는 것이거든요.

 

그러나 기본 회귀분석에서는 이 최소제곱법이 통계학에서 흔히 쓰는 MLE라는 것이 증명되어 있습니다. 다른 데이터에서도 괜찮은 결과가 나온다는 것이죠. 이걸 Gauss-Markov 정리인가. 아마 그럴 겁니다. 책 찾아보기 귀찮아서요.

 

그래서 데이터를 가지고 모형에 있는 모수들을 추정한 다음 위의 오차를 구해 이 모형들의 적합도 수준을 파악한다는 것이죠.

 

 

 

이렇게 모형의 모수를 추정하는 것을 뉴럴넷에서는 학습(learning)이라 합니다. 뉴럴넷에서는 새로운 데이터가 하나씩 업데이트 될 경우 이 모수 추정값들을 변화 시키는 것, 즉 이 모수 추정값을 업데이트 시키는 것도 학습에 포함됩니다.

 

통계학에서는 이런 개념이 없고요. 통계학에서는 뉴럴넷처럼 실시간으로 모수 추정값을 업데이트 하는 것이 아니라 새로운 데이터가 추가로 들어오면 다시 기존의 데이터와 합쳐 다시 구해야 합니다.

 

다음에는 가공의 몸무게, 키, 허리둘레를 가지고 실제 위의 거리를 어떻게 구하는지 SPSS에서 돌려 보겠습니다.

 

 

 

문제)

 

상식적으로 키와 몸무게는 서로 상관성이 있습니다. 그래서 키와 몸무게는 서로 상관관계가 높다라는 말은 논리적으로 틀린 말은 아닙니다. 그러나 키가 몸무게에 영향을 미친다는 인과관계 논리는 타당하게 여기지만 몸무게가 키에 영향을 미친다는 인과관계 논리는 받아 드리기 힘들죠. 왜 그렇까요.

 

궁금한 분들은 계량경제학 책을 한번 보시기 바랍니다.

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

적합도3  (0) 2017.05.21
적합도2  (0) 2017.05.20
연관분석3  (0) 2017.03.15
연관분석2  (0) 2017.03.01
연관분석1  (0) 2017.02.15