BUSINESS 연구 자료
  • AMA 소스코드
  • 로봇윤리 이론
    • Soar
  • ROS
  • HRI
  • 참고문헌
  • main_banner02.png

    AMA 과제 소개
    인공윤리 에이전트 개발

    인간과 로봇이 서로 진정한 소통을 하기 위해서는 인공지능에 도덕적인 요소들이 함께 접목되어 개발되어야 한다. 

  • main_banner02.png

    AMA 소스코드
    AMA메타패키지 다운로드

    OP용 AMA 버전1.0 메타패키지를 다운받으세요. 

인지 에이전트(cognitive agent)란 인간 사용자가 부여한 고유 목표를 달성하기 위해 능동적으로 동적인 환경을 인지하고 상호작용하면서 특정 작업을 수행하는 소프트웨어를 의미한다. 인간 수준의 지적인 사고와 기억, 학습 및 행동을 목표로 하는 인지적 에이전트에는 Soar, ACT-R, LIDA, Clarion, EPIC, Icarus 등이 현재까지 발표되었다.

Soar는 Michigan 대학교의 John Laird 교수가 인공지능 1세대인 Allen Newell 교수와 함께 1981년부터 개발하기 시작하여 30여년 동안 지속적으로 개발해 온 인지 에이전트 아키텍처(cognitive agent architecture)로서 현재 9.5버전이 매뉴얼 및 다양한 예제와 함께 전용 웹사이트에 오픈소스로 공개되어 있다.

Soar는 state, operator and result의 약자로서 state는 시스템의 현재 상황을, operator는 이 state를 변화시키는 수단을, result는 state와 operator의 조합으로 도출되는 결과를 의미한다.

Soar의 소스 코드는 C, C++, Java로 작성되어 있으며 태스크와는 독립적인 알고리즘과 데이터 구조를 가진다.Soar는 각각의 행동(behavior=architecture+knowledge)을 제어하는 데 사용되는 production rule system을 기반으로 문제공간(problem space)에서 필요한 행동들을 조직하여 문제를 해결하는 원리를 가지므로 지능 시스템에 필수적인 perception, reasoning, planning, language processing, learning 등의 다양한 기능들을 실시간으로 관리 및 조정할 수 있다.

* Soar는 단기기억을 위한 작업 메모리 요소(working memory element, WME)와 결정 프로시저를 갖추고 있으며, WME는 아래와 같이 state의 식별자(identifier), 속성(attribute), 값(value)으로 구성되어 있음

* Soar의 장기기억에는 규칙을 기억하는 절차적 기억(procedural memory), 일반적인 사실과 의미를 저장하는 시맨틱 기억(semantic memory), 그리고 작업 메모리의 스냅샷을 저장하는 일화성 기억(episodic memory)이 있다.

* Soar의 학습 메커니즘으로 청킹(chunking)과 강화학습(reinforcement learning, RL)이 있으며, 청킹은 학습을 통해 새로운 규칙을 배우는 것을 의미하고, 강화학습은 보상과 처벌을 통해 연산자 선택을 위한 선호도(preference)를 조정함으로써 자율적(unsupervised) 학습을 한다.

Soar의 전체 구조도

다음 그림은 Soar의 결정 사이클(decision cycle)을 나타낸 것으로, 전체적으로 연산자 선택(operator selection)과 연산자 적용(operator application)으로 구분할 수 있다.

Soar의 결정 사이클

연산자 선택에는 다음과 같이 상태 정교화(state elaboration), 연산자 제안(operator proposal), 연산자 평가(operator evaluation)의 세부 단계가 있다.

- 상태 정교화: 다른 WME의 조합을 추상화하고 state 상에서 이를 새로운 augmentation(동일한 제1식별자를 공유하는 WME의 조합을 object라 하는데 이 object를 구성하는 WME)으로 표현

- 연산자 제안: 연산자의 이름과 파라미터 등을 선언하는데 필요한 추가적인 WME 생성

- 연산자 평가: 후보 연산자가 제안되면 다른 연산자와 우선순위를 비교하여 선호도(preference)를 생성함. 선호도에는 acceptable, reject, better/worse, best, worst, indifferent 등이 있으며, 만약 불충분하거나 충돌하는 선호도를 가진 연산자가 있다면 Soar는 impasse(교착상태)를 발생시키고 substate를 생성함. 이 impasse는 이후에 추가 된 substate의 선호도에 의해 해결될 수 있음

연산자 적용에는 다음과 같이 연산자 정교화(operator elaboration)와 연산자 적용(operator application)의 세부 단계가 있다.

- 연산자 정교화: 연산자가 선택되었는지를 테스트하고, 연산자에 추가적인 구조를 생성하여 관련된 파라미터를 연결함으로써 연산자 적용 준비

- 연산자 적용: 상태(state)에 지속적인 변화를 가하며 내부적/외부적 행위를 일으키는 단계

Soar는 지금까지 각종 추론 작업, 알고리즘 디자인, 의학적 진단, 자연어 처리, 컴퓨터 게임의 상대 캐릭터 제어 등의 다양한 분야에 성공적으로 적용되어 왔으며, 최근에는 지능적 로봇 서비스 기술에 적용되고 있다.