RL

강화학습: 정리

MINAIR 2025. 2. 21. 16:30
  1. 정책의 정의? - 정책은 어떤 상태에서 어떤 행동을 할 확률이다.  
  2. 벨만 기대 방정식과 벨만 최적 방정식의 차이점? - 벨만 방정식은 현재 상태 s의 가치함수와 다음 상태 s'의 가치함수의 관계식으로, 좌변인 \(v_{\pi}(s)\)의 해를 구하는 방정식이다. 벨만 기대 방정식은 정책을 고려해 현재 상태 s에서 할 수 있는 모든 행동 a를 고려하지만 벨만 최적 방정식은 별도의 정책을 두지 않고 상태 s에서 할 수 있는 행동 a 중 최대의 큐함수로 가치 함수를 정의한다. 아래는 차례대로 벨만 기대 방정식, 벨만 최적 방정식이다. $$v_{\pi}(s) = \sum_{a \in A} \pi(a|s) [r(s, a) + \gamma v_{\pi}(s')]$$ $$v_{\pi}(s) = max_{a}[r(s, a) + \gamma v_{\pi}(s')] = max_{a} q_{\pi}(s, a)$$
  3. end-point에서의 정책? - end-point에서는 행동을 하지 않고 제자리에 있어야 하므로 모든 행동에 대한 정책은 0이다. 
  4. 정책 이터레이션에서의 정책 평가와 정책 발전의 과정을 설명하시오. - 정책 발전은 현재 정책을 따랐을 때의 가치 함수를 계산하여 현재 정책을 평가하고 정책 발전은 계산된 가치 함수를 토대로 정책을 발전시킨다. 정책 이터레이션에서는 벨만 기대 방정식을 이용해 가치 함수를 계산한다. 정책 발전에서는 계산된 가치 함수를 토대로 상태 s에서 가장 큰 큐함수를 가지는 행동 a을 높은 확률로 선택할 수 있도록 정책을 갱신한다. 가치 이터레이션은 정책 이터레이션의 자매품으로, 다른 점은 가치 함수를 계산할 때 벨만 최적 방정식을 이용한다는 것이다. 가치 이터레이션은 별도의 정책을 두지 않고, 벨만 최적 방정식을 이용해 상태 s에서 최대 큐함수를 가치 함수라 하고, 모든 이터레이션이 끝나면 상태 s에서 최대의 큐함수를 갖는 행동을 하도록 정책을 갱신한다. 
  5. 몬테 카를로, SARSA, 큐러닝을 각각 설명하시오. - 몬테 카를로 예측은 가치 함수를 '계산'하지 않고 '근사'하는 방법으로, 다이나믹 프로그래밍에서 강화학습으로 넘어가는 터닝 포인트이다. 몬테 카를로 예측은 에피소드 단위로 모든 상태의 가치 함수를 업데이트한다. \(\alpha\)는 스텝 사이즈로, 그 값이 클수록 과거 반환값을 지수적으로 감소시켜 현재 반환값을 더 중요하게 보겠다는 의미다. $$V(s) \leftarrow V(s) + \alpha (G(s) - V(s))$$ SARSA는 에피소드 단위가 아니라 매 타임스텝마다 업데이트하고, 가치 함수가 아니라 큐함수를 업데이트한다. 살사는 벨만 기대 방정식의 연장선이다. $$Q(s, a) \leftarrow Q(s, a)+ \alpha (r+\gamma Q(s', a') - Q(s, a))$$ 큐러닝은 벨만 최적 방정식의 연장선으로, 다음 행동이 무엇이든 무조건 최대 큐함수를 이용해 업데이트한다. $$Q(s, a) \leftarrow Q(s, a)+ \alpha (r+\gamma max_{a'} Q(s', a') - Q(s, a))$$ 
  6. \(\epsilon\)-탐욕 정책이란? - 살사와 큐러닝은 모두 \(\epsilon\)- 탐욕 정책을 따른다. 매 행동을 선택할 때 \(\epsilon\)의 확률로 랜덤하게 행동을 선택, 1-\(\epsilon\)의 확률로 탐욕적으로 행동을 선택한다. 강화학습에서 충분한 '탐험'을 위한 장치다. 
  7. 딥살사 nn의 입출력은 무엇인가? - 테이블 기반의 몬테 카를로, 살사, 큐러닝이 상태가 변하거나 매우 많을 때 사용이 제한된다. 따라서 딥살사와 DQN은 각각 살사, 큐러닝의 아이디어를 따르되 큐함수를 인공신경망 nn을 통해 근사한다. 딥살사 nn의 입력은 상태, 출력은 상태에서의 큐함수 리스트다. 
  8. 딥살사 파라미터 업데이트에 대해 설명하시오. - 큐러닝을 근사하는 nn의 파라미터 업데이트는 MSE loss = (target - pred)^2를 최소화하도록 이루어진다. loss.backward()로 역전파를 실행, optimzier.zero_grad() -> optimizer.step()을 이용해 파라미터 업데이트된다. 그러나 딥살사는 행동 정책과 목표 정책을 분리하지 않는 온 폴리시 정책을 따른다는 한계가 있다. 
  9. DQN의 가장 중요한 특징 중 하나는 리플레이 메모리를 사용한다는 것이다. 리플레이 메모리가 뭔지 설명하고, 특징 3가지를 설명하시오. - DQN은 큐러닝의 연장선으로, 오프 폴리시 정책 (행동 신경망과 정답 신경망을 분리)을 따라 딥살사의 한계를 극복했다. DQN이 사용하는 리플레이 메모리는 샘플 (s, a, s', r)을 저장했다가 학습에 사용하도록 한다. 첫 번째 특징은 리플레이 메모리는 queue 구조를 가져 선입선출을 따른다. 두 번째는 샘플을 랜덤으로 추출해 학습에 사용하기 때문에 샘플들 간의 시간적 상관관계를 없앨 수 잇따. 세 번째는 리플레이 메모리에서 batch size만큼 샘플을 추출하기 때문에 단일 샘플로 큐함수 파라미터를 업데이트하는 딥살사보다 더 안정적으로 인공신경망을 학습할 수 있다. 
  10. 딥살사와 DQN은 모두 가치 그래디언트이다. - o. 가치 그래디언트는 인공신경망으로 큐함수를 근사한다. 딥살사와 DQN는 target을 각각 \(R_{t+1} + \gamma Q(S_{t+1}, A_{t+1})\), \(R_{t+1} + \gamma max_{a'} Q(S_{t+1}, a', \theta^-)\)로 두고 pred를 \(Q(S_t, A_t)\), \(Q(S_t, A_t, \theta)\)로 둔다. 이때 DQN은 행동 신경망 \(\theta\)는 매 타임 스텝마다 업데이트하고 정답 신경망은 \(\theta^-\)은 에피소드가 끝나면 \(\theta\)로 업데이트한다.