태그 : 통계학

텍스트의 통계학: (2) 셰익스피어의 영혼은 몇 그램?

텍스트의 통계학: (1) 구글신의 새 마음

텍스트는 문장으로, 문장은 단어로 이뤄져있다. 누군가 "철수는 영희를.."이라고 말하면 우리는 그 다음에 어떤 단어가 나올지 귀를 쫑긋 세우고 기다릴 것이다. 그 다음 자리에는 "사랑한다"가 나올 수도 있고 "미워한다"가 나올 수도 있다. 다시 말해 한 문장에서 어떤 단어가 나올지는 모두 확률적이다. 유니그램(unigram) 모형은 이것을 가장 간단하게 표현하는 것이다.

'유니(uni-)'는 '하나', '그램(gram)'은 '말'이라는 뜻이다. 유니그램 모형은 하나하나의 단어가 어떤 확률 분포에서 독립적으로 추출되었다고 가정한다. 쉽게 말해 한 면마다 단어가 쓰인 거대한 주사위를 던져서, 나온 단어들로 문장이 이뤄졌다고 보는 것이다. 물론 말이 안된다. 하지만 단순히 각 단어가 사용되는 빈도를 알고 싶다면 유니그램 모형으로 충분하다.

유니그램 모형을 가지고 텍스트를 생성할 수도 있다. 단어마다 문장에서 나타날 확률을 알고 있으므로, 거꾸로 단어들을 이 확률에 따라 랜덤하게 생성하는 것이다. 다음은 셰익스피어의 글들을 유니그램 모형에 학습시킨 다음에, 새로운 문장을 생성하게 한 것이다.

(a) To him swallowed confess hear both. Which. Of save on trail for are ay device and rote life have.
(b) Every enter now severally so, let.
(c) Hill he late speaks; or! a more to leg less first you enter.
(d) Will rash been and by I the me loves gentle me not slavish page, the and hour; ill let.
(e) Are where exeunt and sighs have rise excellency took of. Sleep knave we. near; vile like.

무슨 말인지 해석이 안되는 건 여러분이 영어를 못해서 그런게 아니라 유니그램 모형이 영어를 못해서 그렇다. "or!"라니 도대체 뭔소리야. 유니그램 모형은 그대로 쓸모가 있지만, 아무래도 이것만으로 할 수 있는 건 제한적이다. 그럼 유니그램 모형을 확장해서 좀 더 쓸모 있게 만들어보자.

그것이 바이그램(bigram) 모형이다. '바이(bi-)'는 '둘'이라는 뜻이다. 아래 그림처럼 한 단어가 나타날 확률이 앞 단어에 영향을 받는다고 가정하는 것이다.

그림으로 보는 통계: (1) 쥐와 사람의 관계에서도 설명했지만 관찰된 사건이 머리-대-꼬리로 연결하는 두 사건 사이에는 아무런 관련이 없다. 위의 그림에서 '사랑한다'가 나타날 확률은 '영희를'에만 영향을 받지, '철수는'에는 영향을 받지 않게 된다. 그래서 바이그램에서는 항상 바로 앞단어와 지금 단어, 두 단어의 관계만 문제가 된다. 그래서 '바이'그램인 것이다. 이 모형은 통계학에서 1차 마코프 연쇄(first-order Markov chain)라고 한다.

유니그램의 경우와 마찬가지로 바이그램에게 셰익스피어를 학습시켜서, 문장을 생성하게 해보았다.

(a) What means, sir. I confess she? then all sorts, he is trim, captain.
(b) Why dost stand forth thy canopy, forsooth; he is this palpable hit the King Henry. Live King. Follow.
(c) What we, hath got so she that I rest and sent to scold and nature bakrupt, nor the first gentleman?
(d) The world shall - my lord!

여전히 말은 안되지만 유니그램 모형보다 좀 더 문장 꼴을 한다. 물론 말이 안되기는 여전히 마찬가지다. 그럼 똑같은 방식으로 바이그램 모형을 확장해서 트라이그램(trigram) 모형을 만들 수도 있겠다. '트라이(tri-)'는 3이라는 뜻이므로 이번엔 한 단어가 나타날 확률이 바로 앞단어만이 아니라 그 앞단어에도 영향을 받는다. 숫자가 하나 더 늘었니까 통계학적 명칭으로는 2차 마코프 연쇄(second-order Markov chain)이 되겠다.

