Lesson 17. 강화학습 (Reinforcement Learning)

조지아텍 온라인 석사과정 CS7647 ‘딥 러닝’ Lesson 17 필기 내용

전체 필기 링크 (구글독스)

Lesson 17. 강화학습 (Reinforcement Learning)


1. 강화학습 소개

1) 강화학습 소개 

  • 과업 : 연속적 의사결정
  • ‘보상(Reward)’ 형식으로 평가 피드백 수령


2) 강화학습의 개념들

  • Agent : 의사결정의 주체
  • Environment 
  • State : Agent에게 주어지는 Stimulus, Situation. 예: 로봇의 시각적 인풋.
  • Action : Agent가 Environment에 대해 취하는 행동.
  • Reward : Environment로부터 Agent에게 주어지는 보상. Gain, Payoff, Cost로 나뉨. (즉 비용도 Reward에 포함됨)
  • Evaluative Feedback (평가 피드백) : 
  • action을 취하고 보상을 받음 (negative 즉 음의 보상도 있음)
  • 지도학습에서와 달리, “올바른”행동에 대한 지도가 없음
  • Sequential Decisions (연속적 의사결정) : 
  • 연속된 state에 대해 action을 계획하고 취함
  • 보상이 지연될 수도 있음. 그러므로 장기적인 누적 보상을 고려한 최적화, 즉 장기 계획이 필요함.


3) 강화학습의 도전과제

  • 평가 피드백 : 올바른 action을 찾을 때 까지 trial-and-error 방식으로 가능한 모든 action을 검토해야 함. 
  • 피드백 지연 : action이 즉각적인 보상으로 이어지지 않을 수 있음.
  • 유동성 (Non-stationarity) : Policy가 변경되면 이미 방문한 state에 대한 데이터 분포 또한 변경됨
  • 온라인 데이터는 모두 흘러가는 데이터임. 시간도 마찬가지임. Agent는 해당 state를 단 한번만 보게 될 수 있음. 과거의 실수에서 학습하기가 어려움. 


4) 강화학습 API

  • Agent는 각 시간 스텝 t마다 : 
  • 관찰내역 o_t를 수령함
  • 액션 a_t를 실행함
  • Environment는 각 시간 스텝 t마다:
  • 액션 a_t를 수령함
  • 관찰내역 o_t+1 을 발산함
  • 보상 r_t+1을 발산함. (스칼라값)


5) 예시 : 아타리 게임 플레이하는 AI

  • 목표 : 가장 높은 점수로 게임을 끝내라
  • State : 게임 상태에 대한 raw pixel input
  • Action : 게임 조작 (예: 위아래 왼오른)
  • Reward : 각 시간 스텝 별 점수


2.마르코프 결정 과정 (Markov Decision Process)

1) MDP 소개

  • MDP는 강화학습 기저에 깔린 이론적 프레임워크이다.
  • 정의 : 튜플 (S, A, R, T, γ)
  • S: 가능한 State의 집합
  • A: 가능한 Action의 집합
  • R(s,a,s’): Reward의 분포
  • T(s,a,s’): Transition 확률분포. p(s’ | s,a)라고도 씀
  • γ: 할인 계수 (Discount Factor)
  • 순서 : … s_t, a_t, r_t+1, s_t+1, a_t+1, r_t+2, s_t+2 … 
  • 마르코프 속성: 현 state가 Environment의 state를 온전히 규정한다
  • 전제 : 가장 최근의 관측내용이 기존의 역사를 모두 함축하고 있다


2) 강화학습에서의 MDP

강화학습에서 우리는 기저에 MDP가 깔려있다고 가정한다. 

이 MDP에서 R과 T는 미지의 속성이다. 

그래서 피드백이 주어지며, trial-and-error 가 필수적이다. 

