티스토리 뷰

00. 나영이에게

마지막 통화에서 우리는 삶이 얼마나 제멋대로 흘러가는지에 대해 이야기했지. 나름 열심히 고민해서 내린 결정인데 뜻대로 되지 않는 경험은 썩 달갑지 않아. 네가 요새 고민하던 논문 주제도 그래. 쓰다 보니 다른 사람이 이미 다룬 주제였거나 내용 증명에 대한 한계 등의 여러 이유로 6개의 논문 주제를 포기해야 했잖아. 당시에는 여러 가능성을 고려했는데 막상 현실은 내가 계산한 가능성보다 훨씬 다양하고 불확실했어.

논문 주제 뿐만 아니라 모든 결정 앞에서 우리는 고민하게 돼. '과연 이 판단이 옳을까', '이 결정이 좋은 결과로 이어질까'를 생각하다 보면 세상을 너무 불확실하고 결정하기 두려워져. 모든 것을 고려하지 못하고 내리는 결정이 가져다 줄 알지 못할 결과가 무섭거든. 의사 결정의 방법론이나 데이터는 매년 쏟아지지만 우리는 매번 불확실하고 불안한 결정 앞에 서게 돼.

01. 컴퓨터가 말하길, 생각 좀 그만해!

형후가 글을 읽고 추천해준 이미지

컴퓨터 과학과 철학 두 분야에서 학위를 받은 저자가 쓴 <알고리즘, 인생을 계산하다 Algorithms, to live by>는 인생의 불확실성에 대해 꽤나 재밌는 대답을 해. 이 책은 일상에서 마주하는 문제를 해결하는 데 컴퓨터 과학에 사용되는 알고리즘을 적용한 책이야. 고1 수준의 수학 지식만 있다면 이해하기에 그다지 어려움이 없을 정도로 쉬워. 수학적 증명보다는 문제에 대해 컴퓨터 과학이 접근하는 방식을 말하려고 노력한 흔적이 보여. 이 책이 결정에 대해 다룬 부분이 있는데 상식에 반하는 방법을 보여줘. 책에서 나오는 사례를 들어볼게.

대학 교수 톰은 강의를 준비하고 있어. 그러나 10시간이나 공들인 강의는 학생들의 반응이 좋지 않았어. 반대로 시간이 없어 3시간 밖에 준비하지 못한 강의는 학생들의 반응이 호의적이었지. 톰은 강의의 모든 순간을 '완벽하게' 만들기 위해 노력했지만 결과는 반대였어. 더 적은 노력이 더 나은 결과를 가져다 준거지. 무엇이 문제였을까? 톰의 노력은 왜 배신당한 걸까?

책에서는 이를 측정 데이터와 현실 데이터 간의 격차 때문이라고 말해. 좋은 강의를 만들기 위해 톰은 자신의 지식수준을 기준으로 학생들의 지식수준을 예측했어. 그러나 학생들의 지식수준은 톰의 예상보다 훨씬 낮았지. 만약 이 차이가 더 벌어진다면, 톰이 초등학생을 위해 현대 미술에 대해 강의를 해야 한다면 데이터에 기반한 결정은 더욱 어려워지겠지. 톰은 초등학생이 그림에 대해 무엇을 아는지 모르기 때문이야.

측정할 수 있는 데이터(톰의 지식수준)에 매달려 현실의 데이터(학생들의 지식수준)를 무시하게 되는 현상을 과적합이라고 해. 결정을 위해 모델을 만들 때 측정 자료에 너무 맞춰서 오히려 모델의 정확도가 떨어지는 현상이야. 더 많은 요소를 고려한 복잡한 모델이 만들어내는 현실과의 괴리야.

모델이 고려하는 요인이 늘어날수록 결정계수(R2)는 높아지지만 모델을 맛탱이가 간다.

