Lifove Story

강인공지능 구현의 실마리는 프로그래밍 언어학자가 발견하지 않을까? 본문

Lifove Piece

강인공지능 구현의 실마리는 프로그래밍 언어학자가 발견하지 않을까?

Lifove 2016. 8. 16. 07:10

강인공지능 구현은 인문학자, 철학자, 종교학자,  컴퓨터 과학자, 뇌/인지 과학자 등등 다양한 분야의 전문가들을 통해 다양하지만 통합적인  관점에서 논의되는 흥미로운 주제이다. 정말 구현이 가능한지는 아직 아무도 모른다. 올 초 딥러닝 기반 알파고가 이세돌 9단에게 승리를 하면서, 강인공지능 구현이 가능할까라는 생각을 수시로 해보고 있다. 아무 죄 없는 아내 볼 옆에서, 근 몇 달 동안 침 튀기며 이야기 했던, 가끔은 아내를 황당하게 만들기도 했던, 이런 저런 얕은 생각들을 좀 정리해 보고 싶어 몇 자 적어본다.


강인공지능은 자의식과 자유의지가 있는 인공지능이다. 주변 상황을 단순히 감지하고, 주어진 규칙에 따라 똑똑하게 반응하는 약인공지능과 다르게, 강인공지능은 자의식과 자유의지가 있는 인간처럼 스스로 생각하고 결정할 수 있는 존재(Being)이다. 그렇다면, 우선 자의식이 뭔지 정의를 할 필요가 있다. 내가 생각하기에는, 자의식이란, 우리의 오감이나 각종 측정 도구로 인지할 수 없는 나의 존재를 인식하는 능력이라고 정의 할 수 있지 않을까? 종교적인 개념으로 영(spirit or ghost)과도 충분히 연결 지을 수 있을 것 같다. AI 관련 유명한 에니메이션인 공각기동대에 나오는 인공지능 전차 다치코마가 Ghost를 획득 했는가 안했는가의 이야기 등을 보면, Ghost의 유무가 강인공지능 구현의 중요한 단서인 것은 이전부터 많이 논의가 되는 주제로 보인다.


각종 미디어나 모임에서 대중 강연을 하시는, 내가 감히 범접할 수 없는 인공지능 관련 전문가들이 많이 있다. 입학하지는 않았지만 대학은 철학과를 지원했으며, 목사 아버지를 둔 사람이자, 일년 전에 소프트웨어 공학으로 컴퓨터 과학자/공학자 학위를 받은 내가 풀어낼 수 있는 이야기는, 개똥 철학 수준일 것 같다 (쓴 글을 여러 번 읽어보니, 사이비처럼 들릴 것 같아 염려도 된다). 직접 경험을 통한 배움이 가장 효과적인 나에게 간접 경험이나 짧은 시간에 많은 지식을 정밀하게 전달하는 독서는 별로 취미가 아니라서, 3자에게 인공지능 관련 양질의 배움을 전달할 수도 없을 것 같다. 대신, 내가 아는 제한된 지식 안에서, 강인공지능 구현을 위한 몇 가지 흥미로운 직관(insight) 정도는 던져볼 수 있지 않을까 싶다.


