정보 이론은 기계학습이나 자연어처리, 정보검색을 연구하는 사람에게 기본 소양처럼 여겨지는 분야입니다. 하지만 처음에는 정보를 계량적으로 측정한다는 발상 자체부터 와닿지 않았습니다. 지난 학기에 공부한 내용을 바탕으로 정보이론에 대한 직관적 이해를 돕는 글을 써 보려 합니다.

확률론이 불확실성에 대한 모델링과 이에 기반한 추론을 목표로 한다면, 정보이론은 불확실성을 평가하려 합니다. 정보이론의 ’정보’는 불확실성인 다름아닌 것입니다. 따라서 정보이론의 가장 기본적인 단위인 엔트로피(Entropy)의 계산에도 확률변수가 사용됩니다.

대부분의 대상이 확률변수로 모델링되는 위 분야에서 정보이론이 항상 사용되는 것은 놀라운 일이 아닙니다. 예를 들어 정보검색 분야에서는 문서와 질의어(query)를 확률변수로 모델링하고 이 모델간의 거리를 바탕으로 문서의 랭킹을 계산하는데, 이때 사용되는 척도(KL-Divergence)가 정보이론에서 제공됩니다.

좀더 구체적으로 알아봅시다. 확률변수 X의 불확실성을 나타내는 엔트로피는 다음 수식처럼 각 확률값에 로그를 취한 것의 기대값(즉, 확률값에 대한 가중 평균)으로 계산됩니다.

간단한 루비 프로그램으로 이를 알아봅시다. 아래 예에서 보듯 두가지 사건이 가능한 확률변수의 경우 각 사건의 발생 확률이 균일할수록 엔트로피는 커집니다. 이는 엔트로피를 불확실성으로 이해할 때, 사건간의 확률이 비슷할수록 예측하기 어렵다는 점과 통합니다.

>> [1,1].to_prob.h
=> 1.0
>> [1,5].to_prob.h
=> 0.650022421648354
>> [1,10].to_prob.h
=> 0.439496986921513
>> [1,100].to_prob.h
=> 0.0801360473312753
>>

또한, 표본공간을 잘게 쪼갤수록 엔트로피(불확실성)는 더 커집니다.

>> [1,1].to_prob.h
=> 1.0
>> [1,1,1,1].to_prob.h
=> 2.0
>> [1,1,1,1,1,1,1,1].to_prob.h
=> 3.0

엔트로피에 대한 연산

확률변수 여러개가 모여 연합확률분포(Joint Probability Distribution)를 형성하고 확률변수간에 조건부확률(Conditional Probability)를 정의할 수 있는 것처럼 연합 엔트로피나 조건부 엔트로피도 정의될 수 있으며, 이러한 값들에 대한 연산 법칙은 확률변수의 경우와 마찬가지로 적용됩니다.

상호 정보(Mutual Information)

개별 사건의 불확실성을 평가하다 보면 자연히 두 사건간의 관계에 관심이 가게 됩니다. 두 사건간의 의존성을 불확실성 관점에서 평가하는 것이 상호정보입니다. 즉, 사건 가 있을 때, 를 아는 것이 의 불확실성을 얼마나 낮추어주는지를 평가하는 겁니다.

이는 를 기준으로 다음처럼 기술할 수도 있습니다.

Cross Entropy & KL-Divergence

앞서 설명한 것처럼 현상을 확률번수로 모델링하다보면 필수적인 과정이 우리가 만든 모델을 실제 현상에 비추어 평가하는 것입니다. 즉, 우리가 만든 모델이 얼마나 대상에 부합하는지를 평가할 수 있어야 이를 개선시킬 수 있는데, 이때 척도로 사용되는 것이 KL-Divergence입니다. 앞서 설명한 정보검색 예제에서는 각 문서를 질의어로 상징되는 유저의 정보욕구(Information Needs) 대한 모델로 보고, 이에 부합하는 순서대로 랭킹을 계산하는 겁니다.

구체적으로 KL-Divergence는 우리가 모델링하려는 사건에 대한 확률변수 를 불완전한 모델 를 사용하여 표현하는 데 필요한 비트 수를 뜻하는 Cross Entropy에서 원래 사건의 의 엔트로피를 빼서 구합니다. 즉, 를 통한 모델링 작업이 얼마나 실제 사건의 불확실성을 증가시켰는지를 나타내는 것입니다.

