인공지능

Agent Program

아뵹젼 2021. 10. 16.

Agent Programs

- Agent = architecture (computing device) + program(구현 - data, algorithm)

- Agent function vs agent program : 이론적인 vs 현실적인

- A simple agent program

  • 입력값은 percept 이고, 리턴값은 action 이다.
  • percepts 은 입력들을 나열한 percept sequence, percept history 이다
  • table 은 state sequence 에 대한 action 이 명시되어 있는 agent function 이다.

 

위 프로그램은 매우 큰 메모리를 필요로 하게 된다. ( 진공청소기 agent, 자율주행 택시)

왜냐하면 table 이 모든 state 의 조합에 대해 각각의 action 을 지정해 두어야 하기 때문이다.

 

 

Simple Reflex Agents

- 이전 상태를 고려하지 않고 오직 현재 입력(current percept) 에 의해서만 action을 결정하는 agent 이다.

- vacuum-cleaner agent 를 예로 들 수 있다.

위와 같이 if / else 로 규칙을 표기하는 방법을 Condition-action rules 라고 한다.

 

 

- Simple Reflex Agent diagram

percept 를 입력값으로 받고 -> sensor 가 인지한다 -> state 를 계산한다

-> conditoin action rules 에 따라 action 을 계산한다 -> actuator 가 동작한다.

 

 

- Simple reflex Agent program

simple reflex agent 는 위와 같이 percept 를 입력으로 받고 , actinon 을 리턴해 준다.

위에서 보았던 agent program 과 달리 percept history 를 저장하지 않고, 단지 입력에 대해서만 고려하여 액션을 취한다.

 

따라서 다음 3가지 과정을 통해서 action 을 결정한다.

1. 입력을 해석하여 현재 state 를 판단한다.

2. 현재 state 에 맞는 rule 을 찾는다.

3. rule 에서 지정한 action 을 리턴한다.

 

그러나 한계점이 존재한다.

 

현재 percept 만으로는 state 를 정확히 알 수 없는 경우에 최적의 답을 리턴할 수 없다.

예를 들면 location 센서가 없는 reflex-vacuum-agent 같은 경우에는 현재 위치를 알 수 없기 때문에

왼쪽으로 갈지 오른쪽으로 갈지를 결정할 수가 없다.

 

 

Model-based Reflex Agents

agent 가 내부의 상태 정보를 유지해야 한다.

내부 상태percept history 와 agent 가 알고 있는 knowledge 에 의해 변한다.

예를 들어 vaccum cleaner agent 는 자신의 처음 위치를 알고 있다. 그렇다면 location 센서가 없더라도

이후 자신의 left, right action 을 통해 자신의 위치를 추적할 수 있게 된다.

 

따라서 내부 상태를 업데이트해야한다. (Updating the internal state)

- agent와 독립적으로 world가 어떻게 바뀌었는지?

- agent 의 action 이 world에 어떤 영향을 주었는지?

 

위의 두 개의 지식을 world 의 model 라고 부르며, 이를 기반으로 만든 agent 를 Model-based Reflex agent 라고 한다.

 

 

Model-based Reflex agent diagram

(세상이 움직이는 방식 + 내 action 이 세상에 어떤 영향을 미치는지) -> model 이다.

이러한 model state 로 world 의 현재 상태 (state) 가 결정되고, 

condition-action rules 를 통해 action 이 결정된다.

 

 

Model-based Reflex agent program

 

percept 를 입력으로 받고 action 을 리턴해준다.

state, action, percept, model 로 상태 갱신인 UPDATE-STATE 를 하고, 

상태에 맞는 rule 을 찾은 후 action 을 취한다.

 

 

Goal-based Agents

agent 의 action 이 목표에 따라 선택된다.

즉, Model-based reflex agent 와 비슷하지만 행동의 결과를 예측하고,

Condition-action rules 가 아닌 Goal 에 의해 행동을 결정한다는 점이 다르다.

 

 

- Goal-based Agents diagram

상태를 update 하고,

현재의 환경과 model 을 참고하여, 어떤 action 을 취했을 때의 기대값을 구한다.

즉, 기대값은 어떻게 행동해야 목표에 다다를지에 대한 고민 과정이다.

그 기대값과 Goal (목표값) 을 비교한 다음, Action 이 적절하게 선택된다.

 

자율주행택시는 항상 도착지(Goal) 가 다르다.

이런 경우에 conditon action rules 를 사용하기엔 너무 많은 규칙이 생성될 것이다.

따라서 Goal-based agent 를 사용한다면 주어진 Goal 를 달성하기 위해, 상태 추정에 사용한 지식(Model) 들을 이용해 계획을 세우고, 목표 달성에 가까워 지는 action 을 결정한다.

이런 목표 지향적인 문제에 사용되며 높은 자율성유연성을 가진다.

 

 

Utility-based Agents

Goal-based 와 구조가 흡사하지만, 목표의 달성/미달성이 아니라 utility 즉, 효용의 크기를 계산하는 것이다. 효용을 최대화 하는 동작을 선택해야 한다.

즉, 여러 가지의 답이 있고 비용과 같이 특수한 조건 이 있을 때 사용하는 agent 이다.

 

 

-Utility-based Agents diagram

어떤 action 을 취했을 때의 기대값 까지는 goal-based 와 동일하지만, Goal 이 아니라 Utiliy 를 사용한다.

또한, How happy 와 같은 점수로 표현을 한다. 

그 다음 action 을 취하게 된다.

 

 

 

Learning Agents

이 전의 agent 모델들을 component 로 가지는 agent 이다.

 

-Learning agent diagram

여기서 knowledge 란 model, 조건 등이 되겠고, performance element 가 agent 가 되겠다.

 

 

 

State Representations

agent program 을 표현하는 방법이다.

- Atomic : state 를 하나의 변수처럼 표시

- Factored : 속성으로 변수들을 가짐

- Structured : 객체와 그 관계들로 표현

 

'인공지능' 카테고리의 다른 글

Search Tree, Tree search, Graph search  (0) 2021.10.17
Problem-solving agent, search algorithm  (0) 2021.10.17
Agent  (0) 2021.10.16
인공지능 역사  (0) 2021.10.16
인공지능 연구 분야  (0) 2021.10.16

댓글