티스토리 뷰
1. 강화학습이 뭘까?
강화학습이란 머신러닝의 하나 입니다. 그럼 머신러닝은 뭘까?
머신러닝이란 간단하게 기계가 데이터를 가지고 공부를 한다고 생각하면 될 것 같습니다. 그리고 공부한 뒤 다음에 새로운 환경이 주어졌을 때, 그동안 공부했던 것을 기반으로 답을 제시하는 것이라고 생각하면 될 것 같습니다.
그렇다면 강화학습도 머신러닝의 한 종류라고 했으니 같은 맥락으로 이해하면 될 것 같습니다.
그럼 이제 강화학습으로 들어가보겠습니다.
강화학습이란 어떠한 환경(Environment) 안에서 정의된 Agent가 현재의 상태를 인식하여, 선택 가능한 행동(Action)들 중 보상(Reward)을 최대화 하는 행동(Action)이나 행동순서(Policy)를 선택하는 학습 방법입니다.

2. 강화학습의 요소
간단한 예를 들어보자면 아래 그림과 같은 5x5 공간에 Agent가 있습니다. Agent의 State는 {(x_i, y_i)}으로 표현할 수 있고 Action은 위아래좌우가 될 수 있습니다. 또한 Reward는 s State에서 a Action을 했을 때 R가 제공됩니다. DiscountFactor란 최적의 길을 찾기 위함으로 아래 그림의 오른쪽 아래를 보면 Discount Factor가 없다면 위로 멀리 돌아가는 길이나 아래로 짧게 가는 길이나 똑같이 Goal에 도착하므로 같은 평가를 받게 됩니다. 하지만 Discount Factor가 있다면 더 짧은길을 택하게 됩니다.

다음으로 정책(Policy)에 대해서 알아봅시다. 정책이란 Agent가 어떤 State s에 있을 때, 행동 a를 해가면서 점점 발전하게 될 의사결정 전략입니다. "제대로 잘" 학습하게 된 Agent는 State에서 어떠한 행동을 해야할지 알고 있는겁니다.

따라서 강화학습의 목표는 최고의 Reward를 가지는 최적의 Policy를 찾는 것라고 할 수 있습니다.
3. Value Function
그렇다면 어떻게 최적의 Policy를 찾아갈 수 있을까요? 바로 앞으로 받을것으로 예상되는 Reward를 다 더하면 됩니다. 한마디로 내가 지금 상황에서 어떠한 행동을 했을 때 다가오는 미래를 알면 된다는 이야기입니다. 예를 들어 상한 음식을 먹으면 몸이 아프다. 태어나자마자는 이 사실을 알 수 없습니다. 하지만 듣고 보고 직접 경험해보기도 하면서 내 머리 속에는 정책이 생기게 됩니다. 상한 음식을 보면 바로 "아 먹으면 배가 아프니까 안먹어야겠다."라는 생각이 드는거죠.

Value Function에는 State Value Function과 Action Value Function이 있습니다. State Value Function은 현재 State에서 예상되는 Reward의 합이고, 아래 식과 같이 표현할 수 있습니다.

또한 Action Value Function은 현재 State s에서 Action a를 했을 때, 예상되는 Reward의 합이 됩니다.

4. Model Based vs Model Free
다음은 Model Based 와 Model Free에 대해서 이야기 해보겠습니다. 아래 그림을 보면서 이야기를 해보자면 Model Based는 환경의 Model을 정확히 알고 있을 때 계산을 통해 문제를 해결하는 것이라고 표현할 수 있습니다. 즉 아래 그림에서 현재 있는 위치에서 Navigation을 보고 어떤 길을 선택했을 때 어떤 결과를 가져오는지 알 수 있습니다. 하지만 반대로 Model Free는 전체 상태를 알지 못하고 현재 내가 가진 정보만을 가지고 결정하게 됩니다.

모든 학습이 Model Based 처럼 Model 전체를 알고 있으면 좋지만, 실제로 대부분의 Model은 제대로 알 수 없는 부분이 많으므로 Model Free 방식으로 진행하게 되며, Tri and Error 방법으로 통해 찾아가게 됩니다.
5. On Policy vs Off Policy
다음은 On Policy와 Off Policy에 대해 이야기해보도록 하겠습니다. 아래 그림은 유명한 On Policy와 Off Policy를 비교하는 그림입니다. On Policy는 현재 움직이고 있는 Policy와 Improve하는 Policy가 동일합니다. 만약 S에서 출발한 Agent가 위로 한칸 오른쪽으로 한칸 아래로 한칸을 이동하여 절벽으로 떨어졌다면, On Policy의 대표적인 SARSA는 바로 다음 행동이 이전행동에 영향을 미치므로 S 바로 윗 칸에서 오른쪽으로 이동하지 않게 됩니다. 따라서 가장 안전하지만 Optimal 하지 않은 길을 찾게 됩니다. 하지만 Off Policy의 Q-Learning은 모든 다음 행동 중에 Reward를 최대로 주는 action을 찾으므로 가장 Optimal한 길을 찾을 수 있게 됩니다.



6. Q-Network
지금까지 예제로 들었던 내용은 간단한 Grid 기반의 예제들이었습니다. 하지만 데이터가 커지고 복잡해짐에 따라 각각의 Q를 Update하는 것이 문제가 되었습니다. 따라서 이 문제를 해결하고자 Q값을 계속 바로 업데이트 하는 것이 아니라 w라는 Parameter를 추가하여 w를 Update 하고 나중에 Q를 Update 하는 방식으로 고안된 것이 Q-Network입니다.

이번 포스팅에서는 간단하게 강화학습의 기초에 대해서 알아보았습니다.
다음 포스팅에서는 DQN 논문을 리뷰하는 시간을 가져보도록 하겠습니다.
'강화학습' 카테고리의 다른 글
| 수박 겉핥기 강화학습 - 내 머리를 강화하자 #3 (0) | 2020.09.22 |
|---|---|
| 수박 겉핥기 강화학습 - 내 머리를 강화하자 #2 (0) | 2020.09.18 |
| 수박 겉핥기 강화학습 - 내 머리를 강화하자 #0 (0) | 2020.09.02 |
- Total
- Today
- Yesterday
- Mesh Processing
- perspective projection
- DirectX12
- 순열
- normalized device coordinate
- opengl
- Unity
- CollisionDetection
- 루빅스큐브
- MeshProcessing
- 통계학
- Mesh
- C#
- AABB
- 최적화
- value type
- RubiksCube
- 수학
- 중복 순열
- VTK
- 경우의 수
- 값 형식
- 조합
- 유니티
- RL
- 참조 형식
- Scriptable Render Pipeline
- Unreal
- collision detection
- 중복 조합
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |