Symbolic AI
기호주의 AI(GOFAI)는 사람이 이해할 수 있는 기호와 명시적 규칙 및 논리를 사용해 추론합니다. 전문가 시스템의 작동 원리와 한계, 뉴로-기호 AI를 살펴봅니다.
기호주의 AI는 지식을 bird, penguin 또는 "소크라테스는 사람이다"와 같은 사람이 읽을 수 있는 기호로 표현하고, 명시적인 규칙, 논리 및 탐색을 통해 추론하는 인공지능(AI) 접근 방식입니다. 1956년 다트머스 워크숍부터 1980년대까지 AI 연구를 주도했으며, 철학자 John Haugeland는 1985년에 이를 "좋은 구식 AI"(GOFAI)라고 명명했습니다. 기호 시스템이 도출하는 모든 결론은 사람이 작성하고 읽을 수 있는 규칙을 따라 추적할 수 있으므로 감사 가능합니다. 반면 지식의 모든 항목을 직접 작성해야 하므로 확장하기 어렵습니다.
기호주의 AI의 작동 방식#
기호 시스템은 두 부분으로 이루어집니다. 지식 베이스는 사실("소크라테스는 사람이다")과 규칙("모든 사람은 죽는다")을 일차 논리, 조건-결론 규칙 또는 지식 그래프와 같은 형식 언어로 저장합니다. 추론 엔진은 규칙을 적용해 저장되지 않은 사실("소크라테스는 죽는다")을 도출합니다. 전방 연쇄는 알려진 사실에서 출발해 조건이 충족되는 모든 규칙을 적용하고, 새로운 사실이 더 이상 나오지 않을 때까지 이를 반복합니다. 후방 연쇄는 목표에서 출발해 목표를 입증할 사실을 역으로 추적하며, 논리 프로그래밍 언어인 Prolog에 내장된 전략입니다.
이 접근 방식의 이론적 토대는 1976년 Allen Newell과 Herbert Simon이 제시한 물리적 기호 시스템 가설입니다. 이 가설은 기호 조작이 일반 지능에 필요하고 충분하다고 주장합니다. 전방 연쇄 엔진은 일반 Python 코드 몇 줄로 구현할 수 있습니다.
# Knowledge base: IF every premise is a known fact THEN add the conclusion
rules = [
({"has_feathers", "lays_eggs"}, "bird"),
({"bird", "cannot_fly", "swims"}, "penguin"),
]
facts = {"has_feathers", "lays_eggs", "cannot_fly", "swims"}
# Forward chaining: keep firing rules until no new fact appears
changed = True
while changed:
changed = False
for premises, conclusion in rules:
if premises <= facts and conclusion not in facts:
facts.add(conclusion)
changed = True
print(f"{conclusion} <- {sorted(premises)}")엔진은 먼저 bird <- ['has_feathers', 'lays_eggs']을 출력한 다음 penguin <- ['bird', 'cannot_fly', 'swims']을 출력합니다. 첫 번째 규칙이 bird를 추가했기 때문에 두 번째 규칙이 실행됩니다. 출력되는 각 줄은 결론이 성립하는 이유를 완전하게 설명하며, 신경망에서 이러한 추론 과정을 재구성하려는 설명 가능한 AI(XAI) 방법의 대상입니다.
전문가 시스템#
기호주의 AI는 1970년대와 1980년대에 전문가 시스템 형태로 산업 분야에 도입되었습니다. 스탠퍼드의 MYCIN은 의사에게서 수집한 약 600개의 규칙을 바탕으로 중증 감염을 일으킨 박테리아를 식별하고 항생제를 권고했으며, Digital Equipment Corporation의 XCON은 VAX 컴퓨터의 고객 주문 구성을 처리했습니다. 전문가 시스템은 기본 엔진에 지식 엔지니어와 설명 기능을 더합니다. 지식 엔지니어는 해당 분야 전문가를 인터뷰해 전문가의 지식을 규칙으로 인코딩하고, 설명 기능은 각 답변을 도출한 규칙을 재현합니다.
전문가 인터뷰 단계가 병목이 되었습니다. 전문가는 직관을 규칙으로 표현하는 데 어려움을 겪고, 대규모 규칙 베이스는 예상하지 못한 사례에서 제대로 작동하지 않으며, 시스템은 데이터에서 학습할 수 없습니다. 상식을 수작업으로 인코딩하기 위해 1984년에 시작된 Doug Lenat의 Cyc 프로젝트는 이 문제에 수십 년을 들였습니다. 1980년대 후반 전문가 시스템 예산이 급감하면서 이 분야는 두 번째 "AI 겨울"을 맞았습니다.
기호 AI와 통계적 AI#
통계적 AI는 예시에서 패턴을 학습하며, 현대 머신러닝(ML) 및 딥러닝(DL)의 기반이 되는 접근 방식입니다. 두 패러다임은 서로 정반대인 영역에서 한계를 보입니다.
- 기호주의 AI: 정확하고 투명하며 학습 데이터 없이도 사용할 수 있으므로 산술, 계획, 규정 및 형식 증명에 적합합니다. 픽셀값만으로 고양이를 식별하는 규칙을 사람이 작성할 수 없으므로 원시 지각 데이터를 처리할 수 없으며, 규칙으로 예상하지 못한 입력이 들어오면 제대로 작동하지 않습니다.
- 통계적 AI: 데이터에서 직접 지각 및 언어를 학습하고 노이즈를 허용하지만, 대규모 데이터셋이 필요하고 의사 결정을 살펴보기 어렵습니다. 또한 언어 모델은 환각이라고 하는 유창하지만 틀린 답변을 생성할 수 있습니다.
오늘날 기호주의 AI가 사용되는 분야#
- 규칙 엔진 및 규정 준수: 세금 소프트웨어와 비즈니스 규칙 엔진은 규정을 명시적 규칙으로 인코딩하므로 모든 결과를 그 결과를 도출한 조항까지 추적할 수 있습니다.
- 계획 및 스케줄링: 자동 계획 시스템은 행동, 전제 조건 및 효과에 대한 기호 표현을 탐색해 물류, 공장 작업 및 우주선 운용 일정을 계획합니다.
- 형식 검증: Microsoft의 Z3와 같은 SAT 및 SMT 솔버는 칩과 소프트웨어의 속성을 증명하고, Lean과 같은 증명 보조기는 수학적 증명을 단계별로 검증합니다.
- 지식 그래프: 검색 엔진과 Wikidata는 쿼리로 탐색할 수 있는 엔터티와 관계 형태로 수십억 개의 사실을 저장합니다.
뉴로-기호 AI#
뉴로-기호 AI는 두 패러다임을 결합합니다. 신경망은 지각 및 패턴 인식을 담당하고, 기호 구성 요소는 규칙, 제약 조건 및 정확한 추론을 담당합니다. 함수 호출을 통해 계산기, SQL 데이터베이스 또는 코드 인터프리터를 사용하는 언어 모델도 동일한 역할 분담을 활용합니다. 비전 파이프라인에서는 Ultralytics YOLO26과 같은 탐지기가 픽셀을 기호, 즉 탐지한 객체의 클래스 이름으로 변환하고, 간단한 규칙이 그 기호에 대해 추론합니다.
from ultralytics import YOLO
# 신경망 기반 지각: 객체를 탐지하고 클래스 이름을 기호적 사실로 유지합니다.
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
facts = {result.names[int(c)] for c in result.boxes.cls}
# 기호 추론: 버스 AND 사람이 있으면 THEN 경보를 발생시킵니다.
if {"bus", "person"} <= facts:
print("Rule fired: pedestrians next to a bus")규칙을 바꾸면 재학습 없이 시스템 동작이 즉시 바뀝니다. Google DeepMind의 AlphaGeometry는 동일한 역할 분담을 수학에 적용합니다. 신경망 언어 모델이 보조 구성을 제안하고 기호 연역 엔진이 이를 바탕으로 결과를 증명합니다. 두 요소를 결합한 시스템은 2024년 Nature 논문에서 국제 수학 올림피아드 기하 문제 30개 중 25개를 풀었습니다.