조기 멈춤은 과적합을 방지하는 방법이야. 자료를 설명할 수 있는 모델을 만들기 위해 모든 요인을 고려하는 게 아니라 적절한 수준에서 멈추는 거지. 톰이 10시간을 들인 강의보다 3시간짜리 강의가 더 좋았던 이유가 이거야. 톰이 3시간 정도로 준비한 강의 내용이 학생들의 지식수준에 맞았던 거지. 그렇다면 다음 질문이 이어져. 적절한 판단을 위해 언제 멈춰야, 생각을 그만둬야 하는 걸까?

이는 결정에 있어 내가 생각하는 중요한 요인(톰의 지식수준)과 실제로 중요한 요인(학생들의 지식수준) 간의 격차에 달려있어. 그 격차가 클수록 일찍, 작을수록 더 오래 고민해야 해. 만약 내게 모든 자료가 주어져있고 실제로 중요한 요인이 무엇인지 안다면 끝까지 고민하는 게 옳아. 하지만 내가 열심히 모은 자료가 현실에서 중요한 요인을 대변하지 못한다면 빨리 멈춰야 해. 현실의 불확실성이 너무나도 크다면 생각을 멈추고 직관에 맡기는 게 합리적이야.

직감을 따르는 것이 합리적인 해결책일 수도 있다. 결정이 복잡하고 불안정하고 불확실할수록, 그 편이 더 합리적인 접근법이 된다.

"그래서 불확실한 상황에서 불확실한 결정에 대해 받아들이고 체념하는 방법밖에 없어?"라고 묻는다면, 반은 맞고 반은 틀려. 불확실성을 받아들인다는 것은 무작위의 결과에 체념한다는 뜻이 아니야. 오히려 불확실성을 변수로 확인하고 제어하겠다는 뜻이지.

02. 불확실성을 가까이 두기

내게 안정감을 주는 친구는 가까이해야 하지만 어디로 튈지 모르는 적은 더 가까이 두고 감시해야 해. 불확실성은 어디로 튈지 모르는 적이야. 따라서 결정에 앞서 이를 그냥 두지 말고 내가 제어할 수 있을 정도로 끌어내려야 해. 컴퓨터 과학에서는 이를 두고 완화라고 말해. 모호한 불확실성을 내가 볼 수 있는 확실한 불확실성으로 만드는 거지.

미스터리의 산 X가 있어. 아무도 등정하지 못했기에 얼마나 높은지 알 수 없어. 그 높이를 측정하기 위한 방법은 에베레스트와 비교하는 거야. 미스터리의 산 X는 에베레스트보다 N만큼 높아보인다라는 식으로. 오차는 어쩔 수 없어. 하지만 미스터리의 산 X라는 불분명한 이름에서 에베레스트보다 N만큼 높아 보이는 산이라는 측정 가능한 이름으로 바뀌었잖아. 완화는 불가능한 문제를 측정 가능한 문제와 비교하여 그 수준을 끌어내리는 방법이야.

완화 기법 중 대표적으로 제약 조건 완화가 있어. 해답이 보이지 않는 문제의 조건을 풀어둠으로써 완벽한 해답에 가까운 해답을 찾는 거야. 우리는 무의식적인 질문으로 이 방법을 하기도 해. '만약 내가 돈이 정말 많다면 무엇을 할 수 있을까', '내가 아무것도 두려워하지 않는다면 어떤 선택을 할까', 등 조건을 풀어 가정해보는 거지. 인생이 망했다고 느끼는 사람에게 상담사가 '만약 당신에게 아무런 잘못된 것도 없다면요?'라고 질문하는 것도 이에 해당해. 인생이라는 문제가 너무 어렵기 때문에 문제의 난이도를 낮춰 해결 가능한 지점부터 시작하는 거지.

