컴퓨터공학 300 주제 시리즈의 261번째 글이다. 전체 지도는 여기.

한 줄 요약

인공지능은 “지능적으로 행동하는 프로그램을 만드는 학문”이고, 그 방법은 사람이 규칙을 적어 넣는 기호주의에서 데이터로 규칙을 배우는 머신러닝, 그리고 층을 깊게 쌓은 딥러닝으로 무게중심이 옮겨 왔다.

왜 필요한가

요즘은 “AI” 라는 말이 거의 모든 소프트웨어에 붙는다. 챗봇도, 스팸 필터도, 길찾기도, 체스 엔진도 AI 라고 부른다. 그런데 이 넷은 원리가 전혀 다르다. 길찾기는 탐색이고, 스팸 필터는 통계적 분류이고, 챗봇은 거대한 신경망이다.

분류 체계가 머릿속에 없으면 두 가지 실수를 한다. 첫째, 문제에 맞지 않는 도구를 고른다. 규칙 열 줄이면 끝날 일에 모델을 학습시키거나, 반대로 규칙으로 절대 안 되는 일을 규칙으로 버틴다. 둘째, 유행의 반복을 알아보지 못한다. AI 는 기대가 부풀었다가 꺼지는 일을 여러 번 겪었다. 역사를 알면 지금의 기대 중 무엇이 근거 있고 무엇이 과장인지 가려 보는 눈이 생긴다.

이 파트(14부)는 도구로 쓰는 단계에서 원리를 아는 단계로 가는 것이 목표다. 그 첫 글로 큰 지도를 먼저 그린다.

핵심 개념

정의 — 무엇을 “지능”이라 부르나

러셀과 노빅의 교과서 Artificial Intelligence: A Modern Approach 는 AI 의 정의를 두 축으로 나눈다. 사람처럼 하느냐, 합리적으로 하느냐. 생각이냐, 행동이냐. 그 결과 네 칸이 생긴다.

  사람처럼 합리적으로
생각 인지 모델링 논리적 추론 (“생각의 법칙”)
행동 튜링 테스트 합리적 에이전트

교과서가 채택하는 것은 오른쪽 아래, 합리적 에이전트다. 환경을 지각하고, 기대 성과를 최대화하는 행동을 고르는 존재. 이 정의의 장점은 측정할 수 있다는 것이다. “얼마나 사람 같은가”보다 “목표를 얼마나 잘 달성하는가”가 공학적으로 다루기 쉽다.

왼쪽 아래 칸의 튜링 테스트는 앨런 튜링이 1950년 논문 “Computing Machinery and Intelligence” 에서 제안한 “모방 게임”이다. “기계가 생각할 수 있는가”라는 정의하기 어려운 질문을, 대화로 사람과 구별되지 않는가라는 관찰 가능한 질문으로 바꿨다.

짧은 연표

시기 사건 의미
1943 매컬럭·피츠의 형식 뉴런 모델 뉴런을 논리 소자로 본 첫 수학 모델
1950 튜링, 모방 게임 제안 지능을 행동으로 판정하자는 발상
1955–56 다트머스 여름 연구 제안서와 워크숍 “Artificial Intelligence” 라는 이름이 붙음
1958 로젠블랫의 퍼셉트론 데이터로 가중치를 배우는 기계
1969 민스키·페퍼트 『Perceptrons』 단층 퍼셉트론의 한계(XOR 등)를 정리
1970–80년대 전문가 시스템 전문가의 지식을 규칙으로 옮김
1986 럼멀하트·힌턴·윌리엄스, 역전파 다층 신경망 학습의 길이 열림
1990–2000년대 통계적 머신러닝 SVM, 랜덤 포레스트 등 데이터 중심 방법
2012 이후 딥러닝 GPU 와 대규모 데이터로 이미지·음성 인식 급진전
2017 트랜스포머 어텐션만으로 된 시퀀스 모델, LLM 의 토대

기대가 꺼진 시기를 흔히 “AI 겨울”이라 부른다. 약속한 성과가 안 나오자 연구비가 줄어든 시기다. 전문가 시스템도 처음에는 성공했지만 규칙을 만들고 고치는 비용이 커지면서 한계가 드러났다. 이것을 지식 획득 병목이라 한다.

세 갈래 분류

방법론으로 나누면 대략 세 갈래다.

           인공지능 (지능적 행동을 하는 프로그램)
          /              |                 \
   기호주의 AI        탐색·계획           머신러닝 (데이터에서 학습)
   - 논리, 규칙       - 상태 공간 탐색      - 지도 / 비지도 / 강화
   - 전문가 시스템    - 게임 트리          - 고전 ML (회귀, 트리, SVM)
   - 지식 표현        - 제약 만족          - 딥러닝 (신경망)
                                              - 생성 모델, LLM

경계는 겹친다. 바둑 프로그램 알파고는 신경망(학습)과 몬테카를로 트리 탐색(탐색)을 섞었다. LLM 에이전트는 신경망이 계획을 세우고 도구를 부른다.

또 다른 축 — 약한 AI 와 범용 AI

