Today I Learned — DS — 15일차
베이지색(Beige)..이 아닌 베이지안(Bayesian)논리 계속
# 베이지안(Bayesian)
오늘 한일:
드디어 한 주 동안 내가 배운 것을 점검하는 시험이 끝났다. 홀가분하기는 했지만, 한가지 아쉬웠던 것은, 내가 어제 늦게까지 씨름했던 베이지안(Bayesian) 논리를 이해했는지 점검할 수는 없었다는 사실이다. 아무래도, 조금 난해할 수 있는 개념이다보니, 교관(왜 자꾸 교관님들이라 하는지..)님들이 아닌 선생님들이 그 부분은 아직 시험하기는 이르다고 판단하셨던 것 같다. 한편으로는 다행스럽기도하다.
그래서, 오늘은 베이지안 논리를 좀 더 명확하게 알 수 있는 예제들을 이용하여, 이를 수학적으로 어떻게 활용할 수 있는지 보여줄 수 있는 글을 작성하자고 마음먹었다. 사실 이 베이지안 논리는 통계학을 전공한 사람도, 나처럼 공대를 나온 사람도 한번씩은 대학시절 접했을 법한 아이디어인데, 당시에는 그것을 배우려는 의지도 박약했고, 흥미도 없었던 나같은 사람도 많았을 것이다.
그래서 오늘 몇 가지 흥미로운 예를 들어, 이를 수학적인 식을 사용해서 이해해보고자 한다. 일단 베이지안 논리의 수학적 표현은 아래와 같다.
개념설명
위에서 보이는 것과 같이, 베이지안 논리는 특정 조건부 이벤트(B)을 기반으로 특정한 이벤트(A)가 발생할 조건을 계산할 수 있게 해준다. 따라서, B가 발생했다는 것을 100%로 여긴다. P(B|A)는 반대로 “A가 일어났다는 조건하에, B가 일어날 확률”을 가리키며, 역시 A가 100%발생했음을 가정한다. 이 처럼 베이지안 논리의 특징은 “사전확률"을 고려한다는 것이다. P(A)는 B에 상관없이, A가 일어날 확률이고, P(B)는 A에 상관없이 B가 일어날 확률을 말한다.
위의 P(B)는 사실 그렇게 간단하지 않은 경우도 있는데, “B가 일어났지만, A가 일어나거나 일어나지 않은 경우”를 모두 포함해야할 경우가 있기 때문이다. 다시 말해 “B가 일어날 확률은”는 아래와 같이 재정의 될 수 있다. 아래 (-) 사인은 “~가 아닌”을 나타낸다.
즉, 경우에 따라, 첫 번째 소개했던 공식은 아래와 같이 좀 더 세부적으로 표현되어야 한다.
그렇다면, 이 공식이 어떻게 적용될 수 있을지 알아보자. 조금 더 설명을 재미있게 하기 위해 각 예제에 대한 스토리와 정답에 대한 에필로그를 첨가했다.
예제와 스토리
예 1. 파란솜사탕, 빨간솜사탕
손을 가져다대면 마법 처럼 솜사탕을 만들어 내는 램프 2개가 있다. 첫 번째 램프에는 10개의 파란솜사탕과 20개의 빨간솜사탕이 들어있고, 두 번째 램프에는 각각 20개씩 들어있다. 램프에 있는 솜사탕을 모두 뽑아 접시에 담고나니, 갑자기 “야!”라는 큰 외침소리가 들려 고개를 들었다. 그와 동시에 손은 무의식적으로 접시에 있던 솜사탕 하나를 쥐어들었다. 눈앞에는 엄청난 위압감을 자아내는 초록색 헐크같이 생긴 존재가 나타냈다. 그는 말했다. “나는 램프의 요정 지니다! 지금 네 손에든 솜사탕이 내가 있던 램프에서 나왔을 확률을 맞추면 너의 소원을 들어주겠다. 그렇지 않으면 너는 맹독이 든 그 솜사탕을 먹어야 할 것이다. 음하하하!” 두려움에 고개를 떨구었다. 그러자 손에 든 빨간솜사탕 하나가 보였다. 그렇지만 그가 어떤 램프에서 나왔는지 어떻게 알끼? 다행이도 그의 배에 커다랗게 숫자 “1”의 문신이 그려져 있었다. 손에 쥔 빨간솜사탕이 첫번째 램프에서 나왔을 확률은 얼마일까?
여기서 해결 되어야할 문제는 “접시에서 무작위로 집어든 빨간솜사탕이 어떤 확률로 첫번째 램프에서 나왔을까?”이다. 우리가 위 문제에서 주어진 조건들을 바탕으로 가늠할 수 있는 정보는 아래와 같다. (B: 파란솜사탕, R: 빨간솜사탕)
- 솜사탕의 전체개수와 상관없이, 우리가 램프 1이나 2중 하나를 선택할 확률은 0.5이다.
P(1)=P(2) = 1/2
2. 첫 번째 램프에서 나온 솜사탕이 빨간색일 확률은 30/40 이다.
P(R|1) = 3/4
3. 램프에 관계없이, 빨간색 솜사탕이 나올 확률은 아래와 같다.
P(R) = P(R|1)*P(1) + P(R|2)*P(2) = (30/40)*(1/2) + (20/40)*(1/2)
위 정보를 모두 베이지안 공식에 도입하여 “빨간색 솜사탕이 첫 번째 램프에서 나왔을 확률”은 다음과 같다.
P(1|R) = P(R|1)*P(1)/P(R|1)*P(1) + P(R|2)*P(2) = 3/4*(1/2)/[(30/40)*(1/2) + (20/40)*(1/2)] = (3/4)/(5/4) = 3/5 = 60%
빨간색 솜사탕이 첫 번째 램프에서 나왔을 확률(P(1|R))은 60%이다.
에필로그:
지니: 그렇다면 답이 무엇이냐?
나: (손가락 6개를 펼쳐보이며) 정답은 60%다!
지니: 확실한가?
나: 그렇다.
지니: 정말 확실하냐?
나: 그렇다.
지니: 정말 정말 확신하냐?
나: 그렇다니까!
지니: 음.. 내가 졌다. 네 소원을 들어주마. 안타깝게도 나는 알라딘에서 본 지니는 아니다. 그러므로 한가지 소원만 들어준다. 말해봐라!
나: 데이터 사이언티스트가 되게 해줘!
지니: 음 알았다. 그치만 네가 열심히 노력해야 한다. 나는 너한테 가장 좋은 기회를 줄 것이다. 자 여기 “카이스트 수학과 무료 입학권”을 주겠다. 가서 열심히 공부해보아라!
나: 야호!
지니는 눈 앞에서 사라졌다. 램프들과 솜사탕들 역시 사라졌다. 마치 모든게 신기루였던 것처럼. 주인공은 지니의 선물을 가지고 카이스트에 입학해서 열심히 공부하고 졸업하여 카카오에 데이터 사이언티스트로 당당하게 취업하여 행복하게 살았다. Happily Ever After!
아직도 이해가 안되는가? 그렇다면 아래의 예제를 하나더 보기로 하자
예 2. 불량 그렘린 인형
두 개의 조립 라인을 가진 그렘린 인형 공장에서 생산된 1000개의 그렘린 인형이 같은 화물 창고에 쌓여 있다. 그렘린은 머리에 있는 버튼을 누르면, “부쉐버릴꺼야!”라는 소리를 내야한다. 어느날, 사장이 찾아와 창고에서 인형을 하나꺼내 버튼을 눌러보았는데, 불량인 것을 깨달았다. 화가난 사장은 공장장에게 찾아가 다짜고짜 “이 공장의 각 라인에서 불량률이 얼마나 되는지 조사하도록!” 이라고 명령했다. 그러면서 문제의 그 인형을 공장장에게 건내고, 문제가 해결되지 않으면 이 공장을 처키인형 공장으로 바꿔버리겠다고 했다. 처키를 끔찍히 싫어했던 공장장은 바로 불량률 조사에 들어갔다. 각각의 조립라인을 조사하던 중 1번 조립라인의 불량률이 10%이고, 2번 조립라인의 불량률이 15%임을 깨달았다. 먼저 1번 라인부터 손을 보자고 생각한 공장장은, 사장으로부터 건내 받은, 자신의 손에 쥐고있던 그 문제의 그렘린 인형을 보며 속으로 말했다. “그렇다면 이 웬수가 1번에서 나왔을 확률은 얼마일까?”
문제는 마지막 문장에서 찾을 수 있듯, “창고에서 무작위로 집어든 불량 그렘린이 1번라인에서 나왔을 확률”이다. 주의 할 것은 각 불량률(예 10%)에 대해 생산된 그렘린 인형의 총 개수(1000개)를 곱하여 얻어진 개수를(100개), 다시 총 개수로 나누어 각 라인에서 나올 불량률을 먼저 계산해야 한다는 것이다(예: 100/1000 = 1/10). 위 예제에서 얻을 수 있는 정보는 아래와 같다. (G: 양호, N:불량)
- 불량 그렘린이 1번 라인에서 나왔을 확률은 아래와 같다.
P(N|1) = 10%*1000/1000 = 100/1000 = 1/10
2. 불량률과 관계없이, 1번 라인에서 인형이 생산되었을 확률은 1/2이다. (2번 라인의 경우도 마찬가지이다.)
P(1) = P(2) = 1/2
3. 라인과 무관하게, 불량이 검출될 확률은 아래와 같다.
P(N) = P(N|1)P(1) + P(N|2)P(2) = (1/10)(1/2)+(3/20)(1/2) = 5/20
베이지안 공식에 따라 계산한 결과는 아래와 같다.
P(1|N) = P(N|1)P(1)/(P(N|1)P(1) + P(N|2)P(2)) = (1/10)*(1/2)/((1/10)(1/2)+(3/20)(1/2)) = (1/10)/(5/20) = 2/5 = 40%
“불량 그렘린 인형이 1번 라인에서 나왔을 확률”은 40%이다!
에필로그
공장장은 조사한 불량률을 바탕으로 불량률을 획기적으로 줄일 수 있었다. 크게 감동받은 사장은, 그에게 300% 보너스를 지급했다. 공장장의 기분은 날아갈 듯 좋았다. 그가 처키인형을 그렇게 싫어했던 이유는, 어렸을 때 본 처키 영화가 아직도 잊혀지지 않고 밤에 잘 때마다 공포심으로 그를 자주 괴롭혔기 때문이다. 또한 어렸을 때 그의 반 친구들도 그의 이런 점을 알고서는 처키 인형을 일부러 가져와 괴롭히기도 했다. 정말 안타까웠던 것은, 그의 아버지가 그의 생일 날 그를 생각하며 선물로 처키인형을 준비했는데, 그는 아버지가 정성스럽게 싼 포장지를 뜯어 선물을 확인하고 나서는, 괴로움에 머리를 쥐어 뜯으며 “으악, 이제 그만해!"라며 울부짖었던 기억이 있기 때문이다. 그만큼 그에게 처키는 악몽그 자체였던 것이다. 그는 추석을 앞둔 휴일, 퇴근 후 그가 등산하기 좋아하는 집앞의 지리산 정상에 올라 너무 기쁜 나머지 두팔을 힘껏 벌리며 크게 목청껏 외쳤다.
“아싸! 처키인형 만들지 않아도 된다아~~~!!!”
내일 할일:
오늘은 딱딱할 수 있는 베이지안 논리에 대해 좀 더 재미있게 설명하기 위해 내 나름대로 상상력을 발휘하였다. 이렇게 글쓰는 금요일 오후가 참 평온하고 좋다. 시험이 산 정상에 오르는 버거운 느낌이라면, 올라오고 나서 그 경치를 관망하면서 여유를 즐기는 시간이 글쓰는 시간인 것 같다. 예제를 만들면서 나도 베이지안에 대해 좀 더 자세히 알 수 있었다. 역시 사람은 무언가를 가르칠 때, 가르치는 사람이 듣는 사람보다 더 많이 배우는 것 같다.
또한 내 나름대로 상상력을 발휘하여, 스토리에 기반한 문제를 만들면서, 무언가를 설명하는 것이 꼭 지루한 것만은 아니고, 얼마든지 흥미롭게 만들 수 있다는 것도 깨달았다. 내 입장에서는 다소 새로운 시도였다. 문제를 만들고 그 것을 설명하기 위해 시나리오를 짜는 과정에서, 언어적으로 베이지안 계산에 필요한 각 조건과 해결해야할 문제를 어떻게 표현하는지에 대해 감을 잡은 것 같다. 사실 수학도 언어적인 부분이 더 크다고 생각한다. 수학적으로 주어지는 조건들이 정확히 무엇인지, 지금 나에게 주어진 문제가 무엇인지를 정확하게 글로 부터 파악을 할 수 있다면, 내가 어떠한 방법을 써서 어떤 결과를 도출해 내야 할지에 대해서도 훨씬 더 논리적으로 생각할 수 있다. 문제의 의도를 제대로 해석했다면, 베이지안 논리에 의거하여 사전확률이 어떻건, 이미 문제의 해결확률은 50%가 넘었다고 생각한다.
앞으로는 이렇게 다른 사람에게 무언가를 설명할 때 “어떻게 스토리에 기반하여 좀 더 흥미롭게 설명할 수 있을까?”라는 고민을 계속해보고 싶다. 특히 블로깅을 할 때 더욱 그렇다. 20세기 초반 멕시코로 이민간 조선인들을 소재로 다룬 장편소설인 “검은 꽃”의 저자 김영하는, 한 강의에서 “인간은 스토리 없이 살 수 없는 존재다. 마치 공기나 전기처럼 우리 주위에 있어 잘 드러나지 않지만, 우리의 삶에서 꼭 필요한 요소다.”라고 말했다. 내가 하루 하루 글을 쓰는 것도 나름 나의 스토리가 되고, 그 것이 모여서 나라는 인간이 된다. 한 인간의 자서전은 그 인간의 스토리의 모음집이나 마찬가지다. 스토리가 없는 인간은, 삶이 없는 것이고, 살아있는 존재라고 할 수 없을 것이다. 무엇보다도, 스토리가 없다면 성장도 없을 것이다. 지금 내게 주어진 도전의 일련의 과정들이 스토리가 될 수 있도록 하루 하루를 즐겁게 최선으로 살고, 또 그것을 기쁜 마음으로 기록해 나가야 겠다는 생각이 들었다. 그래서 나중에 돌아봤을 때, 내가 성장했다는 것을 확인하고 싶다. 나도 스토리를 이 만큼 가지고 있는 사람이라는 사실을 세상에 증명하고 싶다.