데이터사이언스/강화학습

강화학습 - (6) 보상

Johnny Yoon 2020. 9. 7. 14:18
728x90
반응형

강화학습

보상(Reward)

강화학습의 목적은 미래의 보상을 최대화 하는 것이다.

Bandit 문제에서는 당장 앞에있는 보상을 최대화 하는 것이 목적이었지만,

MDP에서는 조금 더 미래의 상태들을 고려해 행동을 선택한다.

 

예제)

로봇이 걷는 것을 에이전트와 보상에 비유해보자.

로봇이 많이 걸을수록 보상을 얻는다고 할 때,

로봇이 점프해서 슬라이딩을 하면 당장의 보상이 클 것이다.

하지만 다시 일어나서 걷는 것을 생각하면, 미래의 보상은 작아지기 때문에,

MDP를 따르면 로봇이 그냥 걷는것이 미래의 보상을 더 높이는 방법이다.

 

에이전트의 목표

에이전트가 얻을 수 있는 결과(return)은 다음과 같이 정의할 수 있다:

$$G_t \dot{=} R_{t+1} + R_{t+2} + R_{t+3} + ...$$

 

여기서 MDP의 모든 과정은 확률로 정의되기 때문에, 결과 $G$는 랜덤변수(random variable)이다.

MDP의 과정이 확률적이라는 것은, 같은 상태에 있더라도,

현재의 행동 또는 과거의 행동에 따라 결과가 다를 수도 있고,

또한 행동에 기반하지 않더라도 결과가 다른 상태가 존재할 수 있기 때문이다.

 

따라서 에이전트의 목표는 다음과 같이 위 수식에 기대값(expectation)을 더해준다:

$$\mathbb[G_t] = E[R_{t+1} + R_{t+2} + R_{t+3} + ...]$$

그리고 에이전트의 목표는 이 기대값을 최대화 하는 것이다.

 

에피소드

위의 기대수식을 조금 더 자세히 정의하기 위해서는, 리워드의 집합이 유한(finite)해야 한다.

에이전트의 리워드의 시퀀스는 보통 에피소드(episode)라고 하는 단위로 정의 된다.

 

 

각 에피소드가 끝날때마다 에이전트는 시작상테로 리셋된다.

또한 각 에피소드는 최종 상태(final state, terminal state)가 존재한다.

따라서 이 최종 상태에서 받는 보상을 최대화 하는것이 에이전트의 궁극적인 목표이다.

 

예제)

체스게임을 예로 들어본다면, 에피소드의 시작상태는 모든 말들이 시작자리에 있는 상태이다.

그리고 최종 상태는 한쪽의 킹이 죽거나 더이상 움직일 수 없는 상태이다.

 

보상 가설 (Reward Hypothesis)

유명한 딥마인드의 강화학습 학자 David Silver는 다음과 같이 말했다:

"All goals can be described by the maximization of expected cumulative rewards"

그렇다면 현실의 문제에 대해서 보상은 어떻게 정의해야 할까?

 

예제)

이런 문제가 항상 어렵지는 않다.

주식 거래를 하는 강화학습 에이전트는 간단히,

주식을 사고 팔 때 드는 비용을 보상으로 정의할 수 있고,

최종적으로 벌어들인 돈을 보상으로 설정할 수 있다.

 

하지만 보상을 정의하는데에 어려움을 겪을 수 있는 문제들이 있다.

예를 들어 에어컨을 자동으로 틀어주는 에이전트를 만들었다고 하면,

온도의 높낮이에 따라 에어컨을 켜고 끄면 되지만,

사람의 더움에 대한 짜증지수나 추움을 느끼는 정도를 정량화 할수는 없다.

따라서 이러한 경우에는 보상을 디자인 하기는 어렵다.

 

보상을 목표로 정의

<goal-reward representation>

보상을 정의하는 한가지 방법은, 목표를 보상으로 정의하는 것이다.

다른말로 하면 목적을 이루었다면 1, 이루지 못했다면 0으로 보상을 주는 것이다.

<action-penalty representation>

이는 에이전트에게 불이익을 줌으로서 디자인 할 수도 있다.

목적을 이루었다면 0, 이루지 못했다면 -1의 보상을 주는 것이다.

 

두가지의 경우 아래와 같은 큰 문제점들이 있다:

  • 여러가지 목표가 있을 경우 각 목표의 중요도를 설정할 수가 없다.
  • 또한 에피소드가 길 경우(long horizon) 빠르고 정확하게 학습할 수 없다.

**강화학습에서는 종종 전체 에피소드를 horizon이라고 표현한다.

 

보상을 디자인 하는 방법

프로그래밍을 통해

  • 가장 많이 사용되는 방법
  • 수학 수식을 프로그래밍으로 옮기거나
  • 사람이 어떠한 로직(if-else와 같은)으로 디자인 한다

예제를 통해

  • 실제 예시를 모방함으로서 주어지는 방법
  • 역강화학습 (Inverse Reinforcement Learning): 에이전트가 실제 예시를 잘 따라했는지에 따라 보상

최적화를 통해

  • 진화적 최적화 (eg. Genetic Algorithm)
  • 추상화된 행동들에 스코어를 매길 수 있다면,
  • 최적화 프로세스를 통해 이 보상들을 찾아낼 수 있다.
  • 또한 이 경우 보상을 인센티브와 같이 적용할 수도 있다.
  • 메타러닝 (Meta RL): 어떤 행동이 어떤 보상을 주는지를 검색해 학습하는 분야.

 

728x90
반응형