Skip to content

okyungkwon/Reinforcement-Learning-leture3-leture4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Leture 3, Leture 4

Q 러닝 개요

Q 러닝

모델없이 학습하는 강화학습 알고리즘 목표: 에이전트가 특정 상황에서 특정 행동을 하라는 최적의 정책을 배우는 것으로, 현재 상태로부터 시작하여 모든 연속적인 단계들을 거쳤을 때 전체 보상의 예측값을 극대화

Q value

  • 어떤 상태 s에서 어떤 행동 a를 했을 때, 그 행동의 가치를 나타내는 Q(s,a) 함수를 사용
  • 미래의 보상을 계산하기 위해 0~1 사이의 γ(Discount Factor)를 사용
  • 현재 상태로 부터 Δt 시간이 흐른 후에 얻는 보상 r은 𝛾Δ𝑡만큼 할인된 𝑟 ∗ 𝛾Δ𝑡로 계산
  • Q value는 어떤 시간 t에 따라 행동 a를 할 때 미래의 보상들의 총합의 기대값

스크린샷 2023-01-13 오전 4 10 04

Q algorithm

알고리즘이 시작되기 전에 Q 함수는 고정된 임의의 값을 갖는다. 그리고 매 time-step(𝑡)마다 Agent는 행동를 선택하게 되고, 보상 를 받으며 새로운 상태로 전이하고, Q 값이 갱신된다. 이 알고리즘의 핵심은 이전의 값과 새로운 정보의 가중합(weighted sum)을 이용하는 Value Iteration Update 기법이다. 스크린샷 2023-01-13 오전 4 22 32

gym environment에서 Q learning

agent가 action을 취하는 방법

  • random한 액션의 취함 -> 목표에 도달할 확률 낮음, 매번 최적화하지 않은 선택을 한다는 문제 가짐
  • 어떤 길을 가기 전에, 미리 알아보고 감 예를 들면, 네이버 지도를 살펴보고 길을 나서는 것과 같은 방법(지도: Q) -> Q도 처음에는 목표를 정확하게 알지 못하지만 지도가 업데이트 되면서 궁극적으로 목표에 도달하는 길을 알게 됨

Q에게 줄 정보는 현재 state와 어떤 action을 선택했는지에 대한 정보다.
그러면 Q는 그 길로 가는 행동이 얼마나 좋은지 알려준다(reward) -> Q function

  • 현재 상태에서 취할수 있는 action(Left, Right, Up, Down)에 대한 피드백의 예시

스크린샷 2023-01-13 오전 4 42 42

Q를 이용한 최적화된 정책 탐색

Q는 처음에는 최적화되진 않다. 하지만 처음부터 최적화되었다고 가정하고 Q의 값을 참고하여 길을 나서는 방식을 취한다.
궁극적으로, Q를 최적화한 Q가 되도록 학습하는 것이 핵심이다. Q는 다음과 같이 업데이트되어 최적화한다.

Q값 업데이트 과정

  • 초기 Q의 상태

스크린샷 2023-01-13 오전 4 55 13

상황이 이러하므로 초기에 agent는 무작위로 움직임

스크린샷 2023-01-13 오전 4 57 41

agent가 우연히 목표 근처(목표 지점 바로 왼쪽 지점), 도달할 때 해당 영역에서의 Q값이 Right action에 대한 reward인 1을 리턴

스크린샷 2023-01-13 오전 4 57 52

같은 방식으로 계속 무작위적으로 행동하다가 최종적으로 위의 상황이 됨

Exploit & Exploration

위의 루트는 최적의 루트 아님 (이유: agent가 새로운 루트를 찾아보지 않음)
한번 최적의 루트라고 확정된 경로를 그대로 고수하고 다른 길은 쳐다도 보지 않음
해결책: Exploit & Exploration 내가 알고 있는 가장 좋은 루트뿐만 아니라 새로운 루트를 탐험하는 것을 병행함으로써 최적의 루트 탐색 Exploit & Exploration의 방법 2가지

  • E-greedy
  • add random noise

Exploit & Exploration: E-greedy

e값을 0.1로 고정시킨 후, random값을 이용하여 random값이 e를 넘지 못할 경우 exploration 하도록 정하고, random값이 e를 넘을 경우, 기존의 방식인 Q값을 이용

Exploit & Exploration: random noise

기존의 Q값에 random한 noise를 추가
스크린샷 2023-01-13 오전 6 18 43

E-greedy와 random noise 방법의 차이점

E-greedy의 경우는 완전한 Exploration인 반면, random noise의 경우는 기존의 Q값에 더해진 값을 이용하기 때문에 완전한 Exploration은 아니라는 점이다.

실습

스크린샷 2023-01-13 오전 5 04 12

plot success rate

스크린샷 2023-01-13 오전 5 04 29

exploit & exploration

스크린샷 2023-01-13 오전 5 42 00

스크린샷 2023-01-13 오전 5 42 27

E-Greedy

스크린샷 2023-01-13 오전 5 59 37

스크린샷 2023-01-13 오전 5 59 50

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages