Stimulus-Response Agents

 

인공지능-지능형 에이전트를 중심으로 : Nils J.Nilsson 저서, 최중민. 김준태. 심광섭. 장병탁 공역, 사이텍미디어, 2000  (원서 : Artificial Intelligence : A New Synthesis, Morgan Kaufmann, 1998), Page 23~35 

 

1. 지각과 행동

     (1) 지각

     (2) 행동

     (3) 부울 대수

     (4) 부울 함수의 종류와 형식

2. 행동 함수의 표현 및 구현

     (1) 생성 시스템

     (2) 네트워크

     (3) 포함 구조  

참고문헌 및 토론

 

 

1. 지각과 행동

이 장에서는 내부 상태가 없으며 환경의 자극에 대해 간단한 반응을 보이는 기계에 대해서 다룬다. 이런 기계를 자극반응 (stimulus-response (S-R)) 에이전트라고 한다. 감지를 통해 들어온 입력을 인자로 취하는 간단한 함수에 기반하여 움직이는 재미있는 행동 양식을 보여주는 다양한 로봇을 만들 수 있다. 이런 종류의 로봇의 초기 모델 중 하나로 Walter 의 Machina speculatrix 가 있다 [Walter 1953]. 이 로봇은 모터가 달린 바퀴, 프로토셀 (protocell), 두 개의 진공관으로 되어 있으며 밝은 빛을 피해 적당한 밝기의 빛을 향해 움직인다. Braitenberg 도 비슷한 로봇을 제안하였다 [Braitenberg 1984].

대표적인 예로 그림 2.1 에서와 같이 2 차원의 격자공간에 있는 로봇을 생각하자. 로봇이 있는 세계는 경계가 정해져 있으며 보는 바와 같이 크고 고정된 물체를 포함할 수 있다. 이 세계에서는 조밀공간 (하나의 셀 크기로 되어 있는 물체와 경계 사이의 공간) 이 없으며 이 사실을 이용하여 로봇을 설계하기로 한다. 설계할 로봇의 목표는 경계나 물체에 인접한 셀로 가서 계속 그 경계를 따라가는 것이다. 이러한 경계 추적 (boundary-following) 구동이 가능하려면, 로봇은 어떤 셀에 들어갈 수 있는지 없는지를 알아야 하며 몇몇 기본 행동을 수행할 수 있어야 한다.

그림 1.  2 차원 격자공간의 로봇

로봇은 주위의 8 개의 셀이 비어있는지 아닌지 알 수 있다. 이 감지 입력은 이진값을 가지는 변수 s1, s2, s3, s4, s5, s6, s7, s8 로 표현된다. 그림 1 의 로봇의 경우, 이 변수들은 해당하는 셀에 로봇이 들어갈 수 있으면 0, 그렇지 않으면 1의 값을 가진다. 만일 로봇이 X 표에 있을 때, 감지 입력값을 s1 부터 시작해서 시계 방향으로 표현한다면 (0, 0, 0, 0, 0, 0, 1, 0) 이 된다.

로봇은 가로나 세로 방향의 인접한 비어있는 셀로 이동할 수 있는데 다음 4 가지의 행동 양식이 있다.

1. north 은 로봇을 격자에서 한 칸 위로 이동시킨다.

2. east 는 로봇을 한 칸 오른쪽으로 이동시킨다.

3. south 은 로봇을 한 칸 아래로 이동시킨다.

4. west 는 로봇을 한 칸 왼쪽으로 이동시킨다.

만일 로봇이 비어있지 않은 셀로 이동하려고 하면 로봇이 선택한 행동은 효과가 없다. 즉, 비어 있는 셀로 이동하려는 행동만이 효과가 있다.

그림 2.  지각과 행동 구성요소

