[Deep RL Course] Q-Learning 예제

2025. 1. 7. 17:00·강화학습
728x90

이 글은 Deep RL Course를 학습하고 정리한 글입니다.

 

 

 

 

 

Q-Learning 예제

 

 

Q-Learning을 더 잘 이해하기 위해 간단한 예를 들어보겠습니다.

 

 

 

환경

 

이 예제에서 여러분은 작은 미로 속의 쥐가 됩니다. 항상 동일한 위치에서 시작합니다. 목표는 오른쪽 아래 구석에 있는 큰 치즈 더미를 먹는 것이며 독약을 피해야 합니다. 에피소드는 독약을 먹거나 큰 치즈 더미를 먹거나 5번 이상 움직이면 종료됩니다. 학습률은 0.1이고 할인율은 0.99입니다. 

 

 

 

 

 

보상 함수

 

  • +0: 치즈가 없는 상태로 이동했을 때
  • +1: 작은 치즈 더미가 있는 상태로 이동했을 때
  • +10: 큰 치즈 더미가 있는 상태로 이동했을 때
  • -10: 독약이 있는 상태로 이동했을 때 (즉시 종료)
  • +0: 5번 이상의 움직임을 한 경우

 

 

 

 

 

 

 

 

 

 

Q-Learning 알고리즘 적용

 

 

에이전트는 Q-Learning 알고리즘을 통해 최적의 정책을 학습합니다.

 

 

 

 

 

Step 1: Q-테이블 초기화 

 

초기 단계에서는 모든 상태 $s$와 $a$에 대해 $Q(s,a) = 0$으로 설정합니다. 또한, 종료 상태에 대해서는 $Q(\text{terminal-state}, \cdot) = 0$으로 초기화합니다. 

 

 

 

 

 

 

Timestep 1 Step 2: 행동 선택

 

$\epsilon$-탐욕 정책을 사용하여 행동 $A_t$를 선택합니다. 현재 $\epsilon =1$로 값이 크기 때문에 탐험을 우선하여 무작위로 행동을 선택합니다. 이번에는 오른쪽으로 이동하는 행동이 선택되었습니다. 

 

 

 

 

 

 

Timestep 1 Step 3: 행동 실행 및 관찰

 

선택된 행동 $A_t$를 실행하여 오른쪽으로 이동했습니다. 그 결과 작은 치즈를 얻어 $R_{t+1} = + 1$의 보상을 받았고 새로운 상태 $S_{t+1}$로 이동했습니다. 

 

 

 

 

 

 

Timestep 1 Step 4: Q-값 업데이트

 

아래의 공식을 사용해 $Q(S_t, A_t)$ 값을 업데이트합니다. 

 

 

 

1. 초기 상태에서 오른쪽으로 이동 ($S_t = \text{Initial state}, A_t = \text{Right}$)

 

$$\begin{align*}Q(\text{Initial state}, \text{Right}) &= 0 + 0.1 \cdot [1 + 0.99 \cdot 0 - 0] \\ &= 0 + 0.1 \cdot 1 \\ &= 0.1 \end{align*}$$

 

 

 

2. 업데이트된 Q-테이블

 

$$Q(\text{Initial state}, \text{Right}) = 0.1$$

 

 

 

 

 

Timestep 2 Step 2: 행동 선택하기

 

다시 $\epsilon$-탐욕 정책을 사용하여 행동을 선택합니다.

 

 

이번에도 $\epsilon = 0.99$로 여전히 큰 상태이기 때문에 탐험을 우선합니다.  이번에는 아래쪽으로 이동하는 행동이 선택되었습니다. 참고로 훈련이 진행됨에 따라 $\epsilon$ 값은 점차 감소하여 점점 더 탐험 대신에 활용이 많이 이루어질 것입니다.

 

 

 

 

 

 

Timestep 2 Step 3: 행동 실행 및 관찰

 

선택된 행동 $A_t$를 실행하여 아래쪽으로 이동했습니다. 그러나 그 결과 독약을 먹게 되어 $R_{t+1} = - 10$의 페널티를 받았고 종료 상태 $S_{t+1}$에 도달했습니다.

 

 

 

 

 

 

Timestep 2 Step 4: Q-값 업데이트 

 

공식에 따라 $Q(S_t, A_t)$ 값을 업데이트합니다. 

 

1. 초기 상태에서 아래쪽으로 이동 ($S_t = \text{State 2}, A_t = \text{Down}$)

 

$$\begin{align*}Q(\text{State 2}, \text{Down}) &= 0 + 0.1 \cdot [-10 + 0.99 \cdot 0 - 0] \\ &= 0 + 0.1 \cdot (-10) \\ &= -1 \end{align*}$$

 

 

 

2. 업데이트된 Q-테이블

 

$$Q(\text{State 2}, \text{Down}) = -1$$

 

 

 

 

 

 

학습 과정 요약

 

독약을 먹어 에피소드가 종료되었으므로 새로운 에피소드가 시작됩니다. 에이전트는 초기 상태로 돌아가 다시 환경을 탐색하고 학습을 이어갑니다. 

 

 

두 번의 탐험을 통해 에이전트는 환경에 대한 정보를 얻었으며 더 똑똑한 행동을 하기 시작합니다. TD를 사용하여 Q-값을 점진적으로 업데이트하면서 독약으로 이어지는 상태-행동 쌍의 Q-값은 낮아지고 보상이 높은 상태-행동 쌍(치즈로 가는 방향)의 Q-값은 높아집니다. 

 

 

 

 

 

최적의 정책 학습

 

반복적인 탐험과 활용을 통해 Q-테이블은 점점 더 정확해집니다. 충분한 학습이 이루어진 후 에이전트는 최적의 Q-함수에 Q-값을 얻게 됩니다. 이는 에이전트가 환경에서 최적의 정책을 따르며 최대 보상을 얻도록 도와줍니다. 

 

 

 

 

 

 

 

 

 

 

728x90

'강화학습' 카테고리의 다른 글

[Deep RL Course] Q-Learning 실습(2) - Taxi  (0) 2025.01.08
[Deep RL Course] Q-Learning 실습(1) - Frozen Lake  (0) 2025.01.08
[Deep RL Course] Q-Learning  (0) 2025.01.07
[Deep RL Course] 몬테카를로 vs 시간차 학습  (0) 2025.01.06
[Deep RL Course] 벨만 방정식  (0) 2025.01.05
'강화학습' 카테고리의 다른 글
  • [Deep RL Course] Q-Learning 실습(2) - Taxi
  • [Deep RL Course] Q-Learning 실습(1) - Frozen Lake
  • [Deep RL Course] Q-Learning
  • [Deep RL Course] 몬테카를로 vs 시간차 학습
랑뎁
랑뎁
  • 랑뎁
    RangDev.
    랑뎁
  • 전체
    오늘
    어제
    • 분류 전체보기 (270)
      • 취준 (59)
        • 경제신문스크랩 (59)
      • 파이썬 (2)
      • 코딩테스트 대비 (168)
      • 수학 (2)
      • 머신러닝 (0)
      • 컴퓨터비전 (1)
      • 강화학습 (33)
      • Git (3)
      • 자격증 (1)
        • 한국사 능력 검정 1급 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.2
랑뎁
[Deep RL Course] Q-Learning 예제
상단으로

티스토리툴바