| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 모두를 위한 RL
- paper
- Python Programming
- Jacobian Matrix
- 논문
- David Silver
- neural network
- 유니티
- optimization
- 강화학습
- 리스트
- 데이터 분석
- machine learning
- 김성훈 교수님
- list
- rl
- Deep Learning
- Laplacian
- reinforcement learning
- ML-Agent
- pandas
- 판다스
- Hessian Matrix
- 딥러닝
- statistics
- convex optimization
- 사이킷런
- unity
- Series
- Linear algebra
RL Researcher
Lecture 3: Dummy Q-learning (table) 본문

전의 Lecture에서도 설명했듯이 이 게임은 우리가 보기에는 쉬워 보이지만 Agent는 Enviornment를 전혀 모르기 때문에 Action을 통해서 State와 Reward값을 통해서 환경이 어떠한지 알아내야 합니다.

어차피 Agent는 아무것도 모르기 때문에 Random하게 가보는 건 어떨까?
- 처음에는 Random하게 할 수 있지만 계속 그렇게 한다면 성공할 수 있는 확률이 매우 낮습니다.

어떤 State에 갔더니 Q가 있습니다.(Q는 상태 행동 가치함수(State-action value function))

이러한 Q-Learning의 핵심은 Q입니다. Q는 Agent의 State와 Action을 입력을 받으면 Q에서 보상의 기댓값(Return)을 반환해 줍니다.

다음은 정책을 이용한 Q함수에 대해서 설명하고 있습니다.(현재의 State에서 현재의 정책에 따라서 Action을 취하였을 때 받을 수 있는 보상의 기댓값)
- 왼쪽으로 갔을 때의 Q함수 : 0
- 오른쪽으로 갔을 때의 Q함수 : 0.5(max)
- 위로 갔을 때의 Q함수 : 0
- 아래로 갔을 때의 Q함수 : 0.3

우리는 State $s$에서 $a^{'}$의 행동을 했을때 $a^{'}$값이 최대가 되도록하는 것이 $Max Q$입니다.
Optimal Policy(s) = State $s$에서 $a$를 했을 때 $a$값이 최대가 되는 것이 Optimal Policy(s)입니다.

$s$에서 시작한다고 하면 Q함수를 통해 값을 최대화하는 Policy를 찾아 이동합니다.

위의 그림처럼 $argmax$값을 찾은 후 $s^{'}$으로 이동했을 때 다음부터 계속 Optimal Policy Q함수를 이용해 이동해 나갑니다.

우리는 이 Q라는 것을 어떻게 학습할까요??
- $s^{'}$에는 Q가 있다고 가정합니다.
- Action $a$를 했을 때 $s^{'}$으로 갑니다.
- Action $a$를 했을 때 $r$이라는 reward값을 받게 됩니다.

$s$에서 이동할 때 Q함수를 찾는 과정에 대해서 설명하고 있습니다.


time-step t에서 받은 Reward부터 그 이후 부터 받은 Reward의 총합입니다.

다음 State에서 Action을 했을 경우 Action값을 최대화하는 값에 Reward를 더하면 전 State와 Action이 나옵니다.


Q값을 모르기 때문에 0으로 전부 초기화를 시켜버립니다.

결과적으로 0으로 다 Initialize하였기 때문에 Q값은 계속 0을 받으며 아무곳으로 움직일 것입니다. 그러다 Goal의 부분앞에서 오른쪽으로 갈 Q에게 불어봅니다. 이렇게 수많은 시도를 통해 Q Table을 채워나갑니다.


마지막에 생겨난 Q값을 이용하여 앞의 State값을 업데이트 하게 되면 다음과 같은 Q Table이 나오게 됩니다.


Q 함수의 알고리즘에 대해서 보겠습니다.
- Q함수를 0으로 initialize합니다
- 현재의 State를 가져옵니다.
- 무한반복을 통해:
- Action을 취합니다.
- Reward를 받습니다.
- $s$에서 $s^{'}$으로 이동하게 됩니다.
- Q를 업데이트하게 됩니다.
'Reinfrocement Learning > 모두를 위한 RL' 카테고리의 다른 글
| Lecture 6: Q-Network (0) | 2021.02.10 |
|---|---|
| Lecture 5: Windy Frozen Lake Nondeterministic world! (0) | 2021.02.10 |
| Lecture 4: Q-Learning (table) (0) | 2021.02.09 |
| Lecture 2: Playing OpenAI GYM Games (0) | 2021.02.09 |
| Lecture 1: Introduction (0) | 2021.02.09 |