이 책을 읽고 야심 차게 네게 답을 알려주겠다고 쓴 저번의 편지 후에 나는 고민이 많았어. 수학자도 컴퓨터 과학자도 아닌 내가 뭘 안다고 네게 답을 알려주겠다는 건지. 그래서 다시 펜을 잡기까지 용기가 나지 않았어. 그러다 내가 해답에 잘못 접근하고 있다는 걸 깨달았어. 나는 네게 답을 줄 수 없어. 그건 미스터리의 산 X야. 하지만 네게 답을 찾는 방법을 알려주는 책을 소개할 수는 있지. 진정한 해답과 오차 범위는 매우 크겠지만 내가 현실적으로 등반할 수 있는 해답을 네게 제시하고자 지금 펜을 잡고 다시 쓰고 있어.

어려운 문제를 쉽게 만드는 것, 이상화한 세계에서 진척을 이룬 뒤 현실세계에 다시 적용하는 것이다. 현재 직면한 문제를 풀 수 없다면, 그 문제의 더 쉬운 판본을 풀어라. 그런 뒤에 그 해답이 정식 문제의 출발점이나 이정표가 되는지를 알아보자. 아마도 충분히 그럴 것이다.

이 방법은 환상 속에만 존재하는 완벽한 답을 위해 시간을 보내기보다 문제를 완화하여 완벽한 해답에 가까이 갈 수 있게 만들어줘. 그렇다면 다음 질문은 자연스레 따라와. 완화된 쉬운 문제의 해답과 해결 불가능한 문제의 완벽한 해답의 격차를 어디까지 줄일 수 있을까?

03. 우연에 맡긴다는 것이 길을 잃는다는 뜻은 아니다.

에베레스트보다 N만큼 높아 보이는 산인 미스터리의 산 X를 오르기 위해서는 어떻게 해야 할까. 컴퓨터 과학은 우연을 이용해. 우습게 들리겠지만 우연을 이용하여 최적의 해답을 찾는 것은 머신러닝 알고리즘에서 주요한 방법론이야. 언덕 오르기 알고리즘은 가장 높은 지점이 어딘지 모를 때 우연을 이용하여 오를 수 있는 최고 지점을 찾아. 위키백과를 보면 엄청나게 어려워 보이는 수식으로 설명하지만 사실 본질은 간단해.

  1. 시작 지점을 고른다.
  2. 올라가는 언덕이 있다면 오른다.
  3. 더 이상 올라갈 곳이 없다면 지점을 바꿔 다시 오른다.

컴퓨터 과학이 우연을 사용하는 이유는 변화를 위해서야. 현재의 해답보다 더 나은 답안이 있는지 확인하기 위해 변화를 주는 거지. 이는 좋은 변화뿐만 아니라 나쁜 변화까지도 기꺼이 감수하는 방법이야. 왜냐하면 우리의 목표는 국소 최대(Local Maximum, 내가 생각할 때 최적의 해답)에서 전역 최대(Global Maximum, 실제 최적의 해답)니까. 지금 조금 낮아지더라도 결국에 오를 수 있는 가장 높은 곳에 오를 거니까

나는 글을 쓸 때 이런 경험을 자주 해. 개요를 짜고 목적에 맞게 글을 썼음에도 무언가 부족한 느낌. 하지만 어디를 손봐야 할지는 전혀 모르는 상황. 오래 들여다봐서 문제가 보인다면 좋겠지만 몇 시간이고 머리를 싸매 봐도 손대기 힘들 때가 많아. 그렇다면 그냥 우연에 맡기는 거야. 나는 본론 1과 2는 아무 문제가 없다는 완화된 조건을 두고 본론 3을 고치려 해. 기존의 틀에서 조금만 벗어날 수도 있지만 나는 완전히 바꿔볼 거야. 글이 일관성을 잃고 엉망이 될 수도, 혹은 정말 작은 확률로 글이 더 나아질 수도 있어. 하지만 변화가 생기는 순간 다음으로 올라갈 곳이 보이는 거지. 내 글이 '어느 정도 괜찮음'에 있으며, '조금 더 괜찮음'이라는 봉우리로 가는 길이.