로봇이 위치하는 세계의 특징 (예를 들어 그림 1 과 같이), 로봇이 해야 할 일 (경계 추적 같은), 로봇의 감지와 운동 능력을 명시했다면, 설계자의 남은 일은 작업에 적합한 행동을 선택하는, s1, ..., s8 같은 감지 입력값을 인자로 취하는 함수를 구현하는 것이다. 입력 신호로부터 행동을 계산하는 과정은 그림 2 와 같이 2 단계로 구분하여 구성하는 것이 일반적이다. 지각처리 단계에서 특징 벡터 (feature vector)  X (x1, ..., xi, ..., xn) 를 만들고 행동계산 단계에서 특징 벡터에 기반하여 행동을 결정한다. 특징의 값은 실수 (수치 특징) 와 범주 (범주 특징) 중의 하나이다. 범주 특징은 이름이나 특징을 값으로 가진다. 예를 들어 색깔 특징의 값은 빨강, 파랑, 초록이 될 수 있다. 이진값을 가지는 특징은 숫자값 (0, 1) 이나 범주값 (T: 참, F: 거짓) 으로 생각할 수 있다. 설계자는 특징을 설계하는 데 있어 그 특징이 기술하는 상태내에서 최적의 행동을 취할 수 있도록 로봇의 환경 특징을 잘 고려해야 한다.

물론, 지각과 행동의 구분이 엄격한 것은 아니다. 모든 과정을 지각 안에 뭉뚱그려 넣을 수도 있고 (로봇은 현 세계의 상태를 north 행동이 가장 적합한 상태로 지각할 수 있다), 또 행동 안에 다 포함시킬 수도 있다 (감지 입력값으로부터 바로 north 행동이 적합하리라는 것을 계산할 수 있다). 통상적으로, 다양한 여러 작업을 수행하는 데 동일한 특징이 여러 번 반복되어 사용되도록 적절한 구분을 짓는다. 동일한 특징을 갖지만 별개의 행동 함수를 가지는 작업들이 있을 수 있다. 컴퓨터 프로그램의 입장에서 보면, 감지 신호에서 특징 벡터를 계산하는 것은 자주 쓰이는 라이브러리 루틴이라고 볼 수 있다. 이 라이브러리 루틴은 다양한 별개의 행동 계산에 쓰일 수 있다. 지각과 행동의 구분 방법은 기계 설계자의 몫이며 그런 기술에 대해서는 이 책에서 다루지 않는다.

구분을 명확히 한 후에는 (1) 감지 입력값을 특징 벡터로 변환 (2) 행동 함수를 확정하는 두 가지 문제를 해결해야 한다. 앞의 예를 가지고 각각의 문제에 대해 간단히 살펴보기로 하자.

(1) 지각

그림 3.  경계 추적을 위한 특징

앞에서 설명한 경계 추적 로봇에서 감지 입력은  s1, ..., s8 의 값으로 되어 있다. 입력은  28 = 256 가지의 서로 다른 조합이 있을 수 있다. 조밀공간에 대한 제약조건에 의해 문제의 환경내에서 256 개의 조합 중 일부는 제거된다. 현 문제의 경우, 감지 입력값으로 구성된 이진값 특징 4 개로 적절한 행동 계산이 가능하다. 이 특징 요소를  x1, x2, x3, x4 라 한다. 이 정의는 그림 3에 있다 (예를 들면  s2 = 1 또는 s3 = 1 일 경우에만 x = 1 이다).

이 예에서 지각 과정 (perceptual processing) 은 비교적 간단한 계산으로 이루어진다. 보다 복잡한 세계, 보다 복잡한 센서와 작업을 가진 로봇에 대해 적절한 지각 과정을 설계하는 것은 어려운 일일 수 있다. 또한, 실제 많은 작업의 지각 과정에서 로봇의 환경에 대해 종종 틀리고 모호하거나 불완전한 정보를 생성하기도 한다. 그런 에러는 부적절한 행동을 일으킬 수 있다. 하지만 주어진 작업과 환경에 따라서 잘못 선택된 행동이 빈번하지만 않다면 그렇게 큰 해를 끼치지 않을 수도 있다. 지각에 관한 보다 자세한 논의는 6 장에서 다룬다.

(2) 행동

특징  4 개를 정했으면, 적당한 경계 추적 행동을 선정하는 함수를 명시해야 한다. 앞에서 언급했듯이 모든 특징값이 1 이 아니라면 (즉, 로봇이 주위의 모든 셀이 비어 있다는 것을 지각했다면), 로봇은 경계와 마주칠 때까지 어느 방향으로든지 움직일 수 있다. 이 경우 언제나 한 방향, 예를 들어 북쪽으로 움직이도록 할 수도 있다. 하나 이상의 특징 요소값이 1 인 경우에 경계 추적 구동은 다음 규칙을 행동 규칙으로 삼을 수도 있을 것이다.

