강화학습 알고리즘의 종류(분류)

2022.03.04 20:00 21,271 Views

안녕하세요! 데이크루 1기입니다 😊

pytorch에 대해 기초적인 것을 공부하며 꾸준히 코드를 올렸는데요 !  마지막 챕터였던 강화학습에 대하여 조금 더 알아보고자 하였습니다.

강화학습의 종류와 그 분류방법에 대해서 정리해보고자 합니다.


-------------------------------------------------------


1. 강화학습이란?

✔️주어진 환경과 상호작용하여 좋은 점수를 얻는 방향으로 성장하는 머신러닝 분야를 '강화학습(reinforcement learning)'이라고 합니다.

  • 게임(예: 아타리, 마리오)에서 주로 사용되었으며 인간과 동등하거나 그 이상의 성능을 보였습니다.
  • 최근에는 알고리즘이 신경망의 조합과 함께 발전함에 따라 진자 문제와 같은 보다 복잡한 작업을 해결할 수 있게 되었습니다.
  • 강화학습은 크게 상태(state), 에이전트(agent), 행동(action), 보상(reward) 4가지 요소로 나눌 수 있습니다.
  • 에이전트(agent) : 인공지능 플레이어입니다.
  • 환경(state) : 에이전트가 솔루션을 찾기 위한 무대입니다.
  • 행동(action) : 에이전트가 환경 안에서 시행하는 상호작용입니다.
  • 보상(reward) : 에이전트의 행동에 따른 점수 혹은 결과입니다.


2. 에이전트(agent)의 구성요소?

✔️ 강화학습의 분류 체계를 알아보기 전에 먼저 분류의 기준이 되는 강화학습 agent(행위자)의 구성 요소에 대해 알아보아야 합니다. 강화학습의 agent는 크게 다음 세가지의 요소를 갖습니다.

➡️ 1. Policy

  • Agent의 행동 패턴입니다. 주어진 환경(state)에서 어떤 행동(action)을 취할지 말해줍니다. 즉, 환경(state)을 행동(action)에 연결 짓는 함수입니다.
  • Policy는 크게 deterministic(결정적) policystochastic(확률적) policy로 나뉩니다.
  • Deterministic policy는 주어진 환경(state)에 대해 하나의 행동(action)을 주고, stochastic policy는 주어진 환경(state)에 대해 행동(action)들의 확률 분포를 줍니다.


➡️ 2. Value function

  • 환경(State)과 행동(action)이 나중에 어느 정도의 보상(reward)을 돌려줄지에 대한 예측 함수입니다.
  • 즉, 해당 환경(state)과 행동(action)을 취했을 때 이후에 받을 모든 보상(reward)들의 가중합입니다.
  • 이때, 뒤에 받을 보상(reward) 보다 먼저 받을 보상(reward)에 대한 선호를 나타내기 위해 discounting factor λ를 사용합니다.


➡️ 3. Model

  • 다음 환경(state)과 보상(reward)이 어떨지에 대한 agent의 예상입니다. State model Reward model로 나눌 수 있습니다.


3. 강화학습 알고리즘의 구분?

➡️ 1. Model-Free vs Model-Based

  • 강화학습 알고리즘을 구분은 첫번째 구분은 environment에 대한 model의 존재 여부입니다. Model을 갖는 것은 장점과 단점이 있습니다.
  • Model을 갖는 것의 장점은 Planning(계획)을 가능하게 한다는 것입니다. 즉, 자신의 행동(action)에 따라서 environment가 어떻게 바뀔지 안다면 실제로 행동하기 전에 미리 변화를 예상해보고 최적의 행동을 계획하여 실행할 수 있습니다. 이와 같은 계획이 가능하다면 agent는 훨씬 효율적으로 행동할 수 있을 것입니다.
  • Model을 갖는 것의 단점은 environment의 정확한 model은 보통 알아내기가 어렵거나 불가능하다는 점입니다. 혹시라도 Model이 environment를 제대로 반영하지 않는다면 이 오류는 그대로 agent의 오류로 이어지게 됩니다. 정확한 model을 만드는 것은 좋은 agent를 만드는 것만큼 또는 더 어려울 수 있습니다.
  • Model을 사용하는 agent를 model-based라고 부르고 그렇지 않은 agent를 model-free라고 부릅니다.
  • Model-based agent는 다시 모델이 주어져 있는지 아니면 학습 대상인지에 따라 구분할 수 있습니다.


➡️ 1. Value-Based vs Policy-Based (On-Policy vs Off-Policy)

  • 강화학습 알고리즘의 두번째 구분은 value function과 policy의 사용 여부입니다.
  • 만약 value function이 완벽하다면 최적의 policy는 자연스럽게 얻을 수 있습니다. 각 state에서 가장 높은 value를 주는 행동(action)만을 선택하면 될 테니까요. 이를 implicit (암묵적인) policy라고 합니다. Value function 만을 학습하고 policy는 암묵적으로만 갖고 있는 알고리즘들이 있습니다. 이를 value-based agent라고 부릅니다. DQN 등이 여기에 해당합니다.
  • 반대로 Policy가 완벽하다면 value function은 굳이 필요하지 않습니다. 결국 value function은 policy를 만들기 위해 사용되는 중간 계산일 뿐이니까요. 이처럼 value function이 없이 policy만을 학습하는 agent를 policy-based라고 부릅니다. Policy Gradient 등이 여기에 해당합니다.
  • Value-based agent는 데이터를 더 효율적으로 활용할 수 있다는 장점이 있습니다. 이에 비해 policy-based agent는 원하는 것에 직접적으로 최적화를 하기 때문에 더욱 안정적으로 학습된다는 장점이 있습니다.
  • 두 극단적인 케이스만 있는 것은 아닙니다. Value function과 Policy를 모두 갖고 있는 agent도 있습니다. 이를 Actor-Critic agent라고 부릅니다.


4. 강화학습 알고리즘의 구분에 따른 예시

✔️각 카테고리의 알고리즘 예시는 아래 그림에서 볼 수 있습니다. 그림에서 Policy Optimization는 policy-based를 뜻하고 Q-Learning은 value-based를 뜻합니다.

rl_taxonomy

이미치 출처 : https://dreamgonfly.github.io/blog/rl-taxonomy/



-------------------------------------------------------


강화학습은 여전히 제겐 좀 어렵고 생소한 주제인 것 같습니다 🥲 관련하여 더 알아보고 싶다는 생각이 들었습니다!

읽어주셔서 감사합니다 😊

  *본 포스팅은 데이콘 서포터즈 “데이크루" 1기 활동의 일환입니다. ✔️


참고
https://dacon.io/codeshare/4613
https://insightcampus.co.kr/2021/11/30/%EB%8B%A4%EC%96%91%ED%95%9C-%EA%B0%95%ED%99%94-%ED%95%99%EC%8A%B5-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-q-learning-sarsa-dqn/
https://dreamgonfly.github.io/blog/rl-taxonomy/





로그인이 필요합니다
0 / 1000
sssssun
2022.03.05 11:39

pythorch 코드공유글들 잘 읽었습니다! 알고리즘 종류는 다양하고 많아서 항상 헷갈리고 구글링해서 썼는데, 정리해주시니까 보기 편리한 것 같아요~! 좋은 게시글 감사합니다:)

동화책
2022.03.06 14:19

강화학습에 대해 알고 싶었는데 꼼꼼하게 설명해주셔서 감사합니다! 🤓

yoonj
2022.03.06 23:21

강화학습을 공부할 때 낯선 개념들이라 어려웠던 기억이 있는 데 꼼꼼히 설명해주셔서 잘 이해되었습니다 감사합니다!