다만, 이 강의에서는 우리가 R과 T를 안다고 가정하고 MDP를 푸는 알고리즘, 즉 최적의 Policy를 찾는 방법을 알아본다. 아래 항목들이 전제된다. 

  • Rewards : 모든 상태에서의 보상 알고있음. 평가핏백 없음
  • Transition : Environment가 어떻게 작동하는지, 즉 모든 transition을 완전히 알고 있음


3) 예시 : 그리드에서의 MDP

  • Environment : 2d 그리드 
  • State : Agent(세모)의 2d 좌표
  • Action : 동서남북
  • Reward : 우측상단에 기재된 +1, -1 
  • 복잡요소 : Agent가 동작의 왼쪽/오른쪽으로 drift할 확률 20% 존재

Policy를 어떻게 짤 수 있을까?

한 가지 방법은 맵과 동일한 2d행렬을 구현하는 것이다. 


4) 최적의 Policy 찾기

  • Policy : State -> Action 매핑. 
  • Deterministic : π(s) = a
  • Stochastic : π(a|s) = P(A_t = a | S_t = s)

어떤 Policy가 좋은 Policy인가? 가까운 reward를 최대화하는것? 모든 미래의 reward를 동일하게 합하는 것?

답은 ‘할인된 미래 보상의 총합’이다.

policy에 대한 할인계수 * 보상의 총합의 기대값이 최대인 policy.


5) 최적 Policy 예시 

그리드 맵을 다시 살펴보자. 모든 non-absorbing state에 대해 reward 값을 설정해 주자. 


6) 가치 함수 (Value Function)

  • 가치 함수 : 미래 보상의 합에 대한 예측
  • State 가치함수 : V-함수. V : S -> R
  • 이 State의 가치는?
  • 이 State에서 내가 이길/질 가능성은?
  • State-Action 가치함수 : Q-함수. Q : S*A -> R
  • 이 State-Action 쌍의 가치는?
  • 이 State에서 이 Action이 내 미래에 미치는 영향은?


3. MDP 해결 알고리즘

1) Recursive Bellman Expansion

  • Q의 정의에 Recursive Bellman expansion을 적용하면 Q와 V를 아래와 같이 바꿀 수 있다.

  • 이는 Value Iteration이라는 dynamic programming algorithm의 근원이 된다. 


2) Value Iteration 

  • 알고리즘 단계:
  1. 모든 State의 값을 초기화한다
  2. Converge되지 않은 동안 모든 State에 대해 : 

  1. Convergence까지 반복한다. (Convergence = 값 변화 없음)
  • Time complexity : O( |S|^2 |A| )


3) Q-Iteration

Value iteration과 거의 같지만 state뿐만 아니라 action에 대해서도 반복된다. 


4) Policy Iteration 

  • 랜덤한 policy π_0에서 시작하여 점차 개선해나간다. 
  • 2개 단계를 반복한다.
  • Policy Evaluation : V^π 계산 (Value Iteration과 유사)
  • Policy Refinement : 그리디 방식으로, V^π에 따라 다음 state에서의 action을 변경함  

  • V^π_i 보다 π_i의 converge속도가 더 빠를 때가 많다. 그래서 policy iteration을 하는 것이다. 


5) Space/Time complexity

  • 앞서 봤듯 Value iteration의 time complexity가 매우 크다. 그래서 복잡한 상황이 될 수록 알고리즘을 조정할 필요가 있다. 


4. Deep Q-Learning

매우 흔히 사용되는 Value 기반의 강화학습 방식이다. 

1) 예시: 아타리 게임 

  • 알고리즘은 2개의 작업을 하는 중이다. 
  • Policy Refinement
  • 수집한 데이터를 통해 Deep-Q Network를 업데이트, 보다 나은 전략을 알아냄. (예: 칼럼별로 적을 없애기)