역시 트라이그램으로 생성한 문장.

(a) Sweet prince, Falstaff shall die. Harry of Monmouth's grave.
(b) This shall forbid it should be branded, if renown made it empty.
(c) What is't that cried?
(d) Indeed the duke; and had a very good friend.
(e) The seet! How many then shall posthumus end his miseries.

여전히 말이 안되긴 마찬가지지만 "had a very good firend"처럼 멀쩡한 소리도 한다. 유니그램, 바이그램, 트라이그램 같은 모형을 모두 합쳐서 N그램이라고 부르는데 N을 늘리면 늘릴 수록 점점 더 말같은 소릴 하는 모형을 만들 수 있다. 마지막으로 테트라그램(tetragram) 모형, 3차 마코프 연쇄로 생성한 문장을 보자. 예상했겠지만 테트라(tetra-)는 '넷'이란 뜻이다.

(a) King Henry. What! I will go seek the traitor Gloucester. Exeunt some of the watch. Agreat banquet serv'd in;
(b) Will you not tell me who I am?
(c) It cannot be but so.
(d) Indeed the short and the long. Marry, 'tis a noble Lepidus.
(e) They say all lovers sear more performance than they are wont to keep obliged faith unforfeited!

이 간단한 N그램 모형이 N을 늘리면 늘릴 수록 점점 더 셰익스피어처럼 글을 쓴다. 하지만 N그램만으로는 완전한 문장을 쓸 수가 없다. 일단 N그램 모형은 의미론적인 부분을 처리하는 부분이 전혀 없기 때문에 아무리 N이 늘어나도 자기가 무슨 소릴 하고 있는지 모르는데다가, 구문론적인 관계를 전혀 포착하지 못하기 때문이다. 예를 들어 "철수가 영희를 사랑했을 때, 영희는 철수를 미워했다."라는 문장이 있다면 앞 절의 동사가 '과거'이므로 뒷 절의 동사도 '과거'여야 한다. 이런 부분은 단순히 N을 늘려서 포착할 수 있는 게 아니다.

그래도 N그램 모형은 간단한 텍스트 처리를 할 때는 요긴하다. 예를 들어 "눈이 아파"라는 문장이 있다면 이 '눈'은 펄펄 내리는 눈(雪)이 아니라 사람의 몸에 있는 눈(目)일 확률이 높다는 것 정도는 N그램 모형으로 식별할 수 있다. 따라서 검색엔진 같은데서 활용하면 동음이의어를 더 잘 구별할 수 있게 만들 수 있다.

또, 오자 교정에도 활용할 수 있다. "바람이 푼다"라는 문장이 있다면 '바람'도 '푼다'도 모두 사전에 있는 말이니까 일반적인 워드프로세서는 오타라고 감지를 하지 못한다. 그런데 N그램 모형을 이용하면 ㅂ을 ㅍ으로 잘못 칠 확률과 '바람이'라는 말 뒤에 '푼다'가 나올 확률을 비교해서 앞의 확률이 높으면 오타라고 판단하고, 뒤의 확률이 높으면 오타가 아니라고 판단하게 만들 수 있다. 간단한 모형만 가지고도 좀 더 영리한 오자 교정 프로그램을 만들 수 있는 것이다. 물론 의도적으로 독특한 표현을 쓸 때는 걸리적거릴 수도 있다.

N그램은 그 자체로도 쓸모가 있지만 이것을 N을 늘리는 방법 말고 다른 방식으로 계속 확장해보면 아주 재미있는 모형들을 많이 만들 수 있다. 글이 길어졌으므로, 그건 또 나중에.

(계속)

후주. 본문의 N그램으로 생성한 문장 예제는 모두 Jurafsky, D., & Martin, J. H. (2000). Speach and Language Processing. New Jersey:Prentice Hall.에서 인용한 것이다.

by 아이추판다 | 2009/10/09 17:45 | 트랙백 | 핑백(1) | 덧글(4)

