일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- GPT
- 디스코드
- embodied ai
- video understanding
- airflow
- vision-language navigation
- discord
- frontend
- 디스코드챗봇
- databricks
- 디스코드봇
- vln
- ChatGPT
- bricksassistant
- 챗봇
- bitcoin
- Rust
- Spark
- s3
- MLFlow
- blockchain
- Ai
- crwaling
- embodied
- 블록체인
- Hexagonal Architecture
- data discovery
- datahub
- backend
- Golang
- Today
- Total
BRICKSTUDY
Reinforcement learning(강화학습) 기본 본문
0. 개요
안녕하십니까, 브릭스터디 박찬영입니다. 지난 포스팅에서는 imitation learning에 대해서 간단하게 알아봤었습니다. 이번에는 그다음 단계라고도 할 수 있는 reinforcement learning에 대해서 살펴보려고 합니다. 참고하는 강의는 계속해서 https://youtu.be/kGc8jOy5_zY?list=PL_iWQOsE6TfVmKkQHucjPAoRtIJYt8a5A 강의를 참고했습니다.
From Prediction to Control

지난 포스팅에 이어서 중요한 개념은 prediction에서 control 측면으로 포커스가 이동하는 부분입니다. prediction과 control에서는 몇 가지 차이점이 있었습니다. 가장 중요한 차이점은 datapoint가 i.i.d. 가 아니라는 것입니다. control 측면에서는 이전의 output이 다음 step의 input에 영향을 준다는 점입니다.

그래서 contorl 측면으로 나아가기 위해서 이전과 다른 notation들을 작성했었고 imitation learning에 대해서 살펴봤었습니다.

imitation learning은 한 마디로, 사람의 행동을 모방한다는 개념입니다. 그래서 전문가가 환경을 관찰하고 수행한 action에 대해서 <state, action> pair로 training data를 만들어놓고 supervised learning을 통해서 policy를 학습하는 개념이었습니다.
1. Reinforcement learning
그런데, 만약 전문가가 없으면, 어떤 action이 좋은지 어떻게 알 수 있을까? 는 생각을 해볼 수 있습니다. 이에 대한 방법으로 어떤 상태나 action이 좋은지 나쁜지 알려주는 함수를 제시할 수 있는데요, 이를 우리는 reward function이라고 합니다.

reward function에서 중요한 것은 우리가 원하는 것이, 지금 당장의 보상이 높은 것이 좋은 게 아니라, 전체 과정이 끝난 뒤에 최종적으로 reward가 높은 것이 중요한 것입니다. (눈앞에 있는 이익보다 전체를 봐야 한다)
1.1. Some Definition
강화학습에 대해서 공부하기 전에 몇 가지 definition에 대해서 알아봅시다.
Markov Decision Process(MDP)
MDP는 Decision process를 modeling 하는 방법이라고 볼 수 있습니다. MDP는 다음과 같이 기술할 수 있습니다.


state와 action을 가지고 markov process를 정의할 수 있습니다. (markov chain with action)

state 간의 이동이 어떤 식으로 이루어지는지 기술하는 내용입니다. state1에서 산출된 action을 가지고 transition probability를 통해 다음 state로 이동하게 됩니다.
Partially Observed Markov Decision Process(POMDP)
POMDP는 환경에서 모든 state를 잘 파악하기 어려운 경우 state 대신에 관측한 observation으로 action을 예측하는 것입니다.

state에서 모든 정보를 알기 어려운 상황이기 때문에, 부분적인 정보 observation을 기반으로 사용합니다.

1.2. The goal of reinforcement learning

강화학습의 목적은 reward를 최대로 하는 parameter를 학습하는 것입니다. parameter가 결정하는 것은 state, action 순서로 이루어지는 전체 trajectory를 의미합니다. 이를 식으로 표현하면, 다음과 같습니다.
(전체 경로에 대한 확률)

이 식을 전개를 하기 전에 단순하게 생각하기 위해서 T=5 정도로 잡고 전개를 해봅시다.
1.

2. 여기서 확률의 chain rule을 적용합니다. chain rule을 먼저 살펴보면 다음과 같습니다.


3. 이를 간단하게 정리하면,

4. Markov property : state transition과 action select는 current state와 current action에만 영향을 받는다.

5. 일반적으로 표현하면, T step까지

6. action을 결정하는 확률을 policy model로 표현하면,

7. 결과적으로


그리고, RL objective를 수학적으로 정의하면, 다음과 같습니다.

즉, 에피소드 전체에서 얻는 보상(누적 보상)의 평균을 최대가 되는 parameter를 찾는 것이 목적입니다.
1.3. First RL algorithm : policy gradients

여기서 모든 가능한 경로에 대해서 계산할 수는 없으니까, sample을 만들어서 전체를 approximate 하려고 하는 것입니다.

i 개의 episode의 최종 누적 리워드 평균을 의미하는 것이고, episode 수만큼 policy를 수행한 다음, 누적 reward를 계산하고, 전체 episode에 대해서 평균을 내는 것입니다.
Direct policy differentiation
이제 결국 parameter를 update 하기 위해서 비용함수의 gradient를 계산을 해야 합니다.

식을 더 간단하게 표현하기 위해서 누적 리워드를 경로로 표현할 수 있습니다. 경로 자체가 누적의 의미를 담고 있기 때문입니다.


이를 통해 비용함수를 표현하면, 결국 누적 리워드의 기댓값을 계산하는 것이기 때문에, 확률의 기댓값 구하는 식으로 표현할 수 있습니다.
1. compute gradient of J

- 여기서 gradient 연산은 linear 연산이기 때문에, 적분 안으로 들어갈 수 있습니다.

여기서 식을 간단하게 하기 위해서 다음 equation을 이용하려고 합니다.


그래서, 결과적으로 다음과 같은 식이 도출됩니다.

그래서 우리가 다시 이전에 구했던 전체 경로에 대한 확률하고 같이 살펴보면,


그런데, 여기서 우리가 parameter 하고 무관한 것들을, 식을 간단하게 만들기 위해서 제거를 해줄 겁니다. 먼저 초기 상태에 대한 확률은 (초기 상태는 주어짐) 고정된 상태로 가정하기 때문에, parameter와 독립적입니다. 그리고, transition 확률은 일반적으로 환경의 다이나믹함을 얼마나 줄 것인지에 따라서 달라지지만, 강화학습 세팅에서는 고정합니다. 따라서 역시 parameter와 독립적입니다. 그래서

자 그래서 강화학습 세팅에서 비용함수에 대한 gradient를 계산하는 식을 유도를 해봤습니다. 여기서 우리는 일전에 모든 가능한 루트에 대한 평가가 어렵기 때문에, sampling을 한다고 했습니다.
다시 식을 작성하면,



이를 기반으로 REINFORCE algorithm은 다음과 같습니다.

Maximum likelihood와 차이점

차이를 살펴보면, reward의 반영 여부입니다. MLE는 단순 true distribution(관측 데이터의 분포)만을 따라 하려고 하는 것이고, 행도의 좋고 나쁨을 모릅니다. 즉, 관측 action1, action2, action3 순서를 따라하려고 하는 것이 목표입니다.
Reward의 역할을 통해서 state 또는 환경에 따라서 action의 좋고 나쁨을 학습할 수 있는 것이 중요 포인트입니다.
이것이 trial & error 방식의 수학적 모델링이라고 볼 수 있습니다.
2. 마치며.
이번 포스팅에서는 강화학습에 대해서 기본적인 부분들을 알아봤습니다. 수학적인 이야기들이 많아서 이해가 어려울 수 있습니다. 자연스럽게 따라오면서 천천히 검색도 해보시면 좋을 것 같습니다. 이 외에도 강화학습은 꾸준히 발전하면서, 지금은 더 많은 부분들을 커버하고 발전한 형태를 가지고 있습니다. 이런 부분들은 저도 아직 잘 모르기 때문에, 차차 알아가고 공유하도록 하겠습니다.
감사합니다.
'AI' 카테고리의 다른 글
새해를 여는 Large Action Model (0) | 2025.01.19 |
---|---|
Imitation Learning에 대해서... (0) | 2024.12.08 |
Attention, Transformer를 알아보자 (0) | 2024.11.05 |
RNN, Sequence-to-Sequence model (0) | 2024.11.04 |
인공지능 기초 Optimization (0) | 2024.10.26 |