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 |
댓글