존 매카시(John McCarthy)
'인공지능(artificial intelligence)'이라는 이름을 붙인 1955년 제안서를 쓰고, 프로그램과 자료를 같은 목록으로 적는 언어 리스프(LISP)를 만들었으며, 상식을 논리로 적는 연구를 이끈 미국의 컴퓨터 과학자.
존 매카시는 1927년 미국 보스턴에서 아일랜드계 아버지와 리투아니아계 어머니 사이에서 태어났습니다. 그가 연구를 시작한 1950년대 초, 전자식 컴퓨터는 탄도 계산과 암호 해독에 쓰이는 거대한 계산기였습니다. 그런데 튜링은 1950년 기계가 생각할 수 있느냐고 물었고, 섀넌은 체스를 두는 프로그램을 구상하고 있었습니다. 매카시는 이 흩어진 물음들을 하나의 연구 분야로 묶어 이름을 붙였고, 그 분야가 쓸 언어를 직접 만들었습니다. 오늘날 인공지능이라 부르는 말도, 함수형 프로그래밍의 조상인 리스프도 그의 손에서 나왔습니다.
나이
그는 칼텍에서 수학을 공부하던 1948년, 학교에서 열린 힉슨 심포지엄에서 폰 노이만이 스스로를 복제하는 기계에 대해 한 강연을 들었습니다. 매카시의 회고에 따르면 이때 기계로 지능을 흉내 내는 문제가 마음에 자리 잡았습니다. 1951년 그는 프린스턴에서 편미분(partial derivative) 방정식에 관한 논문으로 수학 박사 학위를 받았습니다. 이듬해 여름에는 벨 연구소에서 섀넌과 함께 지내며 오토마타 이론의 논문들을 모았고, 이것이 1956년 두 사람이 엮은 『오토마타 연구』가 되었습니다. 그러나 매카시는 모인 논문들이 대부분 오토마타의 수학에 머물고, 기계가 지능을 가질 수 있느냐는 물음에는 닿지 않았다고 여겼습니다.
그래서 다트머스 대학의 젊은 조교수였던 그는 1955년 민스키, IBM의 너새니얼 로체스터, 섀넌과 함께 이듬해 여름의 연구 모임을 제안하며 제목에 새 이름을 썼습니다. 제안서는 "배움의 모든 측면이나 지능의 다른 어떤 특징도 원리적으로 아주 정확히 기술할 수 있어서, 기계가 그것을 흉내 내게 만들 수 있다"는 추측에서 출발하자고 했고, 언어를 쓰는 기계, 스스로 나아지는 기계, 신경망(neural network), 추상화를 다룰 과제로 적었습니다. 제안서는 열 명이 두 달 동안 모이면 이 가운데 하나 이상에서 "의미 있는 진전"을 이룰 수 있으리라 적었지만, 그 문제들 대부분은 70년이 넘게 지난 지금도 완전히 풀리지 않았습니다. 1956년 여름의 모임 자체는 흩어진 참석과 토론에 가까웠고, 그 중요성은 분야와 사람들을 묶었다는 데 있습니다.
1958년 MIT로 옮긴 그는 인공지능 프로그램을 쓰기 위한 언어를 설계했습니다. 1960년 논문 「기호식의 재귀 함수(recursive function)와 그 기계 계산」이 정의한 리스프(LISP, 목록 처리)는 모든 것을 괄호로 묶은 목록으로 적습니다. (A B C)는 세 원소(element)의 목록이고, car는 첫 원소 A를, cdr는 나머지 (B C)를 돌려주며, cons는 앞에 원소 하나를 붙입니다. 여기에 두 값이 같은지 보는 eq, 원자인지 보는 atom, 조건에 따라 갈라지는 cond, 식을 계산하지 않고 그대로 두는 quote, 그리고 이름 없는 함수(function)를 만드는 lambda를 더하면 언어의 뼈대가 끝납니다. 이름 없는 함수의 표기는 처치의 람다 계산(lambda calculus)에서 빌렸습니다. 함수가 자기 자신을 부르는 재귀(recursion)가 이 언어의 기본 동작이고, 조건에 따라 값이 달라지는 식(if–then–else를 문장이 아니라 값으로 쓰는 것)도 매카시가 강하게 밀어 뒤의 ALGOL 60에 들어갔습니다.
이 논문의 핵심은 프로그램도 목록이라는 데 있습니다. (PLUS 1 2)는 세 원소짜리 목록이면서 동시에 1과 2를 더하라는 프로그램입니다. 그러면 '목록으로 적힌 프로그램을 받아 그 값을 계산하는 함수' eval을 리스프 자신으로 쓸 수 있습니다. 매카시는 이것을 튜링 기계(Turing machine)의 보편 기계(universal machine)에 견주었습니다. 보편 튜링 기계(universal Turing machine)가 다른 기계의 설명을 테이프에서 읽어 흉내 내듯, eval은 다른 리스프 프로그램을 읽어 흉내 냅니다. 매카시는 이 정의를 이론적인 설명으로 여겼습니다. 그런데 매카시의 회고에 따르면, 그의 연구진에서 일하던 스티브 러셀이 그것을 IBM 704의 기계어로 옮겼고, 그렇게 첫 리스프 해석기가 생겼습니다. 더 이상 쓰이지 않는 목록 칸을 프로그램이 스스로 찾아 되돌리는 '쓰레기 수집(garbage collection)'도 같은 논문에 나옵니다. 오늘날 자바, 파이썬, 자바스크립트처럼 널리 쓰이는 언어 다수가 이 방식으로 기억을 관리합니다(C와 러스트처럼 쓰지 않는 언어도 있습니다).
그는 프로그램이 옳다는 것을 수학으로 증명하는 일도 일찍부터 생각했습니다. 1963년 논문 「계산의 수학적 이론의 기초(basics)」는 재귀로 정의된 함수에 대해 성질을 증명하는 방법을 다루었고, 뒤에 조하르 마나, 아미르 프누엘리와 함께 프로그램 검증의 예로 쓴 '91 함수'가 그의 이름으로 남았습니다(위의 식).
1959년 그는 두 가지 제안을 했습니다. 하나는 컴퓨터 한 대를 여러 사람이 동시에 쓰게 하는 시분할 방식을 MIT에 제안한 메모입니다. 다른 하나는 논문 「상식을 가진 프로그램」으로, 사실과 규칙을 논리식으로 적어 주면 프로그램이 스스로 추론해 행동을 정하는 '조언 받는 기계'를 구상했습니다. 1969년 패트릭 헤이스와 쓴 논문은 이 구상을 상황 계산으로 다듬다가 오래 남을 난점 하나에 이름을 붙였습니다. '상자 A를 옮긴다'는 행동의 결과를 적을 때, 상자 B의 색이 그대로라는 것, 방의 불이 그대로라는 것처럼 바뀌지 않는 것들을 모두 따로 적어야 합니다. 행동과 사실이 늘면 이런 문장이 곱으로 늘어납니다. 이것이 '프레임 문제(frame problem)'입니다. 1980년 그가 내놓은 '제한'은 "특별한 이유가 알려지지 않은 한 예외는 없다"고 가정하는 추론 방식입니다. 새는 난다고 결론 내렸다가, 트위티가 펭귄이라는 사실을 새로 알면 그 결론을 거두어들입니다. 사실이 늘면 결론이 줄어들 수도 있다는 점에서, 보통의 수학적 논리와 다른 성질입니다.
게임을 두는 프로그램에서 그는 게임 트리(game tree) 탐색의 가지치기 생각을 1956년 무렵 내놓은 사람 가운데 하나로 꼽힙니다. 상대가 이미 더 나쁜 결과를 강요할 수 있다는 것이 드러난 수는 끝까지 읽지 않아도 된다는 생각으로, 뒤에 알파–베타 가지치기라 불렸습니다. 같은 시기 새뮤얼의 체커 프로그램에도 비슷한 생각이 들어 있었습니다. 1962년 스탠퍼드로 옮긴 그는 이듬해 스탠퍼드 인공지능 연구소를 세웠고, 이곳에서 로봇 팔, 컴퓨터 시각, 정리 증명 연구가 자랐습니다. 밀너가 증명 보조기 LCF를 처음 만든 곳도, 크누스가 TeX을 만들며 쓴 컴퓨터가 있던 곳도 이 연구소입니다. 1971년 튜링상(Turing Award), 1988년 교토상, 1990년 미국 국가 과학 훈장을 받았고, 2011년 스탠퍼드에서 세상을 떠났습니다.
그가 걸은 길은 오늘날 주류가 된 신경망과 기계 학습(machine learning)의 길과 달랐습니다. 매카시는 지식을 사람이 읽을 수 있는 논리식으로 적고 추론 규칙으로 결론을 끌어내는 쪽을 끝까지 믿었습니다. 데이터에서 수많은 수를 맞추는 오늘날의 언어 모델(language model)은 그가 제기한 상식의 문제를 전혀 다른 방법으로 다루고 있고, 그 방법이 프레임 문제를 정말 푼 것인지, 비켜 간 것인지는 아직 합의된 답이 없습니다.
이어지는 곳. 리스프의 뼈대인 이름 없는 함수와 재귀는 람다 계산과 재귀에서, 프로그램을 읽어 흉내 내는 eval의 뿌리는 보편 튜링 기계와 처치–튜링 논제(Church–Turing thesis)에서 볼 수 있습니다. 그가 이름 붙인 분야의 전체 지도는 인공지능에, 가지치기의 생각은 게임 트리 탐색에 있습니다. 프로그램의 성질을 증명하려는 그의 관심은 타입 이론과 증명 보조기가 오늘날 가장 멀리 밀고 나갔고, 리스프처럼 함수를 값으로 다루면서 타입(type)까지 컴퓨터가 찾아 주는 언어의 계보는 밀너의 ML과 타입 추론(type inference)으로 이어집니다.
관계.
- 영향을 받음 알론조 처치 — 리스프에서 이름 없는 함수를 적는 방법으로 처치의 람다 표기를 빌렸습니다. 매카시는 뒤에 처치의 이론 전체를 깊이 따라가지는 않았다고 회고했습니다.
- 영향을 받음 존 폰 노이만 — 1948년 칼텍의 힉슨 심포지엄에서 폰 노이만이 자기 복제 오토마톤(automaton)에 대해 한 강연을 듣고, 기계로 지능을 흉내 내는 문제에 처음 관심을 가졌다고 회고했습니다.
- 함께 연구 클로드 섀넌 — 1956년 섀넌과 함께 논문집 『오토마타 연구』를 엮었고, 민스키, 로체스터와 함께 다트머스 여름 연구 모임의 제안서를 썼습니다.
- 함께 연구 마빈 민스키 — 1959년 MIT에서 민스키와 함께 인공지능 프로젝트를 시작했고, 1962년 스탠퍼드로 떠난 뒤에도 두 사람은 기호 인공지능의 두 중심을 이끌었습니다.
연표.
- 1948년 칼텍 수학과를 졸업하고, 힉슨 심포지엄에서 폰 노이만의 자기 복제 오토마톤 강연을 듣다
- 1951년 프린스턴 대학에서 수학 박사 학위를 받다
- 1955년 다트머스 여름 연구 모임 제안서에 '인공지능'이라는 이름을 쓰다
- 1956년 섀넌과 『오토마타 연구』를 엮고, 다트머스 모임을 열다
- 1958년 MIT로 옮겨 리스프를 설계하기 시작하다
- 1959년 「상식을 가진 프로그램」을 발표하고, 시분할 컴퓨터를 제안하다
- 1960년 리스프를 정의한 논문 「기호식의 재귀 함수」를 발표하다
- 1962년 스탠퍼드 대학으로 옮기다
- 1963년 스탠퍼드 인공지능 연구소(SAIL)를 세우다
- 1969년 패트릭 헤이스와 '프레임 문제'를 제기하다
- 1971년 튜링상을 받다
- 1980년 상식 추론의 방법 '제한(circumscription)'을 발표하다
- 1990년 미국 국가 과학 훈장을 받다
이 인물이 나오는 긴 글
이 인물을 언급하는 페이지
- 람다 계산
… 기둥이 되었습니다. 계산을 함수의 적용과 조합으로 적는 프로그래밍 언어를 함수형 언어라 하는데, 1958년존 매카시가 만든 Lisp는 람다 표기를 빌려 왔고, 오늘날의 Haskell 같은 함수형 언어는 람다 계산을 …
- 인공지능
… 제안했습니다. 이것은 지능의 정의가 아니라 논쟁을 다룰 수 있게 만드는 한 방법이었습니다. 1955년존 매카시, 마빈 민스키, IBM의 너새니얼 로체스터, 클로드 섀넌은 이듬해 여름 다트머스 대학에서 연구 …
- 영역 이론: 스콧과 재귀의 의미
… 있지만(예: 2m + 1에서 m + 7), 최소 고정점은 프로그램이 실제로 하는 일과 정확히 같습니다.존 매카시가 프로그램 검증의 시험 문제로 만든 91 함수는 재귀 호출 안에 재귀 호출이 들어 있어 무엇을 계산하는지 …