더북(TheBook)

1.1 컴퓨터는 학습할 수 있을까?

흔히들 컴퓨터는 사람이 시킨 일만 할 뿐이라고 이야기합니다. 즉, 프로그래머가 작업 방법을 이해하고 있고, 설명할 수 있는 일만 컴퓨터에 시킬 수 있다는 것이지요. 이 주장은 틀렸습니다. 프로그래머가 설명할 수 없는 일도 컴퓨터는 해낼 수 있습니다. 그리고 컴퓨터는 프로그래머가 이해할 수 없는 작업도 처리할 수 있지요. 학습할 수 있는 컴퓨터 예시로 이 패러독스를 살펴보겠습니다.

프로그래밍된 머신 러닝 시스템과 관련된 아주 오래된 이야기를 하나 하겠습니다. 약간 각색을 했지만 역사적 사실에 기반한 이야기입니다. 1950년대, IBM에서 일하던 아서 사무엘(Arthur Samuel)은 흥미로운 문제를 풀고 있었습니다. 그는 조립라인에서 제작하는 큰 컴퓨터 장비의 품질을 검증하는 작업을 맡았는데, 장비 전원을 켜고 프로그램을 실행할 때 트랜지스터가 터지지 않았는지를 확인해야 했습니다. 그래야 고객들이 장비를 사용할 때 문제가 생기지 않으니까요. 그러나 컴퓨터 매니아인 사무엘은 간단한 프로그램을 돌리는 일에 금방 싫증이 났습니다. 게임으로 관심을 돌린 그는 2인용 체스 프로그램을 개발했고 한동안은 꽤 재미있었습니다. 체스를 두면서 IBM 컴퓨터의 품질 테스트를 할 수 있었으니까요. 그러나 곧 2인용 체스를 혼자 두는 것에도 흥미를 잃었고, 컴퓨터를 상대로 좋은 체스 게임을 둘 수 있는 가능성을 고려하기 시작했습니다. 여기에서 문제는 그가 컴퓨터에 체스 전략을 설명할 수 있을 정도로 뛰어난 체스 플레이어가 아니라는 것입니다.

사무엘은 컴퓨터가 체스를 두는 법을 배울 수 있는 아이디어를 떠올렸는데, 컴퓨터가 수를 두고 그 수에 대한 비용과 효용을 평가하는 시나리오를 세웠습니다. 처음에는 컴퓨터 실력이 형편없었습니다. 그런데 시간이 지나면서 점차 실력이 나아지기 시작했습니다. 사무엘이 컴퓨터를 상대했기 때문에 시간이 꽤 오래 걸렸죠. 갑자기 사무엘의 머리에 두 마리 토끼를 한 번에 잡을 수 있는 아이디어가 떠올랐습니다. 이 학습 루프에서 자신을 빼고 컴퓨터끼리 체스를 두도록 하는 것이죠. 컴퓨터는 사무엘보다 더 빠르게 수를 둘 수 있기 때문에 수를 두고 결과를 평가하는 사이클을 훨씬 더 많이 돌릴 수 있었습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.