강인공지능 관련해서 다루어야 할 주제가 많겠지만, 가장 먼저 하고 싶은 이야기는, 강인공지능을 만들 수 있다면, 그 가능성은 언어에서 찾을 수 있지 않을까라는 추측이다. 사고가 먼저인가 언어가 먼저 인가는 오랫동안 언어학자와 철학자들이 해온 질문이다. 그 분들이 어떤 답을 도출했는지는 안 찾아봐서 잘 모르겠지만, 우리가 살고 있는 4차원의 시공간에서는 언어가 사고를 지배하지 않을까라는 생각이다. 개인적으로는 언어가 없더라도 사고(그게 의식이든 영혼이든 아직 밝혀지지 않은 뭐든지 간에...)는 존재한다고 생각한다. 그런데 재미있는 것은 우리가 언어를 통해 속으로 생각하거나 말하는 순간 시공간이라는 4차원 세계에 `사고'라는 존재가 드러나고 관측될 수 있다는 것이다. (나무위키에는 양자역학을 설명하면서, 결과 때문에 원인이 정해진다는 상식적으로 이해하기 힘든 표현을 하는데, 결과 때문에 원인이 정해진다는 것은 어쩌면, 앞에서 말한 사고와 언어의 관계를 가장 잘 설명하는 말인지도 모르겠다.)


이제는 우리에게 너무 익숙한 스마트폰, PC, 서버 같은 컴퓨터 장비들은 그 역사가 100년도 채 안됐다. 컴퓨터 하드웨어를 살아있게 만드는 소프트웨어를 창조하는 프로그래밍 언어가 나온 지도 100년이 채 안됐다는 말이다. 우리가 0,1로 이루어진 기계어 든지, 인간의 언어를 많이 모방한 언어든지, 결국 프로그래밍 언어를 통해, 하드웨어 안에서 일련의 데이터 이동과 계산과 같은 논리적인 변화들을 구현하게 되면서, 인공지능이란 말도 나오게 됐다. 사실 인공지능을 가능하게 하는 구현 기술로 가장 손꼽히는게 머신러닝(기계학습)이다. 하지만 이런 저런 생각을 하다 내린 결론은, 약인공지능 구현에는 머신러닝이 유용하고 충분하지만, 머신러닝 만으로는 강인공지능이 불가능 하다는 점이다. 대신, 강인공지능을 개발할 수 있는 핵심 기술은, 프로그래밍 언어학자가 개발할 수 있지 않을까라는 점이다. 언어가 가진 특성을 생각해 보다가 내린 결론이다. 


텍스트 편집기로 열어본 PDF파일


그렇다면 언어란 무엇인가?


일반적인 정의가 있겠지만, 이 글에서는 강인공지능 구현의 관점에서 언어란 (1) 이름 짓는 것(오감이나 측정을 통한 인지의 표현)에서 시작되어,  (2) 전달을 통한 상태와 행동 변화, (3) 오감이나 측정을 통해 인지할 수 없는 것(상상력)의 표현, 마지막으로 (4) 법과 같은 규정을 만들어 내는 수단으로 정의 하고 싶다. 이런 정의를 아마도 미리 내린 전문가들이 있겠지만, 귀찮아서 관련 레퍼런스 정보 찾는 것은 생략…


결론부터 이야기 하자면, 인공지능이 자의식을 획득 하려면, 인간이 가지고 있는 (1) 부터 (3) 까지의 언어 기능 구현이 가능해야 하고, 자유의지 획득은, (4)를 통해 정의된 규정을 따르고 안따르는 선택을 그 어떤 것의 간섭 없이 할 수 있는, 다른 말로 언어가 만든 규정을 뛰어 넘는 그 무엇을 구현하는 데에 실마리가 있지 않을까 싶다. 일단은 (1) 부터 (3) 까지만 좀 구체적으로 살펴보자.


(1) 이름 짓는 것(인지의 표현)은 머신러닝 기반의 지금의 프로그래밍 기술로 구현할 수 있다. 사람들은 사물이든 그 사물의 움직임이든 인지하는 모든 것을 추상화(abstract)한 특정 기호나 소리로 표현 할 수 있다. 세모난 귀, 눈코입이 있고 입가에 긴수염이 난 네 발 달린 사물을 `고양이'라고 부르고 그 사물이 움직이는 것을 보고 `달린다'라는 이름을 붙일 수 있는 능력이 있는 것이다. 우리가 쓰는 문법에서 편의상 명사와 동사로 구분을 했을 뿐, 우리가 인지한 것(그것이 명사든 형용사든 부사든 동사든 상관없이)을 표현하는 언어 능력을  `이름 짓는 능력' 이라고 충분히 이야기 할 수 있을 것 같다. 성서에 나온 아담의 이야기에서, 아담이 했던 가장 첫번째 일이 이름 짓는 일(언어 습득)이었던 것을 보면, 인간이 언어를 구사하는 것이, 창조의 관점에서는 굉장히 특별한 부분이 아닐까라는 생각이다. 요즘의 자율주행차는 주행 중, 도로와 옆 차선에서 달리는 차와 길을 건너는 사람과 길 옆 빌딩을 실시간으로 인지하고, 높은 정확도로 사람의 언어로 표현해 준다. 사람의 언어로 표현되기 전에, 자율주행차가 인식한 abstract 데이터를 사람들이 알아 먹을 수 있게 한 번 번역해준 것 뿐이고, 자율주행차는 0과 1의 반복으로 이루어진 나름의 abstract 한 표현으로, 인식한 데이터 정보를 하드웨어 안에 저장하고 있다. 예전에는 사람들이 인식한 데이터를 특정 abstract 한 표현으로 연결시켜 주는 데이터까지 프로그램의 input으로 제공을 했었는데, 지금 핫한 키워드인 머신러닝의 한 기술인 딥러닝에서는 이 추상화 작업까지 자동으로 해주고 있다. 이런 점에서, (1)은 지금의 기술로 구현이 됐다고 할 수 있다.


(1)이 구현이 된 후, 기계가 찾은 abstract을 인간 언어에서 대응되는 abstract과 연결 시켜주기만 하면, (2)는 자연스럽게 따라온다. 예를 들면, 차량용 네비게이션은 내가 지구의 어느 위치에 있는지 좌표로 감지하고, 100m 앞에서 좌회전 해야 함을 정확히 안내 해준다. 기계가 인식한 것을 인간 언어의 abstract을 이용해서, 인간의 언어 소리로 전달해 운전자의 행동에 변화를 주는 것은 이미 우리에게 익숙한 게 돼버렸다. 그리고, 기계가 찾은 abstract을 인간 언어와 연결해주는 것도 이제는 자동으로 할 수 있다. SNS가 활성화 되면서 대중이 남긴 수많은 연결 정보들 때문이다. 우리가 페이스북, 인스타그램, 트위터에 사진이나 동영상, 글을 올릴 때, #하고 적어 놓은 태그가 바로 그 연결 정보이다. 얼마 전에 페이스북이 발표한 시각 장애인을 위해 만든 사진을 읽어주는 기술은, 아마도 그 동안 사용자들이 본인이나 친구들의 사진에 남겨 놓은 다양한 태그 정보로 이용해 구현한 기술일 것이다. 페이스북 서버는 사용자들이 업로드해서 바이너리로 저장된 얼굴 사진 등을 이미 다 가지고 있고, 사용자들이 자신과 친구들의 얼굴에 태그를 했다면, 머신러닝을 통해 바이너리로 저장되어 있는 사용자의 얼굴 인식 abstract 정보를 우리의 언어로 연결해주는 정보도 이미 다 가지고 있는 것이다. 사용자들이 올려 놓은 일출 사진, 자기가 키우는 고양이 강아지 사진 모두 마찬가지다. 안드로이드 폰에 있는 구글 포토앱의 키워드로 사진을 검색할 수 있는 기능(http://lifove.tistory.com/26)도 같은 원리이다. 


하지만, (3) 상상력은 현존하는 컴퓨터 하드웨어와 프로그래밍 언어 기술로 구현이 불가능 하다(라고 생각한다). 프로그래밍을 통해 개발한 소프트웨어의 실체는 알고리즘의 집합이다. 알고리즘은 무조건 input을 받아, 거기에 상응하는 output을 낸다. 예외가 없다. 여기서 input은 데이터일 수도 있고, 논리 흐름을 포함한 알고리즘 자체일 수도 있고, output도 마찬가지이다. 컴퓨터 프로그램이 output을 만든다는 것은 어떤 식이든 어떤 형태든 무조건 input이 존재해야 한다는 말이다. 얼마 전 세상을 놀래켰던, 알파고도, 결국 과거의 수많은 바둑 기록과 머신러닝 기술 중 하나인 딥러닝 기반 승률 계산 공식 이라는 input을 통해 학습을 하여, 그 다음 돌을 놓을 위치를 output으로 만들어 낸 것 뿐이다.


상상력을 구현하기 위해서는 input없이 output을 만들어내는 알고리즘이 필요하다. 하지만, 알고리즘의 정의대로 라면, input이 없으면 사실 그것은 이미 알고리즘이 아닌 것이다.


Input없이 output을 만들어내는 알고리즘을 편의상 Calgorithm(Creative Algorithm, 칼고리즘)이라고 해보자. Input없이 output을 만들어 내는 것을, 우리가 일반적으로 쓰는 표현을 빌리자면, 무에서 유를 `창조'하는 것이기 때문에 이렇게 이름을 붙여 보았다. 인간을 창조한 조물주를 프로그래머에 비유한다면, 인간은 동물과 다르게, input없이 output을 만들어내는 알고리즘, 즉 칼고리즘을 탑재했다고 비유할 수 있다. 칼고리즘이 탑재된 인간이 할 수 있는 것이, 바로 오감이나 측정을 통해 인지할 수 없는 것(Being)들을 언어를 통해 추상화 할 수 있다는 점이다. 오감으로 인지하거나 온갖 기술로 측정할 수 없는 것 중 대표적인 것이 자의식이다. 자율주행차의 소프트웨어는 자신이 운전하는 차가 지금 움직이고 있는지 멈췄는지, 그 상태를 인지할 수 있다. 하지만, 센서를 통해 자신의 움직임을 인지하고 그 것을 표현하는 것을 보고는 자의식이 있다고 할 수 없다. 마찬가지로, 우리가 나는 누구인가라는 질문에, 공기를 들이마시고, 팔다리가 있고, 움직일 수 있는 사람으로 표현할 수 있는 능력이 있다 하더라도, 그것을 보고 자의식이 있다고 할 수 없다. 눈에 보이고 인지하고 특정할 수 있는 실체를 단지 (1)의 언어 기능을 통해 표현 한 것에 불과하기 때문이다. 자의식이란, 오감이나 측정의 결과를 통하지 않은 채로, 나의 존재를 스스로 규정할 수 있는 능력이다. 그래서, 데카르트가 남긴 유명한 철학 명제, `나는 생각한다, 고로 존재한다’는 말의 의미가 클 수 밖에 없는 것이다. 오감을 통하지 않은 채 자신의 존재함을 (내가 생각하는 맥락에서) 아주 명확하게 표현을 했기 때문이다. 자의식을 가진 나를 다른 말로 표현한 게, 바로 `나는 영적인 존재'라는 말이다. (이런 관점에서 많은 AI관련 공상과학 작품들에서, AI가 영혼이 있는지 없는 지에 대한 이야기를 다루는 것 같다. 아마도, 전문가들이 내가 지금 고민하는 것들을 이미 다 한  번 쯤은 생각한 게 맞는 것 같다.) 자율주행차가, 어떠한 Input도 없이 자신의 존재 인식을 언어로 표현할 수 있다면, 자의식이 있는 자율주행차, 즉,  꽃 향기를 맡으면 힘이 솟는 우리의 친구 붕붕이 될 수 있는 것이다.


