도메인 날리지, 모델링, 현실 세계

이전 글 확률 이야기에 다음과 같은 댓글이 있었다.

근데 직관이라는 게 경험의 축적도 상당히 영향을 미친다는 점에서, 같은 카테고리 내의 문제에 대한 경험이 많은 사람이라면 최소한 crucial 한 요인들을 배제하는 경우는 거의 없지 않을까?

물론 해당 분야의 전문 지식은 매우 중요하다. 아무래도 해당 분야의 기반이 전혀 없는 상황에서 접근하는 것보다는 있는 편이 당연히 유리하다. 하지만 많은 시간 쌓아온 직관도 모든 중요한 정보를 골라낼 수는 없다.

신약 개발을 하고 임상 실험을 하는 것을 생각해보자. 신약 개발은 제대로 검증되지 않는다면 심각한 경우 정말 큰 규모의 참사가 일어날 수 있기 때문에 검증을 굉장히 빡빡하게 하는 편이다. 당연히 이 과정에는 도메인 날리지(domain knowledge)를 충분히 숙지한 전문가들이 투입되어 약이 어떤 조건에서 부작용을 일으키는지 목록을 만들고 예측하지 못한 부작용이 없도록 많은 노력을 기울인다. 그런데 이렇게 해서 정말로 "crucial 한 요인"들을 다 잡아낼 수 있을까? 혹은 대부분 잡아낼 수 있을까?

얼마 전 Data-Driven Prediction of Drug Effects and Interactions이란 이름의 논문이 발표되었다. 논문을 간단히 요약하면 "데이터 마이닝 기법을 도입하여 기존에 발견할 수 없었던 수백 가지의 부작용들을 발견할 수 있었다." 정도가 되겠다*. 이건 단순히 "Machine learning FTW!" 수준의 이야기에서 끝나면 안 된다. 중요한 것은 결국 현실에서 만나게 되는 복잡한 문제들은 도메인 날리지를 기반으로 하여 모델링이 되고 여기에는 언제나 생각지 못한 구멍이 있을 것이라는 거다. 위에서 언급한 경우에는 이 부족한 부분을 머신 러닝을 활용해서 메꾸려고 시도한 것이지만 당연히 아직도 알려지지 않은 부작용은 굉장히 많을 것으로 생각한다.

신약 개발처럼 굉장히 광범위한 검증을 거치는 경우에도 이처럼 생각지 못한 구멍이 많이 발생하는데 그렇지 않은 분야는 그 상황이 훨씬 심할 것이라는 게 내 생각이다. 내가 하고 싶은 말은 도메인 날리지가 나쁘다는 것이 아니라 그것만으로 현실 세계의 문제를 모델링하고 풀이를 제시하는 것은 부족하다는 것이다. 뭔가 놀라운 기술적, 방법적 혁신이 있지 않는 한 아직 이 문제를 푸는 것은 요원해 보인다.

*: Algorithm Finds Thousands of Unknown Drug Interaction Side Effects

유익한 내용이군. Machine Learning FTW!

2012-03-27 19:42:27
kek :

처음에 제목 보고 "도메인을 왜 날리지" 라고 생각..

2012-03-27 20:48:40

마지막 문단에 공감. 정말 생각지도 못한 구멍 혹은 기타 등등의 것들이 많이 튀어나오는 상황을 어떻게 해결해야할지 고민이 많다.

2012-03-28 11:23:08
waityet :

하지만, 또한 그러한 이유로 인해서 아직 우리가 밥벌어먹고 살아갈 여지가 남아있는거지.. :-P
난 인간이 배재되도 좋을 정도의 기술적 발전은 좀 꺼려지는 편이라. 그렇게 되어서 인간이 '생산'이 아닌 다른 활동을 하면서 즐겁게 살 수 있게되면 좋겠지만, 현실은 시궁창이라 그렇게 되면, 일부의 인간만 그렇게 살고 나머지는 길에 나앉게 될테니까 ㅡ.ㅡ;

2012-03-28 15:53:19

E-mail은 비공개이며 스팸 확인용으로 사용됩니다. 댓글은 마크업 사용이 불가능하되 링크는 자동으로 링크가 걸리며 줄바꿈을 인식합니다.

확률 이야기

세 개의 문 중에 하나를 선택하여 문 뒤에 있는 선물을 가질 수 있는 게임쇼에 참가했다. 한 문 뒤에는 자동차가 있고, 나머지 두 문 뒤에는 염소가 있다. 이때 어떤 사람이 예를 들어 1번 문을 선택했을 때, 게임쇼 진행자는 3번 문을 열어 문 뒤에 염소가 있음을 보여주면서 1번 대신 2번을 선택하겠느냐고 물었다. 이때 원래 선택했던 번호를 바꾸는 것이 유리할까?