텍스트의 통계학: (1) 구글신의 새 마음

우리는 역사상 어느 때보다도 많은 텍스트를 가진 시대를 살고 있다. 이 글을 포함해 인터넷에는 오늘도 수많은 글들이 올라오고 있다. 인터넷 초창기에는 웹사이트가 몇 개 없어서 사람이 하나씩 읽어보고 웹사이트들을 분류했다. 야후가 이렇게 시작한 회사다. 하지만 현재는 이런 식으로 사람이 읽고 웹사이트를 읽고 분류하는 것은 불가능하다. 따라서 컴퓨터를 이용해 텍스트를 분류하고 검색할 필요가 있다.

컴퓨터를 이용해 텍스트를 다루는 것은 컴퓨터 공학에서는 자연어 처리(natural language processing), 언어학에서는 전산언어학(computational linguistics)라고 한다. 심리학에서는 특별한 용어가 없고 다만 이렇게 사람이 하는 걸 컴퓨터로 흉내내는 것을 통틀어 계산 모형(computational model)이라고 부른다.

전산언어학, 자연어처리, 언어에 대한 계산 모형. 뭐라고 부르든 이들 모두는 언어로 된 자료, 특히 텍스트를 사람과 가급적 비슷하게 잘 처리하는 것이 목적이다. 언어학과 심리학에서 이런 기법들은 단순한 도구가 아니라 검증해볼 수 있는 수단이기도 하다. 이론을 계산 모형으로 만들었을 때, 텍스트를 그럴듯하게 잘 처리하면 그 이론이 실제로 사람의 머리 속에서 일어나는 일을 잘 기술한다고 볼 수 있기 때문이다.

하지만 전산언어학을 언어학 이론의 검증 수단으로 보는데 반대하는 사람들도 있다. 계산 모형이 잘 안 돌아가는 게 이론이 구리기 때문인지, 그 이론을 구현할만큼 기술이 받쳐주지 않기 때문인지 잘 구별할 수 없기 때문이다. 그런데 이 말을 뒤집어보면 기술이 발전하면 그때는 괜찮다는 뜻도 되므로, 어쨌든 그런 기술을 연구할 값어치는 있는 셈이다.

전산언어학에서 사용하는 모형에는 두 종류가 있다. 하나는 규칙 중심의 모형이다. 이것은 우리가 예전에 학교에서 영어를 배울 때와 비슷하다. 컴퓨터에 문법과 단어를 몽땅 때려넣는 것이다. 그런데 이 모형은 생각처럼 잘 돌아가지 않는다. 일반적인 텍스트는 학교 문법에 딱딱 맞지도 않고, 오탈자나 신조어도 많기 때문이다. 그럼 사람들이 실제로 말을 하는 문법과 새로 생기는 말, 오탈자로 생길 수 있는 말을 계속 추가해줘야 하는데 이러자면 배보다 배꼽이 커서 실용적이지 못하다.

또 다른 모형은 통계적 모형이다. 이 단어가 무슨 단어인지, 이게 지금 무슨 문법인지 신경쓰지 않고 그냥 통계로만 싹 발라버리는 방법이다. 일단 만들어서 데이터만 잔뜩 때려넣어주면 컴퓨터가 알아서 '학습'하기 때문에 편리하다. 대신 미묘한 맥락을 잘 파악하지 못하는 단점이 있다. 그래서 두 가지 모형을 섞어서 사용하기도 한다.

통계적 모형이 규칙 중심 모형보다 대체로 더 잘 작동하기 때문에, 혹자는 우리의 머리 속에 문법 따위는 존재하지 않고 우리의 뇌가 실제로는 언어를 처리하는 일종의 통계장치와 비슷하다고 주장하기도 한다. 통계적 모형이 나날이 발전하고 있기 때문에 이 주장은 점점 더 설득력을 얻어가고 있다.