이 경우에, 로봇이 위와 같은 여러 가지의 행동 중 하나를 취하는 조건은 특징의 부울 조합이다. 특징 또한 감지 입력값의 부울 조합에 해당한다. 몇몇 중요한 지각과 행동 결정 방법은 부울 함수와 관련이 있기 때문에 여기서 부울 대수에 대해 간략히 설명하는 것이 앞으로의 진행에 도움이 될 것이다.

(3) 부울 대수

부울 함수 f (x1, x2, ..., xn) 는 (0, 1) 값을 가지는 n 차의 투플 (tuple) 을 {0, 1} 로 매핑한다. 부울 함수를 표현하는 데에는 부울 대수 (Boolean algebra) 가 편리하다. 부울 함수는 연산자 , • , +, ¯ 를 사용한다. 예를 들어, 변수 두 개의 AND 함수는 x1 • x2 로 표현된다. 관습적으로 연산자 • 는 생략되고 AND 함수는 x1x2 로 쓰인다. 함수 x1x2 는 x1 과 x2 가 모두 1 일 때에만 1 이 된다. 그렇지 않으면 0 이다. 두 변수에 대한 (inclusive) OR 함수는 x1 + x2 라고 쓴다. x1 + x2 는 x1 이나 x2 중 적어도 하나가 1 이 될 때에만 1 이다. 그렇지 않으면 0 이다. 변수 x 의 부정 (complement) 또는 negation 은   라고 쓴다. 는 x 의 값이 0 일 때만 1 이다. 그렇지 않으면 0 이다.

이 정의는 부울 대수에 대한 다음의 규칙으로 정리된다.

예를 들어, 경계 추적 로봇이 북쪽으로 움직여야 할 조건은 수식   이다. 감지 신호에서 특징값을 계산하는 함수도 이 경우에는 부울 함수이다. 예를 들면  x4 = s1 + s8 이다. 다른 특징과 행동 규칙도 비슷한 함수로 주어진다.

때때로, 부울 함수 결과값과 인자값은 1 과  0 대신에 상수 T (true, 참) 와  F (false, 거짓) 로 표현되기도 한다.

연산자 • 와 + 에 대해서는 교환 법칙이 성립한다. 그러므로  x1 x2 = x2 x1 이고  x1 + x2 = x2 + x1 이다. 이 연산자에 대해서 또한 결합 법칙이 성립한다. 따라서  x1 (x2 x3) = (x1 x2) x3 이고  x1 + (x2 + x3) = (x1 + x2) + x3 이다. 따라서 괄호  없이  x1 x2 x3 , x1 + x2 + x3 라고 써도 상관없다.

x1 같이 하나의 변수로 구성된 부울 수식을 아톰 (atom) 이라 하고, 하나의 변수나  1 같이 그 complement 로 구성된 수식을 리터럴 (literal) 이라 한다.

복잡한 수식에서는 연산자 • 와 + 를 서로 바꿀 수 없다. 대신에 다음의 드모르간의 법칙을 사용할 수 있다.

드모르간의 법칙은 부울 함수를 간단히 하는 데 자주 사용된다. 예를 들어  이다.

다른 중요 규칙으로 분배 법칙 (distributive law) 이 있다.

(4) 부울 함수의 종류와 형식

부울 함수는 다양한 형식으로 표현할 수 있다. 중요한 형식 중 한 가지는 λ1 λ2 ... λk 이고 λi 는 리터럴이다. 이렇게 기술된 함수는 리터럴의 논리곱 (conjunction of literals) 이나 단항 (monomial) 이라 하는데, 리터럴의 논리곱 자체를 (term) 이라고도 한다. 항의 예는 x1 x7, x1 x2 4  등이다. 항의 크기는 그 항에 포함된 리터럴의 개수이다. 예로 든 두 항의 크기는 각각  2, 3 이다.

n 개의 변수로 구성할 수 있는 단항의 개수가  3n 이라는 사실은 쉽게 증명할 수 있다 (연습문제 2). 따라서 크기가  k 이하인 단항의 개수는 다음과 같다.

여기서

는 이항 계수이다.

