JMANI

Q-learning 본문

AI/Reinforcement Learning

Q-learning

jmani 2022. 6. 24. 17:00

ref: https://www.youtube.com/watch?v=3Ch14GDY5Y8&list=PL_iJu012NOxehE8fdF9me4TLfbdv3ZW8g&index=2

R은 reward의 줄임말이다. start 지점에서 reward 지점까지 가는 것을 목적으로 한다.

네모 한 칸이 state(상태)이며, 점선으로 나눠진 4칸은 상, 하, 좌, 우를 나타내는 action이라고 정의한다.

Q는 현재 상태에서 취한 행동의 보상에 대한 quality를 말한다. 처음 모든 상태의 q값은 0으로 초기화한다. 

Greedy Action

1 episode: 8번 칸에서 위로 올라가는 action을 취한다면 reward를 받을 수 있다. q 값을 1로 update 한다.

2 episode: 7번 칸에서 오른쪽으로 간다면 가장 큰 값이 1이다. 우 state를 1로 update 한다.

... 반복 ...

탐욕적으로(greedy) 움직이기 때문에 몇 번을 학습해도 오른쪽 화살표처럼 움직이게 된다.

Exploration

결과적으로 보상을 얻을 수는 있지만, 더 빠른 길(→)이 있기에 아쉬운 결과다.

이를 해결하기 위해서는 탐험(exploration)을 해야한다.

 

\( \epsilon \)-Greedy

탐험을 위해 사용되는 방법으로 \( \epsilon \)는 0 ~ 1사이의 값이다. 만약 \( \epsilon \)이 0.1이라면 10%는 랜덤하게 움직이라는 뜻이다. 이 값이 너무 크면, 학습에 상관없이 랜덤하게 움직일 것이고, 너무 작으면 더 좋은 길이 있는데도 찾지 못할 것이다.

 

따라서, 우리는 Exploration과 Exploitation을 적절하게 사용해야 한다. 

exploitation은 geedy action처럼 q값을 이용해서 움직이는 것을 말한다. 

 

Decaying \( \epsilon \)-Greedy

처음에는 \( \epsilon \)을 0.9로 설정해서 탐험을 많이 한 후, 학습할수록 값을 줄여나간다. 

Discount factor

왼쪽 사진처럼 더 좋은 길을 찾았지만, 어느 길이 더 좋은지는 나타나지 않는다. Discount Factor는 \( \gamma \)값을 사용하는데, 다음 q값을 가져올 때  \( \gamma \)값을 곱해서 update한다. 예를 들어 2번의 q값은 3번 칸의 max q값(1)을 가져올 때 * \( \gamma \) 한후  \( \gamma \)로 update된다.  \( \gamma \)는 0 ~ 1 사이의 값이다.

 

Q-update

$$ Q(s_{t},a_{t}) \leftarrow (1- \alpha )Q(s_{t},a_{t}) + \alpha (R_t+ \gamma maxQ(s_{t+1},a_{t+1}))$$

\( \alpha \) : 새로운 것을 얼마나 받아들이는가?

\( \alpha \)이 작으면 기존 것을 유지하고, \( \alpha \)이 크면 새로운 것을 받아들인다.

 

Comments