Intelligent Agnet를 알기 위해서는 먼저 agent가 무엇인지부터 알아야 한다.
agent : 인지하고 행동하는 존재
그렇다. agent는 주변 상황을 인지해서 action을 취한다. 이때 percept와 percept sequence라는 용어가 나온다.
그럼 agent의 percept에 대해 어떤 action을 취할 지가 중요하다.
이때 percept를 input으로 해서 action을 만드는 함수를 agent function이라고 한다.
agent function : percept sequence를 action으로 매핑해주는 함수
agent라고 해서 항상 말이 되고 적절하게 행동하는 것은 아니다.
agent 중에서 합리적으로 행동을 하는 agent를 rational agent라고 한다.
rational agent : 옳은 일을 하는 agent
그럼 여기서 의문이 든다. 옳은 일이 무엇이란 말인가.
옳은 일은 performance measure를 최대화하는 action을 취하는 것
더 formal하게 정의를 해보자.
rational agent는 현재까지에 대한 percept sequence와 agent가 갖고있는 주변환경에 대한 사전 지식을 바탕으로 performance measure를 최대화하는 방향으로 action을 취하는 agent이다.
rational agent를 설계하기 위해서는 rational agent가 작동을 하는 환경, task environment에 대해서 명세가 필요하다.
task envrionment의 구성요소 : PEAS
주변환경을 이루는 구성요소에 따라 주변환경의 종류도 다양하다. 주변 환경의 구성 요소에 대해 알아보자
보면 fully observable, deterministic, static, discrete, singel agent인 environment가 제일 구현하기 쉽다는 것을 알 수 있다.
하지만 실제로는 partially observable, stochastic, dynamic, continuous, multi-agent인 경우가 많다.
인공지능이 해야할 일은 percept sequence를 바탕으로 어떤 action을 취할지를 결정하는 agent program을 디자인하는 것이다.
agent program에는 크게 네 가지 종류가 있다.
위의 simple reflex model은 주변환경이 fully observable할때만 사용 가능. 그러지 않은 경우에는 percept한 것을 바탕으로 state를 만들어주는 model이 필요함.
goal으로 가는 방법이 2개인데 goal-based agent는 그 중 긴 방법을 선택할 수도 있음. 그리고 상충되는 goal이 있을 경우엔 goal-based agent는 둘 중 뭘 선택해야할 지 모름. 이럴 경우에 사용하는게 utility-based 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을 취함.