(clause) 은  λ1 + λ2 + ... + λk 의 형식을 가진 수식이며 여기서  λi 는 리터럴이다. 이런 형식은 리터럴의 논리합 (disjunction of literals) 이라 한다. 절의 예로는  x3 + x5 + x6, x1 + 4 등이 있다. 절의 크기는 그 절이 포함하고 있는 리터럴의 개수이다. 절 또한 항과 마찬가지로 n 개의 변수로 3n 개의 절이 가능하고, 크기가 k 이하인 절은  개가 가능하다. f 가 항인 경우 (드모르간의 법칙에 의해서)   는 절이며 역도 성립한다. 따라서 항과 절은 서로 표현 양식만 다를 뿐 실은 서로 같은 쌍이다.

부울 함수를 항의 합으로 표현할 수 있을 때 이를 논리합 정규형 (disjunctive normal form (DNF)) 이라고 한다. DNF 의 예로는  f = x1 x2 + x2 x3 x4, f = x1 3 + 2 3 + x1 x2 3 같은 것이 있다. 모든 부울 함수는 DNF 로 표현할 수 있다. k 개의 항으로 이루어진 합은 k 항 DNF 수식이라 한다. 가장 큰 항의 크기가 k 인 경우 k-DNF 계열에 속한다고 한다. 앞의 두 예는 각각 2 항, 3 항 수식이며 모두 3-DNF 이다.

논리합 정규형은 논리곱 정규형 (conjunctive normal form (CNF)) 으로 표현할 수 있다. 부울 함수 중 절의 곱으로 표현한 것을 CNF 라고 한다. CNF 의 예는  f = (x1 + x2) (x2 + x3 + x4) 가 있다. 모든 부울 함수는 역시 CNF 형식을 가지고 있다. CNF 수식이 k 개의 절의 곱인 경우 k 절 CNF 라 한다. 가장 큰 절의 크기가 k 인 경우 k-CNF 계층이다. 앞의 예는 2 절 수식이며 3-CNF 에 속한다. f 가 DNF 로 표현된 경우, 드모르간의 법칙을 적용하면   를 CNF 로 표현할 수 있으며 그 역도 성립한다.

2. 행동 함수의 표현 및 구현

취할 수 있는 행동이 R 개 있는 경우, 행동을 계산해내는 R 개의 값을 가지는 적절한 특징 벡터 함수를 찾아야 한다. 행동 함수를 표현하고 구현하는 다양한 접근법이 연구되었는데, 그 중 몇 가지를 다음에 기술한다.

(1) 생성 시스템

생성 시스템 (production system) 은 행동 함수의 편리한 표현 양식 중 하나이다. 생성 시스템은 생성 규칙 (production rule) 또는 production 이라고 하는 규칙의 정렬된 리스트로 구성된다. 각 규칙은  ci → ai 와 같은 형태로 표현되는데,  ci조건부 (condition part),  ai행동부 (action part) 라고 한다. 생성 시스템은 다음과 같은 규칙의 리스트로 구성된다.

일반적으로, 감지 입력에 대한 지각처리 과정에서 얻는 자질에 대한 이진 함수가 조건부에 놓인다. 조건부는 주로 부울 리터럴의 곱으로 이루어진 단항으로 구성된다. 규칙은 행동을 선택하기 위해서 다음과 같이 처리된다. 정렬된 규칙 리스트의 첫번째 규칙부터, 즉  c1 → a1 부터, 검색해 나가면서 처음으로 조건부의 값이 1 이 되는 규칙을 찾아 그 규칙의 행동부를 선택한다. 행동부는 다른 생성 시스템을 호출하는 기본 행동이거나 또는 동시에 수행되는 행동의 집합이다. 정렬된 규칙 리스트의 마지막 규칙의 조건부는 통상적으로 1 로 설정된다. 만일 마지막 규칙 이전까지 조건부의 값이 1 인 규칙이 없다면 디폴트로 마지막 규칙에 대한 행동이 수행된다. 행동이 수행되면서 감지 입력값이 변화하고 그 입력에 기반한 자질값이 변화된다. 이 책에서는 조건이 계속 조사되어, 언제라도 조건부의 값이 1 이 되는 최상위 규칙 (조건을 조사할 때) 에 해당하는 행동의 수행이 보장된다고 가정한다.

