컴퓨터처럼 생각하기
일상에서든 업무에서든 의사결정은 쉽지 않다. 이러한 어려움을 컴퓨터가 문제를 해결하는 방식으로 적용하면 쉽게 해결할 수 있다고 인지 과학자 톰 그리피스 (Tom Griffiths)는 제안한다. 더 좋은 의사결정을 위한 세 가지 방법 - 컴퓨터처럼 생각하기 (3 ways to make better decisions — by thinking like a computer) 강연에서 그는 집을 구하는 것부터 오늘 저녁 어느 식당에 갈지에 대한 선택의 문제 해법을 재치 있게 알려준다.
그가 제시하는 컴퓨터에서 활용하는 세 가지 방법은 다음과 같다. 이 법칙을 우리 일상에서 어떻게 적용할 수 있는지 아래에서 살펴보자.
1) 최량 정지 문제 (optimal stopping problem)와 관련된 37%의 법칙 : 37%의 노력으로 최적의 기댓값을 얻을 수 있다.
2) 탐색과 활용 트레이드 오프 (explore-exploit trade-off): 새로운 정보를 모으기 위한 탐색은 시간이 오래 걸리고, 활용은 빨리 사용할 수 있는 반면 향상이 되지 않는 트레이드 오프가 있다.
3) 가장 최근에 덜 사용된 원칙 (least recently used principle): 이 원칙을 사용하면 제한된 용량으로 빠른 접근이 가능하다.
시드니에서는 집을 사거나 임대하기는 어렵다. 매물을 보기만 하다가 결정을 해야 할 때를 알기가 어렵다. 이렇게 고통스럽고 친숙한 문제에 대해 간단한 해결책이 있다. 바로 37%의 법칙이다. 최량 정지 문제 (optimal stopping problem)는 수학자와 컴퓨터 과학자가 주로 다루는 연구 문제 중 하나로 기댓값을 얻기까지 하는 특정 행동의 시간을 의미한다. 즉 최상의 장소를 찾는 가능성을 극대화하고 싶다면 시장에 있는 37%를 반드시 보고 그다음으로 보는 곳을 선택하면 그곳이 지금까지 본 어느 곳보다 더 좋을 것이다. 혹은 한 달 동안 찾는다면 37%의 시간인 11일을 투자하는 방법이다.
어느 식당에 갈지 결정하는 상황을 보자. 다음에 사용할 수도 있는 새로운 곳을 가기 위해 정보를 모으는 탐색 혹은 지금까지 이미 모아 온 정보 활용으로 이미 잘 알고 있는 곳에 가는 활용 중 선택을 해야 할 것이다. 이는 기술 회사가 직면하는 문제이기도 하다. 웹 페이지에 어떤 광고를 보여줄지 결정할 때와 같다. 새로운 광고를 보여주어 그와 관련된 뭔가를 알리게 할지 혹은 이미 잘 알고 있는 광고를 보여주어 클릭을 유도해야 할지를 결정하는 것과 같다.
이러한 결정을 위해 스스로 해야 할 첫 질문은 '시내에 얼마나 오래 있을 것인가?'이다. 잠시 있을 거라면 활용해야 한다. 정보를 수집할 필요가 없고 그냥 이미 아는 곳에 가는 게 좋다. 하지만 오래 있을 거라면 탐색을 하여 새로운 곳을 시도하라. 이러한 정보는 다음 선택을 항상 시킬 수 있다.
이 원칙은 우리 삶에도 통찰을 준다. 아기들은 특별히 이성적이지 않고, 항상 새로운 것을 시도하고, 입에다 모든 것을 집어넣는다. 하지만 실은 이게 바로 아기들이 해야 할 일이다. 아기들은 자신의 삶의 탐색 단계에 있고 이를 통해 어떤 게 맛있는지 알게 된다. 노인은 항상 같은 식당에 가고 항상 같은 것을 먹으면서도 질리지 않는 최적의 상태에 있다. 노인은 인생의 경험을 통해서 가진 지식을 활용한다.
활용 트레이드 오프를 아는 것은 스스로 긴장을 풀고 쉽게 결정할 수 있도록 한다. 매일 저녁 최고의 식당에 갈 필요는 없다. 기회를 가지고 새로운 곳을 시도해보는 탐색을 하라. 뭔가 배우게 된다. 이렇게 얻게 되는 정보는 한 번의 좋은 저녁보다 더 가치가 있다.
마사 스튜어트는 깔끔한 옷장 정리를 위한 방법으로 다음 네 가지 조언을 한다.
내가 얼마 동안 가지고 있었나?
아직도 괜찮은가?
내가 이미 가지고 있는 것과 중복되지는 않는가?
내가 마지막으로 입거나 사용한 게 언제인가?
컴퓨터의 메모리 시스템을 디자인하는 전문가는 이 중에서 마지막 질문이 가장 중요하다고 말한다. 대부분의 컴퓨터는 두 종류의 메모리 시스템을 가진다. 빠른 메모리 시스템으로 제한된 용량을 가지는 일련의 메모리 칩 같은 것과 훨씬 더 큰 느린 메모리 시스템이 있다.
컴퓨터를 가능한 한 효율적으로 운영하기 위해서 접근하고 싶은 정보 조각은 빠른 메모리 시스템에 두어야
빠르게 가져올 수 있다. 정보 조각을 접근할 때마다 빠른 메모리에 로드하면 용량 제한 때문에 컴퓨터는 메모리에서 제거해야 할 아이템을 결정한다. 수년 동안 컴퓨터 과학자들은 몇 가지 다른 전략을 시도해 왔는데 가장 효과적은 전략은 최근에 가장 덜 사용된 아이템에 집중하는 것이다.
우리의 옷장은 바로 컴퓨터의 메모리와 같다. 공간이 제한되어 있고 가장 필요한 것들을 입어보고 넣을 필요가 있어서 가능한 한 빨리 꺼낼 수 있어야 한다. 그것을 안다면 가장 최근에 덜 사용된 원칙을 적용할 필요가 있다.
사물을 정리하는 이 아이디어 즉, 가장 필요할 것 같은 것을 가장 쉽게 접근할 수 있게 하는 것은 사무실에도 적용할 수 있다. 일본 경제학자인 유키오 노구치는 정확하게 이 특성을 가진 파일링 시스템을 실제로 개발했다. 그는 상자의 왼쪽에서부터 문서를 넣었다. 매번 문서를 추가할 때 그 안에 있는 것을 오른쪽으로 이동시키고 새 문서는 상자의 왼쪽에 넣었다. 문서를 봐야 할 때 꺼내어 보고 나면 제일 왼쪽에 넣었다. 그 결과 문서는 가장 최신 순인 왼쪽에서 오른쪽 순으로 정리된다. 문서를 찾을 때 상자의 왼쪽에부터 시작해서 오른쪽으로 찾으면 매우 빨리 원하는 문서를 얻을 수 있다.
때때로 우리가 풀어야 할 문제는 매우 어렵다. 하지만 그런 경우에라도 컴퓨터 과학은 약간의 전략을 제안하고 어쩌면 약간의 위안도 준다. 최고의 알고리즘은 최적의 것을 최소의 시간에 해결한다. 컴퓨터가 어려운 문제에 접하면 무작위를 사용하거나 제약을 없애거나 근사치를 허용해서 그것을 작은 문제로 만들어서 처리한다. 그러한 단순해진 문제 해결은 어려운 문제에 대한 통찰력을 제공할 수 있고 때로는 자체적으로 매우 좋은 해결책을 만들기도 한다.
이 모든 원칙을 알면 의사결정을 할 때 편하게 할 수 있다. 예를 들어 집을 구할 때 37%의 법칙을 적용할 수 있다. 모든 선택을 다 고려할 수 있는 방법은 없으므로 기회를 잡아야 한다. 최적의 전략을 따른다 해도 완벽한 결과를 보장할 수는 없다. 37%의 법칙에 의하면 최상의 장소를 찾을 확률은 37%다. 우리 모두 대부분 실패한다. 그러나 그게 우리가 할 수 있는 최선이다.
궁극적으로 컴퓨터 과학은 우리 스스로의 한계에 대해 더 너그러워지는데 도움이 된다. 우리는 결과가 아닌 과정만 통제할 수 있다. 최상의 프로세스를 사용하기만 하면 우리는 할 수 있는 최선을 다한 것이다. 때로는 그런 최상의 프로세스가 기회를 잡는 것과 관련되어 우리가 모든 선택을 고려하지 않거나 적당히 좋은 해결책을 선택하려 할 수 있다. 이는 우리가 이성적일 수 없어서 하는 절충하는 게 아니라 그게 바로 이성적인 것에 대한 정의다.
이 강연은 컴퓨터에서 사용하는 논리를 우리의 삶에 적용하여 의사결정에 도움을 줄 수 있는 방법을 제시한다. 37% 원칙이 주는 메시지는 여러 가지로 해석될 수 있다. 우리는 인간이므로 완벽할 수 없다. 하물며 컴퓨터도 최적의 알고리즘을 계산한 결과, 37% 투입을 했을 때 기대하는 결과가 나온다. 세상에서 선택할 수 있는 게 100개가 있다면 100개을 모두 다 보지 않더라도 37개만 보면 노력 대비 최적의 결과를 얻을 수 있다. 즉 37개를 봤으면 결정을 해야 한다. 여기서 주의할 점은 우리는 37개까지 해보지 않는다. 우리가 직장을 구할 때나 배우자를 선택할 때도 37% 법칙을 적용할 수 있다. 100곳의 직장이 있다면 37곳을 두드려 보고 선택해야 하고, 100명의 이성이 있다면 37명을 만나봐야 한다. 보통 37%까지 시도하지 않고 절충한다. 이제 이 법칙을 알았으니 스스로 37%의 시도를 했는지 자문해보자.
나는 여기서 탐색/활용 트레이드 오프 법칙이 마음에 든다. 아기 때는 그렇게 탐색하고 새로운 것을 시도하면서 점점 나이가 들면서 탐색보다는 활용에 집중한다. 경험도 많이 해봤고 알만큼 아니 그냥 하던 대로 하는 경향이 있다. 그렇게 되면 빠른 시간 내에 문제를 해결할 수 있을지는 모르지만 새로운 정보를 얻을 기회는 없어진다. 강연자의 주장대로 탐색을 하면 한 번의 맛있는 저녁 식사보다 더 가치 있는 정보를 얻을 수 있다. 나이가 들어도 새로운 탐색에 도전해야 할 것이다. 오늘의 일과에서 탐색과 활용의 비중은 어떠했는지 스스로 생각해보자.
"컴퓨터가 어려운 문제에 접하면 무작위를 사용하거나 제약을 없애거나 근사치를 허용해서 그것을 작은 문제로 만들어서 처리한다."것을 우리 삶의 문제에 적용해보는 것도 좋겠다. 어려운 문제를 그 자체로 한 번에 해결하겠다는 생각보다는 문제의 일부만 골라서 해결해 본다거나, 문제를 만드는 원인을 막거나, 유사하지만 기존에 해결했던 방식을 활용해볼 수 있다. 혹은 애플리케이션을 개발하는 방식에서 있어 더 조그마한 여러 서비스로 분해하는 마이크로서비스 (microservice) 개발방식처럼 어려운 문제를 쪼깨어서 생각해볼 수 있다.
컴퓨터에서 사용하는 논리를 우리의 일상에 접목하여 쉬운 예제로 설명하니 흥미롭고 컴퓨터 과학에 대한 이해도 쉽다. 다른 분야에서 일하는 전문가도 이런 방식으로 자신의 일을 일상과 접목하여 설명하면 어떨까? 재미있는 결과가 기대된다.
관련 도서: <알고리즘, 인생을 계산하다> 브라이언 크리스천, 톰 그리피스 저
<Algorithms to Live By: The Computer Science of Human Decisions> by Brian Christian, Tom Griffiths
* 도서정보를 알려주신 푸른강님께 감사합니다.