이 문제는 이미 널리 알려진 몬티 홀 문제이다. 문제의 답은 잠시 뒤로 미루기로 하고 다른 문제를 한 번 보도록 하자.

세 개의 상자가 있다. 하나의 상자는 두 개의 금동전이 들어있고, 다른 하나는 두 개의 은동전이 들어있다. 그리고 마지막 상자는 금동전 하나와 은동전 하나가 들어있다. 하나의 상자를 임의로 선택한 뒤, 임의로 동전을 하나 꺼냈는데 금동전이었다. 나머지 하나의 동전도 금동전일 확률은 얼마일까?

이 문제도 꽤 유명한 문제인데, Bertrand's box paradox라고 한다. 사실 위의 두 문제는 논리적으로 같은 구조로 되어 있다. 첫 번째 문제의 답은 "선택을 바꾸는 것이 유리하다."이고, 두 번째 문제의 답은 2/3이다. 세세한 답을 설명하는 것이 이 글을 쓰는 목표는 아니니 설명은 그냥 넘어가도록 하자.

나는 이런 문제가 주어졌을 때 한숨부터 나오는 편이다. 어떤 사람들은 직관적인 해답이 보이는 경우도 있을 것이고 어떤 사람들은 조건부 확률을 계산해서 문제를 풀었을 수도 있다. 하지만 어떤 방식으로 풀든지 기본적으로 타인에게 나의 답을 설득하기가 쉽지 않다. 이는 나 자신에게도 적용이 똑같이 되는 말이다. 내가 풀고 나서도 나의 해답이 확신이 들지 않는 경우가 많다. 그래서 보통은 문제를 모델링하고 프로그램을 작성해서 몬테 카를로 방법으로 결과를 확인하는 편을 선호한다.

여기까지 놓고 보면 확률 문제가 간혹 비직관적이긴 하더라도 조건부 확률만 잘 따질 줄 알면 될 것 같다. 최악의 경우에는 몬테 카를로 방법에 기댈 수도 있다. 적어도 나는 예전에 그렇게 생각을 했었다. 그리고 화요일에 태어난 아들 문제를 만났다.

어떤 집에 자식이 둘이 있다. 그 중 하나가 아들인데 화요일에 태어났다. 다른 한 명도 아들일 확률은?

이게 정답이 13/27이란다. 물론 조건부 확률 계산을 해보면 그렇게 결과가 나온다. 아니면 실제로 카운팅을 전부 해보면 같은 결과를 얻을 수도 있다. 못 믿겠으면 14 x 14 테이블을 그려서 아들, 아들인 경우만 색칠해보면 금방 수긍이 될 거다.

내가 이 문제에서 느낀 무력감은 그전까지 느껴왔던 확률 계산의 비직관적인 부분과 많이 달랐다. 이전에 봐온 문제들은 아무리 결과가 비직관적이라고 해도 내가 어떠한 조건을 문제에 포함해야 좋은지는 뻔하게 보였다. 하지만 이 문제는 아무리 생각을 해봐도 도무지 화요일에 태어났다는 정보가 중요하다는 사실이 직관적으로 보이질 않는다. 확률 계산 자체가 직관적으로 안 된다는 게 아니라 확률 계산에 필요한 정보를 직관적으로 찾아낼 수가 없다는 말이다. 이 문제의 경우에는 이렇게 예쁘게 포장이 되어있지만 현실에서 만나는 문제들은 훨씬 더 많은 쓰레기 정보들 틈에서 만나게 될 터인데, 그 상황에 놓였을때 나는 문제를 푸는 데 필요한 정보를 솎아낼 자신이 없다.

여전히 확률 모델을 많이 사용하여 문제를 모델링하고 풀지만 무엇인가 빼놓은 것 같은 느낌이 계속 들고, 마음속에는 "이건 뾰족한 수가 없다." 정도의 생각이 끊이질 않는다.

위의 문제의 해답이 이해가 되지 않는 분을 위해 표를 그려보았다.

Tuesday Boy

계산에서 비 직관적인 부분은 카운팅이던 프로그램이던 뭐든 직관만이 가질수 있는 오류를 커버해주지만, 계산에 어떤 요인을 포함시켜야할지 아는건 얘기가 달라지는구나.
근데 직관이라는게 경험의 축적도 상당히 영향을 미친다는 점에서, 같은 카테고리 내의 문제에 대한 경험이 많은 사람이라면 최소한 crucial한 요인들을 배제하는 경우는 거의 없지 않을까?