앞에서 경계 추적 (boundary-following) 로봇을 위해 정의한 부울 대수와 특징 항을 사용해서 표현한 경계 추적 루틴에 대한 생성 시스템은 다음과 같다.

경계 추적 행동은 지속 프로시저 (durative procedure) 의 한 예인데 지속 프로시저란 결코 끝나지 않는 프로시저를 뜻한다. 이 프로시저에서 로봇은 계속해서 행동을 취하게 된다. 이와는 대조적으로 어떤 작업은 특정 목표 조건이 만족될 때까지만 행동한 뒤 종료하기를 요구하기도 한다. 목표는 특징에 대한 부울 조건으로 표현된다. 예를 들어, 로봇이 경계를 영원히 추적하기보다는 어떤 구석에 머무르기를 원할 수도 있다. 로봇이 특정한 구석에 위치할 때 1 의 값을 갖는 구석 탐지 특징을 c 라고 하면 다음의 생성 시스템은 로봇을 그 구석에 위치시킬 수 있다.

여기에서 nil 은 널 행동 (null action) (아무 일도 하지 않음) 이고, b-f 는 앞에서 정의한 경계 추적 프로시저이다.

목표 성취 생성 시스템 (goal-achieving production system) 에서 리스트의 최상위에 위치하는 규칙의 조건부  c1 은 행동 프로그램이 성취해야 할 전체 목표를 나타낸다. 이 조건부가 만족되면 에이전트는 더 이상의 행동을 취하지 않는다. 조건 c2 와 행동 a2 는 c1 이 만족되지 않는 경우 c2 가 만족되어, 행동 a2 의 수행이 결국 c1 을 참으로 할 수 있도록 선택되며 이런 식으로 리스트의 아래쪽으로 진행된다. 이런 스타일의 생성 시스템은 teleo-Reactive (T-R) 프로그램 [Nilsson 1994] 이라고 불리는 형식론 (formalism) 의 바탕을 이룬다. T-R 프로그램에서 적절하게 수행된 행동은 리스트내에서 자신의 상위에 있는 조건을 참으로 만들도록 작동한다. 특징에 대한 조건문으로 표현된 전체 목표가 에이전트에게 주어질 때, 이런 특징을 갖는 생성 시스템을 쉽게 작성할 수 있다. 또한 T-R 프로그램은 매우 견고하다; 행동은 목표를 향하여 가차없이 전진한다. 잘못된 지각, 부적절하게 수행된 행동, 또는 환경내의 이상한 과정에 의한 실패는 지각이 어느 정도 정확하고, 행동이 설정된 효과를 성취하는 경우에 회복될 수 있다. (T-R 프로그램은 목표를 향하여 나아가고 상황에 반응하도록 되어 있다. 접두어 "teleo" 는 목표 ("end" 나 "purpose") 를 뜻하는 그리스어로부터 유래되었다.) 이런 특징 이외에도 T-R 프로그램은 프로그램이 호출될 때 값이 주어지는 인자를 가질 수 있고 다른 T-R 프로그램을 호출하거나 또는 자신을 재귀적으로 호출할 수 있다.

(2) 네트워크

부울 함수나 생성 시스템은 컴퓨터 프로그램으로 쉽게 구현될 수 있다. 또 전자 회로로 직접 구현될 수도 있다. (회로의 행동은 종종 컴퓨터상의 회로 시뮬레이션 프로그램으로 시뮬레이션되기도 한다. 그럼에도 불구하고, 프로그램 대신 회로에서 생성되는 행동을 연구하는 것은 즉각적인 감지 입력에 대한 적절한 행동의 동적인 의존도 (dynamic dependence) 를 이해하는 데 도움을 준다.) 이 경우 회로의 입력은 감지 신호 (sensory signals) 를 그대로 사용해도 된다. 논리 회로에서, 부울 함수는 논리 게이트 (AND, NAND, OR, 등등) 로 구현된다. 일반적인 회로는 입력의 가중치 합 (weighted sum) 의 비선형 함수를 계산하는 임계

그림 4.  임계논리 유닛 (TLU (A Threshold Logic Unit))

값 요소 (threshold element) 나 다른 요소의 네트워크로 구성된다. 그러한 요소의 예로 그림 4 는 TLU (Threshold Logic Unit) 를 보여준다. 이 유닛은 먼저 입력의 가중치의 합을 계산하고, 이를 임계값 (threshold) 과 비교해서 임계값을 초과하면 1 을, 그렇지 않으면 0 을 출력한다.

