Model-free RL의 기초 -2 모델 없이 정책 개선하기

이정운·2022년 2월 8일
0

강화학습

목록 보기
5/8

강화학습 시리즈는 패스트캠퍼스 박준영 강사님의 수업과 Sergey Levine의 Deep Reinforcement Learning 그리고 서튼의 강화학습 교재를 참고하여 만들어졌고 어떤 상업적 목적이 없음을 밝힙니다.

Preview

우리는 이전 시간에 상태 천이 확률 함수 없이도 가치를 추정하는 방법에 대해서 알아 보았다.

환경에 대한 지식을 알 때 Policy Evaluation
Vπ(s)aAπ(as)(Rsa+γsSPssaVπ(s))V^\pi(s) \leftarrow \sum_{a \in A} \pi(a|s)(R_s^a+\gamma \sum_{s` \in S} P_{ss`}^a V^\pi(s`))

환경에 대한 지식을 모를 때 Policy Evaluation

  • Monte Carlo (Incremental)
    V(st)V(st)+α(GtV(st))V(s_t) \leftarrow V(s_t) + \alpha (G_t-V(s_t))
  • TD Difference (Incremental)
    V(st)V(st)+α(rt+γV(st+1)V(st))V(s_t) \leftarrow V(s_t)+\alpha(r_t+\gamma V(s_{t+1})-V(s_t))

Monte Carlo 방식은 다양한 길이의 EPisode를 통해 계산한 Episodic Reward GtG_t를 가지고 VV를 추정하기 때문에 편향이 거의 없다. 하지만 Episode 길이에 차이가 있어 분산이 커 정확한 VV에 수렴하기 위해서는 많은 시뮬레이션을 돌려야 한다.

TD 방식은 Episode가 끝나지 않더라도 (st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1}) Transition을 가지고 가치를 지속적으로 갱신 최적 가치 함수를 추정할 수 있으나 사용하는 Episode 길이가 너무 짧아 Bias가 존재해 Local Optima에 빠질 우려가 있다. 하지만 분산은 Monte Carlo보다 상대적으로 작으며 Local Optima에 빠질 가능성은 있지만 빠르게 괜찮은 가치 함수를 얻을 수 있다.

Generalized Policy Iteration

Dynamic Programming의 Policy Iteration에서는 정책 평가정책 개선 을 이용하여 최적 가치함수와 최적 정책을 추정해 나갔다.

Generalized Policy Iteration에서는
정책 평가를 MC,TD를 이용하였다.

이제 정책 개선을 어떻게 하는지에 대해서 알아보자.

Greedy Policy Improvements

Epsilon Greedy

Background

강화학습은 전통적인 Greedy-Algorithm의 문제점을 해소하기 위해서 만들어 졌다. Greedy-Algorithm은 쉽게 말해 지금 상태에서 최선의 선택을 하는 것을 말하는데 강화학습에서는 이것을 Exploitation이라고 한다.

하지만 정책 평가 부분에서 우리가 배웠듯이 최적 가치 함수로 수렴하기 위해서는 편향없는 다양한 Data가 필요하다. (Data-Diversity가 중요) 그런데 지금 Agent의 정책에서 가장 최선의 선택만을 한다면 Data에 편향이 생겨 Local-Optima에 빠질 가능성이 있다.

이것을 해결하기 위해 Agent에게 지금 정책으로 최선이 아닌 선택을 강요하는데 이것을 Exploration이라고 하며 지금까지 강화학습에서 활발하게 연구되고 있는 주제이다.

이 시간에는 Exploration을 주기위해 전통적으로 그리고 지금도 많이 사용되고 있는 epsilon greedy에 대해서 알아보자

정의


개발자가 ϵ\epsilon 값을 정해주고 Agent가 행동을 선택하기 전에 임의의 난수를 만들도록 한다. 만약 만들어진 난수가 ϵ\epsilon보다 작다면 Exploration을 하도록 명령하는데 지금 정책에서 만들어진 (s,a)의 Q값중에 제일 큰 값을 고르는 게 아니라 임의로 선택하게 하는 것이다. 반면 ϵ\epsilon보다 큰 값이 나오면 기존에 Greedy-Algorithm 처럼 Exploitation을 하도록 명령한다.

Monte-Carlo + GLIEEpsilon Greedy

이제 정책 평가으로 Monte Carlo 정책 개선으로 epsilongreedyepsilon-greedy를 이용해 Generalized Policy Iteration을 할 수 있다.

그런데 ϵ\epsilon 값은 고정할 수도 있지만 보통 훈련 초기에 높은 값을 설정하고 훈련을 지속하면서 그 값을 점차 줄여나가 후반에는 거의 0으로 만든다. 이 방법을 GLIE(Greedy in the Limit of Infinite Exploration)-greedy 라고 한다.

잘보면 α,ϵ\alpha,\epsilon값을 적절하게 정하는 것이 중요한 문제라는 것을 눈치 빠른 독자들은 알아챘을 거라고 생각한다. 이런 것들을 Hyper Parameter라고 하며 고도화된 강화학습일수록 사람이 정해줘야 하는 Hyper Parameter 수가 많아진다. 그래서 강화학습은 하이퍼 파라미터와의 싸움이라고도 부른다.

SARSA

SARSA 방식은 TD 방식을 통해 V가 아닌 Q를 갱신 추정해 나가는 Policy Evalutation 알고리즘이다.

Definition

  • TD V
    V(st)V(st)+α(rt+γV(st+1)V(st))V(s_t) \leftarrow V(s_t)+\alpha(r_t+\gamma V(s_{t+1})-V(s_t))
  • SARSA
    Q(st,at)Q(st,at)+α(rt+γQ(st+1,at+1)Q(s,a))Q(s_t,a_t) \leftarrow Q(s_t,a_t)+\alpha(r_t+\gamma Q(s_{t+1},a_{t+1})-Q(s,a))


가치 함수 추정에 s,a,r,s,a가 필요하기 때문에 SARSA 알고리즘이라고 부른다.

Pseudocode

SARSA Control

SARSA Control은 정책 평가로 SARSA 정책 개선으로 ϵ\epsilon-greedy를 사용한 Generalized Policy Iteration이다.

Conclusion

우리는 이전 시간과 오늘 시간까지해서 환경을 몰라 Dynamic Programming을 사용하여 가치 함수를 추정할 수 없는 상황에서 Generalized Policy Iteration을 어떻게 해야 하는지에 대하여 알아 보았다.

Generalized Policy Iteration을 정책 평가정책 개선으로 이루어져 있는데 정책 평가는 개선된 정책으로 정책 값을 수정 정책 개선은 개선된 가치 함수값으로 정책을 수정하는 과정이다.

정책 평가로 Monte-Carlo 방식과 TD 방식을 사용하고

정책 개선으로 ϵ\epsilon-greedy를 사용한다.

Generalized Policy Iteration은 크게

  • Monte-Carloϵ\epsilon-greedy을 조합하는 방법
  • SARSA(TD)ϵ\epsilon-greedy 을 조합하는 SARSA Control로 나뉜다.

Monte-Carlo와 SARSA의 가치 추정방식 모두 Stochastic Approximation 정리에 의해 적당히 작은 α\alpha값을 설정하면 최적 가치 함수로 수렴하는 것이 보장 된다.

profile
헬스 ,강화학습,3D Vision,Robotics를 좋아하는 엔지니어 입니다.

0개의 댓글