인공지능은 주어진 문제를 스스로 해결하기 위해 탐색과 추론이라는 방법을 사용한다.
탐색은 문제 해결 과정을 구조화하는 것에서 시작하고, 추론은 인간의 지식을 체계적으로 표현하는 것에서 시작한다.
인공지능이 문제를 해결하려면 우선 '문제'가 무엇인지 정의할 수 있어야 하며, 문제를 해결하기 위해서는 문제 해결 과정을 절차적으로 표현할 수 있고, 문제 상황을 논리적으로 또는 수학적으로 표현할 수 있어야 한다. 이때, 이러한 문제를 해결할 수 있는 도구가 바로 탐색이다. 탐색은 기계가 문제를 해결할 때 정답을 찾아가기 위해 활용된다.
탐색을 통해 문제의 해답을 찾는 과정에서 거치게 되는 여러 상황들 각각을 상태라고 하며 상태를 모아 놓은 공간을 상태 공간이라고 한다. 문제를 해결하기 시작한 상태를 초기 상태라고 하고, 목표가 되는 상태를 목표 상태라고 한다. 궁극적으로 탐색은 초기 상태에서 목표 상태에 이르기까지 최적의 경로를 찾는 것으로 정의할 수 있다.
컴퓨터에서 그래프는 데이터 간의 관계를 점과 선으로 나타낸 것으로, 점은 데이터를 나타내고 선은 데이터 간의 관계를 나타낸다. 트리는 이러한 그래프의 일종으로 나무를 뒤집은 모습과 닮아 있으며, 가계도처럼 계층 구조를 표현할 때 사용한다. 또한 점과 선으로 이루어져 있지만 서로 다른 두 점을 잇는 길은 하나뿐이다.
경우의 수가 아주 많은 문제의 경우 문제 해결을 위한 트리가 매우 복잡한 모양이 됨
따라서 복잡한 트리를 빠른 시간 내에 효과적으로 탐색할 수 있는 방법이 필요함
탐색 방법은 상태 공간에 내재된 정보가 문제 해결 과정에 영향을 주는지 주지 않는지에 따라 무정보 탐색과 휴리스틱 탐색으로 나뉨
탐색 트리에서 길이 있는 한 앞으로 계속 전진하여 탐색하는 방법
분기점에 도착했을 때 방문하지 않은 곳을 골라 앞으로 나아가는 과정을 통해 목표에 도달함
막다른 길, 길이 없는 경우는 이전 상태 중 다른 경로로 갈 수 있는 분기점까지 되돌아가 다시 탐색
트리를 탐색하다 분기점에 도착했을 때 동일한 깊이의 상태 공간을 모두 방문하는 방법
목표 지점까지 가로 방향으로 나아가며, 방문한 적이 있는 분기점은 재방문하지 않음
얕은 깊이에 있는 노드부터 모두 탐색함
휴리스틱 탐색은 경험이나 지식을 활용하여 빠르고 효울적으로 결과를 얻을 수 있을 것이라는 근거에 기반함
예시로, 어느 지점에서 출발하여 목적지에 도착해야 할 때 교통 상황을 잘 알고 있다면 차가 막힐 무렵에는 다른 길로 돌아가는 것이 좋다고 경험적으로 판단할 수 있음
다음 두 가지 상황에서 실현 가능한 결정을 위해 사용함
탐색 공간이 너무 넓어 탐색 공간을 모두 방문할 수 없을 때
해가 정확하게 존재하지 않을 때
매번 한 노드에서 다음 노드로 이동할 때 이동 가능한 노드 중 그 평가 함숫값이 가장 큰 노드로 이동하며 경로를 탐색하는 방법
알고리즘
단계 1. 현재 상태를 확인한다.
단계 2. 목표 상태에 도달하거나 현재 상태가 더 이상 변하지 않을 때까지 반복한다.
2-1. 현재 상태의 자식 노드를 구하고, 각각에 평가 함숫값을 부여한다.
2-2. 자식 노드의 평가 함숫값이 현재 상태의 평가 함숫값보다 좋은 것이 있으면 그 노드로 이동한다.
현재 노드보다 더 큰 평가 함숫값을 가지는 자식 노드가 나타나지 않으면 목표 상태가 아닌 곳에서 탐색을 멈출 수도 있다는 문제가 있음
언덕 등반 탐색의 단점을 보완한 탐색 방법
open 리스트와 closed 리스트를 적절히 사용함
탐색을 시작할 때 open 리스트에 출발점(초기 상태)을 넣은 후 첫 탐색 주기를 시작
매 주기의 시작때 그 당시 open 리스트에 있는 노드 중 평가 함숫값이 가장 큰 노드로 이동하여 그 노드를 closed 리스트로 옮김
언덕 등반 탐색은 하나의 노드가 선택되면 같은 레벨의 다른 노드는 다시 고려하지 않지만, 최고 우선 탐색에서는 지나간 노드도 계속 비교하여 추후 선택될 수 있다
알고리즘
단계 1. open = (A/5), closed = ()
- 초기 상태 노드 A에서 시작한다.
단계 2. open = (B/6, C/4, D/3), closed = (A/5)
- B와 B의 형제 노드(C/4, D/3)를 모두 open 리스트에 포함한다.
- A의 자식 노드 B, C, D 중 평가 함숫값이 가장 큰 B로 이동한다.
- B를 closed 리스트에 넣는다.
단계 3. open = (C/4, D/3, E/3, F/2), closed = (B/6, A/5)
- B의 자식 노드를 open 리스트에 추가한다.
- open 리스트에서 평가 함숫값이 가장 큰 C로 이동한다.
- C를 closed 리스트에 넣는다.
단계 4. open = (H/8, G/7, D/3, E/3, F/2), closed = (C/4, B/6, A/5)
- C의 자식 노드를 open 리스트에 추가한다.
- open 리스트에서 평가 함숫값이 가장 큰 H로 이동한다.
- H를 closed 리스트에 넣는다.
단계 5. open = (G/7, D/3, E/3, F/2), closed = (H/8, C/4, B/6, A/5)
- 목적지 H를 찾았다.
최고 우선 탐색은 경우에 따라 정답을 찾지 못하는 언덕 등반 탐색의 문제는 해결하지만 어떤 평가 함수를 사용하느냐에 따라 성능이 많이 달라질 수 있다.
가장 효율적으로 목표 상태를 찾는 것을 목적으로 함
앞선 최고 우선 탐색과는 달리 일상생활 속 문제에서는 목표 상태뿐만 아니라 최단 경로까지 찾아야 할 때도 있는데, 이러한 경우 목표 상태와 최단 경로를 찾는 상황을 고려한 평가 함수를 사용해야 한다.
g(n) = 현재 위치에 도달할 때까지 실제 이동 거리
h(n) = 현재 위치에서 목적지까지의 거리 추정 최소치
이 두 함수를 이용하여 최적의 경로를 통해 목표 상태에 도달할 수 있다.
우리가 인공지능을 만들려는 목적 중 하나는 현실의 문제를 해결하기 위함
-> 연재 우리가 사용하는 인간의 지식을 인공지능도 활용할 수 있어야 함
그러나 인간의 지식을 컴퓨터에 표현하려면 컴퓨터를 위해 만들어야 하는 지식도 많고 복잡함
따라서 컴퓨터에 입력 가능한 형태로 지식을 표현하는 다양한 방법이 연구되었고, 입력된 지식에서 새로운 지식을 찾아낼 수 있는 추론 방법에 대한 연구들도 수행됨
인간이 주로 사용하는 자연어, 그림 기호, 수식, 도면 등의 '비정형 자료'를 컴퓨터에서 활용하기 위해 규칙 기반 전문가 시스템, 의미망(Semantic Network), 프레임(Frame), 명제 논리, 술어 논리 등의 지식 표현 방법을 개발했다.
따라서 컴퓨터에 활용할 지식은 컴퓨터가 처리할 수 있는 형태로 체계화해야 한다.
(1) 규칙 기반 전문가 시스템
전문가 시스템은 가장 대표적인 규칙 기반 전문가 시스템(Rule-based Expert System)으로 특정 영역의 문제를 해결하기 위해 수준 높은 지식을 적용한 인공지능 시스템
전문가 시스템어도 여러 종류가 있는데, 인간 전문가에게 얻은 전문 지식을 IF~THEN 형태의 규칙으로 표현한 것을 규칙 기반 전문가 시스템이라고 함, 이를 구축하기 위해 주제 전문가, 지식 공학자, 전체 프로젝트 관리자, 프로그래머 등이 필요함
(2) 의미망
의미망은 노드(node)와 노드 간의 관계를 나타내는 구조로, 관계는 링크로 표현함
이 구조는 복잡한 분류나 인과 관계를 갖는 추론을 자연스럽게 표현할 수 있음
지식을 연결된 형태로 나타내기 때문에 지식을 표현하는 데 적합함
(3) 프레임
의미망에서 노드의 설명이 다소 부족한 점을 보완한 것이 프레임이며, 각 노드의 정보가 자세하게 기술되어 있음
의미망과 프레임은 전통적인 IF~ELSE 형태와 달리 아래의 술어 논리를 사용하여 지식을 표현하고 추론함
논리는 말이나 글에서 사고나 추리 등을 이치에 맞게 이끌어 가는 과정이나 원리임
(1) 명제 논리
명제는 '참'인지 '거짓'인지 판별할 수 있는 문장으로 뜻이 논리적으로 분명해야 함
사례 1. 코로나 - 19는 바이러스이다. (명제)
2. 원격 수업일에는 등교하지 않는다. (명제)
3. 인공지능이 인간보다 똑똑해질 수 있을까? (명제 아님)
세 번째 문장은 참과 거짓을 판정할 수 없으므로 명제가 아님
(2) 술어 논리
술어 논리는 명체 논리처럼 문장의 참과 거짓만으 따지는 것이 아니고, 한정자를 사용하여 문장의 문법적 구조와 의미를 포함한 논리식으로 진릿값을 구함
연역적 추론은 전제에 이미 포함된 결론을 도출해 내는 추론 방식으로 새로운 것을 발견할 수 없는 한계를 가지고 있음
귀납적 추론은 개별적인 특별한 사실이나 현상에서 그러한 사례까지 포함된 일반적 결론으로 이끌어 내는 방식
(1) 명제의 연역적 추론
연역적 추론은 두 가지 이상 존재하는 참인 명제를 동치와 추론 규칙을 활용하여 새로운 명제를 만들어 냄
명제 논리 추론에는 긍정 논법, 삼단 논법 등이 있음
(2) 명제 논리 증명
명제 논리의 증명은 다음의 명제가 주어졌을 때 추론 규칙에 따라 추론된 사실이 참이 됨으 증명하는 것임
명제1 - 계절이 여름이면 메밀꽃이 핀다.
명제2 - 계절이 여름이다.
추론된 사실 - 메밀꽃이 핀다.
기호로 표현하면
p
p → q
∴ q
술어 논리는 서술어를 사용하는 논리이며 앞의 전칭 한정 기호와 존재 한정 기호를 사용하여 논리를 식으로 표현함
명제 논리와 다르게 전칭 기호와 존재 기호를 사용하여 양적인 표현을 동반한 추론을 할 수 있음