한 가지 예를 들어보자. 구글은 검색 결과의 순서를 결정할 때 '페이지 랭크(page rank)'라는 알고리듬을 사용한다. 이 알고리듬은 인터넷의 문서들이 서로 링크로 연결되어 있고, 좋은 문서는 많은 링크를 받는다는 점을 이용한 것이다. 그런데 마음 속에서 개념들도 마치 인터넷의 문서처럼 연결되어 있고, 하나의 개념이 활성화되면 이런 연결 구조를 따라 활성화 확산이 일어난다. 어떤 말을 들으면 이 말과 연결된 개념들이 잇달아 활성화가 되고 다른 개념들과 잘 연결된 개념이 가장 활성화가 되어 머리 속에 떠오른다. 이 과정을 수학적으로 기술해보면 페이지 랭크 알고리듬과 매우 비슷하게 나온다. 실제로 실험을 해보면 페이지 랭크 알고리듬은 사람들이 자유 연상을 했을 때 어떤 단어를 떠올릴 확률을 다른 계산 모형보다 더 잘 예측한다(Griffiths et al., 2007). 따라서 이론적으로는 모든 인터넷 페이지를 외우고 있는 사람에게 어떤 질문을 던졌을 때 그 사람이 가장 먼저 떠올릴 웹페이지는, 구글에서 그 질문을 검색했을 때 결과에서 제일 먼저 나올 페이지와 같다. 덜덜덜.

물론 앞에서 말한 이유 때문에 실제 텍스트를 잘 처리하는 계산 모형이 우리의 마음을 잘 설명하는 이론이라고 장담할 수는 없다. 어쨌든 재미있기도 하고, 포스팅 소재도 마침 다 떨어졌으므로 텍스트를 다루는 통계적 모형에 대해 하나씩 살펴보자. 언제나 그렇지만 자세한 수학적 설명은 지양하고 과감한 왜곡과 단순화에 기반한 흥미 위주의 연재가 될 것이다.

(계속)

참고 문헌

Griffiths, T. L., Steyvers, M., & Firl, A. (2007). Google and the mind: Predicting fluency with PageRank. Psychological Science, 18, 1069-1076.

그림으로 보는 통계: (1) 쥐와 사람의 관계
그림으로 보는 통계: (2) 쥐는 살찌고 사람은 굶는다
그림으로 보는 통계: (3) 바람난 남편, 외계인 아내

by 아이추판다 | 2009/10/05 19:32 | 트랙백(1) | 핑백(2) | 덧글(19)

그림으로 보는 통계: (3) 바람난 남편, 외계인 아내

그림으로 보는 통계: (1) 쥐와 사람의 관계
그림으로 보는 통계: (2) 쥐는 살찌고 사람은 굶는다

대망의 마지막 회. 일단 베이즈 볼 계산법의 주문을 다시 외어보자. "하얀 원으로 연결되면 관련이 있고, 까만 원으로 연결되면 관련이 없다. 머리-대-머리면 반대." 이번에는 반대의 경우인 '머리-대-머리'를 살펴보겠다.

초가집이 있다. 쥐가 이 집 기둥뿌리를 갉아먹을 수도 있고, 기둥이 썩을 수도 있다. 이 둘은 서로 관련이 없다. 쥐는 기둥뿌리가 썩건말건 갉아먹을 수 있고, 기둥도 쥐가 갉아먹든 말든 썩을 수 있다. 그리고 쥐가 갉아먹어서건 기둥이 썩어서건 아니면 둘 다 때문이건 그렇게 되면 집이 무너질 수 있다.

집이 무너질 수 있다고 해도 여전히 쥐가 기둥을 갉아먹는 것과 기둥이 썩는 것 사이에는 서로 관련이 없다. 이제까지와는 반대로 관찰되지 않은 변수가 머리-대-머리로 연결하는 경우에는 서로 관련이 없는 것이다.

그런데 추석을 맞아 버려두고 온 고향 옛집에 가봤다고 하자. 가보니 집이 무너졌든 아니면 멀쩡하든 집의 상태가 일단 관찰되면 쥐가 기둥 갉아먹는 것과 기둥이 썩는 것은 이제 관련이 있게 된다.
집이 무너졌다고 해보자. 무너진 집을 조사해보니 쥐가 갉아먹은 흔적이 발견된다면 집이 무너진 이유는 이것으로 설명되기 때문에 기둥이 썩었을 가능성은 낮아진다. 기둥이 썩은 게 발견되어도 마찬가지다. 말이 되는 것 같기도 하고 안되는 것 같기도 하다. 그럼 구체적인 수를 가지고 생각을 해보자.