2012-03-27 10:06:13

형 저는 문제를 못풀겠어요 -_-;
14*14 테이블을 그린다해도 분모가 2*2*7*7 인데 어떻게 27이 나오죠?

2012-03-27 10:31:18
waityet :

뭐..확률계산 자체가, 주어진 정보만으로 계산하기 때문에 확률인걸. 너무 집착하지 않아도 될듯? 다만, 이미 관계가 명확히 밝혀진 사건들이 아닌이상, 주어진 모든 정보가 확률 계산에 필요한게 원칙이라는게 문제지. 결국 우리의 입장(SE의 입장? CS?)에서는 주어진 모든 정보를 확률계산에 때려넣는건 현실적으로 불가능하니 관계없어 보이는 것을 '제외'하는게 필요한 거고. 뭐 살짝 말만 바뀐거긴하지만서도. 왠지 느낌이 다르잖아 ㅋㅋ.
//Chimnii 씨 말거는 건 첨이지만. 보통 저런 트릭성? 확률 문제는 사람이 직관적으로 확률 계산을 할때 관측되는 것들을 하나의 확률 변수에 대입하게 된다는게 함정임. 조합성의 확률보다 순열에 더 직관적으로 반응한달까.

2012-03-27 11:36:56
waityet :

나 같은 경우엔 확률문제들을 접할 때, 주어진 정보에서야 정확한 계산 이지만, 그것들이 '실제'와 얼마나 차이가 있는지를 볼때, 모델링이라는 작업의 본질을 느끼게 된달까.. 모델링을 부정하지 않지만, 한계를 알게되는듯. 그래서 아무리 잘 만든 모델이라도 그 점을 망각하게 되면 원래의 문제를 비틀어버리는 결과가 나오는 경우를 종종 보게되기도 하고.

2012-03-27 11:43:36
ipkn :

"어떤 집에 자식이 둘이 있다. 그 중 하나가 아들이다. 다른 한 명도 아들일 확률은?"

위 문제의 답을 착각해서 ?!?! 했었는데 저걸 다시 깨닫고나니 납득이 가긴 하네..

2012-03-27 12:31:16

억 맞네요.. 완전 개소릴 했었네 -_-;

2012-03-27 19:06:04
Ntopia :

제가 문제를 잘못 이해한걸 수도 있는데

마지막 아들/딸 문제에서 두 자식의 순서가 상관이 있는건가요?

그냥 저 문제에 주어진 조건만 두고 본다면 두 자식의 순서를 신경쓰지 않아도 될 것 같아서요... 예를 들어 자식이 (아들,딸) 인지 (딸,아들) 인지가 다른 경우가 아니라 같은 경우라고 보는거죠.

그래서 밑의 표에서 대칭된 부분을 지우면(순서가 상관없어지니) 딱 1/2이 나와요

제가 문제를 잘못 이해하고 있는건가요? ㅠ

2012-03-27 20:24:22

요일뿐만 아니라 더 많은 정보(나이가 몇 살이라거나)를 추가하면 결국 이런 요소들은 무시하고 계산해도 정답에 가까워지네. 그래서 데이터마이닝이란 게 가능하겠지?

2012-03-27 21:01:27

Ntopia // 네 논리대로라면 (아들, 아들), (아들, 딸), (딸, 딸)이 각각 1/3의 확률을 갖게 된다. 아들과 딸이 각각 1/2의 확률로 태어난다고 가정하면 (아들, 아들)이 1/4의 확률을 가져야 할 것 같다.

2012-03-27 23:28:43

singleheart // 보통 변수들 사이의 independence를 가정할 수 없지만 현실에서는 naive bayesian classifier도 매우 잘 동작하죠 ㅋㅋ

2012-03-27 23:34:19
피앙 :

요일 정보가 없으면 1/3이 되는 것인가 ..

2012-03-28 16:41:20
김연아 :

화요일은 중요하지 않습니다
자식이 두명일 때 하나가 아들이라면 나머지 하나가 아들일 홧률을 생각해보면 되죠
사실상 두번째랑 같은 문제인데. 대칭적인 형태에서 아니 정규분포에서 가운데가 볼록한 게 빨리 와닿지 않는 것 때문에 오는 혼동일까요

2012-03-30 09:45:31

김연아 // 한명이 아들일 때 화요일이라는 두 사실 모두가 중요하죠.

2012-03-30 18:20:02

E-mail은 비공개이며 스팸 확인용으로 사용됩니다. 댓글은 마크업 사용이 불가능하되 링크는 자동으로 링크가 걸리며 줄바꿈을 인식합니다.