상세 컨텐츠

본문 제목

딥러닝 (8) - [RL1] 강화학습(Reinforcement Learning)이란?

IT/Deep Learning

by HarimKang 2020. 3. 22. 01:36

본문

Writer: Harim Kang

해당 포스팅은 '시작하세요! 텐서플로 2.0 프로그래밍'책의 흐름을 따라가면서, 책 이외에 검색 및 다양한 자료들을 통해 공부하면서 정리한 내용의 포스팅입니다. 해당 내용은 강화학습(Reinforcement Learning)에 대한 내용을 담고 있습니다.

강화학습(Reinforcement Learning)

강화학습이란?

강화(Reinforcement)는 시행착오(Trial and Error)를 통해 학습하는 방법 중 하나를 의미합니다. 이러한 강화를 바탕으로 강화학습은 실수와 보상을 통해 학습을 하여 목표를 찾아가는 알고리즘입니다. 기존의 신경망들이 라벨(정답)이 있는 데이터를 통해서 가중치와 편향을 학습하는 것과 비슷하게 보상(Reward)이라는 개념을 사용하여 가중치와 편향을 학습하는 것입니다. 목적은 최적의 행동양식 또는 정책을 학습하는 것입니다.

종류

  • Model-Based Algorithm
    • 해당 알고리즘은 환경(Environment)에 대한 모든 설명(Description)을 알고 문제를 푸는 방법입니다.
    • 핵심은 직접 행동을 하지 않고, 최적의 솔루션을 찾을 수 있다는 점 입니다.
    • 모델은 상태(State)와 행동(Action)을 받아서 다음 상태와 보상을 예측합니다.
    • 모델은 Planning에 사용되며, 경험 전에 가능한 미래 상황을 고려하여 행동을 예측합니다.
    • 모델과 Planning을 사용하여 해결하는 방식을 Model-Based라고 합니다.
  • Model-Free Algorithm
    • 해당 알고리즘은 Model-Based와 달리 환경(Environment)을 모르는 상태에서 직접 수행하는 방식입니다.
    • 에이전트(Agent)가 행동을 통해 보상 합의 기대값을 최대로 하는 Policy Function을 찾는 것입니다.
    • 환경에 대해 알지 못하고, 다음의 상태와 보상을 수동적으로 행동하여 얻습니다.
    • 환경 파악을 위해서 탐사(Exploration)을 합니다.
    • 탐사는 시행착오(Trial and Error)를 통해서 Policy Function을 점차적으로 학습시킵니다.

특징

  • 환경(Environment)에 대한 사전지식이 없는 상태로 학습을 진행합니다.
  • 보상을 통하여 학습을 합니다.
  • 컴퓨터가 선택한 행동(Action)에 대한 환경의 반응에 따라 보상이 주어집니다.
  • 행동의 결과로 나타나는 것이 보상이며 이것을 통하여 학습을 진행합니다.
  • 보상을 최대한 많이 얻도록 하는 행동을 유도하도록 학습을 진행합니다.

강화학습이 해결 가능한 문제

강화학습은 결정을 순차적으로 내려야 하는 문제에 적용을 합니다. 순차적으로 내려야 하는 문제를 정의하기 위해서는 MDP(Markov Decision Process)를 사용합니다.

문제를 푸는 과정은 아래와 같은 순서로 풀게 됩니다.

  1. 순차적 행동 문제를 MDP로 전환합니다.
  2. 가치함수를 벨만 방정식으로 반복적 계산합니다.
  3. 최적 가치함수와 최적 정책을 찾습니다.

MP(Markov Process, Chain) : MP는 이산 시간이 진행함에 따라 상태가 확률적으로 변화하는 과정을 의미합니다. 시간 간격이 이산적이고 현재의 상태가 이전 상태에 영향을 받는 확률 과정입니다. 이것을 기초로하여 MDP가 정의됩니다.

MDP(Markov Decision Process)

  • 상태(State) : 정적인 요소 + 동적인 요소를 의미합니다.
  • 행동(Action) : 어떠한 상태에서 취할 수 있는 행동을 의미합니다.
  • Stochastic transition model : 어떤 상태에서 특정 행동을 하여 다음 상태에 도달할 확률
  • 보상(Reward) : Agent가 학습할 수 있는 유일한 정보를 의미합니다. 어떤 상태에서 행동을 하여 다음 상태가 되고, 이때 받는 보상값은 다음 상태가 되는 것에 대한 보상입니다.
  • 정책(Policy) : 순차적 행동 결정 문제(MDP)에서 구해야할 답을 의미합니다. 모든 상태에 대해 Agent가 어떠한 Action을 해야 하는지 정해놓은 것을 의미합니다.
  • 목표는 최적의 정책(Optimal Policy)을 찾는 것입니다.

