여러가지공부/강화학습(Reinforement Learning)

Q-Learning이란?(Epsilon-Greedy, gamma Discount factor, learning rate)

끄적끄적아무거나 2023. 2. 24. 08:31
반응형

 

목차

     

     

     

    해당 포스트(Reinforcement Learning)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다. 

     

     

     

     

    Q-Learning이란?

     

    Q Learning 이란 강화 학습 알고리즘(Reinforcement Learning Algorithm)으로 보상을 받기 까지의 모델이 없는 상태에서 확률적인 동작으로 보상까지의 Quality를 찾는 과정입니다.

     

     

    예를 들어 경로를 알려 주는 지도가 없는 경우에 부산에서 출발하는 사람이 있다고 생각하겠습니다. 서울에 도착하면 100원을 원주에 도착하면 80원을 보상을 준다고 가정하겠습니다. 여기서는 A10을 서울, A20을 원주로 가정하겠습니다.

     

    위 테이블은 도시를 하나씩 이동할 때마다 State가 변하고(시간의 흐름), 주변 도시로 이동하는 방향을 결정하는 것이 A1~Am 중에 인접한 도시로 Action을 취하는 것입니다. 이런식으로 테이블을 기록해서 최선의 Quality를 찾는 것이 Q-learning 입니다. 

     

     

     

     

     

    입실론 탐욕(Epsilon-Greedy,ε)이란?

    여러 State를 진행하면서 Action을 이동해서 원주(A20)에 도착하였다고 가정을 하겠습니다. 그러면 해당 라인에 Q 값이 설정되고 이 후로는 그길로만 이동을 하게 됩니다. 하지만 A20으로 가는 더 효율적인 길이 있을 수 있기 때문에 다른 길도 지속적으로 시도 해야 합니다. 

     

    이때 확률(stochastic) 개념이 들어가게 됩니다. ε(입실론) 값을 0~1사이 값으로 정해서 해당 입실론 크기 만큼은 랜덤(Random)하게 동작 합니다. 이때 두가지 개념이 적용됩니다.

     

    • 탐험(Exploration)
    • 탐욕(Explitation)

     

    입실론 값이 커지면 커질 수록 기존의 Q 값에 따른 길이 아닌 탐험을 진행하게 되고 입실론이 작아지면 작을 수록 탐욕적인 Q 값을 따라 가게 됩니다. 

     

    Epsilon Greedy를 사용함으로서 기존의 원주(A20)만이 아닌 서울(A10) 가는 길도 발견할 수 있고 원주(A20)가는 더 빠른 경로도 찾을 수 있게 됩니다. 

     

     

     

     

    Decaying Epsilon Greedy

    시도 횟수(Episode)에 따라서 입실론 탐욕의 값을 줄여서 결국엔 0으로 수렴하게 만드는 전략입니다. 왠만큰 최적화가 완료되면 더 이상 랜덤하게 탐험할 필요가 없으므로 입실론 값을 줄이는 것입니다. 

     

     

     

     

     

     

    Discount Factor 란?

    Discount factor란 감마(γ) 값을 사용하고 State 간에 이동 시 감마(γ) 값을 곱해 줍니다. 감마(γ) 값은 0~1 사이의 값으로 사용자가 정합니다.

     

    Discount factor 값을 사용하는 목적은 보상(reward)에서 감마가 state를 이동하면서 곱해지므로 가장 효율적인 길은 감마 값이 많이 곱해지지 않아 reward 값이 높게 유지가 되게 하는 목적입니다. 최종적으로 효율적인 path에서 Quality 값을 높게 유지 함으로서 효율적인 길을 학습하게 합니다. 

     

     

     

     

     

     

     

    Q-learning 알고리즘 수식 정리

     

    위 수식은 st 라는 현재 state 값이 action at를 적용했을 경우 Quality 값이 결정되는 수식 입니다.

     

    알파(α) 값은 learning rate로 과거 데이터를 어느정도로 적용할지에 대한 수치로 0~1 사이 값을 사용합니다. 1이 되면 수식에서 보시면 아시겠지만 current value가 서로 상쇄 되어 미래 값을 100프로 적용하게 되는 것입니다.

     

    해당 state에 보상이 있으면 reward 값을 바로 가져 오고 이때는 Q 값이 없습니다. 만일 보상이 없으면 Q 값의 max 값을 가져오고 감마 값을 곱해서 적용된 수치가 넘어 오게 되는 것입니다.

     

     

     

     

    반응형