TLU 에 의해 구현 가능한 부울 함수를 선형 분리 가능 함수 (linearly separable function) 라고 한다 (TLU 는 n 차원의 초평면 (hyperplane) 이라 불리는 선형 표면 (linear surface) 을 이용하여 임계값 초과 반응을 유발하는 입력과 임계값 미달 반응에 유발하는 입력공간을 구분짓는다). 전부는 아니지만 부울 함수 중 다수는 선형 분리가 가능하다. 예를 들어 임의

그림 5.  하나의 TLU 를 이용한 단항 구현

의 단항 (리터럴의 곱) 이나 임의의 절 (리터럴의 합) 은 선형 분리 가능하다. 단항에 대한 TLU 구현을 그림 5 에 나타내었다. TLU 가중치는 대응하는 입력 라인의 옆에 표시되어 있고, 임계값은 원 안에 표시되어 있다. 그러나 두 변수에 대한 XOR 함수  (f = x1 2 + 1 x2) 는 선형 분리가 불가능한 함수의 한 예이다.

그림 6.  경계 추적을 위한 함수의 구현

경계 추적 로봇에 사용되는 함수는 다수의 TLU 로 구현될 수 있다. 예를 들어 하나의 TLU 를 사용한   의 구현은 그림 6 과 같다.

행동을 두 가지만 취할 수 있는 응용 영역의 경우, 특징 벡터를 코드화하여 입력으로 사용한다면 하나의 TLU 로도 적절한 행동을 계산할 수 있다. 더 복잡한 문제의 경우에는, TLU 네트워크가 필요할 것이다. TLU 는 다양한 세기를 갖는 시냅스 (synapse) 를 거치는 입력의 합의 세기에 따라 뉴런 (neuron) 이 활성화 (firing) 되는 생물학적 뉴런의 간단한 모델로 볼 수 있다. 따라서 이런 회로를 신경망 (neural network) 이라고 부른다. 다음 장에서 신경망에 대해 자세히 살펴볼 것이다.

그림 7.  TISA 유닛의 네트워크

Katz (Edward Katz, private communication, April 1996.) 는 반전기 (inverter) 와 AND 게이트의 (이들의 TLU 로 구현이 가능하다) 연속적인 조합으로 임의의 T-R 프로그램을 구현할 수 있다고 주장했다. 이런 형태의 네트워크를 그림 7 에 나타내었다. 네트워크의 입력은 조건 ci 에 대한 이진값 (0, 1) 이다. 네트워크의 출력은 해당 행동 ai 를 활성화한다 (여기에서는 ci 를 만드는 계산은 보이지 않았다. ci 는 주로 리터럴의 곱이므로 TLU 로 계산이 가능하다). T-R 프로그램의 각 규칙은 두 개의 입력, 두 개의 출력을 가진 부회로 (TISA (Test, Inhibit, Squelch, Act) 라고 한다) 로 구현된다. TISA 내부의 TLU 중 하나는 한 입력과 다른 입력의 보수와의 곱을 계산한다. 다른 TLU 는 두 입력의 합을 계산한다. 금지 입력 (inhibit input) 은 상위의 규칙 중 조건이 참인 것이 하나도 없는 경우 0 이 된다. 테스트 입력 (test input) 은 규칙에 대응되는 조건 ci 가 만족될 때만 1 이 된다. 테스트 입력이 1 이고 금지 입력이 0 이면 행동 출력은 1 이 된다 (해당 행동 ai 를 활성화한다). 테스트 입력이나 금지 입력 중 하나가 1 이면, 억압 출력 (squelch output) 이 1 이 된다 (하부의 모든 유닛의 활성화를 금지시킨다). PGA (Programmable Gate Arrays) 나 다른 비슷한 동적 회로 생성 도구를 사용해서 T-R 프로그램을 호출하여 실행시간 (run-time) 회로를 만들 수 있다.

(3) 포함 구조

