Gurugail Robot/Action Selection
Robot

Action Selection

Action Selection 이란

로봇과 관련된 일을 시작한지 5년이 넘었지만 아직도 해결하기 힘든 분야가 바로 Action Selection 이지 않을까 싶다. Action Selection 이란 로봇이 어떤 행동을 해야 할까? 라는 질문에 대한 답을 찾기 위한 분야이다. 다시 말해 로봇에 입력된 여러 가지 센서나 사용자 그리고 환경 인식에 대한 정보에 따라 로봇이 취할 수 있는(행할 수 있는) 액션들은 어떻게 행해 나갈까에 대한 고민이다. 복잡하게는 지능과도 관계가 있고, 로봇의 감정 상태에도 관계가 있을 수 있다. 쉽게 해결되지도 않을 문제이긴 하지만 그래도 꾸준한 시도가 되어야 하는 분야이다. 지능형 로봇을 개발하기 위해서는 어느 정도 수준까지는 극복(해결)이 되어야 하는 핵심 분야 이기 때문이다.

액션의 정의

그렇다면 Action Selection에서의 액션(action or act)이란 무엇인가? 액션은 정의하기 나름이다. 작게는 밥을 먹기 위해 숫가락을 드는 것도 하나의 액션으로 볼 수 있고 넓게는 밥을 먹는다 라는 것을 하나의 액션으로 정의할 수도 있다. 다만 보통 액션이라고 하면 중간에 멈출 수 없는 원자적(atomic)인 특성을 함께 부여한다. 아래는 위키피디아에서 액션에 대한 영문 정의이다.

At the most basic level of abstraction, an atomic act could be anything from contracting a muscle cell to provoking a war.

action selection의 분야가 어려운 이유
  • Action Selection의 대상인 외부 환경이 보통 동적이며, 예측하기 어렵기 때문
  • Action Selection이 때로는 실시간적 처리를 요하기 때문 (때로는 즉각적인 행위로 발현될 수도 있어야 함)
  • 동시에 여러 개의 태스크를 수행할 시 발현되는 액션으로 인하여 리소스 충돌이 발생할 우려가 있음 (특히 로봇의 경우 신중히 고려되어야 하는 항목)
  • Action Selection 을 처리하는 과정에는 사용자와의 상호 작용을 고려해야 하는 경우가 있음 (사용자의 행위는 예측 불허인 상태가 발생할 수 있는 여지가 높음)

Action Selection 방법론

Action Selection을 위해 인공지능적 알고리즘은 어떤 것들이 있을까? 아래 대표적인 방법들을 기술한다.

  1. 첫째는 Planning 방식과 유사하며 어떤 기호나 스크립트, 또는 규칙(rule) 등을 활용하여 액션을 선택하는 Symbolic approach 기반의 방법들이다. if (상황) then act1의 식이다.
  2. 둘째는 신경망 등을 이용할 수도 있다. 간단하게는 (상황, 액션)을 쌍으로 학습시켜 반응하도록 하는 것이다.
  3. 셋째는 Behavior-based AI (또는 subsumption architecture)으로 로봇 공학에서 종종 등장하는 용어이기도 한 방식은 액션보다는 조금 더 큰 묶음으로 (여기서는 behavior라는 용어를 사용) 계층 기반으로 구성하는 것이다. if (상황 a) then behavior1 이라고 하자. 만약 상황 a이면 behavior1 이 동작할 것이다. behavior1은 가장 기반이 되는 behavior로 구성되어야 한다. 그 기반이 되는 behavior 위에 계층을 올려보면 behavior1이 동작하고 있는 당시에 if(상황 bb)then behavior2가 동작되도록 하는 것이다.
  4. 넷째는 FSM와 같은 상태 머신을 기반으로 한 Action Selection의 방식이다.

참고

action selecton (wikipedia)