지능형 에이전트

오키.png 만물사전 프로젝트 누구나 수정, 추가 가능합니다.
이 만물사전은 누구나 수정, 추가 가능합니다. 전체 삭제는 문서 훼손 입니다.

지능형 에이전트(intelligent agent)는 복잡한 동적인 환경에서 목표 달성을 시도하는 시스템을 말한다. 외부환경, 센서, 행위자들 사이에서 상호작용을 한다. 소프트웨어 에이전트(software agent)라고도 불린다. 가상공간 환경에서 특정 사용자들을 돕기위해서 반복적인 작업들을 자동화 시켜주는 컴퓨터 프로그램이다.

등장 배경

지능형 에이전트가 등장한 배경에는 반도체 기술의 발달로 고성능 개인용 컴퓨터가 보급이 용이해졌고 네트워크의 급속한 확산을 통해 인터넷 사용인구가 확대 되었다. 또한 동영상과 음성을 지원하는 멀티미디어 기술과 서비스가 확산하였다. 이에 따라 인터넷과 인트라넷 상의 정보량이 폭주하는 정보범람(information overload) 현상이 나타났다.

정보 범람의 인터넷 환경에서 사용자가 원하는 정보를 검색하기 위해 검색 엔진 개발이 활발하게 이뤄졌다. 하지만, 과다한 정보 검색에는 한계가 있고 인공지능은 웹 서비스를 사용자들이 쉽게 접근할 수 있는 기법을 개발하기 위한 새로운 분야를 연구하였고 그것이 지능형 에이전트가 등장한 배경이다.

에이전트

에이전트(agent)는 복잡하고 유동적인 실세계의 환경에서 목표를 달성하려고 센서를 통하여 외부환경을 인지하고 행위자(actuator)를 사용하여 환경에 영향을 미치는 상호작용 개체를 에이전트라고 한다. 에이전트 종류에는 다음과 같이 있다.

  • 자율적응 에이전트
  • 소프트웨어 에이전트
  • 지능형 에이전트
  • 인터페이스 에이전트

에이전트의 공통사항

에이전트(agent)는 다음과 같은 공통 사항이 있다.

  • 특정한 목적을 위해 사용자를 대신해서 작업을 수행하는 자율적인 프로세스(autonomous process)
  • 독자적으로 존재하지 않고 어떤 환경의 일부이거나 그 안에서 동작하는 시스템
  • 지식베이스와 추론 기능을 가지며 사용자, 자원, 다른 에이전트와 정보교환과 통신을 통해 문제해결을 도모한다.
  • 스스로 환경의 변화를 인지하고 그에 대응하는 행동을 취하며 경험을 바탕으로 학습하는 기능을 가진다. (에이전트들이 '기계학습'을 통해 학습한다.)
  • 수동적으로 주어진 작업만을 수행하는 것이 아니고, 자신의 목적을 가지고 그 목적을 달성을 추구하는 능동적 자세를 가진다.

에이전트의 일반적인 성질

소프트웨어와 차별 특성

  • 자율성(autonomy): 사람이나 다른 사물의 직접적인 간섭 없이 스스로 판단하여 동작한다.
  • 사회성(social ability): 에이전트 통신 언어를 사용하여 사람과 다른 에이전트간의 상호 작용한다.
  • 반응성(reactivity): 실세계, GUI를 경유한 사용자, 다른 에이전트들의 집합, 인터넷과 같은 환경을 인지 그 안에서 일어나는 변화에 시간상 적절히 반응한다.
  • 능동성(proactivity): 단순히 환경에 반응하여 행동하는 것이 아니라 주도권을 가지고 목표 지향적으로 행동한다. 즉, 타겟 시스템을 위한 목표를 지향한다.
  • 시간 연속성(temporal continuity): 전면에서 실행하고 이면에서 잠시 휴식하여 연속적으로 수행한다. 주어진 입력을 처리하여 결과를 보여주고 종료하는 것이 아니다.
  • 목표지향성(goal-orientedness): 복잡한 고수준 작업처리를 위해 작은 세부 작업으로 분할, 처리 순서의 결정등을 책임진다.

사람 속성을 가지는 특성

  • 이동성(mobility): 작업을 현재의 컴퓨터에서 처리하지 않고 다른 컴퓨터로 이동하여 수행한다. 이를 통해 네트워크 부하를 감소할 수 있다.
  • 합리성(rationality): 목표를 달성하기 위해서 행동한다. 목표 달성을 방해하는 방향으로는 행동하지 않는다.
  • 적응성(adaptability): 사용자의 습관과 작업 방식, 취향에 따라 스스로를 적응시킨다.
  • 협동성(collaboration): 복잡한 작업을 수행하기 위해 다른 에이전트, 자원, 사람과 협력적으로 작업을 처리한다.

에이전트 설계

