[인공지능] Intelligent Agent

진실·2021년 10월 24일
0
post-custom-banner

Intelligent Agnet를 알기 위해서는 먼저 agent가 무엇인지부터 알아야 한다.

agent

agent : 인지하고 행동하는 존재

그렇다. agent는 주변 상황을 인지해서 action을 취한다. 이때 percept와 percept sequence라는 용어가 나온다.

  • pecept : 어떤 상황에 대한 지각적인 input
  • pecept sequence : 지금까지 percept한 것의 모음

그럼 agent의 percept에 대해 어떤 action을 취할 지가 중요하다.
이때 percept를 input으로 해서 action을 만드는 함수를 agent function이라고 한다.

agent function : percept sequence를 action으로 매핑해주는 함수

agent라고 해서 항상 말이 되고 적절하게 행동하는 것은 아니다.
agent 중에서 합리적으로 행동을 하는 agent를 rational agent라고 한다.

rational agent

rational agent : 옳은 일을 하는 agent

그럼 여기서 의문이 든다. 옳은 일이 무엇이란 말인가.

옳은 일은 performance measure를 최대화하는 action을 취하는 것

더 formal하게 정의를 해보자.

rational agent는 현재까지에 대한 percept sequence와 agent가 갖고있는 주변환경에 대한 사전 지식을 바탕으로 performance measure를 최대화하는 방향으로 action을 취하는 agent이다.

task environment

rational agent를 설계하기 위해서는 rational agent가 작동을 하는 환경, task environment에 대해서 명세가 필요하다.

task envrionment의 구성요소 : PEAS

  • Performance measure
  • Environment
  • Actuators
  • Sensors

environment types

주변환경을 이루는 구성요소에 따라 주변환경의 종류도 다양하다. 주변 환경의 구성 요소에 대해 알아보자

  • observable
    action과 관련있는 모든 면들을 인지할 수 있으면 fully observable, 아니면 partially observable
  • deterministic
    현재 state에서 action을 취했을 때 나오는 state가 딱 정해졌으면 deterministic, 아니면 stochastic
  • static
    agent가 action을 고르는 동안 주변 환경이 바뀌면 dynamic, 아니면 static
  • discrete
    주변환경이 딱딱 끊어지면 discrete, 아니면 continuous
  • single-agent
    agent가 한명이면 single-agent 아니면 multi-agent

보면 fully observable, deterministic, static, discrete, singel agent인 environment가 제일 구현하기 쉽다는 것을 알 수 있다.
하지만 실제로는 partially observable, stochastic, dynamic, continuous, multi-agent인 경우가 많다.

agent types

인공지능이 해야할 일은 percept sequence를 바탕으로 어떤 action을 취할지를 결정하는 agent program을 디자인하는 것이다.

agent program에는 크게 네 가지 종류가 있다.

  • simple reflex agent
    percept sequence만을 바탕으로 action을 만듦
  • model based reflex agent
    percept한 것을 바탕으로 model을 만들고 model을 바탕으로 action을 선택함
  • goal-based agent
    goal을 이루는 방향으로 action을 취하는 agent
  • utility based agent
    utility를 최대화하는 방향으로 action을 취하는 agent

simple refelx agent

  • 현재의 percept만을 바탕으로 action을 취하는 agent
  • 주변 상황이 이러면 이런 action을 취해라 ~~
  • 그럼 주변 상황을 전부 percept할 수 있어야함
  • fully observable한 상황에서 적용 가능

model-based reflex agent

위의 simple reflex model은 주변환경이 fully observable할때만 사용 가능. 그러지 않은 경우에는 percept한 것을 바탕으로 state를 만들어주는 model이 필요함.

  • 현재 state와 percept한 것(partially observable)을 바탕으로 model이 현재 state를 만들어줌.
  • model이 만든 state를 바탕으로 action을 결정함

goal-based agent

  • 위의 agent는 무인 주행 자동차같이 특정한 goal 없이 적절한 action을 취하는 agent
  • 근데 오목처럼 5개의 돌을 먼저 둬서 이긴다. 이런 goal이 있는 경우에 사용하는 게 goal-based agent
  • 보통은 percept sequence가 존나 길게 이어지기 때문에 search, planning 등의 방법을 사용한다.

utility-based agent

goal으로 가는 방법이 2개인데 goal-based agent는 그 중 긴 방법을 선택할 수도 있음. 그리고 상충되는 goal이 있을 경우엔 goal-based agent는 둘 중 뭘 선택해야할 지 모름. 이럴 경우에 사용하는게 utility-based agent

  • utility functon을 둬서 utility가 최대화되는 방향으로 움직임

learning agent

위에서 언급한 agent는 전부 어떤 action을 취할지를 결정하는 agent!!
즉 action을 취하고 끝이 난다면 learning agent는 내가 했던 action이 괜찮았는지까지도 평가해서 학습해나가는 agent

먼저 critic이 agent가 얼마나 잘하고 있는지에 대한 feedback을 줌. 그럼 learning agent는 critic의 비평을 바탕으로 학습 및 개선을 하고, performance element가 취할 수 있는 action들을 생각함. problem generator는 당장 이득이 아니더라도 새로운 경험을 할 수 있는 action들을 제시를 함. performance element는 learning element가 준 개선 사항과, problem generator가 제시한 action, 자신이 생각한 action을 바탕으로 action을 취함.

profile
반갑습니다.
post-custom-banner

0개의 댓글