카테고리 없음

패스트캠퍼스 환급챌린지 15일차 : 스크래치부터 시작하는 강화학습의 모든 것 강의 후기

dev-self 2025. 3. 19. 22:08

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

|내용 정리|

< Policy Evaluation (정책 평가) - action value function>

1. Bellman Equation for Action-Value Function

 

이 식은 Action-Value Function(Q-function)에 대한 Bellman 방정식으로, 주어진 정책 하에서 특정 상태 sts_t 와 행동 ata_t 를 선택했을 때, 기대되는 총 보상.

  • : 현재 상태 에서 행동 를 취했을 때, 다음 상태 로 전이될 확률
  • : 현재 상태 에서 행동 를 했을 때, 즉시 얻는 보상
  • : 할인율(0~1 사이의 값)로, 미래 보상의 가중치를 조절
  • : 다음 상태 에서 정책 에 따라 행동 을 선택할 확률
  • : 다음 상태에서의 기대되는 Q-value

이 식은 Dynamic Programming (DP) 기법을 이용하여 최적의 Q-value를 계산하는데 사용.


2. Q-table (Action-Value Function Table)

 

이 행렬은 각 상태(state) 와 행동(action) 에 대한 Q-value를 저장하는 테이블로, 일반적으로 강화학습에서 Q-learning

또는 SARSA 알고리즘에서 사용.

  • : 가능한 상태의 개수
  • : 가능한 행동의 개수

이 테이블은 보통 2D array 형태로 저장되며, 상태-행동 쌍의 가치를 학습하면서 업데이트.


 

3. Action-Value Function 업데이트 식 (Bellman 방정식)

 

  • 이 식은 Action-Value Function을 업데이트하는 Bellman 방정식.
  • 특정 상태 와 행동 에 대해, 다음 상태 와 행동 을 고려한 기대 보상을 계산하여 Q-value를 갱신.

  • 위 업데이트를 반복하면서 변화량이 미리 설정한 임계값(Threshold) 이하로 줄어들면 수렴했다고 판단하고 업데이트를 멈춤.

  • 할인율 γ 가 1보다 작을 경우, 업데이트를 무한히 반복하면 최적의 Action-Value Function 에 수렴.

정리

  • Action-Value Function은 Bellman 방정식을 반복적으로 적용하여 갱신.
  • 변화량이 충분히 작아질 때(Threshold 이하) 업데이트를 멈춤.
  • 이면 무한 반복 시 최적의 Action-Value Function 에 수렴.

|응용|

 

