-
AI Agent Program인공지능 2020. 10. 15. 15:49728x90
Agent program
Agent = 아키텍쳐(Architecture, computing device) + program
Agent function vs Agent program ( = ideal 이론적인 vs practical 현실적인)
간단한 agent program
function TABLE-DRIVEN-AGENT(precept) returns an action persistent: percepts = a sequence, initially empty table = a table of actions, indexed by percept sequences, initially fully specified append perecept to the end of percepts action <- LOOKUP(percepts, table) return action
percept : 입력
action : 출력
percepts : 입력들을 쭉 나열한 sequence, percept history
table : state sequence에 대한 action 이 명시되어 있는 agent function
위 프로그램은 매우 큰 메모리를 필요로하게 됩니다. 왜냐하면 table이 모든 state의 조합에 대해 각각의 action을 지정해두어야 하기 때문입니다.
Simple Reflex Agent = 단순반사
이전 상태를 고려하지 않고 오직 현재 입력(current percept)에 의해서만 action을 결정하는 Agent 입니다.
vacuum-cleaner 를 그 예로 들 수 있습니다.
function REFLEX-VACUUM-AGENT([location, status]) returns an action if status = Dirty then return Suck else if location = A then return Right else if location = B then return Left
위와 같이 if-else 로 규칙을 표기하는 방법을 Condition-action rules 라고 합니다.
Agent diagram
Simple reflex agent program
function SIMPLE-REFLEX-AGENT(percent) returns an action persistent: rules = a set of condition-action rules state <- INTERPRET-INPUT(percept) rule <- RULE-MATCH(state, rules) action <- rule.ACTION return action
단순반사 agent 프로그램은 위와 같이 percept 를 입력으로 받고, action 을 출력으로 내놓습니다. 위에서 보았던 Table driven 프로그램되는 달리 percept history 를 저장하지 않고, 그 입력에 대해서만 고려하는 것이 특징입니다.
다음 세 과정을 통해 action 을 결정합니다.
-
입력을 해석하여 현재 state를 판단한다.
-
현재 state에 맞는 rule 을 찾는다.
-
rule 에서 지정한 action을 리턴한다.
한계점
-
현재 percept 만으로는 state를 정확히 알 수 없는 경우에 최적의 답을 내놓을 수 없습니다.
예를 들면 location 센서가 없는 vacuum agent 문제라면 현재 위치를 알 수 없기 때문에 왼쪽으로 갈지 오른쪽으로 갈지 결정할 수 없습니다.
Model based Reflex Agent
Agent 가 내부 상태 정보를 유지할 필요가 있을 때 사용하는 방식입니다.
내부 상태 정보는 percept history 와 knowledge에 의해 바뀝니다.
예를 들어 vacuum cleaner agent는 그 초기 위치를 알고 있고, 이후 자신의 Left, right 액션을 통해 자신의 위치를 추적할 수 있게 됩니다.
Model
-
world가 agent와 독립적으로 변화하는 방식에 대한 지식
-
agent의 action이 world에 어떠한 영향을 미치는지에 대한 지식
위 두 지식을 모델이라 부르며 이를 기반으로 만든 agent를 Model-based Reflex agent 라고 합니다.
Agent program
function MODEL-BASED-REFLEX-AGENT(percept) returns an action persistent: state, the agent ’s current conception of the world state model, a description of how the next state depends on current state and action rules, a set of condition-action rules action, the most recent action, initially none state <- UPDATE-STATE(state, action, percept, model) rule <- RULE-MATCH(state, rules) action <- rule.ACTION return action
Goal based Agents
목표를 설정해주면 적절한 condition을 선택해주는 Agent 입니다.
Condition action rule 의 문제점으로 조건이 너무 많다는 점이 있는데, 자율주행차를 예로 들면 이를 rule base 로 만들기에는 너무 많은 세세한 규칙들이 있음을 알 수 있습니다.
Utility-based Agents
Goal based 의 발전형으로 여러 가지의 답이 있고 비용과 같이 특수한 조건이 있을 때 사용하는 기법입니다.
예를 들면 돈을 더 내고 고속도로를 이용하는 대신 빨리 가는 방법 vs 돈을 내지 않고 국도를 통해 가지만 조금 늦게가는 방법
Leraning Agents
이 전의 Agent 모델들을 컴포넌트로 가지는 에이전트입니다.
State 의 표현 방법
-
Atomic : 단순 변수
-
Factored : state의 attribute 로, mongo db의 document를 생각하면 좋음
-
Structured : 객체와 그 관계로 표현
'인공지능' 카테고리의 다른 글
AI Search tree와 Tree search, graph search (0) 2020.10.16 AI Problem-solving agent와 Search 알고리즘 (0) 2020.10.16 인공지능 Agent (0) 2020.10.15 인공지능의 간략한 역사 (0) 2020.10.14 인공지능 연구 분야 (0) 2020.10.14 -