본문 바로가기

인공지능

인공지능, 에이전트, (Model-based Reflex Agents, Goal-based Agents, Utility-Based Agents)

반응형

이번 글에서는 Model-based Reflex Agents, Goal-based Agents, Utility-based Agents에 대해 알아보도록 하겠습니다.

 

 

Model-based Reflex Agents

 

이전 글에서 다뤘던 Simple Reflex Agents와 유사한 형태인 Model-based Reflex Agents 역시 센서가 감지한 환경이 정해진 조건에 부합할 때 정해진 행동을 하게 됩니다. 

 

하지만 Model-based Reflex Agents 는 영리하기에 그 상황에서 해야 하는 행동의 영향력에 대해서 이해하고 있습니다. 이전에 언급했던 자동차의 자동 긴급 제어 시스템의 경우 센서가 전방에서 어떤 물체를 발견했을 때 속도를 줄이는 기능을 합니다. 속도를 줄여 그 물체와의 충돌을 회피하는 것이 목적일 뿐 갑작스러운 급정거로 인해 뒤차가 어떻게 반응할지 또는 교통흐름에 어떤 영향을 끼칠지에 대해 전혀 고려하지 않습니다. 

 

Model-based Reflex Agents 는 급정거를 시도하기 전에 뒤차의 속도와 간격을 측정해 너무 가깝거나 빠르게 다가오고 있다면 비어있는 옆 차선으로 이동하는 방법을 택하게 될 것입니다. 

 

또 다른 예를 찾아본다면 버스뒤를 따라가는 중 버스정거장에서 사람들이 버스를 기다리고 있는 모습을 발견했습니다. 버스는 승객을 태우기 위해 정거장에서 멈출 것이라는 사실을 예측해 미리 차선을 변경해 갈 것입니다. 

 

"버스정류장에 사람이 있다면 버스가 멈출것이다" 라는 사실은 어떻게 예측할 수 있었을까요? 과거에서부터 우리가 보았던 장면이기 때문에 버스정류장에 사람이 기다리고 있다면 버스가 멈출 것이란 사실이 내재적으로 학습되어 있습니다.

 

이렇게 Model-based Reflex Agents 가 영리할수 있는 이유는 과거의 데이터를 저장해 두기 때문입니다. 그리고 이 과거의 흔적으로부터 이럴 땐 이런 영향을 저럴 땐 저런 영향을 끼칠 것이라는 사실을 알고 있습니다. 이것이 Simple Reflex Agents와 가장 큰 차이입니다. 

 

 

 

Goal-based Agents

 

 

 

Model-based Reflex Agents 와의 차이점은 내가 해야할 행동의 목적이 Goal를 위한 것이야 합니다. 이전의 에이전트의 경우 구체적인 목적은 없이 규칙에 부합할 때 정해진 행동을 하게 되지만 Goal-based Agents 는 행동을 실행하기 앞서 이 목적에 부합하는지를 고려하게 됩니다. 

 

다시 한번 자동차의 자동 긴급 제어 시스템을 예로 들겠습니다. 이 시스템의 기능은 주행 중 갑작스럽게 어떤 물체가 튀어나왔고 운전자가 미처 반응하지 못할 때 자동으로  차를 세우는 것입니다. 하지만 궁극적인 목적은 운전자 보호라고 하겠습니다. 주행 중 갑작스럽게 어떤 물체가 튀어나왔고 이 시스템은 차를 멈추려 합니다. 하지만 뒤에서 25톤 트럭이 빠르게 다가오고 있습니다.

 

내가 만약 차를 멈추게 된다면 뒷차와의 충돌을 불가피하며 25톤 트럭이 뒤에서 충돌한다면 운전자의 생명이 매우 위험할 것입니다. 이때 Goal-based Agents 는 운전자의 생명을 보호하겠다는 목적에 따라 차를 멈추지 않고 그대로 치고 가는 방법을 택합니다. 갑작스럽게 튀어나온 물체의 보호가 아니라 운전자의 보호가 목적이기 때문이죠.

 

 

Utility-Based Agents

 

Goal-based Agents는 오로지 성공 아니면 실패 두 가지 결과만을 가지고 있습니다. 성공의 결과를 내지 못한다면 아무리 뛰어난 인공지능이라고 하더라도 결국 실패작이 되어버립니다. 이런 단점을 보완해 결과가 아닌 과정을 중시할 수 있는 즉 효율성을 추구하는 것이 Utility-Based Agents 입니다.

 

행복하자! 를 Goal-based Agents와 Utility-Based Agents 두 가지 에이전트를 통해 이루고자 합니다. 많은 재산을 가진다면 행복할 거야!라는 목표를 세우게 됩니다. Goal-based Agents는 행복해지자라는 목표를 이루기 위해 밤낮없이 일을 하며 돈을 모으고 컵라면 등으로 끼니를 때우며 행복해지자는 목표에 다가갑니다.

 

하지만 이 Goal-based Agents는 목표의 돈을 모으지 못한다면 절대 행복할 수 없을 것입니다. 전제 조건이 많은 재산을 가졌을때 행복할수 있다 이기 때문입니다. 그리고 만약 그 목표를 실패했다면 Goal-based Agents는 한 번도 행복한적이 없게 됩니다. 행복을 목표로 그렇게 노력했지만 단 한번도 행복한 적이 없습니다.

 

다시 한번 행복하자! 를 Utility-Based Agents로 이뤄내려 합니다. 마찬가지로 많은 재산을 가진다면 행복할 거야!라는 목표는 동일합니다. 하지만 Goal-based Agents 와는 다르게 밤낮없이 일하는 행동이 나를 행복하게 만들 수 있을까를 고려합니다. 음 생각해보니 나는 하루에 8시간만 일할 때 행복할 거 같아 라고 판단하고 8시간만 일하게 됩니다. 9시에 출근해 6시에 퇴근하는 순간이 행복합니다.

 

그리고 돈을 절약하기보다는 맛있는 음식을 먹을 때 나는 행복할 거야 라고 판단합니다. 돈을 모으는 금액이 줄어들었지만 맛있는 음식을 먹을 때마다 행복을 느끼게 됩니다. 이 Utility-Based Agents 가 목표를 이뤄냈는지는 중요하지 않습니다. 이 과정 속에서 얼마나 많은, 자주 행복을 느꼈느냐가 중요한 것입니다. Utility-Based Agents의 목표는 목표 달성이라기 보단 효율성의 극대화입니다. 그래서 최적화와 관련되어 있습니다. 

 

 

반응형