ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AI Agent Program
    인공지능 2020. 10. 15. 15:49
    728x90

    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 을 결정합니다.

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

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

    3. 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

    댓글

Designed by Tistory.