강화학습(Reinforcement Learning)/파이썬과 케라스로 배우는 강화학습

01. 강화학습의 개요

DongJin Jeong 2020. 4. 26. 16:41

강화학습이란?

에이전트(Agent)가 주어진 환경에서 행동함으로써 행동에 대한 결과물인 보상을 얻는다.
에이전트는 자신의 행동과 행동의 결과를 학습하면서 어떤 행동을 해야 좋은 결과를 얻게되는지 알게되고, 점점 받는 보상을 높게 하기 위한 행동을 하게된다.

강화학습의 목적

에이전트가 환경을 탐색하면서 얻는 보상들의 합을 최대화하는 최적의 행동양식, 또는 정책을 학습하는 것이다.

강화학습 vs 지도학습

지도학습에서는 직접적인 정답을 통해 오차를 계산해서 학습하지만, 강화학습에서는 자신의 행동의 결과로 나타나는 보상을 통해 학습한다.

에이전트(Agent)

강화학습 내에서 스스로 학습하는 컴퓨터를 에이전트(Agent) 라고 칭한다. 에이전트는 환경과 상호작용하여 최적의 결과를 학습해나간다.

에이전트와 환경의 상호작용

강화학습 문제

강화학습은 결정을 순차적으로 내려야 하는 문제에 적용가능하다.
또한 순차적 행동 결정 문제를 수학적으로 표현할 수 있어야 하는데, 그렇지 않으면 에이전트의 입장에서는 학습을 하거나 최적화하기 어려울 것이기 때문이다.

순차적 행동 결정 문제를 정의할 때 사용하는 방법은 MDP(Markov Decision Process, 마르코프 결정 과정) 이라고 한다.

마르코프 결정과정(MDP; Markov Decision Process)

MDP는 의사결정 모델을 모델링하는 수학적인 틀을 제공한다.
MDP의 궁극적인 목표는 최적 정책(Optimal Policy) 을 찾는 것이며, MDP의 구성요소는 다음과 같다.

상태(State)

현재 에이전트의 정보.
에이전트는 상태를 통해 상황을 판단해서 행동을 결정하기 때문에 충분한 정보를 제공해야 한다.
만약 탁구를 치는 에이전트에게 단순히 공의 위치만 상태로 제공한다면, 적절한 학습을 하기 어려울 것이다. 탁구를 치는 것을 학습하기 위해서는 공의 위치뿐만 아니라, 공의 속도, 가속도 등의 정보도 가지고 있어야 한다.

에이전트 (Agent) 상태 (State)
탁구를 치는 에이전트 공의 위치, 속도, 가속도

행동(action)

에이전트가 어떠한 상태(State) 에서 취할 수 있는 행동.

에이전트 (Agent) 상태 (State) 행동 (Action)
탁구를 치는 에이전트 공의 위치, 속도, 가속도 상, 하, 좌, 우, 타격 등

보상(reward)

에이전트가 자신이 했던 행동(Action) 들을 평가할 수 있게 만드는 정보.

강화학습의 목표는 시간에 따라 얻는 보상들의 합을 최대로 하는 것이며, 동시에 에이전트가 학습할 수 있는 유일한 정보이기도 하다.

보상은 에이전트에 속하지 않는 환경의 일부이며, 따라서 에이전트는 어떤 상황에서 얼마의 보상이 나오는지 알지 못한다.

에이전트 (Agent)상태 (State)행동 (Action)보상 (Reward)
탁구를 치는 에이전트공의 위치, 속도, 가속도상, 하, 좌, 우, 타격 등

턴 진행마다: -0.1

실점 시: -1

득점 시: +1

정책(policy)

에이전트가 보상을 얻으려면 행동을 해야하는데, 특정 상태가 아닌 모든 상태에 대해 에이전트가 어떤 행동을 해야하는 지 알아야 한다.

이 때, 모든 상태에 대해 에이전트가 어떤 행동을 해야 하는지 정해놓은 것을 정책이라고 한다.

제일 좋은 정책은 최적 정책(Optimal Policy) 이라고 하며, 최적 정책을 따른다면 행동했을 때 보상의 합을 최대로 받을 수 있다.