1강에서는 무작위로만 움직였습니다. 오늘은 경험으로 행동가치(Q)를 배워 더 좋은 행동을 고릅니다. 그런데 — 경험이 없으면 고를 수가 없습니다.
점수표(Q표)에는 칸마다 「왼쪽으로 밀면 몇 점, 오른쪽으로 밀면 몇 점」이 적혀 있습니다. 가장 좋은 행동 = 점수가 가장 큰 행동 = argmax. 그런데 처음엔 전부 0점입니다.
둘 다 0점이면 argmax 는 언제나 첫 번째(왼쪽)를 고릅니다.
CartPole 같은 문제를 푸는 고전적인 방법입니다. 확률 ε 로는 아무거나 해 보고(탐험), 나머지는 지금까지 가장 좋았던 행동을 합니다(활용).
판이 끝날 때마다 ε 에 0.995 를 곱합니다. 1000판이면 1 → 0.01.
셋 다 똑같은 Q표 · 똑같은 학습 규칙. 다른 건 탐험을 얼마나 하느냐 하나뿐입니다.
수레가 가운데 있고 거의 멈춰 있을 때, 막대 각도(세로) × 막대 회전(가로) 36칸. 칸마다 더 좋다고 배운 행동을 칠했습니다.
탐험을 안 하면 왼쪽만 해 봐서, 오른쪽 점수는 영원히 0 입니다. 더 좋은 행동이 있는지 알 방법이 없습니다.
출발(왼쪽 위)에서 선물(오른쪽 아래)까지, 구멍에 빠지지 않고 가면 1점. 그 외에는 0점. 같은 Q표 · 같은 엡실론-그리디로 3000판.
팔 두 개를 흔들어 끝을 선 위로 올리는 게임. 한 걸음마다 -1점이라, 빨리 올릴수록 점수가 높습니다(잘하는 두뇌는 -100점 근처). 상태가 숫자 6개, 같은 방법으로 칸을 나누면 46,656칸 — CartPole(324칸)의 144배입니다.
조금은 배웁니다. 하지만 칸이 너무 많아서 대부분의 칸은 한 번도 못 가 봅니다. 처음 보는 칸에서는 점수표가 비어 있어서 — 아무것도 모릅니다. 탐험을 아무리 해도 다 가 볼 수 없는 문제, 이게 Q표의 한계입니다.
지금까지는 한 걸음마다 한 번 배우고 경험을 버렸습니다. 어렵게 탐험해서 얻은 경험을 기억 상자에 모아 두고, 무작위로 꺼내 여러 번 다시 배웁니다.
| 1~100판 | 101~200판 | 201~300판 | |
|---|---|---|---|
| 기억 없이 | — | — | — |
| 기억 상자 | — | — | — |
기억 상자는 같은 탐험으로 더 많이 배우게 해 줍니다. 하지만 Q표는 여전히 칸 하나하나를 외웁니다. 4강에서 점수표를 딥러닝으로 바꾸면 처음 보는 칸도 짐작할 수 있고 — 기억 상자 + 딥러닝 = DQN.
위에서 본 것 전부가 아래 몇 줄입니다. 코랩 노트북과 같은 코드예요.
위에서부터 ▶ 실행 · 설치 없이 바로 됩니다