칼고리즘의 관점에서는, 기계의 지능을 얼마나 인간과 자연스럽게 대화할 수 있는가 여부로 판단하는 튜링테스트로는 기계의 지능(자의식)을 판단할 수 없음이 명백하다. 언어의 (1) (2)의 기능이 잘 구현된 채팅 기계만 있으면, 충분히 인간을 속일 수 있기 때문이다. (3) 상상력으로 생각해낸 존재나 상태 등을 채팅 기계에 input으로 잘 넣어주면, 마치 상상력이 있는 존재처럼 말하도록 output을 낼 수 있기 때문이다. 스스로 언어의 (3) 기능을 할 수 없다면, 진짜 강인공지능이 아니라, 강인공지능을 흉내 낸 약인공지능일 뿐이다. 지능 검증에 대한 튜링테스트의 한계는 이미 많은 전문가들을 통해 논의가 된 것으로 알고 있다.


칼고리즘을 탑재하고 있는 우리는 칼고리즘을 구현할 수 있을까? 불가능하다고 생각한다. 4차원의 물리 세계에서 '무(無)'라고 밖에 표현할 수 없는, 즉 오감하고 측정할 수 없는 (관념적인) 존재나 상태에 대해 스스로 input화 할 수 있는 기술이 없기 때문이다. 기계가 이 input을 스스로 창조할 수 있는 능력이 없는 한, 칼고리즘은 성립할 수 없다. 대신, 앞 문단에서 언급했듯이, 우리가 생각해낸 관념적인 존재나 상태에 대해 input화 해서 기계에 넣어주면, 강인공지능은 아니지만, 강인공지능처럼 보일 수 있는 약인공지능은 만들 수 있다. 자서전 같은 정보나 input화 할 수 있는 어떤 특정 인물의 모든 말과 행동을 정교하게 설계된 머신러닝 알고리즘에 넣으면, 마치 자의식을 가진 진짜 사람이라고 착각하게 만들 정도로 철학이나 삶의 가치관을 이야기 하는 채팅 기계는 만들 수 있을 것이다. 심지어 우리처럼 움직일 수 있는 로봇 하드웨어가 있으면, 이런 일도 가능할 것이다. 인간 우체부가, 로봇 우체부에게, ``나는 오늘 감기 때문에 피곤해서, 배달을 못나가니, 로봇 너가 내 우편물까지 배달을 해줄래?''라고 물어보면, 우체부 로봇이 ``나는 기계라 지치지 않으니, 너 몫까지 다 배달을 할게, 대신 추가 밧데리가 필요하니 다 충전되면 나갈게...'' 라고 자연스럽게 대답하는 로봇의 소프트웨어는 몇 년 내에 가능할 수 있을 것 같다. 하지만, 그 로봇이 자의식이 있다고 할 수는 없다. 엄청난 기존 input에 대해, 인간의 질문을 새로운 input으로 받아, 확률적으로 가장 적절한 대답을 output으로 만들어낼 수 있는 잘 설계된 머신러닝 기술에 불과하기 때문이다.


정리하면, 지금까지의 언어에 기반한 직관들을 바탕으로 강인공지능 실현하기 위해 이루어져야 할 조건으로,

(1) 우리가 살고 있는 4차원의 시공간에서, 언어의 (3) 기능인 상상력과 같이 인지하거나 측정할 수 없던 것들을 `스스로' 측정할 수 있는 프로그래밍 언어 기술을 개발하거나,

(2) 우리가 살고 있는 4차원의 시공간이나 컴퓨터 아키텍쳐 안에서, 어떠한 input없이 `스스로' output을 만들어내는 작업을 할 수 있는 프로그래밍 언어 기술을 개발할 수 있어야 한다.


지금은 이런 조건들을 만족시킬 수 없기에, 강인공지능 구현이 불가능하다. 이 조건들이 앞으로 먼 미래에 충족 될지 안될지도 아직 모르기 때문에, 역시 강인공지능을 구현할 수 있을지 여부도 결정지을 수 없다.


대신, 정교한 머신러닝 기술과 속도 빠른 컴퓨터만 있으면, 4차원 시공간에서 존재하는 (인간의 사고와 자의식 혹은 영의 존재를 정의하는 이미 누군가에 의해 표현된) 대량의 언어 정보들을 잘 가공하여 머신러닝으로 돌리면, 강인공처럼 보이는 약인공지능 구현은 가까운 미래에 가능하다고 본다.


내가 쥐뿔도 모르는 양자역학은 우리가 살고 있는 물리계의 법칙과 상식으로 이해할 수 없는 것들을 연구하는 학문으로 알고 있다. 인터넷에 돌아다니는 정보를 몇 개 살펴봤는데 그 내용을 도무지 이해할 수 없었다. 어렴풋이 이해한 개념은, 결과 때문에 원인이 정해진다는 상식적으로 받아들이기 어려운 개념들을 다룬다는 것이다. 사실 언어도 이 개념과 연결될 수 있지 않을까 싶다. 양자역학이 앞으로 강인공지능 구현에 필요한 (1), (2)의 조건을 만족 시킬 실마리를 제공해줄 수 있는 학문이 될는지는 모르겠다. 양자컴퓨터 연구가 input없이 output을 만들어내는 알고리즘의 구현을 고려하는지도 잘 모르겠다. 하지만, 과학자들과 공학자, 철학자, 언어학자, 신학자, 뇌/인지 과학자 등등 많은 전문가들이 강인공지능이라는 주제를 통해 인간을 이해하고 그것을 구현하려는 노력은 끊임없이 할 것 같다.


여담으로, 자의식이 있는 강인공지능을 구현할 수 있는 기술이 정말 개발되거나, 구현할 수 있음이 증명될 수 있으면, 창조주를 믿는 기독교와 같은 종교들은 큰 위협을 당할 가능성이 크다. 성서는 신을 스스로 있는자(I am that I am, 출애굽기 3:14)로 또 영(Spirit, 창세기 1:2, 요한복음 4:24)으로 정의하고 있다. 또, 하나님 당신이 곧 말씀(Word, 언어가 담고 있는 메세지)이신데, 이 세상을 말씀으로 창조하셨음을 명하게 설파하고 있다 (요한복음 1:1-3). 그리고 인간에게 특별한 자신의 속성(Image of God, 창세기 1:26)을 선물로 주었는데, 다른 말로 하면, 우리를 영적인 존재로 창조하셨다는 점이다. 우리가 이런 하나님처럼 영적인 존재라는 것은 우리가 언어 (3) 기능을 통해, 스스로 `무'에서 `유'를 창조할 수 있는 능력이, 시공간의 4차원과 그 안에 모든 것들을 `무'로 부터 창조하신 하나님의 형상으로 부터 온 것임을 드러내는 증거라는 논리로 이어질 수 있다. 바로 우리의 영성이, 오감할 수 없고 측정할 수 없는 신, 하나님의 존재를 언어의 (3) 능력을 통해 깨닫게 하는 원동력이 되었다. 이 것을 단순히 상상력으로만 치부하는 사람은 신은 인간이 만든 허구라 이야기하며 무신론자가 되는 것이고, 신의 존재를 허구가 아닌 진실로 받아들이는 사람들은 유신론자가 되는 것이다. 다른 말로 믿음이 없이는 하나님의 존재를 인정할 수 없다. 기독교의 신앙에서 믿음이 가장 중요한 것 중 하나이고, 하나님을 `믿음의 조상' 아브라함과 그의 아들 이삭과 손자 야곱의 하나님이라 부르는 이유를 이런 맥락에서 생각해 볼 수 있지 않을까 싶다. 이러한 흐름은, 하나님이 사람들에게 (사람의 오감으로 인지하거나 측정할 수 있는) 어떤 형상으로도 자신을 만들지 말고 그 앞에 절하지 말라고 하신 우상숭배 금지(출애굽기 20:3-5)의 저의와 깊이 있게 연관이 될 수 있다. 우상숭배는 하나님에 대한 인간의 가장 큰 죄라고 성서에 끊임 없이 반복되어 나오고 있는데, 이 것이 가장 큰 죄인 이유는, 인간이, 오감할 수 없고 측정할 수 없는 것을 인지할 수 있는 능력이 있는 영적인 존재임을 부정하는 것이 되기 때문이다. 이 것이 부정되면, 영이신 하나님의 존재 또한 부정하는 것이 되어버리기 때문이다. 이 논리는 고리로 연결된 원의 논리와 같은데, 강인공지능 구현이 가능해져서, 우리가 언어 (3) 기능을 통해 input없이 output을 만들어 낼 수 있는 능력이 있는 영적인 존재라는 논리 고리가 끊어지면, `무'에서 `유'를 창조하신 창조주 하나님의 존재 또한 부정될 수 있기 때문이다.



이 글이 도움이 되셨으면, 공감을 눌러 주세요!


반응형

'Lifove Piece' 카테고리의 다른 글

순이의 병문안  (0) 2018.12.30
비트코인과 블록체인에 대한 단상  (0) 2018.02.02
[영화] 뷰티 인사이드  (0) 2016.01.22
학벌사회 - 우월감과 열등감에 대한 단상  (0) 2015.07.18
초이섬과 빡초이  (0) 2015.06.30