감지 입력을 바로 행동으로 변환시키는 방안으로 위와는 다른 형식론 (formalism) 도 제안되었다. Rodney Brooks 가 제안한 포함 구조 (subsumption architecture) 도 그 중 하나이다 [Brooks 1986, Brooks 1990, Connell 1990]. 이 구조를 구성하는 하부 구조에 대한 명확한 정의는 없지만, 기본적인 개념은 다수의 행동 모듈 (behavior module) 이 에이전트의 행동을 제어한다는 것이다. 각 모듈은 감지 정보를 주변 세계에서 직접 받는다. 감지 입력이

그림 8.  포함 모듈

모듈 내부의 필수 조건을 만족시키면 - 그 모듈에 전문화된 - 특정 행동 프로그램이 수행된다. 그림 8 에서 각 상위 모듈은 하위 모듈을 포함한다. 모듈 i 가 모듈 j 를 포함할 때, 만일 모듈 i 의 필수조건이 충족되면 모듈 i 의 프로그램이 모듈 j 의 프로그램을 대체한다. Brooks 는 이것을 수직 구조와 대비시켜 수평 구조라고 이름지었다. Brooks 의 연구팀은 복잡한 환경내에서 상호 작용하는 비교적 간단한 반응 기계로 매우 복잡한 행동도 유도해낼 수 있다는 것을 보여 주었다 [Mataric 1990, Connell 1990]. Brooks 의 기계는 인공지능 분야에서의 다른 연구와는 대조적으로 주변 환경을 표현하는 복잡한 내부 구조나 그것으로부터의 추론 과정에 의존하지 않는다 [Brooks 1991a, Brooks 1991b]. (Brooks 의 포함 기계 중 다수는 적은 수의 내부 상태를 가지기 때문에 5 장 상태 기계에서 언급할 것이다. 이 장에서는 T-R 프로그램과 밀접한 관계가 있기 때문에 다루었다.) 하지만 모든 S-R 기계는 매우 흥미로운 행동을 보일지라도 사실은 상당히 제한적이라는 점을 알아야 한다 ([Kirsh 1991] 은 Brooks 의 접근법에 대해 흥미로운 비평을 기술했다).

참고문헌 및 토론

S-R 에이전트는 현대의 전자 세계의 곳곳에 존재한다. 온도 유지를 위한 온도 조절장치, 자동차 속도를 유지하는 운행 제어 장치, 컴퓨터 운영체제의 인터럽트기반 장치, 수많은 공장의 자동 장치가 모두 S-R 에이전트이다. 보통, 이런 종류의 시스템과 장치는 인공지능의 주요 분야로 생각되지 않고 있다. 그러나 이들은 보다 지능적인 시스템을 향한 여정의 시작 단계에 속하기 때문에 중요하게 취급되어야 한다.

로보틱스나 AI 분야의 어떤 강좌는 학생들이 레고를 사용하여 S-R 로봇을 만드는 것으로 시작한다 ([Resnick 1993 (Resnick, M., "Behavior Construction Kits," Communications of the ACM, 36(7):64-71, July 1993.)] 을 참고). 행동기반의 제어 전략을 연구하고 있는 AI 연구자들은 공간을 탐색하고 장애물을 피하며 벽을 따라갈 수 있는 음파 유도 S-R 로봇을 가지고 실험을 해왔다 [Mataric 1990 (Mataric, M., "A Distributed Model for Mobile Robot Environment Learning and Navigation," Technical Report No. AIM-TR-1228, MIT AI Lab, MIT, Cambridge, MA, 1990.), Connell 1990 (Connell, J. H., "A Colony Architecture Applied to Robot Navigation," Technical Report 1151, MIT AI Lab, MIT, Cambridge, MA, June 1990.)].

이 책에서 제안된 지각과 행동의 분리는 에이전트 설계에서 일반적으로 사용된다. [Kaelbling & Rosenschein 1990 (Kaelbling, L., and Rosenschein, S., "Action and Planning in Embedded Agents," Robotics and Autonomous Systems, 6:35-48, 1990. Also in [Maes 1990 (Maes, P. (ed.), Designing Autonomous Agents: Theory and Practice from Biology to Engineering and Back, Cambridge, MA: MIT Press, 1990.)].)] 에 따라, 지각 과정은 감지 입력으로부터 자질 벡터를 계산해내는 일을 맡고, 행동 함수는 이 자질 벡터에 기반하여 행동을 선택하는 일을 맡았다. Kaelbling 과 Rosenschein 은 이런 구조 스타일을 Brooks 의 수평 구조와 대조되는 수직 구조라고 생각했다. 그들은 이 두 스타일을 [Kaelbling & Rosenschein 1990, pp. 36-37] 에서 비교 언급하였다.