에이전트 설계를 위한 정의는 "에이전트를 설게 및 제작하기 위해서는 융통성 있게 자율적으로 행동할 수 있는 환경에 있는 컴퓨터 시스템" 이라고 할 수 있다. 이 정의에 포함한 핵심 개념 3가지는 상황성(situatedness), 자율성(autonomy), 유연성(flexibility) 이다.

  • 상황성(situatedness): 환경 내에서 센서로부터 입력을 받고, 특정한 방법으로 환경을 변화시키는 행동을 수행한다.
  • 자율성(autonomy): 사람이나 다른 에이전트의 직접적인 간섭 없이 자신의 움직임과 내부 상황을 조절할 수 있는 지각능력을 가진다.
  • 유연성(flexibility): 설게 목적에 부응하기 위한 특성이다.

전통적 에이전트 설계 방법

일반 사용자 프로그램의 에이전트화

사용자가 에이전트 행동을 기술하는 규칙을 프로그래밍 한 것을 Oval 시스템이라고 한다. 사용자가 직접 프로그래밍 함으로 신뢰할 수 있지만 프로그래밍을 하는데 있어 부담이 된다.

지식공학자가 에이전트 구축

UCEgo 시스템을 통해 실수를 교정하도록 대안을 제시하였다. 사용자의 프로그래밍의 부담은 없다. 사용자 개인 선호도를 만족시키지 못하면서 신뢰도가 떨어지고 기계학습을 이용한 접근법을 제안하였다.

기계학습을 사용한 접근법

시스템을 적응적으로 변화시켜 동일한 성질의 작업을 효과적으로 수행한다. 사용자의 요구조건, 기능을 모두 만족시킨다. 개별적 차이를 강조한 환경에 유리하게 적용된다.

기계학습

기계학습(Machine Learning)에 대해 1959년 아서사무엘은 이렇게 정의하였다. "컴퓨터에 명시적인 프로그램 없이 배울 수 있는 능력을 부여하는 연구 분야"라고 정의하였다. 즉, 사람이 학습하듯이 컴퓨터에 데이터를 주고 스스로 학습하게 함으로써 새로운 지식을 얻어내게 하는 분야를 말한다.

기능과 역할에 따른 분류

학습에이전트

학습에이전트는 사용자가 웹 상에서의 수행하는 행동을 관찰하고 어떤 내용에 관심을 가지고 있는지를 판단하여 사용자에게 알맞은 내용을 전달하도록 하는 것을 말한다.

사용자 인터페이스 에이전트

사용자 인터페이스 에이전트는 사용자의 원하는 작업을 찾아내서 이들을 네트워크나 응용 프로그램 안 어디에서든지 실행할 수 있도록 이동시켜주는 것을 말한다. 사용자 인터페이스는 능동적인 측면이 증가하는 반면, 수동적인 측면이 감소하는 이유는 인터페이스 문법이나 규칙을 지켜야 하기 떄문에 프로세스들에게 더 적은 모호성을 제공하기 때문이다.

데스크탑 에이전트

데스크탑 에이전트는 PC나 워크스테이션의 운영체제에 상주하면서 국부적으로 실행되는 에이전트를 말한다. 데스크탑 에이전트에는 운영체제 에이전트, 응용프로그램 에이전트, 응용프로그램 환경 에이전트가 있다.

인터넷 에이전트

인터넷 에이전트는 서버에 상주하면서 사용자와 직접적인 상호작용 없이 사용자를 대신해서 작업을 수행하도록 인터넷 상에서 분산된 온라인 정보를 접근하는 프로그램을 말한다. 인터넷 에이전트에는 웹 검색 에이전트, 정보여과 에이전트, 고지 에이전트가 있다.

모빌 에이전트

모빌 에이전트 또는 모바일 에이전트는 클라이언트 컴퓨터로부터 원격 실행을 위해 다양한 서버들로 자기자신을 이동시킬 수 있는 소프트웨어 에이전트를 말한다. 특징으로는 온라인 작업을 줄여 네트워크 부하를 감소 시키고 위치에 무관한 통신은 분산 시스템 기술을 향상 시킨다. 다만, 단점은 보안에 취약하다.

모빌 에이전트 기술의 주요 요소는 에이전트들이 프로그램 되는 언어(예, AOL), 인터프리터, 엔진들이 다른 컴퓨터 상에 상주하도록 허용하는 통신 프로토콜 필요, 인증·보안·사생활보호·책임이 있다.

클라이언트/서버 모델과 모빌에이전트의 차이점은 클라이언트/서버 모델은 데이터를 프로그램 소스에 적재하는 반면, 모빌 에이전트는 개발자에게 프로그램을 데이터 소스에 적재할 수 있는 융통성을 제공한다.

전자상거래 에이전트

전자상거래 에이전트는 사용자를 대신해서 쇼핑을 가서 제품 사양을 얻어오며 사양에 만족하는 구매 추천 목록을 반환한다. 상품이나 서비스 판매를 제공함으로써 판매자들을 대시한 점원의 역할을 하고 또한 고객상담도 한다.

멀티에이전트

멀티에이전트 시스템(multi-agent system: MAS)는 하나의 에이전트로는 해결하지 못하는 복잡한 문제를 풀기위해 여러 에이전트간의 협동이 필요하다. 복잡한 문제를 단순한 문제로 분산(분산화), 단일 에이전트들이 분산된 문제 해결(이식성 상승) 이들 결과를 조합하여 문제를 해결한다.