앞서 설명한 상호정보 역시 KL-Divergence를 사용하여 표현될 수 있습니다. 아래 식을 보면 사건 의 연합확률분포 를 각 사건의 확률분포 의 곱으로 나타낼 때 더 필요한 비트의 수가 두 사건간의 상호정보라는 것을 알 수 있습니다.

다시 루비 예제를 봅시다. 두 사건간의 Cross Entropy는 아래처럼 두 사건의 확률분포가 비슷할수록 작다는 것을 알 수 있습니다.

>> [1,2,3].to_prob.h
=> 1.45914791702724
>> [1,2,3].to_prob.ch([1,2,3].to_prob)
=> 1.45914791702724
>> [1,2,3].to_prob.ch([3,2,1].to_prob)
=> 1.98746875060096
>> [1,2,3].to_prob.ch([10,2,1].to_prob)
=> 2.81345170232653

Reference

소스 코드

위 예제를 실행시키기 위해서는 다음 모듈을 Array에 Include하면 됩니다.

module Entropy
include Math
## Get probability distribution
def to_p()
collect{|e| e.to_f / sum}
end

## Entropy
def h
-inject(0){|sum,e| sum + e * log2(e) }
end

## Cross Entropy
def ch(a)
sum = 0 ; each_both(a){|p , q| sum += p * log2(q) } ; -sum
end

## KL-Divergence
def kld(a)
ch(a) - h()
end
end

좋아하는 일 지켜가기

유학생활 : 2007. 11. 3. 11:41   By LiFiDeA

7병역특례를 마치고 복학할 무렵 결심한 것이 있었으니, 좋아하는 일을 평생 하겠다는 것이었습니다. 마음이 끌리는 일은 놀랄만한 집중력으로 해내는 스스로를 발견하고, 하지만 대부분의 사람들이 자신의 마음보다는 눈에 보이는 조건을 위주로 평생의 업을 택한다는 현실을 목격한 후였습니다.

고민 끝에 평소의 관심사와 그동안의 경험, 그리고 앞으로의 전망을 고루 만족시키는 길을 발견할 수 있었고, 이를 좆아 미국에까지 왔습니다. 제가 발견한 것은 정보 욕구(Information Needs)를 만족시키고 나아가 인간의 잠재력을 최대한 끌어올리는 기반 기술 및 정보 시스템의 개발이었습니다. 그동안 꿈꿔오던 일을 더이상 바랄나위 없는 환경에서 할 수 있게 된다는 사실은 흥분 그 자체였습니다.

하지만 ‘사랑은 시작하는 것 보다 지키기가 어렵다’고 했던가요… 쉽지 않게 시작한 유학 생활은 시작부터 녹록치 않습니다. 익숙하고 편안한 것과 멀어져 낯선 것에 몸을 맡기는 적응기가 끝나고, 이곳에서의 일상에 다시 적응하기 시작할 무렵, 문득 초심과 멀어져가는 자신을 발견하고 몸서리치게 됩니다.

궁금한 것을 스스로 찾아가며 하나씩 깨우쳐가는 배움의 즐거움은 내일로 치르는 시험에 대한 걱정으로, 군더더기없이 잘 설계된 코드가 동작하는 것을 보는 희열은 연구 프로젝트 결과에 대한 부담으로 대체되어 갑니다. 놀이라 부르던 것이 일이 되고, 그 일이 쌓여 부담이 되고, 그 결과가 만족스럽지 못해 스스로의 능력에 대한 회의라도 찾아올때면 정말 집에가고 싶어집니다.

좋아하는 일을 직업으로 삼지 않는 것은 우아한 삶의 조건이다. – 시오노 나나미

예전에 책에서 이 구절을 읽고 강하게 부정하던 기억이 납니다. 좋아하는 일을 일을 하지 못한다면 성공해도 성공한게 아니라고 믿었던 저로서는 도저히 공감할 수 없었습니다. 하지만 좋아하는 일을 지켜가는 것이 이렇게 힘들다는 것을 알았다면 생각을 고쳐먹었을지도 모르겠습니다. 정녕 직업은 생계 수단으로, 그리고 인생의 의미는 그 밖에서 찾아야 하는 것인가요.

