속을 열어 볼 수 없는 상대를 우리는 무엇을 근거로 '지능적'이라고 부를까요?
오늘은 규칙 네 개로 굴러가는 1966년의 상담 프로그램을 직접 되살려,
그 흉내가 정확히 어디에서 무너지는지를 손으로 찾아냅니다.
성취기준 12인기01-01
지능적 판단튜링 테스트중국어 방ELIZA 효과약한 AI · 강한 AI규칙 기반
🎯 학습 목표
'지능적 판단'을 한 문장으로 정의하고, 그것을 만드는 세 갈래(탐색 · 추론 · 학습)를 구별할 수 있다.
튜링 테스트가 무엇을 관찰 가능한 물음으로 바꾸었는지 설명하고, 그 한계를 중국어 방 논증으로 지적할 수 있다.
규칙 네 개짜리 ELIZA를 실행해 흉내가 무너지는 입력을 스스로 만들어 내고, 무너진 까닭을 규칙으로 설명할 수 있다.
🤔
여는 장면 — 비서가 방에서 나가 달라고 했다
1966년, 미국 매사추세츠공과대학(MIT)의 한 연구실. 조지프 바이젠바움이라는 연구자가
ELIZA라는 프로그램을 만들었습니다. 하는 일은 간단했습니다.
사람이 문장을 치면, 그 문장에서 몇 개의 덩어리를 골라내 질문으로 되받아치는 것.
그게 전부였어요.
그런데 이상한 일이 벌어집니다. 바이젠바움의 비서가 이 프로그램과 몇 마디를 나누더니,
잠시 자리를 비켜 달라고 부탁했습니다. 프로그램과 단둘이 이야기하고 싶다는 것이었죠.
그는 그 프로그램을 자기 손으로 만든 사람 바로 옆에 앉아 있었습니다.
안이 어떻게 생겼는지 물어보면 언제든 들을 수 있었고요. 그런데도 그렇게 느꼈습니다.
ELIZA를 2005년에 다시 구현한 프로그램의 화면. 사람 쪽 문장("Men are all alike." …)은 바이젠바움이 1966년 논문에 실은 대화 예시와 같습니다.
"my boyfriend"를 "your boyfriend"로 뒤집어 되묻는 줄이 보이나요? 프로그램은 상대의 말에서 몇 낱말을 집어 되물을 뿐인데,
읽는 사람에게는 이야기를 들어 주는 상대처럼 보입니다. 오늘 이 흉내를 여러분 손으로 다시 만듭니다.
출처: Unknown author, Wikimedia Commons (Public domain)
ELIZA 안에는 사람의 말을 '이해하는' 장치가 하나도 없습니다.
기억도 없습니다. 오늘 여러분이 실행할 코드에서 ELIZA가 기억하는 앞 대화는 0개입니다.
답을 만드는 함수는 이번 문장 하나만 받아 갑니다. 앞 문장을 넣을 자리 자체가 코드에 없어요.
💭 오늘의 물음
속을 들여다볼 수 없는 상대를 '지능적'이라고 부르려면,
우리는 무엇을 근거로 삼아야 하는가?
이 물음에 성급히 답하기 전에, 오늘 확인할 사실 하나를 먼저 말해 두겠습니다.
규칙 네 개짜리 ELIZA에게 아홉 번 말을 걸면, 그중 두 번은 어느 규칙에도 걸리지 않습니다.
그런데 걸리지 않았을 때에도 ELIZA는 침묵하지 않아요. "조금 더 자세히 말해 주세요"라고 답합니다.
못 알아들었다는 신호가 겉으로는 대화처럼 보입니다.
오늘의 물음은 바로 그 틈에서 나옵니다.
1
지능적 판단이란 무엇인가 — '고르기'라는 한 가지 일
인공지능이라는 말을 정의하려고 하면 곧바로 막힙니다. '지능'이 무엇인지부터 사람마다 다르게 말하니까요.
그래서 이 과목은 다른 자리에서 출발합니다. 지능 그 자체 대신
지능적 판단이라는, 훨씬 좁고 다루기 쉬운 것을 먼저 정의합니다.
📌 정의
지능적 판단이란
주어진 상황에서 목표에 가장 알맞은 행동이나 답을
여러 후보 가운데 스스로 골라내는 일이다.
이 정의에는 세 조각이 들어 있습니다. 상황(지금 어떤 형편인가),
목표(무엇을 이루려 하는가), 그리고 고르기(여러 후보 중 하나를 집어내기).
셋 중 하나라도 빠지면 지능적 판단이라고 부르기 어렵습니다.
계산기는 목표도 상황도 없이 시킨 계산만 합니다. 후보가 여럿이 아니니 고를 것도 없고요.
왜 이렇게 정의할까요? 확인할 수 있기 때문입니다.
'이 기계가 진짜 생각하는가'는 밖에서 확인할 방법이 없습니다.
그러나 '이 기계가 여러 후보 중에서 목표에 맞는 것을 골랐는가'는 확인할 수 있어요.
후보를 세어 볼 수 있고, 목표를 적어 둘 수 있고, 고른 결과를 볼 수 있으니까요.
확인할 수 있는 것으로 바꾸어 놓는 것 — 이것이 인공지능이라는 학문이 늘 하는 일이고,
오늘 배울 튜링 테스트도 정확히 같은 수법을 씁니다.
고르는 방법은 세 갈래다
'고르기'를 실제로 어떻게 구현할까요? 이 과목이 다룰 길은 크게 셋입니다.
앞으로 여러분이 지나갈 길이기도 하니, 지금 한 번 지도를 펼쳐 두겠습니다.
세 갈래는 서로 다른 기술이 아니라 같은 '고르기'를 서로 다른 재료로 하는 방법입니다.
탐색은 후보를 직접 만들어 뒤지고, 추론은 규칙으로 좁히고, 학습은 데이터에서 기준 자체를 뽑아냅니다.
오늘 만들 ELIZA는 세 갈래 중 어디에도 온전히 들지 않습니다.
규칙을 쓰기는 하지만 새 사실을 끌어내지 않으니 추론이라 하기 어렵고,
후보를 뒤지지도 데이터에서 배우지도 않습니다. 그저 모양이 맞으면 정해진 말을 되돌려 줄 뿐이에요.
그런데도 사람에게는 지능적으로 보입니다. 바로 그 간극이 오늘의 수업 재료입니다.
2
튜링 테스트 — 답할 수 없는 질문을 바꿔치기하다
1950년, 영국의 수학자 앨런 튜링은 「계산 기계와 지능」이라는 논문을 씁니다.
첫 문장은 이렇게 시작해요. "나는 '기계는 생각할 수 있는가'라는 물음을 다루려 한다."
그런데 튜링은 곧바로 그 물음을 버립니다. '생각'과 '기계'를 정의하려 들면
결국 말싸움으로 끝난다는 것이 이유였습니다.
대신 그는 물음을 바꿔치기합니다.
'이 기계가 진짜 생각하는가'(속을 묻는 물음, 확인 불가능) 대신
'이 기계가 사람과 구별되는가'(겉을 묻는 물음, 확인 가능)로요.
개념 1에서 본 그 수법 그대로입니다 — 확인할 수 있는 것으로 바꾸어 놓기.
블레츨리 파크의 앨런 튜링 조각상(조각: Stephen Kettle, 2007). 튜링은 '생각한다'를 정의하는 대신
겉으로 드러난 대화만으로 판정하는 절차를 제안했습니다. 오늘 우리가 다룰 물음은 그 절차가 무엇을 재고 무엇을 못 재는가입니다.
출처: Paul Gillett, Wikimedia Commons (CC BY-SA 2.0)
절차 — 세 단계로 끊어 읽는다
벽 하나가 이 시험의 전부입니다. 벽이 속을 가리고, 오직 겉만 통과시킵니다.
1
심사자를 앉힌다
사람 심사자 한 명이 벽 너머의 두 상대와 글로만 이야기한다. 얼굴·목소리·생김새는 전부 차단한다.
2
정해진 시간 동안 대화한다
무엇이든 물어도 된다. 두 상대 중 하나는 사람이고 하나는 기계인데, 둘 다 자기가 사람이라고 주장한다.
3
어느 쪽이 기계인지 판정한다
심사자가 충분히 자주 틀리면 그 기계는 시험을 통과한 것으로 본다. 기계의 속은 끝까지 열어 보지 않는다.
튜링은 이 시험이 언젠가 통과되리라고 내다보았습니다. 논문에서 그는
약 10억 비트(109)의 기억 용량을 가진 기계라면
5분의 대화 뒤 평균적인 심사자가 올바르게 맞힐 확률이
70%를 넘지 못하게 만들 수 있으리라고 적었어요.
숫자 자체보다 눈여겨볼 것은 판정 기준이 100%가 아니라는 점입니다.
튜링 테스트는 '완벽한 흉내'가 아니라 '충분히 헷갈리게 하기'를 잽니다.
💡 왜 하필 '글'인가
벽이 없으면 심사자는 겉모습으로 곧장 판정해 버립니다.
그러면 우리가 재려던 것(생각처럼 보이는 능력)이 아니라 엉뚱한 것(외모·목소리)을 재게 되지요.
시험을 설계할 때 재고 싶지 않은 것을 먼저 차단하는 일은 인공지능 실험 전체에서 되풀이됩니다.
2단원에서 학습 모델을 평가할 때에도 같은 고민을 하게 됩니다.
3
반례 둘 — 흉내를 잘하는 것과 이해하는 것
튜링 테스트는 깔끔합니다. 그런데 깔끔한 시험에는 늘 이런 물음이 따라붙어요.
"이 시험을 통과했다는 사실이 정확히 무엇을 보장하는가?"
반례 두 개를 보면 답이 분명해집니다.
반례 ① 중국어 방 — 규칙표만 있으면 이해 없이도 통과한다
1980년 철학자 존 설이 이런 상황을 상상했습니다.
중국어를 한 글자도 모르는 사람이 방 안에 갇혀 있습니다. 방에는 두꺼운 규칙표가 있어요.
"이런 모양의 글자가 들어오면 저런 모양의 글자를 내보내라"가 빼곡히 적혀 있습니다.
바깥에서 중국어로 쓴 쪽지가 들어옵니다. 안의 사람은 뜻을 전혀 모르지만,
규칙표에서 그 모양을 찾아 시키는 대로 다른 글자를 그려 내보냅니다.
바깥 사람이 보기에 방은 중국어를 유창하게 하는 상대입니다.
튜링 테스트라면 통과입니다. 그런데 안의 사람은 지금까지 무슨 이야기를 했는지 한 마디도 모릅니다.
🧠 이해하고 있다면
규칙표에 없는 상황에서도 뜻을 따라 새 답을 만들 수 있다.
같은 뜻을 다른 말로 바꿔 말할 수 있다.
앞에서 한 말과 지금 하는 말이 서로 이어진다.
틀렸다는 지적을 받으면 답이 바뀐다.
vs
📋 규칙표만 있다면
표에 없는 모양이 들어오면 아무 말이나 내보낸다.
모양이 같으면 뜻이 달라도 같은 답이 나온다.
앞 문장을 담아 둘 자리가 없다 — 기억 0개.
지적을 받아도 표가 그대로면 답도 그대로다.
설의 논증을 두 문장으로 줄이면 이렇습니다.
기호를 규칙대로 다루는 일(구문)과 그 기호가 무엇을 가리키는지 아는 일(의미)은 다르다.
튜링 테스트는 앞의 것만 재므로, 통과했다는 사실만으로 뒤의 것을 보장하지 못한다.
오늘 만들 ELIZA가 바로 아주 작은 중국어 방입니다. 규칙표가 네 줄뿐인 방이지요.
반례 ② ELIZA 효과 — 사람 쪽이 채워 넣는다
조지프 바이젠바움(1982). 자기가 만든 프로그램에 사람들이 속마음을 털어놓는 것을 보고,
그는 남은 평생 인공지능을 어디까지 믿어도 되는가를 따져 묻는 쪽으로 돌아섰습니다.
출처: Rochester Institute of Technology, Wikimedia Commons (Public domain)
중국어 방이 '통과해도 이해가 아니다'라면, ELIZA 효과는 그 반대편을 보여 줍니다.
사람은 생각보다 훨씬 쉽게 속는다는 것이지요.
정확히 말하면 속는 것이 아니라, 빈 곳을 사람이 알아서 채워 넣습니다.
ELIZA가 "그건 당신은 어떻게 생각하나요?"라고 되물으면, 듣는 사람은
'내 말을 곱씹고 있구나'라고 읽습니다. 실제로 그 문장은
물음표로 끝났다는 사실 하나만 보고 튀어나온 것입니다.
오늘 실행할 대화에서 5번 발화 "3 곱하기 17은?"에 ELIZA는 그렇게 답해요.
51이라는 답이 존재한다는 것조차 모릅니다. 물음표만 본 것입니다.
⚠️ 오늘날에도 같은 일이 일어난다
ELIZA 효과는 1966년의 옛일이 아닙니다.
말투가 자연스러우면 내용의 정확성까지 함께 믿어 버리는 경향은 지금 챗봇에서도 똑같이 나타납니다.
말이 매끄러운 것과 사실이 맞는 것은 서로 다른 성질인데,
우리 머리는 둘을 잘 구별하지 못해요. 오늘 손으로 하는 활동의 목표 하나는
"말투가 자연스러워지는 지점"과 "내용이 무너지는 지점"을 같은 화면에서 동시에 보는 것입니다.
4
약한 AI와 강한 AI — 지금 쓰이는 것은 전부 앞의 것이다
지금까지의 이야기를 정리하면 두 가지 목표가 갈라집니다.
약한 AI (좁은 인공지능)
정해진 한 가지 일을 잘하도록 만든 것.
그 일에서는 사람을 넘어서기도 하지만, 옆의 일로 옮기면 아무것도 못 한다.
바둑 프로그램은 바둑판 밖에서는 오목도 못 둔다.
강한 AI (범용 인공지능)
사람처럼 어떤 문제든 스스로 이해하고 새 영역으로 옮겨 가는 것.
아직 만들어진 적이 없고, 언제 가능할지에 대해 연구자들의 견해가 크게 갈린다.
지붕과 차체 곳곳에 라이다·카메라를 단 웨이모(Waymo)의 자율주행차. 도로 위에서는 사람보다 빠르게 판단하지만,
이 차의 프로그램에 시를 한 편 써 달라고 부탁할 수는 없습니다. 전형적인 약한 AI입니다.
출처: Oleg Yunakov, Wikimedia Commons (CC BY-SA 4.0)
여기서 자주 하는 오해를 하나 짚고 가겠습니다.
'약한'은 성능이 떨어진다는 뜻이 아닙니다. 적용 범위가 좁다는 뜻입니다.
의료 영상에서 병변을 찾아내는 프로그램은 그 일에서 대단히 강력하지만,
같은 프로그램에 계약서를 읽히면 아무 일도 하지 못해요. 범위가 좁은 것이지 약한 것이 아닙니다.
그리고 이 사실이 이 과목의 진짜 출발점입니다.
지금 세상을 바꾸고 있는 것은 전부 약한 AI입니다.
번역기도, 추천 시스템도, 자율주행도, 단백질 구조를 예측하는 프로그램도 모두 좁은 인공지능이에요.
'진짜 생각하는 기계'가 나오지 않아도 세상은 이미 충분히 달라지고 있습니다.
그러므로 우리가 배워야 할 것은 기계가 생각하는지 아닌지를 두고 다투는 법이 아니라,
이 좁은 도구가 무엇을 할 수 있고 어디서 무너지는지를 재는 법입니다.
오늘 15분 동안 여러분이 할 일이 정확히 그것이고요.
📖 다음 시간 예고
"어디서 무너지는가"를 한 프로그램 안에서 재 보는 것이 오늘이라면,
2차시 「왜 하필 인공지능인가」에서는 그것을 문제 단위로 넓힙니다.
의료 영상 판독 · 기계 번역 · 이력서 1차 심사 · 세금 계산 같은 여섯 가지 일을
세 조건으로 채점해, AI에게 맡길 문제와 맡기지 말 문제를 갈라 볼 거예요.
💻
손으로 — 규칙 네 개로 사람 흉내를 내고, 그 흉내를 부순다
여기서부터 15분은 전부 여러분 손입니다. 두 가지를 합니다.
먼저 시뮬레이터에서 아무 문장이나 던져 넣으며
"어느 규칙에 걸렸는지"를 눈으로 좇고, 무너지는 문장을 사냥합니다.
그다음 파이썬으로 같은 ELIZA를 직접 완성합니다.
시뮬레이터는 즉시 반응하고, 파이썬은 코드의 속을 보여 줍니다. 둘은 같은 규칙 네 개를 씁니다.
활동 ① — ELIZA 대화창: 걸린 규칙을 눈으로 좇는다
아래 시뮬레이터에 문장을 치면, 위쪽 화면이 규칙 ①부터 차례로 맞춰 보는 과정을
한 걸음씩 보여 줍니다. 걸린 규칙은 초록, 실패한 규칙은 빨강, 걸린 규칙 아래는
아예 보지도 않고 회색으로 남습니다. 어느 규칙에도 안 걸리면 마지막에 노란 상자가 뜨는데,
그것이 오늘 사냥할 '무너짐'입니다.
💬 ELIZA 대화창 — 어느 규칙에 걸렸는가INTERACTIVE
아무 문장이나 쳐 넣으세요. 규칙 ①→②→③→④ 순서로 맞춰 보는 과정이 위 화면에 한 걸음씩 그려집니다.
규칙을 추가하거나 순서를 바꾸거나꺼 볼 수도 있습니다.
되비추기를 끄면 '나 → 당신' 뒤집기가 사라져 답이 어떻게 달라지는지 볼 수 있어요.
예문 넣기(넣기만 합니다 — 보내기는 직접 누르세요):
0보낸 문장
0규칙에 걸림
0무너짐
0%무너짐 비율
4규칙 개수
번호
정규식
응답 틀
발동
바꾸기
응답 틀의 {0} 자리에 정규식의 첫 괄호가 붙잡은 덩어리가 들어갑니다.
괄호가 없는 정규식에 {0}을 쓰면 넣을 것이 없어 거절됩니다.
괄호 바로 뒤에 +나 *를 붙인 규칙은 받지 않습니다 — 까닭은 아래 ⚠️ 상자에 있습니다.
[안내] 문장을 보내면 여기에 판정 기록이 한 줄씩 쌓입니다.
📝 활동 ①의 과제 — 셋 다 합니다
표를 채운다. 아래 세 칸에 자기가 만든 문장을 넣고 보낸 뒤,
걸린 규칙 번호와 붙잡은 덩어리를 적으세요. 화면 기록 줄에 그대로 찍혀 나옵니다.
반례를 만든다.어느 규칙에도 안 걸리는 문장을 세 개 찾아
무너짐 비율을 30% 이상으로 올리세요. 화면의 '무너짐 비율' 숫자를 공책에 적습니다.
어떤 종류의 문장이 잘 무너뜨리던가요?
순서를 바꾼다. 규칙 ④(^(.+)\?$)를 ▲ 버튼으로 맨 위까지 올린 뒤,
아까 넣었던 문장들을 똑같이 다시 보내세요.
비교할 것은 답 문장이 아니라 답 옆에 붙는 '규칙 N' 딱지입니다
(판정 기록 줄에도 같이 찍힙니다). 걸린 규칙이 바뀐 문장과 그대로인 문장을 갈라 적고,
왜 그렇게 갈렸는지 한 줄로 쓰세요.
※ 답 문장만 보면 안 됩니다.
규칙 ①②④는 응답 틀이 두 개씩이라, 같은 규칙에 걸려도 답이 달라질 수 있습니다.
순서를 바꾸지 않고 같은 문장을 두 번 보내 보면 바로 확인됩니다.
내가 보낸 문장
걸린 규칙
붙잡은 덩어리
무너졌나
💡 잘 무너뜨리는 문장을 못 찾겠다면
규칙 네 개가 각각 무엇을 보는지 다시 보세요.
①은 '때문에'라는 낱말, ②는 '나는'으로 시작해 '다'로 끝나는 모양,
③은 '고 싶다'로 끝나는 모양, ④는 물음표. 넷 다 문장의 겉모양만 봅니다.
그러니 겉모양이 이 넷과 다르면서 사람에게는 아주 평범한 문장이면 무너집니다.
명령문("창문 좀 닫아 줘"), 사실 질문인데 물음표를 안 붙인 문장,
앞에서 한 말을 되묻는 문장이 잘 듣습니다.
활동 ② — 파이썬으로 ELIZA 완성하기 (빈칸 3곳)
아래 코드가 오늘의 ELIZA 전부입니다. 주석과 안전장치를 빼면 핵심은 30줄이에요.
빈칸 ????? 세 곳을 채우면 돌아갑니다. 채우기 전에 코드를 먼저 읽으세요.
빈칸 ① — flip() 안에서 어절 하나를 REFLECT에서 찾아 바꿉니다.
주의: 사전에 없는 어절(예: "요즘")도 사라지면 안 됩니다. 그대로 두어야 해요.
REFLECT[w]라고 쓰면 곧장 KeyError: '요즘'이 납니다.
'없으면 이 값을 대신 주라'고 말하는 조회 방법을 쓰세요.
빈칸 ② — reply() 안의 한 줄. ELIZA의 심장입니다.
응답 틀 여럿 중 하나를 고르고(random.choice),
붙잡은 덩어리를 끼워 넣습니다(.format()).
parts는 리스트이므로 앞에 *를 붙여 풀어 넣어야 합니다.
빈칸 ③ — RULES에 내 규칙 두 개를 넣습니다.
형태만 주어져 있고 내용은 여러분이 정합니다. 활동 ①에서 무너뜨린 문장을 막는 규칙이면 더 좋아요.
실행한다. 맨 아래 통계에 규칙별 발동 횟수가 찍힙니다.
여러분이 넣은 규칙도 정규식 그대로 이름이 되어 함께 세어집니다.
⚠️ 안전장치를 지우지 마세요 — 브라우저가 53초 동안 멈춥니다
코드 가운데 안전한_규칙을 걸러 내는 여섯 줄이 있습니다. 군더더기가 아닙니다.
정규식에서 괄호 묶음 바로 뒤에 +나 *를 붙이면
(예: ^(.+)+싶다$) 맞춰 볼 경우의 수가 글자마다 두 배씩 불어납니다.
일부러 실패하는 문장을 넣고 실제로 재 본 값이 아래 표입니다.
문장 길이
12글자
18글자
22글자
26글자
30글자
걸린 시간
0.000초
0.007초
0.111초
1.800초
53.037초
이 교과서의 파이썬은 브라우저 안에서 화면을 그리는 것과 같은 자리에서 돕니다.
파이썬이 53초 동안 돌면 그동안 화면은 한 번도 못 그려요 — 탭이 통째로 굳습니다.
그래서 코드가 위험한 규칙을 미리 걸러 내고
⚠️ 위험한 규칙이라 뺐다: …를 찍은 뒤 그 규칙만 빼고 계속 돕니다.
위 시뮬레이터의 '규칙 추가'도 같은 검사를 합니다.
빈칸 ①②를 바르게 채우고(③은 비운 채) 실행하면 아래 대화록이 나옵니다.
random.seed(1966) 때문에 몇 번을 돌려도 똑같습니다.
1. 나 : 나는 요즘 학교가 싫다
ELIZA : 왜 요즘 학교가 싫다고 느끼나요?
2. 나 : 내 성적 때문에 부모님이 화가 났다
ELIZA : 당신 성적이(가) 정말 전부일까요?
3. 나 : 그냥 좀 쉬고 싶다
ELIZA : 그냥 좀 쉬고 싶은 마음을 조금 더 말해 줄래요?
4. 나 : 시험 때문에 이러는 걸까?
ELIZA : 시험 말고 다른 까닭은 없을까요?
5. 나 : 3 곱하기 17은?
ELIZA : 그건 당신은 어떻게 생각하나요?
6. 나 : 나는 요즘 학교가 싫다
ELIZA : 언제부터 요즘 학교가 싫다고 생각했나요?
7. 나 : 아까 내가 뭐라고 했지?
ELIZA : 왜 그것이 궁금한가요?
8. 나 : (아무 말도 하지 않았다)
ELIZA : 조금 더 자세히 말해 주세요.
9. 나 : 어제 축구 경기 결과 알려 줘
ELIZA : 조금 더 자세히 말해 주세요.
그리고 통계는 이렇게 찍힙니다.
규칙 ① 2번 · 규칙 ② 2번 · 규칙 ③ 1번 · 규칙 ④ 2번 ·
어느 규칙에도 안 걸림 2번 · 기억하는 앞 대화 0개.
아홉 번 중 두 번이 무너졌으니 무너짐 비율은 약 22%입니다.
세 자리를 눈여겨보세요.
2번의 "당신 성적이(가)" — 여기서 흉내가 가장 사람 같습니다.
'내 성적'의 '내'가 '당신'으로 뒤집혔거든요(되비추기). 그런데 동시에
"이(가)"라는 어색한 조사가 그대로 남아 기계 티가 납니다. 같은 줄에 성공과 실패가 함께 있어요.
1번과 6번은 글자 하나까지 똑같은 입력인데 답이 다릅니다.
생각이 진전된 게 아니라 random.choice가 다른 눈을 굴린 것뿐입니다.
random.seed(1966) 줄을 지우고 여러 번 돌리면 6번 답이 실행마다 바뀝니다.
8번과 9번의 답이 같습니다.
아무 말도 하지 않은 사람과 축구 결과를 물은 사람이 구별되지 않습니다.
이것이 오늘의 결론 문장입니다 — 못 알아들었다는 신호가 겉으로는 대화처럼 보인다.
💡 규칙을 추가하다 오류가 나면
가장 흔한 두 가지입니다. 응답 틀에 {1}을 썼는데 정규식 괄호가 하나뿐이면
IndexError: Replacement index 1 out of range for positional args tuple이 납니다.
괄호가 아예 없는 정규식(^안녕$)에 {0}을 써도 같은 오류예요.
응답 틀의 가장 큰 번호 + 1개 이상의 괄호가 정규식에 있어야 합니다.
그리고 규칙은 위에서부터 차례로 맞춰 보고 처음 걸린 하나만 씁니다 —
새 규칙을 맨 아래에 넣으면 위의 넷에 먼저 걸려 영영 발동하지 않을 수 있어요.
⚠️ 해 보기 3)을 할 때 — 통계의 ①②③④는 '자리 이름'입니다
RULES의 순서를 바꾸면 맨 아래 통계의 이름표가
규칙을 따라가지 않습니다. 이름표는 names 목록에서
몇 번째 자리인지만 보고 붙기 때문이에요.
그래서 규칙 ④(~?)를 맨 위로 올리면 그 규칙의 발동 횟수가
규칙 ① ~때문에~라는 이름표 아래에 찍힙니다.
순서를 바꾼 뒤에는 이름표 대신 코드의 RULES 순서를 보고 읽으세요.
(위 시뮬레이터는 이름표 대신 정규식을 그대로 표에 보여 주므로 이 함정이 없습니다.
두 화면을 나란히 놓고 비교해 보면 차이가 보입니다.)
🧪 활동 ②의 과제 — 짝과 바꿔서 부수기
자기 규칙 두 개를 넣어 완성한 코드를 짝과 바꿉니다.
3분 안에 상대의 ELIZA를 무너뜨릴 문장을 찾아 SCRIPT에 넣고 실행하세요.
무너짐이 몇 번으로 늘었나요?
무너뜨린 문장들을 칠판에 모읍니다. 모아 놓고 보면 공통점이 보일 거예요.
"튜링 테스트가 재는 것"과 "재지 못하는 것"을 한 줄로 정리해 봅시다.
📖
정리 — 겉을 재는 시험과 속을 묻는 물음
오늘 한 일을 순서대로 되짚어 봅시다.
개념 1
지능적 판단을 좁게 정의했다
상황에서 목표에 맞는 행동을 여러 후보 중 골라내는 일.
'진짜 생각하는가' 대신 확인할 수 있는 것으로 바꾸어 놓았다.
그 고르기를 만드는 길이 탐색(3~9차시) · 추론(10~12차시) · 학습(2단원)이다.
개념 2
튜링 테스트는 같은 수법을 썼다
속을 묻는 물음을 겉을 보는 절차로 바꿨다.
심사자 · 벽 너머의 대화 · 판정. 벽이 재고 싶지 않은 것(외모·목소리)을 먼저 차단한다.
개념 3
그 바꿔치기에는 대가가 있었다
중국어 방 — 규칙표만 있으면 이해 없이도 통과한다.
ELIZA 효과 — 빈 곳을 사람 쪽이 채워 넣는다.
'흉내를 잘함'과 '이해함'은 같지 않다.
손으로
그 대가를 숫자로 봤다
규칙 4개 · 대화 9번 · 발동 2 · 2 · 1 · 2 · 안 걸림 2번(약 22%) ·
기억 0개. 8번과 9번은 전혀 다른 입력인데 같은 답을 받았다.
그리고 여러분은 시뮬레이터에서 자기 손으로 무너지는 문장을 만들어 냈다.
📌 오늘의 물음에 대한 답
속을 들여다볼 수 없는 상대를 지능적이라 부르려면 겉으로 드러난 행동을 볼 수밖에 없다.
튜링 테스트가 그 방법이고, 우리가 지금 쓰는 거의 모든 AI 평가가 그 후예다.
다만 그 시험은 '흉내의 품질'을 재는 것이지 '이해의 유무'를 재지 않는다.
그래서 이 과목이 진짜로 가르치려는 것은 통과 여부가 아니라
어디서 무너지는지를 찾아내고, 무너진 까닭을 구조로 설명하는 능력이다.
마지막으로 한 가지만 덧붙이겠습니다.
ELIZA를 만든 바이젠바움은 자기 프로그램이 사람들의 속마음을 끌어내는 것을 보고 기뻐하지 않았습니다.
오히려 걱정했어요. 몇 줄의 규칙에 사람이 이렇게 쉽게 마음을 여는데,
그것을 만드는 사람이 그 사실을 모른 채 계속 만들어도 되는가 하고 물었습니다.
기술을 잘 만드는 일과 그 기술이 사람에게 어떻게 작동하는지 아는 일은 다릅니다.
이 과목은 둘 다 다룹니다.
📖 다음 차시로 넘기는 것
오늘 세워 둔 '지능적 판단' 정의는 2차시에서 그대로 쓰입니다.
어떤 문제가 AI에게 잘 맞고 어떤 문제가 안 맞는지를 가를 때, 그 잣대의 뿌리가 오늘의 정의예요.
그리고 세 갈래 중 첫 갈래인 탐색은 3차시에서 시작합니다.
3차시에서는 문제를 상태 · 행동 · 목표 세 낱말로 다시 적는 법을 배웁니다.
오늘 ELIZA에는 '목표'가 없었다는 것을 그때 다시 떠올리게 될 거예요.
✅
확인 문제
✍️ 문제마다 답을 쓰고 제출하기를 누르세요. 제출하면 모범 답안이 열리고, 제출한 답은 선생님께 전달됩니다.
1. '지능적 판단'을 한 문장으로 정의하고,
길찾기 앱 · 번역기 · 추천 시스템 중 하나를 골라 그 정의의 세 조각
(상황 · 목표 · 고르기)에 하나씩 대입해 설명하시오.
📖 모범 답안
정의 — 주어진 상황에서 목표에 가장 알맞은 행동이나 답을 여러 후보 가운데 스스로 골라내는 일.
길찾기 앱으로 대입하면 — 상황: 지금 내 위치, 도로의 막힘 정도, 시각.
목표: 목적지까지 걸리는 시간을 가장 짧게. 고르기: 갈 수 있는 수많은 경로 중에서 그 목표에 가장 맞는 하나를 골라 화면에 그린다.
세 조각이 모두 있으므로 지능적 판단이라 부를 수 있다.
계산기와 견주면 차이가 분명하다. 계산기에는 후보가 여럿인 상황이 없다.
3 곱하기 17에는 답이 하나뿐이라 '고를' 것이 없다. 그래서 계산이 아무리 빨라도 지능적 판단이 아니다.
2. 튜링 테스트의 절차를 심사자 · 대화 · 판정 세 단계로 순서대로 쓰고,
"벽(가림막)이 없으면 이 시험이 왜 망가지는가"를 한 문장으로 덧붙이시오.
📖 모범 답안
① 심사자 — 사람 심사자 한 명이 벽 너머의 두 상대(하나는 사람, 하나는 기계)와 마주 앉는다.
얼굴·목소리·생김새는 볼 수 없고 글자만 오간다. ② 대화 — 정해진 시간 동안 무엇이든 묻는다. 두 상대는 모두 자기가 사람이라고 주장한다. ③ 판정 — 어느 쪽이 기계인지 심사자가 고른다. 심사자가 충분히 자주 틀리면 기계가 시험을 통과한 것으로 본다.
벽이 없으면 심사자는 겉모습만 보고 곧장 판정해 버리므로,
우리가 재려던 것(생각처럼 보이는 능력)이 아니라 엉뚱한 것(외모·목소리)을 재게 된다.
즉 재고 싶지 않은 단서를 차단하는 장치가 벽이다.
3.(오늘 실행한 결과) 파이썬 ELIZA를 완성해 실행했을 때 맨 아래에 찍힌 통계를 보고 답하시오.
㉠ 규칙 ①~④의 발동 횟수는 각각 몇 번인가? ㉡ 어느 규칙에도 걸리지 않은 횟수는 몇 번이고, 전체 대화의 몇 %인가?
㉢ 8번 발화와 9번 발화가 같은 답을 받은 까닭을 통계의 어느 숫자로 설명할 수 있는가?
㉡ 어느 규칙에도 안 걸린 것이 2번. 대화가 9번이므로 2 ÷ 9 ≒ 22%다.
아홉 번 중 두 번은 ELIZA가 아무것도 알아듣지 못했다는 뜻이다.
㉢ 8번(빈 입력)과 9번("어제 축구 경기 결과 알려 줘")은 둘 다 그 '안 걸림 2번'에 들어간다.
규칙에 걸리지 않으면 문장의 내용과 상관없이 DEFAULT에서 아무 말이나 하나 뽑아 돌려주므로,
전혀 다른 두 입력이 같은 답을 받는다. 곧 '못 알아들었다'는 신호가 겉으로는 대화처럼 보인다.
4.(오늘 실행한 결과) 시뮬레이터에서 여러분이 찾아낸
무너뜨린 문장 하나를 적고, ㉠ 화면의 판정 그림이 어떤 순서로 무엇을 보여 주었는지,
㉡ 그 문장이 왜 규칙 네 개를 모두 빠져나갔는지, ㉢ 그때 화면에 찍힌 무너짐 비율은 얼마였는지 쓰시오.
📖 모범 답안
(문장은 사람마다 다릅니다. 아래는 "어제 축구 경기 결과 알려 줘"로 답한 예시입니다. 비율은 자기 화면의 값을 씁니다.)
㉠ 규칙 ①부터 차례로 빨간 ✗가 찍혔고, 넷을 다 지나간 뒤 노란 상자가 떴다.
걸린 규칙이 하나도 없으므로 붙잡은 덩어리도 없고, 되비추기도 일어나지 않았다.
마지막에 DEFAULT에서 뽑은 문장이 답으로 나왔다.
㉡ 규칙 넷은 각각 '때문에'라는 낱말 · '나는 …다' 모양 · '고 싶다' 끝맺음 · 물음표만 본다.
이 문장에는 넷 중 어느 겉모양도 없다. 사람에게는 아주 평범한 부탁이지만
ELIZA에게는 아무 표시도 붙어 있지 않은 글자 뭉치일 뿐이다.
내용을 이해해서 거른 것이 아니라 모양이 안 맞아서 빠져나갔다.
㉢ 예: 문장 10개를 보내 3개가 무너졌다면 30%. 화면 '무너짐 비율' 칸의 값을 그대로 적으면 된다.
5. [OX] "튜링 테스트를 통과한 프로그램은 사람처럼 이해하고 있다고 확신할 수 있다."
O인지 X인지 판단하고, 중국어 방 논증을 두 문장으로 요약해 까닭을 대시오.
📖 모범 답안
X.
중국어 방 요약 — 중국어를 모르는 사람이 방 안에서 규칙표만 보고 글자를 바꿔 내보내면,
바깥에서는 중국어를 이해하는 상대처럼 보인다. 그러나 안의 사람은 뜻을 하나도 모르므로,
기호를 규칙대로 다루는 일(구문)과 그 기호가 무엇을 가리키는지 아는 일(의미)은 다르다.
튜링 테스트는 앞의 것만 재므로 통과 사실만으로 뒤의 것을 보장하지 못한다.
오늘 만든 ELIZA가 그 축소판이다 — 규칙표가 네 줄뿐인 중국어 방이고,
기억이 0개라서 앞뒤 문장을 잇지도 못한다.
6. 다음 중 약한 AI가 아닌 것을 고르시오.
(㉮ 바둑 프로그램 ㉯ 얼굴 인식 ㉰ 번역기 ㉱ 어떤 문제든 스스로 이해하는 AI)
그리고 "지금 세상을 바꾸고 있는 것은 전부 약한 AI다"라는 문장이
이 과목의 출발점이 되는 까닭을 두 문장으로 쓰시오.
📖 모범 답안
㉱가 강한 AI(범용 인공지능)다. 나머지 셋은 모두 정해진 한 가지 일만 하는 약한 AI다.
주의할 것은 '약한'이 성능이 낮다는 뜻이 아니라 적용 범위가 좁다는 뜻이라는 점이다.
바둑 프로그램은 바둑에서 사람을 이기지만 옆의 오목판으로 옮기면 아무것도 못 한다.
까닭 — 강한 AI는 아직 없는데도 번역·추천·자율주행·단백질 구조 예측이 이미 세상을 바꾸고 있다.
그러므로 우리가 배울 것은 '기계가 진짜 생각하느냐'를 두고 다투는 법이 아니라,
이 좁은 도구가 무엇을 할 수 있고 어디서 무너지는지를 재고 그 까닭을 구조로 설명하는 법이다.
오늘 무너지는 문장을 손으로 찾아낸 활동이 그 연습의 첫 번째였다.
🔁 되돌아보기
오늘 우리는 규칙 네 개로 사람 흉내를 내 보고,
그 흉내가 아홉 번 중 두 번(약 22%) 무너지는 것을 숫자로 확인했다.
그리고 시뮬레이터에서 스스로 무너뜨리는 문장을 만들어 냈다.
다음 시간(2차시 「왜 하필 인공지능인가」)에는 이 눈을 문제 전체로 넓혀, 여섯 가지 일을 세 조건으로 채점하며
AI에게 맡길 문제와 맡기지 말 문제를 갈라 본다.
🔎
더 알아보기
ELIZA가 돌던 기계, '통과했다'는 뉴스의 속사정, 그리고 거꾸로 선 튜링 테스트
역사
ELIZA가 살던 기계 — 규칙표와 엔진을 따로 두다
ELIZA는 1960년대 중반 MIT의 대형 컴퓨터 IBM 7094 위에서 돌았습니다. 사진은 그 기종의 조작반이에요.
사용자는 이 기계 앞에 앉지 않았습니다. 컴퓨터 한 대를 여러 사람이 번갈아 나눠 쓰는 시분할 방식 덕분에,
떨어진 곳의 타자기 모양 단말기에서 글자를 쳐 넣고 답이 찍혀 나오기를 기다렸지요. 얼굴도 목소리도 없이 글자만 오가는 자리 —
튜링이 시험에 세운 벽과 꼭 같은 조건이었습니다.
바이젠바움은 프로그램을 두 층으로 나눴습니다. 문장을 받아 규칙을 맞춰 보는 엔진과,
어떤 낱말에 어떻게 반응할지 적어 둔 스크립트. 가장 유명한 스크립트가 DOCTOR로,
상대의 말을 되돌려 묻는 로저스식 상담사를 흉내 냈습니다. 여는 장면 사진의 'mock Rogerian psychotherapist'가 바로 그 뜻이에요.
오늘 코드로 치면 RULES 목록이 스크립트이고 reply()가 엔진입니다.
왜 하필 상담사였을까요? 바이젠바움은 1966년 논문에서, 상담 자리에서는 듣는 쪽이 세상 지식을 거의 드러내지 않아도 어색하지 않다고 설명했습니다.
누군가 "배를 오래 탔어요"라고 할 때 "배 이야기를 더 해 볼래요?"라고 되물어도, 사람들은 상담사가 배를 모른다고 여기지 않고
뜻이 있어서 묻는다고 받아들인다는 것이지요. ELIZA는 모르는 것을 가리기 가장 좋은 무대를 고른 셈이고,
오늘 기억 0개로도 대화처럼 보였던 까닭이 여기에 있습니다.
사진: IBM 7094 조작반(컴퓨터 역사 박물관) · 출처: ArnoldReinhold, Wikimedia Commons (CC BY-SA 3.0)
오해 바로잡기
2014년, 튜링 테스트가 '통과'되었다? — 유진 구스트만 이야기
2014년 6월, 영국 레딩 대학교가 런던 왕립학회에서 연 행사에서 '유진 구스트만'이라는 대화 프로그램이
5분 대화 뒤 심사자의 33%에게 사람이라는 판정을 받았습니다. 주최 측은 튜링 테스트가 처음으로 통과되었다고 발표했어요.
잣대는 본문에서 본 튜링의 문장 — 평균적인 심사자가 5분 대화 뒤 올바르게 맞힐 확률이 70%를 넘지 못할 것 — 을 뒤집은
"30% 넘게 속이면 통과"였습니다.
그런데 두 가지를 짚어야 합니다. 첫째, 30%는 튜링이 정한 합격선이 아니라 약 50년 뒤를 내다본 예측이었습니다.
둘째, 프로그램의 설정이 영어가 서툰 13살 우크라이나 소년이었습니다. 질문을 못 알아듣거나 말을 돌려도
심사자는 '아이라서, 외국어라서 그렇겠지' 하고 넘어가기 쉽지요.
이것은 오늘 배운 ELIZA 효과 그대로입니다. 빈 곳을 채운 것은 프로그램이 아니라 심사자였어요.
그래서 많은 연구자가 이 '통과' 발표를 받아들이지 않았습니다. 시험이 겉만 잴 때에는
겉을 어떻게 연출하느냐가 결과를 흔들 수 있다는 것 — 튜링 테스트 결과를 읽을 때 늘 함께 물어야 할 점입니다.
생각할 거리
거꾸로 선 튜링 테스트 — CAPTCHA
회원 가입을 할 때 비틀린 글자를 읽어 적게 하는 상자를 본 적이 있지요? 이것을 CAPTCHA라 부릅니다.
이름을 풀면 'Completely Automated Public Turing test to tell Computers and Humans Apart',
곧 컴퓨터와 사람을 구별하는 완전 자동 튜링 테스트입니다. 2000년대 초 미국 카네기멜런 대학교 연구진이 이 이름을 붙였어요.
그림처럼 자리가 뒤바뀌었습니다. 심사자는 기계이고, 상대는 자기가 사람임을 증명해야 합니다.
그런데 재는 방법은 튜링 테스트와 똑같이 겉입니다. 상대가 글자를 '이해했는지'는 묻지 않고,
사람만 해낼 수 있다고 믿은 일을 해냈는지만 봅니다.
문제는 그 '사람만 할 수 있는 일'이 자꾸 줄어든다는 점입니다. 이미지 인식 기술이 좋아지자 기계도 비틀린 글자를 잘 읽게 되었고,
CAPTCHA는 사진 속 물체 고르기, 마우스를 움직이는 모양 살피기처럼 다른 겉모습을 보는 쪽으로 바뀌어 왔습니다.
겉으로 사람과 기계를 가르는 선은 한자리에 머물지 않습니다. 그러니 '통과했는가'보다 '이 시험은 지금 무엇을 재고 있는가'를
묻는 오늘의 습관이 여기에서도 필요합니다.