무작위 요동을 일으키는 것, 틀 바깥으로 내동댕이쳐서 더 큰 그림에 초점을 맞추도록 하는 것은 국지적으로 좋은 것에서 벗어나서 전체적으로 최적인 것을 추구하는 일로 돌아가도록 할 방법을 제공한다.

04. 결정 앞에 선 인간과 컴퓨터의 차이점

우리가 살펴본 세 알고리즘은 사실 우리가 일상적으로 사용하는 방법이야. 컴퓨터 과학에서 이를 확률 모델로 발전시켜 사용하는 것뿐이지.

  1. 조기 멈춤: 현실이 너무 복잡해서 예측이 힘들 때는 차라리 직관을 사용하기
  2. 완화: 불확실한 문제를 그냥 놔두지 말고 이해할 수 있는 불확실한 문제로 만들기
  3. 무작위성: 우연을 이용하여 변화를 만들고 더 나은 해답을 찾기

컴퓨터 과학과 우리가 사용하는 전략의 차이점이라면 불확실성을 대하는 태도뿐이야. 우리는 결정에 앞서 불확실성을 극복하고 없애야 할 것으로 대해. 반면 컴퓨터 과학은 불확실성을 긍정적으로 이용해. 불확실성으로 인한 현실과 판단의 격차는 최고의 해답에 얼마만큼 가까이 다가갈 수 있는지를 파악할 수 있는 이정표니까.

불확실성을 대하는 태도의 차이는 우리에겐 단 한 번의 기회밖에 없다는 사실 때문이지. 만약 우리가 과거로 돌아갈 수 있다면, 미래를 확인한 채 새로운 선택을 할 수 있다면 이러한 고민은 모두 쓸모없는 게 되겠지. 그러나 반대로 이렇게 생각해보면 어떨까. 불확실성은 인간으로 살기 위한 조건이라고. 한나 아렌트는 불확실성에서 벗어난 완벽한 자유는 꿈이며 '자기 지배의 이상'*일 뿐이라고 말해. 그녀에게는 삶의 불확실성이야말로 진정한 자유를 만드는 조건이야. 자유의 뜻은 결과를 지배한다는 게 아니라 내 의지로 선택한다는 것이기 때문이야.

* 인간의 조건, 한나 아렌트, 한길사

그렇다면 삶이란 문제의 완화된 버전은 '불확실한 결정에 따른 결과의 우연을 받아들이고 이를 이용하기'야. 그래서 네게 이 책에서 말하는 컴퓨터가 불확실성에 대처하는 자세를 말해주고 싶었어. 불확실성을 피할 수는 없지만 이를 최소화하고 이용하는 방법이 있다는 걸 말이야. 우리를 옥죄는 불확실성이 완벽한 카오스가 아니라는 것도, 그리고 미래에 대한 두려움은 우리 앞에 펼쳐진 수많은 가능성을 의미한다는 것도. 이 불확실한 세계에서 네가 내리는 불확실한 결정이 덜 무서워졌거나, 혹은 (내 바람이야) 조금은 친근하게 느껴졌으면 좋겠어.

춤추는 별을 탄생시키기 위해서는 우리 안에 혼돈을 품고 있어야 한다. _니체

P.S) 물론 네가 고민하는 '어떻게 최고의 논문 주제를 찾을 수 있을까?'에도 도움이 되길 바라.

P.S2) 생일 축하한다. 너의 바보개에게 안부 전해줘.

 

알고리즘, 인생을 계산하다

미국·일본 아마존 베스트셀러, [포브스] [가디언] [커커스리뷰] 극찬일상의 모든 문제를 풀어나가는 최적 인생 계산 도구, 알고리즘 11 “나는 인생의 모든 답을 컴퓨터과학에서 배웠다!”수많은

www.yes24.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함