2) Deep Q-Learning

  • 요약 : 데이터로부터, 파라미터를 받는 Q-함수를 학습한다. 
  • 가장 간단한 선형함수 형태: 
  • 혹은 Deep 한 신경망 (Deep Q-Network : Q(s,a; θ))도 있다
  • 실제로 잘 작동한다
  • RGB 이미지를 인풋으로 받을 수 있다 (합성곱 신경망)

  • 손실함수는 아래와 같다. 다만, 실 적용시에는 안정성을 위해 두 단계로 나눈다. 
  1. Q_old를 그대로 두고 Q_new 의 파라미터들을 갱신한다
  2. 정기적으로 Q_old를 Q_new 값으로 세팅한다. 

  • 실제 적용시 미니배치를 사용한다. 
  • Forward Pass : 

  • 손실함수 : 배치 평균 사용
  • Backward Pass : Q_new parameters 에 대한 Loss의 derivative 
  • 고정 데이터셋에 대해 MSE 손실은 최적화될 수 있다. (Fitted Q-Iteration 알고리즘)
  • 하지만 ‘어떻게 경험/데이터를 축적할 것인가?’의 문제는 아직 해결되지 않았다. 이게 강화학습의 가장 어려운 부분이다! 


3) 어떻게 경험을 쌓을 것인가?

  • 예시: 데이터 수집 정책 “π_수집” -> Environment -> Data -> 훈련 -> “π_훈련” ->  “π_수집” 갱신
  • 문제점 1. Exploration vs Exploitation : Exploration 부분이 없음
  • 문제점 2. 보상을 받을법한 방향으로만 움직인 데이터이므로 독립적이지 않고 correlation 이 높은 데이터임


4) Exploration 문제

  • 단순 그리디 알고리즘을 구현할 시 Exploration 측면이 없음
  • 대안 : ε-그리디 알고리즘 


5) Correlation 문제

  • Correlation이 높은 데이터들만 축적되어 학습이 비효율적임.
  • 현재 Q-network의 파라미터가 다음 훈련 샘플을 결정지으므로 feedback loop에 빠질 수 있음. 
  • 예: 아래 예시에서 모든 훈련 샘플이 일단 우측으로 향하게 되어 local minima에 빠질 수 있음. 


6) 해결책 : Experience Replay 

  • Replay buffer에 transition을 저장
  • 경험이 쌓일때마다 replay buffer를 업데이트
  • Q-network는 리플레이 메모리에서 추출한 랜덤한 transition 미니배치로 훈련시킴. (비연속적인 샘플) 
  • 버퍼가 클수록 correlation이 낮아짐.


지금까지 배운 내용을 종합하면 아타리 미니게임 논문에 사용된 알고리즘을 이해할 수 있다! 


 

5. Policy Gradients, Actor-Critic

1) 파라미터를 받는 Policy 

  • 파라미터 목록 θ로 정의되는 Policy들 : 

θ는 예를 들어 선형변환이나 딥 네트워크 등의 파라미터들일 수 있다

  • 우리는 J(π)를 최대화하고자 한다. 

* 여기서 감마는 1인것으로 처리한다.

  • 이제 최적의 Policy에 대한 공식을 아래와 같이 바꿔쓸 수 있다.


2) Policy Gradient : 손실 함수

지도학습과 비교하면 아래와 같다. 


3) REINFORCE 알고리즘

  • 3단계로 진행된다
  • Policy 실행 및 데이터 수집
  • Policy gradient 계산
  • Policy 갱신
  • 그럼 Policy gradient는 어떻게 계산하는가? 


4) Policy gradient 계산


5) Policy Gradient의 단점

  • High Variance : 어떤 행동이 보상 증진으로 이어졌는지 정확한 파악이 어려워 high variance 나타남. 훈련 불안정. 
  • Variance 낮추기 : 보상으로부터, action과 무관한 baseline을 뺌. 


  • 이 Baseline을 무엇으로 하는지에 따라 알고리즘이 여러가지로 나뉨.



Share: X (Twitter) Facebook LinkedIn