“생각이 하드웨어가 되기까지”
박정일(저자)의 튜링&괴델: 추상적 사유의 위대한 힘(도서명)을 읽고
►책에 대한 성실성 100%
►책에 대한 본인의 평가 ★ ★ ★ ★ ☆ (별 1~5개로 평가)
►한줄 평 & 그 이유
일상생활에서 없어서는 안될 컴퓨터의 배경을 알 수 있는 책입니다. 현재의 컴퓨터의 커다란 틀은 20세기와 크게 다를 건 없고 그 틀을 만든 사람들의 이야기를 다룹니다. 사전 배경이 없는 사람들도 이해하기 쉽게 설명을 해주어 이해하는 데에는 무리가 없었습니다.
►이 책을 추천한다면 누구에게?
이제 막 컴퓨터라는 것에 관심을 갖는 이들, 역사를 좋아하는 사람들
서론
이 책은 서두에 2차 세계대전의 종결을 맡은 것이 있다면 2가지가 있다고 설명합니다. 하나는 일본에 투하된 원자폭탄이며 다른 하나는 컴퓨터라고 합니다. 세계대전의 산물이라고 할 수 있는 컴퓨터는 어떻게 생겨났는지, 그 원리는 무엇인지를 중점으로 다룹니다.
본론
우선 이야기의 주인공인 튜링과 괴델이 누구인지 소개를 합니다. 튜링은 수학자이자, 독일의 매일 바뀌는 암호화된 애니그마 코드를 복호화하는 봄베라는 기계를 만들어 적의 작전을 꿰뚫어 승리로 이끈 장본인입니다. 이와 관련된 부분들은 <이미테이션 게임 (The Imitation Game, 2014)>라는 영화에서 이미 다룬 내용이기에 반갑기도 하고 수학자인 튜링이 저러한 기계를 만들었다고 생각하니 대단했습니다. 동성애이자 백설공주의 사과로 인해 죽은 비운의 천재라고 설명하고 있습니다.
이어서 괴델은 마찬가지로 20세기의 가장 위대한 수학자라고 할 수 있는데 “불완전성 정리”라는 논문을 발표하게 됩니다. 증명이 가능한 것은 완전성을 띄며, 그렇지 않은 것은 불완전하다라는 것을 통해 수학과 산수는 불완전하다라는 것을 증명해냅니다.
이 둘의 공통점이 있다고 하면 둘 다 수학자라는 점이고, 위대한 업적을 남겼음에도 세간에서는 그들을 몰라줬다는 것입니다. 이들의 노력으로 현대 컴퓨터의 모태라고 할 수 있는 것이 생겨났음에도 불구하고 공학자들은 그들을 달갑게 생각하지 않습니다. 일개 수학자가 자신이 해야할 부분을 한다고 나서고 있으니 달갑지만은 않았겠다 생각했습니다. 업적을 알아주기는커녕 무시를 하고 화를 내고 심적으로 많이 힘들었을 것 같습니다. 그럼에도 튜링과 괴델은 컴퓨터를 논하자면 빠지지 않고 나오는 사람입니다.
그 이외의 논리학의 아버지인 프리게의 개념표기법을 보면 현재 프로그램이나 논리회로 설계를 할 때 사용되는 문장연결사들이 여기서 나온 것이라는 것을 직감적으로 알 수 있었습니다. or, and, not, if ~ then 과 같은 논제들 간의 관계를 파악하여 기호화 시켰다고 할 수 있습니다. 다른 사람으로는 무한의 세계를 정의하고자 한 칸토어의 집합론이 있습니다. 무한은 두가지 종류가 있는데 앞으로 일어날 일들인 잠재무한, 이미 완결된 실제무한 이 있습니다.
그렇다면 그들이 다루었던 컴퓨터가 정보를 디지털방식으로 처리하는 것은 어디서 착안된 것인지에 대해 궁금해지기 시작합니다. 간단히 말하자면 10진수를 2진수로 표현이 가능하며 그 역도 가능한 것과 같이 정보를 디지털방식으로 표현이 가능하며, 그 역도 가능하다는 것입니다. 여기서 제가 궁금한 점이 생겼습니다. “왜 하필 2진수의 숫자들로 표현을 한 것인지 의문이 들었습니다. 용량감소측면에서 16진수를 이용하는 편이 더 좋다고 생각했기 때문입니다. 2비트가 아닌 다른 형식으로 컴퓨터를 구현하면 더 빠른 속도로 만들 수 있지 않을까라는 생각이 들었습니다.
이에 관한 생각은 잠시 접어두고 우선은 튜링 기계가 어떤 것인지 살펴봐야 할 것입니다. 숫자 두개랑 연산자가 있으면 그에 대한 답이 무엇이라고는 암산을 하던가 종이에 적으면서 풀던가 하면서 답을 구할 수 있습니다. 하지만 답을 구하는 과정에서 고개를 끄덕이는 행위자체는 도움이 되질 않습니다. 저희가 해당 문제를 보고 어떤 방식으로 접근하는가 그 과정은 동일할 것입니다. 즉, 사람이 문제를 푸는 행위를 모방하여 재구성한 것이 튜링 기계라고 할 수 있습니다. 사람의 연산과 튜링 기계의 차이점이 무엇이냐고 묻는다면 기호를 읽고 기록한다는 점은 같지만 무한한 기다란 테이프에 작은 글씨 기호들을 입력합니다. 갑자기 무한이 왜 나온 것인가 의아해할 수 있지만 논리적으로 모든 경우에 대해서 다루기 때문에 무한이 필요합니다. 이미 존재하는 것들을 모방하여 없던 것을 만드는 행위는 많이 볼 수 있습니다. 연꽃의 표면, 새의 나는 모습, 인간이 생각을 하는 과정… 그 예로 들 것은 많습니다. 이것도 그것 중 하나라고 생각합니다.
특정 규칙에 의해서 값을 나타내 주는 계산기의 형태를 볼 수 있었습니다. 알고리즘 적인 부분에서 본다면 현재의 프로그램 언어와 별반 차이가 없어 보였습니다. 이런 것을 대략 60년 전에 만들었다라는 것이 놀라웠습니다. 더군다나 튜링은 수학자인데 엄청난 것을 만들었다는 사실은 변함이 없습니다. (q, 0, P0, R, r) 이런 기호들을 이용하여 조건을 설정하여 프로그램을 한다고 보면 됩니다. 그렇다면 이러한 것들은 하나 만들어 두면 모든 상황에서 구현이 가능하냐는 것입니다. 그것에 대한 답은 아닙니다. 튜링 기계는 인간의 계산과정을 분석해서 최소 단위를 찾아낸 다음 이를 재구성한 것이다. 다시 말하자면 해당하는 알고리즘(문제)에 대해서만 다룬다는 것입니다.
그렇다면 현대 컴퓨터의 모태라고 불리는 보편 튜링 기계는 무엇일까 생각해볼만 합니다. 일반적인 튜링 기계가 각 문제에 대한 알고리즘이라고 생각할 수 있습니다. 그러면 보편 튜링 기계는 다른 튜링 기계가 할 수 있는 일이라면 혼자서 흉내낼 수 있는 기계로 튜링 기계 중에 가장 강력합니다. 즉, 투입되는 인풋을 튜링 기계가 계산하는 과정을 자체를 흉내내어 산출되는 아웃풋도 산출할 수 있다는 것입니다. 이러한 부분들을 조작으로 구현한 것이 컴퓨터가 되고 컴퓨터의 모태라고 불리는 이유입니다.
어떻게 이게 가능할까 생각해볼 필요성이 있습니다. 이제까지 튜링에 대해서만 얘기를 했으니, 이제는 괴델의 이야기를 할 차례입니다. 보편 튜링 기계를 보면 인풋도 존재하지만 추가적으로 존재해야 하는 것이 있습니다. 그것은 바로 해당 튜링 기계의 알고리즘을 알아야지 같은 결과값을 출력할 수 있다는 것입니다. 그것에 사용된 것이 바로 괴델 수 대응입니다.
일반적으로 수를 대응시킬 때에는 A = 11, B = 1 과 같이 대응자체는 되지만 그것을 다시 원래의 값으로 변환시키고자 할 때에는 본래의 값이 아닌 다른 값들이 나올 수 있습니다. 이러한 문제는 일대일대응이 이루어 지지 않았기 때문에 발생합니다.
그래서 괴델이 불완전성 정리에서 사용한 방법이 ‘괴델 수 대응’입니다. 그것은 위와 같이 표현하는 것입니다. 해석하자면 첫번째 대응하는 수는 소수 2의 차수로, 두번째는 소수 3의 차수로, 그렇게 해서 나온 숫자는 소인수분해로 인해 자릿값과 그에 대응하는 값을 동시에 알 수 있습니다. 이러한 발상은 어떻게 했는지 그저 대단할 따름입니다. 필요한 부분들을 다 챙기면서 간단하게 표현하는 방법입니다. 다만 걱정되는 부분이 있다면, 데이터가 커지게 되면 처리하는 과정에서 딜레이가 발생하지 않을까 하는 걱정이 있습니다.
그렇다면 보편 튜링 기계는 튜링 기계를 어떻게 흉내내는 것일까? 에 대한 답을 해야할 차례입니다. 튜링 기계 T의 괴델 수, (부호수)를 받아서 그것을 기존의 조건으로 변경하여 인풋을 받을 것입니다. 그렇게 되면 튜링 기계 T와 마찬가지로 사용될 수 있습니다. 다만 여기에도 문제점이 아닌 문제가 있다면 일대일 대응관계의 괴델 수를 2진수로 표현하여 들어간다고 하면 그만한 인풋은 어마무시하게 들어갈 것 같다.
지금은 이미 하드웨어 적으로 구현이 되어있기 때문에 그것이 무슨 문제인가 싶지만 튜링의 시대에는 그렇지 않았습니다. 기계 자체는 단추를 조작하여 사용하는 약간 아날로그 식의 방식으로 구현이 되어있었을 것이기 때문에 이러한 발상자체를 할 수 있었다는 것에 신비롭다 생각했습니다. 역시 천재는 천재라고 불리는 이유가 있다는 것을 느낄 수 있는 대목이었습니다.
튜링 기계가 단순 계산기라면 보편 튜링 기계는 어떤 프로그램이든 실행할 수 있는 프로그램 내장형 컴퓨터라고 할 수 있습니다. 유동적 어떠한 프로그램도 흉내낼 수 있다는 점은 커다란 장점으로 작용합니다. 이러한 생각은 cpu나 os를 구현할 수 있다는 것입니다. 이러한 생각의 전환은 지금의 컴퓨터를 있게 한 발상입니다.
그렇다면 튜링의 기계가 최초의 컴퓨터인가 싶겠습니다만 아닙니다. 튜링의 이러한 발상은 실제로 살아생전 할 수는 없었고 30년간 방치되어있었기 때문에 크게 알려지지 않았습니다. 또한 어떠한 기준을 잡을 것이냐에 따라 최초의 컴퓨터가 무엇이냐는 달라지게 됩니다. 그 종류도 많을뿐더러 학자마다 기준이 크게 상이하기 때문이다.
산업혁명의 산물 뉴턴의 역학으로 증기기관이 나온 것과 같이 괴델과 튜링의 수학이 있었기에 컴퓨터가 나왔다고 할 수 있다고 합니다. 그런데 문득 이런 생각이 들었습니다. 수학자인 그들이 어떻게 이런 발상을 하게 된 것일까? 당연한 소리겠지만 그들이 아 이런 기계가 있으면 편할 것 같다 하고 만든 것이 아닐 것입니다. (수학의 역사에서 일련의 중요한 문제가 제기되었고, 수학자와 철학자들은 문제를 해결하기 위해 치열하게 싸웠다. 이러한 과정에서 예기치 않게 ‘괴델 수 대응’과 ‘보편 튜링 기계’가 나온 것이며 p128)과 같이 우연치 않게 발견을 한 것이다.
그렇다면 글쓴이가 말한 수학의 위기는 칸토어의 집합론에서 발생한 ‘역설(paradox)’이라고 할 수 있습니다. 아무런 문제가 없어보이는 과정 속에서 모순이 도출하는 것입니다. 이러한 모순이 발생하게 된다면 이제껏 쌓아온 전제나 가정들은 존재하지도 않았던 것처럼 무너지게 될 정도로 중대한 것이 였습니다. 그렇기에 수학에서 이러한 모순이 발생한 다는 것은 중대한 문제였을 것입니다. 주장하는 이론이 맞기 위해서는 모든 경우에 대하여 성립해야 하는데 그것이 해당하지 않는 부분이 존재한다는 것이기에 기반자체를 흔들만한 일이었습니다.
최대의 난제인 수학의 위기를 용감하게 맞선 자가 있었으니 현대 수학의 아버지라고 불리우는 ‘힐베르트’입니다. 그는 이 난제 상황을 정면으로 돌파하고자 하였다 그렇게 시작된 것이 ‘힐베르트 프로젝트’이다. 20세기에 해결해야할 모순들 23가지를 발표하였고 이것을 해결하기 위해 일생을 쏟아 부었습니다. 그로 인해 튜링과 괴델이 활동하는 배경이 완성이 되었습니다.
이러한 장면들을 볼 때에 이론이라는 것은 마법처럼 ‘뿅’하고 갑자기 나오는 것이 아닌 스택을 쌓는 듯이 기존의 것을 바탕으로 하여 점점 고차원적인 것들을 구현할 수 있는 것 같습니다. 그렇기에 지금까지 쌓인 것들은 집단 구성체의 산물이며 이러한 과정으로 오기까지 수많은 시간과 노력이 걸렸다는 것을 인지해야 할 것입니다. 그렇게 생성된 이론들을 쉽게 이해하지 못하는 이유가 여기에 있는 것 같다. 한 번에 완성된 것이 아니기 때문에 단 한 번의 설명으로 이해할 수는 없는 노릇이고 그저 종이쪼가리에 뭔가 적혀있구나 싶은 것뿐입니다. 이론들만 본다면 거부반응이 생길 수밖에 없는 것 같습니다.
글쓴이는 생각하는 컴퓨터에 대해서 다음과 같이 정리했습니다.
“과연 기계는 생각할 수 있는가?
과연 인간은 생각할 수 있는 기계를 만들 수 있는가?
만일 기계가 생각을 할 수 있다면 기계가 생각을 할 수 있다는 것을 어떻게 알 수 있는가?(p230)”
우선 튜링은 첫번째, 두번째 질문에 긍정적으로 생각하며, 세번째에도 ‘튜링 테스트’라는 방식으로 할 수 있다고 하였습니다.
기계는 과연 생각할 수 있을까?라는 질문은 바로 답이 나올 만한 질문은 아닙니다. 이에 답을 하기 위해서는 우선 인간과 기계를 구분지어야 할 무언가가 필요합니다. 물론 구성물질부분에서 유기물이다 무기물이다 라는 확고한 차이를 보이기는 하지만 그러한 부분을 통해서 기계가 생각을 한다 안한다를 구별할 수는 없다는 것을 알 수 있습니다. 고도의 발전이 있다고 한다면 기계가 내리는 결론은 생각을 해서 하는것일까 아니면 그저 정해진 상황에 따라 판단을 하는 것일까 라는 대목이 존재할 수밖에 없습니다.
그렇기에 판단하는 기준으로 튜링은 위에서 말했다시피 ‘튜링 테스트’를 제시했다. 간단히 (인간이 컴퓨터에게 속는 경우가 가능한지를 시험하는 게임이다 p212) 이부분은 제가 개인적으로 관심있어하는 부분이기에 주의깊게 봤습니다. 기계 즉, 인공지능이 생각이라는 것을 할 수 있을까? 라는 부분은 오래전부터 계속되던 질문이고 개인적으로 저는 가능하다고 생각합니다. 튜링의 테스트 정도는 통과할 수 있을 것이라고 생각합니다. 그러한 인공지능을 만드는 것이 제 목표이기도 합니다. 스스로 생각하여 판단을 내릴 수 있는 인공지능을 만들어 보고 싶습니다. 그렇기 때문에 사소한 부분임에도 눈길이 더 끌렸습니다.
그러나 모두가 튜링 테스트를 달갑게 생각하는 것은 아닙니다. 그 튜링 테스트가 모든 경우에 성립할 수는 없다고 생각을 한 것입니다. 알파고처럼 특정 부분에 대해서 집중적으로 교육을 받는다면 인간의 행동을 유심히 관찰하여 비슷한 행동을 한다면 테스트 케이스가 성립하지 않는다는 것입니다. 물론 이 말에 동의합니다. 그래서 차선책으로 특정 자극을 주면 그 자극에 대한 반응이 사랑이랑 일치하는가와 같이 할 수 있다고 합니다. 그런데 이런 부분들도 같은 논리로 부정합한 것은 아닌지 의문이 듭니다. 합리적인 의심이 들었습니다.
사람과 비슷한 인공지능을 만든다는 주제 자체가 조금은 하나님을 모방할 수 있다는 점에서 조금 부정적인 인식이 있을 수도 있습니다. 하지만 저는 한 사람이 커오면서 받는 교육과정이나 배우는 부분들을 인공지능이 배운다면 그리고 복제가 가능하고 어디서든 이용할 수 있다라면 그것은 사람 한 명분의 이용가치가 아닌 그것을 능가하고 남는 일이라고 생각합니다. 그렇기에 이 분야는 더욱 발전되어야 할 것이며 제가 꿈꾸고 있는 이유입니다. 그러한 시각에서 봤을 때에 생각하는 기계를 다루는 부분은 저에게 많은 생각을 하게 만들었습니다.
결론
일단 전반적으로 독자가 모를만한 내용을 부연설명을 함으로써 어떤 것인지 알 수 있어서 좋았습니다. 제 옆에 항상 붙어있는 이 컴퓨터도 그러한 사람들의 고생으로 이루어진 결과물이라는 것을 느끼게 되었습니다. 뭐든 베이스가 되는 부분이 중요한 것처럼 어떤 방식으로 컴퓨터가 구동이 되는지 알 수 있는 기회가 되어서 좋았습니다.
제가 이루고자 하는 인공지능은 스스로 생각을 할 수 있는 인공지능입니다. 그러한 판단 근거와 그렇다고 했을 때에 직면하는 문제들, 더 나아가서 어떠한 목표로 나아가야 하는지 생각해보는 계기가 되었습니다.