계산 능력만 놓고 보면 AI가 인간을 이기지 못하는 영역은 이제 거의 없다. 체스, 바둑, 스타크래프트, 심지어 시 창작까지. 그런데 놀랍게도 1부터 20 사이 숫자 맞히기 같은 단순한 게임에서는 인간이 여전히 AI를 이길 수 있다. 오히려 자주 이긴다. 왜일까?
컴퓨터가 숫자를 정하는 법
흔히 "컴퓨터는 완벽하게 무작위로 숫자를 정한다"고 생각하지만 이는 정확한 말이 아니다. 컴퓨터가 만드는 난수는 대부분 의사난수(pseudo-random)다. 시드값 하나를 넣으면 그로부터 계산으로 만들어진, 무작위처럼 보이는 숫자 열이다.
대부분의 웹 게임은 Math.random() 같은 표준 함수를 쓰는데, 이 함수는 브라우저의 현재 시각과 내부 상태로부터 값을 계산한다. 실용적으로는 완전 무작위와 구분이 불가능할 만큼 균등하게 분포한다. 즉, 컴퓨터가 정한 답을 예측하는 것은 불가능하다.
그런데 인간이 정한 숫자는 예측 가능하다
흥미로운 사실은 여기부터다. 1부터 10 사이 숫자 하나를 무작위로 골라보라고 하면, 통계적으로 7이 압도적으로 많이 선택된다. 그리고 1과 10, 즉 극단값은 거의 선택되지 않는다.
인간이 "무작위"라고 생각하며 고르는 숫자에는 예측 가능한 편향이 존재한다.
- 극단값 회피: 1이나 20 같은 끝 숫자는 "너무 뻔해 보인다"는 이유로 회피된다.
- 홀수 선호: 짝수보다 홀수가 "더 무작위처럼 느껴진다"고 인식된다. 특히 7, 3, 17 같은 소수.
- 중간 근처 회피: 10, 15 같은 딱 떨어지는 수도 "너무 예측 가능"하다고 여겨 회피된다.
- 직전 숫자 회피: 앞 판에서 정답이었던 숫자는 "설마 또 나오겠어"라며 배제한다.
그렇다면 왜 인간이 AI를 이길 수 있는가
흥미로운 반전은, 잘 만든 업다운 게임에서는 AI가 정답을 정하지 않는다는 점이다. 정답은 완전히 무작위로 미리 뽑히고, AI와 인간 모두 그것을 맞히는 역할을 한다. 이 구조에서는 편향의 방향이 바뀐다.
앞에서 다룬 이진 탐색 이론에 따르면, 완벽한 이진 탐색을 하는 두 플레이어가 붙으면 결과는 사실상 반반이다. 그렇다면 실전에서 승부를 가르는 요소는 무엇일까?
- 선공 여부: 이론적으로는 먼저 추측하는 쪽이 약간 유리하다. 남은 후보를 더 빨리 좁힐 수 있기 때문이다.
- AI의 의도적 실수: 잘 설계된 게임의 AI는 일부러 완벽하지 않게 만들어져 있다. 실수하는 순간이 인간의 승리 기회다.
- 정답의 우연한 위치: 이진 탐색 초기 몇 수 안에 정답이 걸리는 판은 선공한 쪽이, 후반부에 걸리는 판은 후공한 쪽이 유리하다.
완벽한 AI는 왜 재미가 없는가
이론적으로 완벽한 이진 탐색을 실행하는 AI를 만드는 것은 코드 몇 줄이면 된다. 그런데 게임 디자이너들은 일부러 이 완벽함을 제거한다. 이유는 단순하다: 완벽한 AI를 이기는 것은 즐겁지 않다.
업다운 게임의 도발이 AI는 다음과 같은 규칙으로 설계되었다.
- 이진 탐색의 중간값에서 ±25% 오차를 준다.
- 때때로 완벽한 수를 두고, 때때로 명백히 나쁜 수를 둔다.
- 범위가 좁아질수록 실수가 줄어들어 긴장감이 유지된다.
이런 설계는 승률을 사람에게 유리한 55~60% 정도로 맞추기 위한 것이다. 너무 자주 지면 좌절하고, 너무 자주 이기면 심심하다. 그 사이의 스위트 스팟을 찾는 것이 AI 게임 디자인의 핵심이다.
좋은 AI 게임의 세 가지 조건
업다운 같은 간단한 게임에도 좋은 AI를 만드는 원칙이 있다. 앞으로 AI 대결 게임을 만들거나 평가할 때 참고할 만하다.
- 실수의 규칙성: AI의 실수가 예측 불가능해야 한다. 매번 같은 지점에서 실수하면 플레이어가 파악하고 조롱하게 된다.
- 실력 곡선: 플레이어의 실력이 늘면 AI도 살짝 강해져야 한다. 정적인 난이도는 금방 지루해진다.
- 성격의 부여: 무개성 AI보다 성격이 있는 AI에게 지는 것이 덜 억울하다. "도발이가 오늘은 컨디션이 좋았네"라는 서사가 붙어야 다음 판이 즐거워진다.
결국 완벽한 AI를 만드는 것보다 흥미로운 AI를 만드는 것이 훨씬 어렵다. 계산 능력이 아무리 좋아져도, 인간이 재미있어할 정도의 실수를 정교하게 설계하는 것은 여전히 사람의 몫이다. AI 시대의 흥미로운 역설이다.