어느 폐촌에 초가집 1000채가 있다. 이중에 20%인 200채는 쥐가 기둥뿌리를 갉아먹는다. 역시 20%인 200채는 기둥이 썩었다. 4%인 40채는 기둥이 쥐가 갉아먹은데다가 썩기까지 했다. 그림으로 보면 아래와 같다.

쥐가 기둥을 갉아먹은 집 200채를 조사해보면 그 중에서 기둥도 썩은 집은 40채(20%)다. 쥐가 기둥을 갉아먹지 않은 집 800채를 조사해보면 그 중에 기둥이 썩은 집은 160채(20%)다. 그러니까 쥐가 갉아먹든 말든 기둥이 썩은 집은 늘 20%인 것이다. 쥐가 기둥을 갉아먹든 말든 기둥이 썩는 것과 관련없다는 건 이 말이다.

그럼 이제 집이 무너지는 경우를 생각해보자. 쥐가 기둥을 갉아먹은 집이 무너질 확률은 50%다. 기둥이 썩은 집도 50%다. 그러니까 각각 160채 중에 80채가 무너진다. 기둥이 썩은데다 쥐가 갉아먹기까지 했으면 무너질 확률은 80%다. 이런 집은 40채가 있으니 32채가 무너진다. 마지막으로 멀쩡한 집도 640채 중엔 10%인 64채가 무너진다. 이제 무너진 집만 그려보면 아래와 같다.


이제 무너진 집 256채만 놓고 보자. 이 중에 기둥이 썩은 집은 112채(=32+80)다. 따라서 어떤 집이 무너졌을 때 기둥이 썩어있을 확률은 112/256 = 약 44%다. 그러데 무너진 집을 조사해보니 쥐가 갉아먹은 흔적을 발견했다고 해보자. 아까는 기둥이 썩을 확률이 20%면 쥐가 갉아먹든 말든 20%였다. 그런데 집이 무너진 경우엔 다르다. 쥐가 갉아먹은 집은 112채 중에 기둥도 썩은 집은 32채이므로 확률은 32/112 = 약 29%가 된다. 그리고 쥐가 갉아먹지 않은 집 144채(=80+64) 중에 기둥이 썩은 집은 80채이므로 확률은 80/144 = 약 56%가 된다. 즉, 집이 무너진 것이 관찰된 경우에는 쥐가 갉아먹었느냐 마느냐에 따라 기둥이 썩어있을 가능성이 달라지는 것이다.

이제까지 살펴본 베이즈 공 계산법을 이용해서 좀 더 복잡한 경우를 다뤄보자. 배우자가 수상한 행동을 하는 것이 관찰되었다. 배우자가 바람이 났을 수도 있고, 사실은 외계인이었을 수도 있다. 배우자가 외계인이라면 한밤 중에 집에 UFO가 찾아올 지도 모른다. 이걸 그래프 모형으로 그리면 아래와 같다.

그럼 베이즈 공 계산법 "하얀 원으로 연결되면 관련이 있고, 까만 원으로 연결되면 관련이 없다. 머리-대-머리면 반대."에 따라 배우자가 바람난 것과 UFO가 집에 찾아오는 건 관련이 있게 된다. 따라서 배우자가 바람을 피우는 게 확실하다면, 우리는 한밤 중에 UFO가 찾아올 것을 걱정하지 않고 편안히 잠들 수 있다.


- 끝 -

감사합니다

by 아이추판다 | 2009/09/29 19:26 | 트랙백 | 핑백(2) | 덧글(19)

그림으로 보는 통계: (2) 쥐는 살찌고 사람은 굶는다

그림으로 보는 통계: (1) 쥐와 사람의 관계

여러분의 열화와 같은(?) 성원에 힘입어 계속되는 연재(먼산). 오늘의 주제는 꼬리-대-꼬리(tail-to-tail) 연결이다. 어느 순간 사람들의 입에 오르내린 "쥐는 살찌고 사람은 굶는다"라는 표어를 생각해보자. 이 표어에서 사람이 굶는 건 쥐가 살찌기 때문이 아니다. 이 두 가지는 "쥐가 쌀을 축낸다"라는 동일한 원인에서 초래된 결과다.