좀더 노력하려 합니다. 좋아하는 일을 열심히 하면 성공할 수 있다는 순진한 믿음을 버리지 않으려 합니다. 스스로 객관적인 성취보다는 내면의 만족을 중시하기에 가능하다고 봅니다. 단 이런 결과가 그냥 얻어지는 것이 아니라는 점은 뼈저리게 배우고 있습니다.

좋아하는 일도 ’일’입니다. 일은 자신, 그리고 다른 사람과의 약속입니다. 학자가 되는 일은 분명 취미로 책을 읽고 자료를 조사하는 것과 다른 결심을 필요로 합니다. 꾸준히 결과를 내고, 다른 사람의 기대치를 충족시켜야 합니다.

하지만, 이에 우선하는 것이 내면의 불꽃을 지키고 활활 타오르게 하는 것입니다. 학과 세미나에서 어떤 교수님이 동기(motivation)야말로 가장 희소한 자원이라고 말씀하시는 것을 듣고 공감했습니다. 대상에 대한 순전한 호기심, 진리 탐구에 대한 열의를 잃어버린 사람은 학문을 할 수 없습니다. 학문을 명예나 부를 위한 수단으로 전락시키는 것도 이런 사람들의 책임일 겁니다.

조용히 앉아 마음의 목소리에 귀를 기울이는 하루를 보내고 싶은 오후입니다.

'유학생활' 카테고리의 다른 글

모범생이 싫다  (1) 2008.01.03
유학생 살아남기  (0) 2007.11.03
UMass Amherst에 도착했습니다.  (0) 2007.09.13

유학생 살아남기

유학생활 : 2007. 11. 3. 11:40   By LiFiDeA

미국 생활 시작한지 이제 두달 남짓, 아직 어떤 판단을 내리기에도 충분치 않은 시간입니다. 하지만 유학 생활이 어떤 것인지, 그리고 어떻게 해야 후회없는 시간을 만들어갈 수 있을지 감이 조금씩 옵니다. 예전에 “xx는 xx야!”하고 선언하는 개그가 있었죠. 저도 한번 해 보렵니다.


유학 생활은 암벽 등반이야!

너무 비관적인가요? 그러나 상당히 애착이 가는 비유입니다. 둘다 상당한 결심이 없이는 시작하기 힘듭니다. 그리고 일단 시작하면 계속 가야 합니다. 중간에 기댈 곳도 없고 멈추는 것도 허용되지 않습니다. 하지만 일단 올라가면 상당한 성취감을 줍니다. 하지만, 성취감만으로 버티기에는 너무나 고되기에, 과정에서 즐거움을 발견해야 합니다. (올라가는게 목표라면 굳이 암벽을 택하지는 않겠죠 ;)

유학을 ‘암벽 등반’으로 생각하면 어떻게 임해야할지가 그려집니다. 우선 기본은 철저한 자기관리일 겁니다. 끝까지 무너지지 않고 꾸준히 갈 수 있도록 몸과 마음을 최상의 상태로 유지해야 합니다. 낯선 상황에 봉착해서도 흔들리지 않도록 평소에 꾸준한 준비를 통해 여유를 만들어야 합니다. 경험적으로 볼때 타국에서 혼자 겪는 어려움은 종류에 관계없이 두 배는 힘듭니다.

절제와 극기로 생활의 질서와 기본적인 여유가 확보된 다음에는 주변을 돌아볼 수 있을 것입니다. 이때 중요한 것은 개방된 마음을 갖고 먼저 다가가는(stepping forward) 것입니다. 단일 민족에 비교적 획일화된 가치관을 갖고 살아가는 우리나라 사람들에게 특히 어려운 일입니다만, 개인의 영역을 소중히하는 미국에서는 먼저 다가가지 않으면 아무도 자신에게 오지 않습니다. 그리고 고립된 상태에서 젊은 날의 몇년을 지내는 것은 그리 권할만한 일이 아니겠죠.

마지막으로 자신의 일에서 지속적인 의미와 즐거움을 발견하는 것이 필요할 것입니다. 사실 “자신이 원하는 일을 충분히 시간을 들여 할 수 있는 것”이 유학생의 특권 아니겠습니까. 하지만 지난 두달의 경험을 통해, 자신의 일에 대한 열정을 지켜가는 것이 얼마나 어려운 일임을 잘 알게 되었습니다. 하지만 연구자로서, 더구나 유학생으로서 이를 잃는다면 앞으로 나아갈 수도 없으며 모든 것이 너무나 허무해집니다. 제 2의 생명처럼 여기며 지켜나갈 일입니다.