에이전트 설계를 위한 실용적인 접근 방법으로 Brooks 는 지질과 행동의 수평 분해를 선호하였다.....수평 접근은 설계자가 특정 행동을 지원하는 데 필요한 지각과 행동의 제한된 국면을 동시에 고려하도록 한다...수직 전략은 분리되어 있는 시스템 모듈에 기반하고 있는데, 다양한 소스로부터 유용한 정보를 광범위하게 복원하는 모듈 (말하자면 지각), 다양한 목적으로 그 정보를 이용하는 모듈 (말하자면 행동) 이 그것이다. 수직 접근법에서는 정보 추출과 행동 생성이 결합된 내부적 특징 때문에 프로그래머의 노력이 효율적으로 사용되며 따라서 보다 효과적이다.

실제로 지각과 행동의 분리는 수평 접근법도 수용할 수 있다. 자질 벡터는 별개의 영역으로 나뉠 수 있다. 각 영역은 포함 구조와 마찬가지로 전문화된 지각 장치와 별개의 행동을 통해 계산된다.

T-R 프로그램이나 다른 반응 시스템은 동물 행동에 대한 다양한 행동학적 모델 (ethological model) 과 밀접한 관계가 있다 [McFarland 1987 (McFarland, D. (ed.), The Oxford Companion to Animal Behavior, Oxford: Oxford University Press, 1987.)]. 이 모델 중 몇몇에서, 동물 행동의 목표 성취 순서는 어떤 행동의 결과가 순서상의 다음 행동에 대한 자극이 되도록 정리되어 구성된다. T-R 프로그램의 조건과 행동은 프로그램이 이런 방식으로 작동하도록 선택된다.

특정 자극을 찾거나 자극에 반응하는 동물은 자극 지향성 (tropisms) 이라고 불리는 현상을 보인다. 예를 들어 빛 지향성 (phototropic) 동물은 빛을 향하여 움직인다. [Genesereth & Nilsson 1987 (Genesereth, M., and Nilsson, N., Logical Foundations of Artificial Intelligence, San Francisco: Morgan Kaufmann, 1987.)] 은 이 장에서 논의된 여러 종류의 에이전트를 자극 지향성 에이전트라고 명명하였다.

어떤 연구 실험에서는 생명체 대신에 S-R 로봇이 사용되었다. 이런 시뮬레이션은 때때로 "성공할 가능성이 없다 (doomed to succeed)" [Brooks & Mataric 1993, p.209 (Brooks, R., and Mataric, M., "Real Robots, Real Learning Problems," in Connell, J., and Mahadevan, S. (eds.), Robot Learning, Ch.~8, Boston: Kluwer Academic Publishers, 1993.)] 고 비판받지만 썩 성공하지 못한 시뮬레이션일지라도 지각, 행동 전략을 다듬는 데 많은 도움을 준다. 또 이런 시뮬레이션은 때때로 실제 (real thing) 와 일치하기도 있다. 예를 들어, 컴퓨터기반의 교육, 오락, 극예술에서 등장 인물 (animated character) 은 모의 환경과 사용자와 상호작용한다 [Bates 1994 ({bates} Bates, J., "The Role of Emotion in Believable Agents," Communications of the ACM, 37(7):122-125, 1994), Blumberg 1996 (Blumberg, B., {Old Tricks, New Dogs: Ethology and Interactive Creatures, Ph.D.Dissertation, MIT Media Lab, Massachusetts Institute of Technology, 1996.)]. (Blumberg 의 ALIVE 시스템은 상호작용하는 등장 인물을 만들기 위해 품성학 원리를 사용하는 시스템의 한 예이다).

부울 함수에 대해 더 자세히 알고자 하면 [Unger 1989 (Unger, S., The Essence of Logic Circuits, Englewood Cliffs, NJ: Prentice Hall, 1989.)] 를 참고하라. 생성 시스템은 결정리스트 (decision lists) 라고 하는 부울 함수의 일반화라고 볼 수 있다 [Rivest 1987 (Rivest, R., "Learning Decision Lists," Machine Learning, 2, 229-246, 1987.)].