다시 한 번 베이즈 공 계산법의 주문을 외워보자. "하얀 원으로 연결되면 관련이 있고, 까만 원으로 연결되면 관련이 없다. 머리-대-머리면 반대." 쥐가 쌀을 축낸다는 사실이 관찰되기 전에는 "쥐가 살찐다"와 "사람이 굶는다"는 통계적으로 관련이 있다.

쉽게 말해 여러 분이 어느 집에 갔는데 포동포동 살찐 쥐를 보았다고 해보자. 그러면 이 집 사람들은 굶주리고 있을거라고 추론해보는 것도 무리가 아니다. 물론 이 집이 부자집이라 쥐가 쌀독에 대운하를 파도 쌀이 넉넉하다면야 쥐가 살쪄도 사람은 굶지 않을 것이다. 언제나 그렇지만 논리학과 달리 통계학에서는 이럴 수도 있고 저럴 수도 있다. 하지만 그런 불확실성을 잘 '길들이는' 것이 통계학에서는 관건이 된다.

그럼 이제 쥐가 쌀독에 들어앉아 소중한 쌀을 쳐묵쳐묵하고 있는 장면을 목격했다고 하자.

그럼 이제 "쥐가 살찐다"와 "사람이 굶는다" 사이에는 관련이 없게 된다. 이것은 앞의 글에서 다룬 "머리-대-꼬리"와 같은 이유다. 간단히 말해 "쥐가 쌀을 축낸다"는게 목격된 이상 쥐가 살찌건 말건 사람이 굶는다는 사실에는 변함이 없게 되기 때문이다.

이것만으로는 좀 싱거우니까 이런 아이디어가 실제 통계분석법에서 어떻게 나타나는지 잠깐 살펴보자. 시험 점수를 바라보는 관점에는 두 가지 편향이 있다. 하나는 시험 점수가 그 자체로 실력을 반영한다고 보는 관점이고, 또 하나는 시험 점수는 시험 점수일 뿐 실력이 아니라는 관점이다.

그런데 한 사람이 여러 번 시험을 보면 시험마다 점수는 다를지언정 대체로 관련이 있다는 걸 알 수 있다. 저번 시험에 80점 맞은 사사람은 이번 시험에서 75점이나 85점을 맞기도 하지만 그렇다고 30점을 맞는 경우는 드물다. 반대로 저번 시험에 50점을 맞은 사람이 갑자기 90점을 맞는 경우도 드물다. 오늘 소개한 꼬리-대-꼬리의 연결로 이를 모형화해보자.

우리는 어떤 경우에도 실력 그 자체를 관찰할 수는 없다. 우리가 관찰할 수 있는 것은 시험 점수들 뿐이다. 위의 모형에서 시험 점수들은 관찰되지 않은 변수인 '실력'에 의해 꼬리-대-꼬리로 연결되어 있으므로 서로 관련이 있게 된다. 이제 우리는 실제 자료를 가지고 그렇게 관련이 있는지 검증할 수 있다.

이런 논리에 바탕을 둔 통계 분석법을 "요인 분석(factor analysis)"이라고 한다. 요인 분석은 우리가 관찰할 수 있는 현상들 사이에 관찰할 수 없는 공통 원인이 있다고 가정한 다음, 그런 가정에 바탕해서 위와 같은 모형을 세우고 이를 검증하는 것이다.

요인 분석은 원래 스피어만이라는 심리학자가 일반 지능(general intelligence)의 존재를 검증하기 위해 만든 것이다. 스피어만은 여러 종류의 다른 시험 점수들 사이에 상관 관계가 나타나는 것을 보고, 서로 다른 종류의 지적 작업에 공통적으로 관여하는 일반 지능이 있다고 생각했다.

사람을 컴퓨터에 비교해서 설명하자면 그래픽 카드나 랜 카드 같은 것의 성능이 특수한 재능이고 CPU 성능이 일반 지능이 되는 것이다. 사실 CPU 성능도 정확하게 측정할 방법이 없기 때문에, 일반 지능도 확실하게 측정할 방법은 없지만 요인분석 등의 통계적 방법으로 대략 추정은 할 수 있다.

일반지능이론에 반대하는 다중지능이론이나 모듈론 같은 것도 있지만 스피어만의 이론은  오랫동안 많은 심리학자들이 지지해왔고 여전히 교육이나 인사 등 실무 영역에서는 널리 활용되는 개념이다. 스피어만 이후에 발전된 모형을 단순화시키면 아래와 같다.

물론 수학이나 과학시험도 언어능력의 영향을 받기는 하겠지만 그냥 간단히 그렸다. 미국의 수능인 SAT는 이런 지능 이론에 바탕을 둔다. 지능에는 크게 유동 지능(fluid intelligence)와 결정 지능(crystalized intelligence)이 있고, 유동 지능의 대표적인 것이 일반 지능이다. 결정 지능은 간단히 말해 경험적으로 축적된 지식을 말한다. 그래서 SAT 1은 유동 지능을 측정하는 검사로 언어영역과 수리영역, 에세이로 이뤄져있고, SAT 2는 결정 지능을 측정하는 검사로 과목별 지식을 측정한다. 한국의 수능도 SAT 1과 비슷한 구조를 가지고 있다. 수능에서 사회와 과학 시험을 좀 생뚱맞게도 "수리탐구2"라고 부르는 것은 이런 이유 때문이다.

다음은 대망의 "머리-대-머리" (계속)

by 아이추판다 | 2009/09/24 16:21 | 트랙백 | 핑백(3) | 덧글(20)

그림으로 보는 통계: (1) 쥐와 사람의 관계

통계 얘기가 나온 김에 뭔가 재밌는(?) 통계 이야기.

"넘버스(Numbers)"라는 미국 드라마가 있다. 수학자가 FBI를 도와 범죄 해결을 한다는 이야기다. 이 드라마에서 나오는 수학 기법 중에 상당수가 통계학에 속한다. 당연한 일이다. 불확실성이 포함된 데이터를 가지고 그 아래서 패턴을 읽어내는 게 통계학이기 때문이다. 이런 이유 때문에 통계학은 범죄 수사만이 아니라 학문 연구, 정책 결정, 여론 조사 등 많은 분야에서 사용되고 있다.

그런데 통계학은 19세기에 시작된 최신 분야다. 나이가 들어 눈이 먼 후에도 암산만으로 논문을 썼다는 18세기의 위대한 수학자 오일러도 "데이터는 적을 수록 좋다"고 생각했다고 한다. 그만큼 통계학을 직관적으로 이해하기는 어렵다. 내가 오일러에 비할만한 사람은 아니지만 그래도 10년 가까이 통계를 공부했는데 아직도 간단한 개념이 헷갈려서 책을 찾아볼 때가 있다.

나만 그런 것은 아닌지 통계학자들도 통계의 핵심적 아이디어를 직관적으로 표현할 방법을 여러 가지 생각해냈다. 오늘 소개할 "유향 그래프 모형(directed graphical model)" 또는 "베이지언 네트워크(Bayesian network)"가 그 예다. 이 글에서는 그냥 '그래프 모형'이라고 부르겠다.

그래프 모형은 무시무시한 이름과 달리 내용은 아주 간단하다. 동그라미와 화살표만 알면 된다. 한 가지 예를 들어보자. 비가 오면 땅이 젖는다. 어느 날 아침 집을 나서니 땅이 젖어있다. 비가 왔나?하며 하늘을 한 번 본다. 이 상황을 그래프 모형으로 나타내면 아래와 같다.

비는 올 수도 있고 안 올 수도 있다. 땅은 젖을 수도 있고 안 젖을 수도 있다. 그래프 모형에서 이런 변수들은 원으로 그린다. 그리고 이 변수들 사이의 관계는 화살표로 그린다. 비가 오면 땅이 젖지, 땅이 젖으면 비가 오는 건 아니니까 '비가 왔다'에서 '땅이 젖었다'로 화살표를 긋는다. 마지막으로 우리가 실제 목격한 건 땅이 젖었다는 것 뿐이니까 땅이 젖었다는 까맣게 칠하고, 비가 왔다는 속이 빈 원으로 그린다. 참 쉽죠?