쓰고 나니 사뭇 비장한 글이 되어버렸습니다. 하지만 이런 기본이 없이는 유학 생활의 낭만은 먼 이야기가 되지 않을까요.

'유학생활' 카테고리의 다른 글

좋아하는 일 지켜가기  (1) 2007.11.03
UMass Amherst에 도착했습니다.  (0) 2007.09.13
유학길에 오릅니다.  (3) 2007.08.26
학교를 결정하고 나서, 정보 검색(Information Retrieval – 이하 IR)을 연구하러 간다고 주변 분들께 말씀드렸을 때 생소하게 여기는 분들이 많으셨습니다. 공부를 시작한지 이제 50일, 머지 많은 IR수업 중간고사 대비 겸해서 배운 내용을 정리해 볼까 합니다.

IR은 사람들의 정보 욕구(Information Needs)를 충족시키는 것을 목표로 합니다. 하지만 이런 정의는 Computer Science의 대부분의 분야를 포괄하죠. 데이터베이스도, 네트워크도 따지고 보면 그렇지 않습니까. 좀더 구체적으로는 무형의(Unstructured) 텍스트 데이터에서 사람들이 원하는 정보를 찾는 기술을 연구한다고 보시면 됩니다. 정형화된(Structured)데이터를 다루는 데이터베이스, 그리고 학습을 통하여 주어진 작업에서의 성능 개선을 목표로 하는 기계 학습과는 구분됩니다.

하지만 이쯤에서 만족하지 못하는 분들이 계실 겁니다. 학문이라면, 그것도 Computer Science 관점에서는 객관적인 지표가 필요할텐데 ‘사람들의 욕구 충족’ 이라는 주관적이고 모호한 척도를 어떻게 측정하고 평가하나요? 제가 처음 가졌던 의문도 바로 그 점이었습니다.

해답은 의외로 간단했습니다. 결국은 사람이 평가하는 것이었습니다. 평가자가 주어진 검색 결과에서 어떤 문서가 자신의 정보 욕구와 관련있는지 아니면 무관한지를 알려주면, 이에 얼마나 근사한 결과를 냈는지를 가지고 검색 시스템을 평가합니다. 이때 사용되는 지표가 Precision, 및 Recall인데, 기본적으로는 검색 결과가 얼마나 정보 욕구를 정확히, 그리고 완전히 만족시키는지를 측정하는 것입니다.

이처럼 (사람도 하기 어려운) Mind-reading을 하는 시스템을 만든다는 점에서 IR을 주로 인공지능(Artificial Intelligence)의 분야로 분류하곤 합니다. 모호한 타겟을 갖고 있다는 점이 IR의 어려운 점이자 매력이기도 합니다. (정보 욕구 해소를 삶의 미션으로 삼는 저의 이념과 부합하는 부분이죠;)

얼핏 간단해 보이는 이 ’검색’이라는 문제를 풀기 위한 전혀 다른 (적어도)수십가지 방법이 존재하는 이유도 이와 무관하지 않나 합니다. 현재 많이 사용되는 Vector Space Model, 그리고 CIIR 에서 개발하였으며 최근에 널리 사용되는 Language Model 등이 대표적인 예입니다.

IR은 Computer Science가 아닌 정보과학(Information Science) 관점에서도 많이 연구되고 있으며, 텍스트 데이터를 다루는 관계로 자연어처리(Natural Language Processing), 그리고 최근에는 분류(classification), 군집회(clustering)등 기계학습(Machine Learning)분야의 기반 기술의 응용을 통한 성능 향상을 꾀하고 있기도 합니다. 물론 이 모든 것의 기본은 확률론, 통계, 수학입니다.

UMass Amherst에 도착했습니다.

유학생활 : 2007. 9. 13. 11:16   By LiFiDeA

한계 중량까지 우겨넣은 이민가방 두개와 캐리어를 끌고 호텔 방에 들어선게 엇그제 같은데, 벌써 이곳에 도착한지 20일이 되어 갑니다. 초반의 시차 문제, 모든 면에서 전혀 새루운 환경에 적응해 나가는 일은 매순간이 도전이었지만, 이제 ’안정’되었다는 느낌이 서서히 들기 시작합니다.