능력의 폭으로 나누기도 한다. 특정 과제 하나를 잘하는 시스템을 좁은(narrow) AI, 사람처럼 넓은 과제를 해내는 것을 범용 인공지능(AGI)이라 부른다. 지금 실무에서 쓰는 시스템은 범위가 넓어지긴 했지만, 평가는 여전히 과제별로 해야 한다. “AGI 인가” 같은 질문보다 “이 과제에서 얼마나 믿을 만한가”가 엔지니어에게 쓸모 있는 질문이다.

기호주의와 학습의 차이

  기호주의(규칙) 머신러닝(학습)
지식의 출처 사람이 적음 데이터에서 추정
설명 가능성 높음 (규칙을 읽으면 됨) 낮음~중간
새 상황 규칙 없으면 실패 비슷하면 일반화, 다르면 엉뚱함
유지보수 규칙 충돌·폭증 데이터 수집·재학습

직접 해 보기

기호주의 AI 의 대표인 전문가 시스템의 핵심, 전방 추론(forward chaining)을 열다섯 줄로 만들어 본다. 사실 집합에서 출발해 조건이 맞는 규칙을 더 이상 새 사실이 안 나올 때까지 반복해서 적용한다.

# 아주 작은 전문가 시스템: 규칙 기반 전방 추론(forward chaining)
rules = [
    ({"털이 있다"}, "포유류"),
    ({"젖을 먹인다"}, "포유류"),
    ({"포유류", "고기를 먹는다"}, "육식동물"),
    ({"육식동물", "황갈색", "검은 줄무늬"}, "호랑이"),
    ({"육식동물", "황갈색", "검은 반점"}, "치타"),
]
facts = {"털이 있다", "고기를 먹는다", "황갈색", "검은 줄무늬"}
changed = True
while changed:
    changed = False
    for cond, concl in rules:
        if cond <= facts and concl not in facts:
            facts.add(concl)
            print(f"{sorted(cond)} => {concl}")
            changed = True
print("결론:", "호랑이" in facts)

실행 결과:

['털이 있다'] => 포유류
['고기를 먹는다', '포유류'] => 육식동물
['검은 줄무늬', '육식동물', '황갈색'] => 호랑이
결론: True

“포유류”라는 중간 결론이 다음 규칙의 조건이 되어 “육식동물”, “호랑이”로 이어진다. 장점은 추론 과정이 그대로 설명이 된다는 것이다. 단점도 바로 보인다. “검은 줄무늬” 대신 “줄무늬가 좀 흐릿함” 이라는 사실이 들어오면 어떤 규칙도 맞지 않는다. 현실의 애매함을 다루려면 규칙이 끝없이 늘어난다. 이 한계가 머신러닝으로 무게가 옮겨 간 이유 중 하나다.

현업에서는

  • 규칙과 모델을 함께 쓴다. 결제 이상거래 탐지는 모델이 점수를 내고, “해외 IP 에서 한 시간 내 다섯 번 이상 결제” 같은 규칙이 함께 걸린다. 규칙은 감사·설명용, 모델은 탐지율용이다.
  • 탐색은 여전히 현역이다. 내비게이션 경로, 쿠버네티스 스케줄러의 노드 선택, 컴파일러의 최적화는 대부분 학습이 아니라 탐색·휴리스틱이다.
  • “AI 기능”을 요구받으면 먼저 분류한다. 정답 라벨이 있나(지도 학습), 없나(비지도), 시행착오로 배워야 하나(강화학습), 아니면 규칙으로 충분한가. 홈랩 같은 작은 운영 환경의 알림 분류도 처음엔 규칙 몇 줄로 시작하는 편이 거의 항상 낫다.

확인 문제

  1. 러셀·노빅 교과서가 채택한 AI 정의는 네 칸 중 어느 것인가?
  2. 튜링 테스트가 “기계가 생각하는가”라는 질문을 어떻게 바꾸었는가?
  3. 전문가 시스템의 “지식 획득 병목”이란 무엇인가?
  4. 단층 퍼셉트론이 풀지 못하는 대표 문제는 무엇이고, 무엇으로 극복했는가?
  5. 알파고를 위의 세 갈래 분류로 설명해 보라.

풀이

  1. 합리적으로 행동하는 에이전트(rational agent). 기대 성과를 최대화하는 행동을 고르는 것.
  2. 정의하기 어려운 “생각”을, 대화에서 사람과 구별되는가라는 관찰 가능한 행동 기준으로 바꿨다.
  3. 전문가의 지식을 규칙으로 옮기고 유지하는 비용이 너무 커서 시스템이 확장되지 않는 문제.
  4. XOR. 은닉층을 둔 다층 신경망과 역전파 학습으로 극복했다.
  5. 신경망(머신러닝)으로 수의 가치와 후보 수를 평가하고, 트리 탐색(탐색)으로 수읽기를 했다. 두 갈래의 결합이다.

더 읽을거리 (References)

  • A. M. Turing, “Computing Machinery and Intelligence”, Mind, 1950. PDF
  • J. McCarthy, M. Minsky, N. Rochester, C. Shannon, “A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence”, 1955. PDF
  • S. Russell, P. Norvig, Artificial Intelligence: A Modern Approach, 4th ed., Pearson. 책 사이트
  • D. Rumelhart, G. Hinton, R. Williams, “Learning representations by back-propagating errors”, Nature 323, 1986. 링크