그래프 모형은 이렇게 확률적인 관계들을 알기 쉽게 나타내주는 것이다. 그런데 그리는 방법이 너무 간단해서 헛웃음이 나온다. 이걸로 우리가 알 수 있는 게 뭐가 있냐. 그래서 오늘은 역시 간단하면서도, 다른데 써먹기도 좋고, 애인과 카페에서 차마시다가 냅킨에 그려서 가르쳐주면 폼도 나는(과연?) 그래프 모형의 활용법 하나를 알려주겠다.

비가 오면 땅이 젖는다. 땅이 젖는 건 꼭 비 때문 만은 아니지만 땅이 젖어있다면 비가 왔을 가능성이 높다. 즉, 화살표의 방향이야 어떻든 화살표로 연결된 두 변수는 서로 '관련'이 있다. 독립이니 종속이니 하는 통계학 용어는 몰라도 된다. 그러면 저렇게 여러 가지 변수가 얽히고 섥혀 있을 때 직접 연결되어 있지는 않지만 건너 건너 연결된 변수들은 어떨까?

이걸 따져보는 방법이 '베이즈 공 계산법(Bayes ball algorithm)"이다. 그래프 모형도 그렇지만 이것도 이름만 거창하지 내용은 별 거 없다. 이 계산법은 아주 간단하다. "하얀 원으로 연결되면 관련이 있고, 까만 원으로 연결되면 관련이 없다. 머리-대-머리면 반대." 무슨 주문 같지만 하나씩 예를 들어 설명을 해보자.

집에 쥐가 살면 쌀이 축날 가능성이 높다. 쌀이 축나면 사람이 굶을 가능성이 높다. 위의 그래프 모형은 이 상황을 명쾌하게 정리하고 있다. 그림을 잘 보면 "쌀이 축난다"의 왼쪽에는 화살표의 '머리'가 붙어있고, 오른쪽에는 화살표의 '꼬리'가 붙어있다. 이걸 '머리-대-꼬리(head-to-tail)'라고 한다.

"집에 쥐가 산다"와 "사람이 굶는다"는 "쌀이 축난다"를 통해 간접적으로 연결되어 있다. 우리의 '주문'에서 "하얀 원으로 연결되면 관련이 있다"는 게 이 뜻이다.  어렵게 생각해보지 않아도 집에 쥐가 사는 것과 사람이 굶는 것 사이에는 당연히 관련이 있다. 그럼 이번엔 "쌀이 축난다"가 관찰된 경우를 생각해보자.

이제 "집에 쥐가 산다"와 "사람이 굶는다"는 까만 원으로 연결되었다. 그러면 둘 사이에는 관련이 없다. 이해가 잘 안 갈 수도 있는데 이렇게 생각을 해보자. "집에 쥐가 산다"는 것이 "사람이 굶는다"에 영향을 주는 건 어디까지나 "쌀이 축난다"를 통해서다. 그런데 어떤 이유에서건 쌀이 축난다는 게 확인된 이상 집에 쥐가 살건 말건 사람이 굶는다는 점에는 변함이 없다.

물론 "그 쥐를 잡으면 사람은 더 굶지 않을 게 아닌가?"하고 반문할 수도 있다. 그런데 쥐를 잡으면 위의 그래프의 관찰 상태가 달라진다. "집에 쥐가 산다"는 관찰된 상태로 바뀌고, "쌀이 축난다"는 관찰되지 않은 상태로 바뀐다. 쥐가 없어도 도둑이 쌀을 훔쳐갈 수도 있고, 벌레가 쌀을 축낼 수도 있기 때문이다. 그러면 다시 "집에 쥐가 산다"와 "사람이 굶는다"는 하얀 원으로 연결되기 때문에 관련이 있게 된다.

별로 한 이야기도 없는데 글이 길어졌다. "꼬리-대-꼬리"와 "머리-대-머리"의 경우는 다음 글에서 다루도록 하겠다.

by 아이추판다 | 2009/09/23 16:26 | 트랙백 | 핑백(5) | 덧글(45)

◀ 이전 페이지          다음 페이지 ▶