가치함수(Value Function)

순차적인 결정 문제(Sequential Decision Problem, MDP)을 풀기 위해서는 가치함수(Value Function)을 정의해야합니다. 가치함수는 현재 상태의 정책을 따라갔을 때 얻는 예측 보상의 총 합을 의미합니다. 이때 현재 보상의 추세인 감가율을 고려하여 미래 보상을 예측합니다. 에이전트는 가치함수를 통해서 보상의 합을 최대로 한다는 목표에 얼마나 다가갔는지를 판단합니다. 가치함수에 대한 방정식은 벨만 방정식(The Bellman Equation)입니다.

벨만 방정식(The Bellman Equation)

위의 그림을 보시면, 벨만 방정식을 사용하여 각각 상태에 대한 가치함수 기대값을 얻을 수 있습니다. 이것들을 모두 계산하여 최적의 정책을 찾는 것입니다.

벨만 방정식은 현재 상태와 다음 상태의 관계를 나타내는 방정식입니다. 두가지 종류가 존재합니다.

  • 벨만 기대 방정식 : 반복적으로 기대값을 업데이트하기 위해서, 현재와 다음의 가치함수 사이 관계를 정의합니다. 특정 정책일 때의 가치함수 사이의 관계를 의미합니다. 모든 상태에 대한 가치함수를 반복적으로 업데이트하여 참 가치함수값이 나옵니다. 현 정책에 대한 수렴값을 구할 수 있습니다.
  • 벨만 최적 방정식 : 가장 큰 가치함수를 구하는 정책을 최적 정책이라고 합니다. 벨만 기대 방정식에 맞춰 더 좋은 정책을 찾아내면 해당 정책이 바로 최적의 정책입니다. 이때, 최적의 가치함수 값을 내는 것을 최적 가치함수라고 하며, 그 때의 정책이 최적 정책입니다. 이때 가치함수들 사이의 관계식을 벨만 최적 방정식이라고 합니다.

벨만 방정식은 다이나믹 프로그래밍(Dynamic Programming, DP)으로 작은 문제들로 쪼개서 풀게 됩니다. 각 상태에서의 가치함수를 구하고 업데이트를 하고, 업데이트 이후의 가치함수를 다시 구하는 방식으로 반복합니다.

  • 다이나믹 프로그래밍(DP)
    • 정책 이터레이션(Policy Iteration) : 벨만 기대 방정식을 이용하여 문제를 푸는 방식입니다.
      • 초기에는 무작위로 지정된 정책을 시작으로, 업데이트를 반복하여 정책을 평가(Policy Evaluation)하고, 발전해나갑니다. 이를 반복하는 방법입니다.
      • 정책의 평가 방법은 가치함수를 이용하는 것인데, k번째 값을 이용하여 k+1번째 값을 업데이트 하는 방식입니다. 주변 상태들을 함께 살피고, 주변 상태의 가치함수를 사용하여 감가율을 곱하고 보상을 더해서 가능한 모든 행동에 대한 확률을 곱하고 더하는 순서로 업데이트를 진행합니다.
    • 가치 이터레이션(Value Iteration) : 벨만 최적 방정식을 이용하여 문제를 푸는 방식입니다.
      • 정책 이터레이션을 이용하여 최적의 가치함수를 얻을 때까지 반복하는 방식입니다.

정책(Policy)

모든 상태에서 에이전트가 할 행동을 의미합니다. 최적의 정책은 부분 수열 상태의 기대값이 최대가 되는 정책입니다.

 

구성요소

  • Environment(State)
  • Agent
  • Action
  • Reward
  • Policy

Reference

Reinforcement Learning : https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/ch01.html
MDP : https://www.google.co.kr/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwiL94CAyMrXAhUBnpQKHbXiANUQjRwIBw&url=https://www.analyticsvidhya.com/blog/2017/01/introduction-to-reinforcement-learning-implementation/&psig=AOvVaw3v6pS7AfGQM5hI3R3F42gn&ust=1511178177569000
The Bellman Equation : http://link.koreatech.ac.kr/wp-content/uploads/2018/03/Chapter2_Bellman_Equation_02.pdf

관련글 더보기