처음 이주간은 정말 제정신이 아니었던 것 같습니다. 어느날 골똘히 생각해보니 미국 생활, 가족과 떨어져 사는 기숙사 생활, 직업으로서의 대학원생, 전공으로서의 컴퓨터 과학 등등 저를 둘러싼 환경 중 바뀌지 않은 것이 별로 없었습니다. 혼자 빨래 한번 제대로 해본 적 없는 제가 무슨 생각으로 여기까지 왔는지 갑자기 궁금해지며, 그정도 정신을 차리고 있는 것도 다행이라고 새삼 생각했습니다.

어쨌든 이왕 이렇게 된 바에 스스로를 한번 푹 담가보자고 생각했습니다. 새로운 사람을 만나고, 새로운 곳에 가 보고, 기회를 만들어 예전에 해보지 못했던 것을 시도했습니다. 미국 학생들의 파티에도 가 보고, 그 어렵다는 냄비밥에도 도전해 시행착오 끝에 밥다운 밥을 만들었습니다. 그 결과 미국 생활에서 서로 힘이 되줄 사람들을 만날 수 있었고, 혼자 어떻게든 살아나갈 수 있겠다는 자신감을 얻었습니다.

학교 및 연구실 생활도 많은 부분이 결정되었습니다. 연구실의 Bruce Croft, James Allan교수님과 면담을 하여 저의 리서치 비전과 랩의 연구 주제의 접점을 논의하였고 첫학기 수업인 정보검색(Information Retrieval)과 자연어 처리(Natural Language Processing)도 들어보았습니다. 다행히 교수들께서는 제 연구 관심사에 대해 호의적이시며, 수업 역시 정말 충실합니다. 자연어 처리 수업은 특히 기계학습 정보 추출 (Information Extraction)분야의 대가급 연구자인 Andrew McCallum교수님의 강의라 들어갈 때마다 긴장과 흥분의 연속입니다.

예전에 일주일간 맛본 적은 있었지만, 미국이라는 환경에 대해서도 많은 생각을 했습니다. 하루종일 돌아다녀도 먼지하나 뭍지 않고 어디서나 수돗물을 틀어 마실 수 있는 꺠끗한 환경에, 전세계 방방곡곡에서 온 사람들이 나름의 방식을 지켜가면서도 서로 조화를 이루어 살아가는 모습이 참 대단하다는 생각이 듭니다. 특히 제가 있는 Amherst는 조용한 교외의 학교 타운이라 예전에 시애틀에서와 마찬가지로 미국 사회의 어두운 모습은 찾아보기 힘듭니다.

마주치는 미국 사람들도 활기차고 친근한 모습입니다. 특히 한국과 달리 학교, 가게, 식당 등 어디가나 마주치는 스텝들의 친절은 인상적입니다. 모든 사람들이 진정 자신의 일에 만족하고, 그 일을 통해 세상에 기여하겠다는 생각을 하는 듯 합니다. 연구실에 같이 들어온 동료(대부분 석사 졸업생)가 여섯 명이나 되어 많이 배울 수 있을 것 같다는 느낌입니다.

다시 찾은 안정과 편안함이 나태와 향락으로 이어지지 않게 하려고 합니다. 너무 많은 일, 복잡한 생활에 어떤 일에도 집중할 수 없었던 한국에서의 시행착오를 되풀이하지 않으려고 합니다. 먹는 일을 제외하고는 물건 구입도 최소한으로 하고, 유희만을 목적으로 하는 활동도 자제하려 합니다. 핸드폰, 차, TV 등은 당분간 없이 지낼 생각입니다. 지금 제 책상에는 소로우와 스콧 니어링의 책이 꽃혀 있습니다.

주어진 여건에 만족하고, 순간순간 후회를 남기지 않도록 최선을 다하는 것이 저를 아껴주시고, 이끌어주신 많은 분들의 기대에 부응하는 길이라는 것을 잘 알고 있습니다.

처음 마음 지켜가며 최선을 다하겠습니다.

'유학생활' 카테고리의 다른 글

유학생 살아남기  (0) 2007.11.03
유학길에 오릅니다.  (3) 2007.08.26
University of Massachusetts, Amherst (UMass)로 진학합니다.  (9) 2007.03.31