-
-
생각하는 기계 - 대니얼 힐리스가 들려주는 컴퓨터 과학의 세계 ㅣ 사이언스 마스터스 14
대니얼 힐리스 지음, 노태복 옮김 / 사이언스북스 / 2006년 11월
평점 :
- 대니얼 힐리스 저, 노태복 역, 2006, 270쪽, 사이언스북스
부제 : 대니얼 힐리스가 들려주는 컴퓨터 과학의 세계
그렇지 않아도 작년 이세돌과 ‘알파고’의 바둑게임에서 적지 않은 충격을 받은 바 있기에 ‘생각하는 기계, 컴퓨터’인 ‘인공지능’ 이야기가 담겨 있는 <생각하는 기계>를 몇 년 만에 다시 읽었다.
이 책은 컴퓨터의 근본 원리를 알기 쉽게 설명하기 위해 출간된 것이라고 소개되어 있다.
대니얼은 컴퓨터의 원리가 한없이 복잡해 보이지만, 실제 그 원리는 “아주 간단하다”고 말한다.
“컴퓨터 한 대에 들어 있는 부품의 개수는 라디오에 비하면 훨씬 많지만, 부품들이 함께 작동하는 방식은 훨씬 더 단순 하다.”(12쪽)
저자는 ‘기술’보다는 ‘아이디어’가 ‘컴퓨터의 핵심’이라고 주장한다. 게다가 아이디어는 컴퓨터를 제조하는 데 필요한 전자 기술과는 별로 관련이 없다고까지 말한다. 보통은 컴퓨터를 트랜지스터와 전기 회로로 만들지만, 컴퓨터 구성 원리에 따르기만 하면, “밸브나 수도관 심지어 막대와 줄로도 만들 수 있다”는 것이다.
“컴퓨터가 컴퓨터일 수 있게 해주는 것은 바로 그 원리다! 컴퓨터에 관한 가장 놀라운 점은 기 술보다는 핵심 원리가 훨씬 더 중요하다는 사실이다. 이 책은 바로 그 원리에 관한 책이다.”(12쪽)
<생각하는 기계>는 대니얼의 설명처럼 아이디어에 관한 책이다. 따라서 컴퓨터 활용법 내지는 컴퓨터를 만드는 기술(롬, 램 디스크 드라이버 등)에 관한 대다수의 책들과는 다르다. 이 책에서는 컴퓨터 과학 분야의 가장 중요한 아이디어들을 설명하거나 적어도 간략히 소개한다.
불 논리, 유한 상태 기계, 프로그램, 컴파일러와 인터프리터, 튜링 보편 기계, 정보 이론, 알고리듬과 알고리듬의 복잡성, 휴리스틱, 계산불능 문제, 병렬 컴퓨터, 양자컴퓨터, 신경 네트워크, 기계어, 자기 조직화시스템 등을 말이다.
컴퓨터에 관심이 많은 독자라면, 이 책에 나오는 아이디어들을 이 전에 접해 보았을지도 모른다. 그러나 컴퓨터 과학을 정식으로 배우지 않은 이상, 각각의 아이디어를 전체적으로 연결하여 하나의 컴퓨터를 구성하는 방법에 대해서는 알아볼 기회가 거의 없었을 것이다. 이 책은 바로 그 연결에 대해 설명한다.
저자는 이 책에서 스위치 1개를 켜고 끄는 물리적인 동작에서부터 자기 인식 병렬 컴퓨터가 행하는 학습과 적응능력까지 컴퓨터 과학에서 다루는 아이디어를 연결한다.
대니얼은 블록 쌓기놀이의 일종인 ‘팅커토이’라는조립용 완구로 어린 시절 오목게임과 비슷한 간단한 게임을 하는 ‘팅커토이 컴퓨터’를 만들었다. 어떻게 어린 아이가 컴퓨터를 만들 수 있었을까?
어린 대니얼이 컴퓨터의 근본원리를 훤히 파악했기에 가능한 일이었다. 어린 대니얼이 컴퓨터를 제작할 수 있도록 이끌었던 그 근본 원리는 바로 ‘보편 구성 블록’과 ‘불 논리 (boolean logic)’다.
역자는 이 근본 원리를 적용하면, “재료나 제작 수단은 문제가 되지 않는다”고 말한다.
“굳이 전자 장치가 아니어도, 기계 장치나 장난감 완구, 물놀이 기구 그리고 생체 분자로도 컴퓨터를 만들 수 있다. 어떤 형태의 컴퓨터든 컴퓨터를 컴퓨터가되도록 만든 이 근본 원리를 이 책을통해 손에 넣을수 있다. 어쩌면 컴퓨터를 만들어낸 근본 원리가 세상 모든 현상을 지배하는 만물의 근본원리와 통하는지도 모를 일이다. 근본은 근본끼리 통하니까 말이다."(6쪽)
<생각하는 기계>의 1장에서는 컴퓨터의 근본원리와 이를 어떻게 손에 잡히듯이 구현할 수 있는지를 소개하고 있다. 1장과 2장에서는 불 논리(boolean operations), 비트, ‘유한 상태 기계 (finite-state machine, FSM)’, ‘보편 구성 블록’의 개념을 다룬다. 3장이 끝날 무렵에는 컴퓨터가 어떻게 작동하는지를 전체적으로 이해할 수 있다.
(불 논리 : AND, OR, XOR 와 NOT 연산자. 한 개의 비트라고 하면 떠올릴 수 있는 것은 정보의 최소 단위량이다. 그런데 이것은 예, 아니오, 활성화와 비활성화, 참, 거짓 등… 두 가지의 가능한 값 중 하나만을 표시하는 것과 같이 단지 1과 0만을 저장할 수 있다. 여러 가지 연산에서 다른 비트들과 또는 스스로와 결합하는 비트 연산을 할 수 있다. 이러한 연산을 이 분야에 공헌을 한 수학자 George Boole(1815-1864)의 이름을 따서 불 연산-논리-이라고 부른다.)
(유한 상태 기계 : 컴퓨터 프로그램과 전자 논리 회로를 설계하는데에 쓰이는 수학적 모델이다. 간단히 ‘상태 기계’라고 부르기도 한다. 유한 상태 기계는 유한한 개수의 상태를 가질 수 있는 오토마타, 즉 추상 기계라고 할 수 있다. 이러한 기계는 한 번에 오로지 하나의 상태만을 가지게 되며, 현재 상태(Current State)란 임의의 주어진 시간의 상태를 칭한다)
(보편 구성 블록 : 논리 함수와 논리 블럭 그리고 유한 상태 기계의 집합. 이 요소들을 이용하면 컴퓨터를 쉽게 만들 수 있다.)
4장 에서부터 6장 메모리에서는 컴퓨터를 작동시키는 핵심 요소들에 대해 간결하면서도 자세한 설명이 담겨 있다. 특히 4장에서 소개한 ‘튜링 기계’의 보편성과 ‘양자컴퓨터’의 가능성도 주목할 만하다.
(튜링 기계 : 수학적 모형의 일종으로, 특수한 테이프를 기반으로 작동하는 기계이다. 튜링 기계가 사용하는 테이프 위에는 테이프 머릿기호를 바탕으로 기계가 인식하거나 기록할 수 있는 기호들이 있다. 작동 방식은, “42번째 상태에서 0이라는 기호가 있다면 1을 쓴다. 1이라는 기호가 있다면 17번째 상태로 간다. 17번째 상태에서 0이라는 기호가 있다면 1을 쓰고, 1이라는 기호가 있다면 6번째 상태로 간다”와 같이 유한한 개수의 기초적 지시문으로 이루어진다.)
(양자 컴퓨터 : 얽힘(entanglement)이나 중첩(superposition) 같은 양자역학적인 현상을 이용하여 자료를 처리하는 계산 기계이다. 고전적인(전통적인) 컴퓨터에서 자료의 양은 비트로 측정된다. 양자 컴퓨터에서 자료의 양은 큐비트로 측정된다. 양자 계산의 기본적인 원칙은 입자의 양자적 특성이 자료를 나타내고 구조화할 수 있다는 것과 양자적 메카니즘이 고안되어 이러한 자료들에 대한 연산을 수행할 수 있도록 만들어질 수 있다는 것에 기한다. 양자 컴퓨터가 기존 컴퓨터보다 빠를 수는 있지만, 기존 컴퓨터로 풀 수 없는 문제는 양자 컴퓨터 역시 풀 수 없다. 충분한 시간과 메모리가 주어지더라도 마찬가지이다.)
7장과 8장에서는 ‘병렬 컴퓨터’와 ‘학습형 컴퓨터’에 대해 논의 한다. 실제 컴퓨터 과학자로서 수많은 컴퓨터 제작 경험을 바탕으로 한 컴퓨터 과학의 현재와 미래가 생생히 조망되어 있다.
(병렬 컴퓨터 : 동시에 많은 계산을 하는 연산의 한 방법이다. 크고 복잡한 문제를 작게 나눠 동시에 병렬적으로 해결하는 데에 주로 사용되며, 병렬 컴퓨팅에는 여러 방법과 종류가 존재한다. 그 예로, 비트 수준, 명령어 수준, 데이터, 작업 병렬 처리 방식 등이 있다. 병렬 컴퓨팅은 오래전부터 주로 고성능 연산에 이용되어 왔)
(학습형 컴퓨터 : 되먹임 시스템과 뉴런 네트워크, 자기 조직화 시스템 등을 이용하여 스스로 학습하는 기능이 부여된 컴퓨터로서 병렬 컴퓨터로 가능하다. 자동 항법 장치나 복구 매카니즘 등은 학습형 컴퓨터의 사례다.)
“컴퓨터의 능력을 한층 더 업그레이드 시킬 이 연구들이 어떠한 마인드를 바탕으로 어떻게 실제로 구현될 수 있는지 보여준다. 실제로 이러한 연구와 관련된 독자라면 이 장에서 나름의 통찰력을 얻을 수 있으리라."(7쪽)
마지막장은 1장과 더불어 이 책의 백미라고 할 수 있다. 이제 컴퓨터는 더 이상 인간이라는 주인이 명령하는 지시만을 묵묵히 수행하는 하인이 아니다. 컴퓨터도 생각하는 능력을 가질 뿐만 아니라 심지어 생명체처럼 진화할 수도 있다고 대니얼은 말한다.
한낱 기계장치가 어떻게 그런 능력을 가질 수 있는지를 단순한 공상의 관점에서가 아니라 현장 설계자의 관점으로 구체적으로 제시하고 있다.
대니얼은 컴퓨터의 본질을 잘 나타내는 일반적인 주제 몇 가지 있다고 설명한다. 그 첫째가 ‘기능적 추상화(functional abstraction)’의 원리다.
“이는 원인과 결과의 계층 구조와 관련이 있다. 이 원리가 여러 단계에 걸쳐 반복적으로 적용된 대표적인 예가 바로 컴퓨터라고 할 수 있다. 하위 단계에서 무슨 일이 진행되고 있는지 세세하게 알지 못하더라도, 계층구조의 어느 특정 단계의 작업에만 집중할 수 있다는 점에서, 컴퓨터는 이해하기 쉽다. 기능적 추상화의 원리로 인해 아이디어와 기술은 별개가 될 수 있다.”
두번째 주제는 ‘보편 컴퓨터’의 원리다. 이는 세상에는 오직 한 종류의 컴퓨터만 존재함을 뜻한다. 좀 더 정확히 표현하자면, “컴퓨터가 수행할 수 있는 일의 관점으로 볼 때, 모든 종류의 컴퓨터가 동일하다는 뜻이다. 컴퓨터 장치는 트랜지스터, 막대 , 줄, 신경 세포 등 무엇으로 만들든 하나의 보편 컴퓨터로 환원될 수 있다. 이것은 매우 의미심장한 가정이다. 왜냐하면 프로그램만 제대로 짜면 인간의 뇌처럼 생각하는 컴퓨터를 만들 수도 있음을 의미하기 때문이다.”
이 책의 세 번째 주제는 첫 번째 원리와는 어떤 의미에서 반대라고 할 수도 있다. 완전히 새로운 컴퓨터 설계와 프로그램 작성법, 즉 기존에 표준으로 여겨졌던 공학적 접근법과는 동떨어진 전혀 새로운 방법이 존재할 수 있다.
“시스템이 너무 복잡해지면 정상적인 설계 방법이 소용없어진다는 점을 생각해 볼 때, 이 방법은 매우 흥미롭다. 컴퓨터를 설계할 수 있도록 해준 ‘기능적 추상화’의 원리가 결국에는 취약성과 비효율성을 초래하고 만다. 이 약점은 정보처리 기계의 어떤 근본적인 한계와는 전혀 관계가 없고, 계층 구조의 설계 방법이 갖고 있는 한계일 뿐이다.
그 대신에 생물학적 진화와 유사한 설계 방식을사용하면 어떨까? 즉 하향식 제어(top-down control) 구조가 아니라 많은 단순한 상호작용들의 축적을 통하여 시스템 특성이 창발적으로 출현하도록 하는 방식은 어떨까? 그처럼 진화된 방식으로 설계된 컴퓨터는 생물이 가진 견고성과 융통성을 동시에 가질지도 모른다. 최소한 그러한 희망을 품어 볼 수는 있다. 이 접근방식은 아직 제대로 정의조차 되어 있지 않고, 어쩌면 끝내 실현할 수 없을지도 모른다. 이것이 내가 최근에 연구하고 있는 주제다.”
<생각하는 기계>를 읽다 보면, 대니얼이 2006년에 이미 10년 후 ‘알파고’가 이세돌과의 바둑 게임에서 승리할 것을 예언한 셈이다. 그러나 알파고가 바둑 게임에서 이세돌을 이기기는 했어도 <생각하는 기계>의 출간 당시 대니얼이 연구하고 있던 주제인 ‘생물이 가진 견고성과 융통성을 동시에 가진 컴퓨터’는 아직 요원한 상태로 보인다.
그리고 역자가 지적하듯이 ‘생각하고 스스로 발전하는 컴퓨터’의 출현이 인류에게 던진 질문인 ‘인간 또는 인간의 정신이란 무엇인가’에 대한 해답도 궁리 중일 뿐이다.
“현재 뇌과학 연구의 발전, 인공지능 연구의 가속화와 시뮬레이션 기술의 심화, 생명 진화의 이론 등이 컴퓨터라는 실을 통해 서로 연결되고 있다. 이러한 연구동향을 볼 때, 머지 않아 실현될지도 모를 ‘생각하고 스스로 발전하는 컴퓨터’의 출현은 우리에게 묵직한 질문을 하나 던진다. 바로 ‘인간 또는 인간의 정신이란 무엇인가’라는 질문이다.
저자는 이에 관해서도 나름의 철학을 제시하고 있다. 단순히 컴퓨터 사용법이나 컴퓨터의 구성 장치를 설명하는 책은 헤아릴 수 없이 많다. 또한 컴퓨터의 원리나 기능에 대한 전문서적들도 많이 존재한다. 하지만컴퓨터의 근본원리와 그 기능을 손에 잡힐 듯이 다룬 책은 참으로 드물다. 뿐만 아니라 ‘생각하고 스스로 발전하는 컴퓨터’의 현재와 미래를 현장 개발자의 시각으로 생생히 탐구한 점도 경이롭다."(8쪽)
대니얼은 마지막 장인 9장 ‘생각하는 기계의 진화’에서 과학자 또는 인류가 ‘인공 지능’을 만들어낼 가능성과 현실성을 굳게 믿었다.
“나는 우리가 지능의 본질이 무엇인지 이해하기 전이라도 인공지능을 창조할 수 있다고 믿 는다. 내 생각에는 지능의 창조는 아마도 자세히 이해할 수 없는 복잡한 일련의 상호 작용을 통해 지능이 출현하도록 여건을 마련 해주면 되는 것 같다. 즉 그 과정은 기계를 공학적으로 만드는 것보다는 케이크를 굽거나 정원을 가꾸는 일에 좀 더 가까울 듯하다. 인공 지능을 공학적으로 만들기보다는 지능이 출현할 올바른 조건들을 마련하면 된다. 이 시대의 가장 위대한 기술상의 성취는 공학의 한계를 뛰어 넘는 도구의 발명, 즉 이해가능한 것 이상을 창 조하게 해주는 도구의 발명이라고 해도 좋으리라."(327쪽)
하지만 <생각하는 기계>를 읽은 후 필자는 대니얼의 예측과 기대는 ‘불가능’에 가깝다고 생각한다. ‘지능’은 ‘인공적’으로 만들 수 없기 때문이다.
인류의 과학자들이 지금까지 ‘창조’나 ‘발명’이라고 주장해온 중요한 것들, 즉 원자, 광자, 양자, 유전자 등 물리적, 화학적 요소와 현상들은 ‘만들어진’ 게 아니라 ‘태초부터’ 원래 존재하던’ 것이었다. 인류는 ‘존재하던’ 것을 ‘발명’이 아니라 ‘발견’했을 뿐이다.(이것은 ‘창조자’나 ‘신’과 관련된 이야기도 아니다.)
물론 인간의 ‘지능’이 ‘태초부터’ 존재하던 것은 아니었다. 그러나 인간의 지능이 작동하는 물리적, 화학적 바탕은 마찬가지로 ‘태초부터’ 존재하던 물질에 기반하며, 더욱 결정적인 것은 ‘인간의 지능’은 현재 인류가 직접 볼 수 없는 ‘원소’ 물질에서 시작하여 수십 억년의 진화를 거쳐 발달해왔고 앞으로도 발달할 것이기 때문이다.
더군다나 ‘인간의 지능’ ‘인류의 진화’는 대니얼과 같은 과학자들이 아직 바라보지 못하는 특성이 다수 존재한다. 그중 가장 중요한 요소는 ‘생명체’와 ‘우주적, 사회적 존재’라는 인간의 특징, 그리고 ‘인류 진화는 현재진행형’이라는 특징이다.
컴퓨터나 기계와 달리 동식물과 인간은 모두 ‘살아 숨쉬는 생명체’이고 ‘죽고 다시 태어나는 존재’이다. 살아 숨쉬는 것과 죽음은 생명체에게는 동시에 존재한다. 태어남과 동시에 죽음이 시작되는 셈이다. 무생물체인 기계와 컴퓨터에게는 애초부터 불가능한 부분이다.(그래서 작가와 영화감독들이 상상한 것이 바로 그런 생명체를 숙주로 하여 미래에 존재할 것 같은 공상영화 ‘매트릭스’다.)
‘현재진행형’ ‘우주적 사회적 존재’라 함은, 인간은 홀로 존재하고 진화하고 발달하는 것이 아니라 태양-지구-달이라는 태양계 시스템 속에서 태어나고 죽는 존재이며 태양계는 거대한 은하계 시스템 속에 존재하고 있다. 또한 인간은 집단을 이루며 서로 소통하기 때문에 다른 동물보다 월등(?)하게 진화할 수 있었고 끊임없이 발달하고 있다. 이러 부분 역시 기계나 컴퓨터에게는 불가능한 일이다. 대니얼이 <생각하는 기계>에서 다룬 불 논리, 유한 상태 기계, 프로그램, 컴파일러와 인터프리터, 튜링 보편 기계, 정보 이론, 알고리듬, 휴리스틱, 병렬 컴퓨터, 양자컴퓨터, 신경 네트워크, 자기 조직화시스템 등은 인간이 ‘사회적, 조직적’으로 컴퓨터에게 입력하는 것이다.
<생각하는 기계>는 오랜만에 읽는 과학도서다. 보관 중인 책과 서평을 정리하다가 2010년 경 읽은 것으로 분류해 놓았던 ‘사이언스 마스터스 시리즈’ 중에서 <생각하는 기계>의 서평이 누락된 것을 발견했다.
출판사 사이언스북스가 2000년대 중반에 시리즈로 출간한 ‘사이언스 마스터스 시리즈’ 21권 중 14번째 도서였다.
[2017년 6월 30일]