14일차의 Iterative Policy Evaluation 간의 주요 차이점을 알아보자:

  1. 평가 대상:
    • Iterative Policy Evaluation: 상태 가치 함수(V-함수)를 계산.
    • Action-Value Function 계산: 상태-행동 가치 함수(Q-함수)를 계산.
  1. 함수 형태:
    • V-함수: V^π(s) - 상태 s에서 정책 π를 따를 때의 기대 가치
    • Q-함수: Q^π(s,a) - 상태 s에서 행동 a를 취하고 이후 정책 π를 따를 때의 기대 가치
  2. 벨만 방정식 형태:
    • V-함수 벨만 방정식: V^π(s) = ∑_a π(a|s) ∑_s' p(s'|s,a) [R(s,a,s') + γV^π(s')]
    • Q-함수 벨만 방정식: Q^π(s,a) = ∑_s' p(s'|s,a) [R(s,a,s') + γ ∑_a' π(a'|s') Q^π(s',a')]
  3. 용도:
    • V-함수: 정책의 전반적 성능 평가에 유용
    • Q-함수: 행동 선택 결정에 직접 사용 가능, 정책 개선에 유용
  4. 저장 구조:
    • V-함수: 상태 공간의 크기만큼의 테이블(|S|)
    • Q-함수: 상태-행동 공간의 크기만큼의 테이블(|S|×|A|)

Q-함수를 사용하면 V-함수만 알 때보다 정책 개선이 더 직접적이다. V-함수를 사용할 경우 최적 행동을 선택하려면 각 가능한 행동의 결과를 추가로 계산해야 하지만, Q-함수에서는 가장 큰 Q값을 가진 행동을 바로 선택할 수 있기 때문에 그렇다.

요약하면, 첫 번째 알고리즘(Iterative Policy Evaluation)은 상태 가치에 초점을 맞추고, 두 번째 알고리즘은 상태-행동 쌍의 가치에 초점을 맞춘다.

 

코드로 알아보자

Policy Evaluation
정책 π에 대한 Action-Value 함수(Q-함수)

 


 

  • 함수 정의: Q-함수를 계산하는 함수를 정의.
  • 매개변수:
    • policy: 평가할 정책 함수 (상태와 행동을 입력받아 행동 선택 확률 반환)
    • env: 환경 객체 (상태 전이 확률과 보상 함수 제공)
    • gamma: 할인율(0.9)로, 미래 보상의 현재 가치 계산에 사용
    • theta: 알고리즘 종료 조건의 임계값(1e-3)
    • max_iterations: 최대 반복 횟수(1000)로 무한 루프 방지용

 

 

  • Q-함수 초기화: 모든 상태-행동 쌍의 가치를 0으로 초기화.
  • defaultdict(float)는 존재하지 않는 키의 기본값을 0.0으로 설정.

 

 

 

  • delta를 theta보다 크게 설정하여 while 반복문에 처음 진입할 수 있도록 함.
  • k는 반복 횟수를 추적하는 카운터.

 

 

  • 반복 조건: delta가 theta 이상이고, 반복 횟수가 최대값 미만일 때 계속.
  • 두 조건 중 하나라도 만족하지 않으면 알고리즘이 종료.

 

  • 새로운 반복에서 delta를 0으로 초기화합니다.

 

  • 모든 상태와 행동 쌍에 대해 반복합니다.

  • 현재 상태-행동 쌍의 이전 Q-값을 저장합니다(나중에 변화량 계산에 사용).

 

  • 새 Q-값 계산을 위한 변수 초기화.
  • 현재 상태 s에서 행동 a를 수행했을 때 도달 가능한 다음 상태들을 가져오기.

  • 다음 상태들에 대해 반복.
  • 환경의 상태 공간에 없는 유효하지 않은 상태는 건너뛰기

  • 상태 전이 확률: 상태 s에서 행동 a를 했을 때 다음 상태 s_prime으로 전이될 확률을 구하기.

  • 보상: 상태 s에서 행동 a를 했을 때 다음 상태 s_prime으로 전이되면서 받는 보상을 구하기.

  • 다음 상태 s_prime에서 기대되는 미래 가치 계산을 위한 변수 초기화
  • 다음 상태에서 가능한 모든 행동에 대해 반복.

  • 정책에 따라 다음 상태 s_prime에서 행동 a_prime을 선택할 확률을 구하기.

  • 다음 상태에서의 기대 가치를 계산.
  • 각 행동의 Q-값에 그 행동을 선택할 확률을 곱하고 이를 합산.

  • 벨만 방정식을 적용하여 새로운 Q-값을 계산.
  • 전이 확률 × (즉시 보상 + 할인된 미래 기대 가치)

  • 계산된 새 Q-값으로 Q-함수를 업데이트.

 
  • Q-값 변화의 최대치를 추적합니다.
  • 현재까지의 최대 변화량과 방금 계산한 변화량 중 큰 값을 delta로 설정.

 

  • 반복 카운터를 증가시키고 10회 반복마다 현재 상태를 출력.

  • 최대 반복 횟수에 도달했다면 경고 메시지를 출력.

  • 알고리즘 종료 후 총 반복 횟수를 출력하고 계산된 Q-함수를 반환.

 

이제 위의 함수를 가지고 실제 사례로 만들어보자.

1. 학습 집중 관리 예시

학습 집중력 관리를 강화학습 문제로 모델링해볼 수 있다:

상태(S):

  • 피로도(낮음, 중간, 높음)
  • 집중도(낮음, 중간, 높음)
  • 시간대(아침, 오후, 저녁)

행동(A):

  • 공부하기(1시간)
  • 짧은 휴식(10분)
  • 긴 휴식(30분)
  • 카페인 섭취

보상(R):

  • 공부 효율성(학습량) (+0.1 ~ +1.0)
  • 피로 누적 (-0.1 ~ -0.5)
  • 목표 달성 (+5 보너스)

정책 평가를 적용하면:

  1. 초기 무작위 정책은 모든 상태에서 네 가지 행동을 균등하게 선택한다.
  2. 정책 평가 후, 특정 상태의 가치가 계산된다:
    • V[(피로도=높음, 집중도=낮음, 시간대=저녁)] = -0.2
    • V[(피로도=낮음, 집중도=높음, 시간대=아침)] = +1.5
  3. Q-함수는 더 구체적인 행동 가치를 제공한다:
    • Q[(피로도=높음, 집중도=낮음, 시간대=저녁), '긴 휴식'] = +0.4
    • Q[(피로도=높음, 집중도=낮음, 시간대=저녁), '공부하기'] = -0.8
    이것은 피로도가 높고 집중도가 낮은 저녁 시간에는 공부보다 긴 휴식이 더 가치 있다는 것을 보여준다.

2. 스마트폰 사용 관리 예시

스마트폰 사용 습관을 관리하는 문제를 강화학습으로 모델링할 수 있다:

상태(S):

  • 현재 활동 중요도(낮음, 중간, 높음)
  • 알림 상태(없음, 중요, 긴급)
  • 시간 가용성(적음, 보통, 많음)

행동(A):

  • 알림 무시하기
  • 알림 확인만 하기
  • 앱 사용하기(5분)
  • 앱 사용하기(20분 이상)

보상(R):

  • 생산성 유지(+0.5)
  • 중요 정보 놓침(-1.0)
  • 과도한 스마트폰 사용(-0.3)
  • 일 완료(+2.0)

정책 평가 결과:

  1. 특정 상태의 가치:
    • V[(중요도=높음, 알림=없음, 시간=적음)] = +1.2
    • V[(중요도=낮음, 알림=긴급, 시간=많음)] = +0.3
  2. Q-함수 예시:
    • Q[(중요도=높음, 알림=중요, 시간=적음), '알림 무시하기'] = +0.8
    • Q[(중요도=높음, 알림=중요, 시간=적음), '앱 사용하기(20분+)'] = -1.2
    이는 중요한 일을 하고 있고 시간이 적을 때는 알림을 무시하는 것이 장시간 앱을 사용하는 것보다 훨씬 가치 있다는 것을 보여준다.

3. 스트레스 관리 예시

스트레스 관리를 강화학습 문제로 모델링:

상태(S):

  • 스트레스 수준(낮음, 중간, 높음)
  • 에너지 수준(낮음, 중간, 높음)
  • 마감기한 근접도(여유, 보통, 촉박)

행동(A):

  • 명상하기(15분)
  • 운동하기(30분)
  • 일에 집중하기(1시간)
  • 휴식취하기(1시간)

보상(R):

  • 스트레스 감소(+0.3)
  • 일 진행도(+0.5)
  • 마감기한 성공(+3.0)
  • 스트레스 증가(-0.4)

정책 평가 결과:

  1. 상태 가치 함수:
    • V[(스트레스=높음, 에너지=낮음, 마감=촉박)] = -0.5
    • V[(스트레스=중간, 에너지=높음, 마감=여유)] = +1.8
  2. Q-함수:
    • Q[(스트레스=높음, 에너지=중간, 마감=촉박), '일에 집중하기'] = +1.2
    • Q[(스트레스=높음, 에너지=중간, 마감=촉박), '휴식취하기'] = -2.0
    • Q[(스트레스=높음, 에너지=낮음, 마감=여유), '명상하기'] = +0.9
    • Q[(스트레스=높음, 에너지=낮음, 마감=여유), '일에 집중하기'] = -0.1
    이것은 마감이 촉박할 때는 스트레스가 높더라도 일에 집중하는 것이 더 가치가 있지만, 마감에 여유가 있을 때는 에너지가 낮고 스트레스가 높은 상황에서 명상이 더 효과적임을 보여준다.

 

 

|인증|

 

 

 

 

-------

패스트캠퍼스 링크

https://bit.ly/4hTSJNB