Chapter 5. Q-LEARNING & DEEP SARSA Young-Gyu Kim LINK@KoreaTech http://link.koreatech.ac.kr
살사의 한계 살사는 온폴리시 시간차 제어이다. 즉, 자신이 행동하는 대로 학습하는 시간차 제어이다. 충분한 탐험을 위해 𝜀-탐욕 정책을 사용하지만, 𝜀-탐욕 정책으로 잘못된 정책을 학습하게 된다. (탐험 vs 최적 정책 학습의 딜레마) 𝑄 𝑆 𝑡 , 𝐴 𝑡 ←𝑄 𝑆 𝑡 , 𝐴 𝑡 +𝛼( 𝑅 𝑡+1 +𝛾𝑄 𝑆 𝑡+1 , 𝐴 𝑡+1 −𝑄( 𝑆 𝑡 , 𝐴 𝑡 )) * 살사에서 큐함수의 업데이트 다음상태에서 또 다시 엡실론 탐욕 정책에 따라 다음 행동을 선택한 후 그것을 학습 샘플로 사용한다. 책 142p * 갇힘 현상 발생의 예
Q-Learning 딜레마를 해결하기 위해 오프폴리시 시간차 제어(큐러닝) 사용 오프폴리시(Off-Policy) : 행동하는 정책과 학습하는 정책 분리 큐러닝을 통한 큐함수의 업데이트 현재상태 s에서 행동 a를 𝜀-탐욕 정책에 따라 선택. 환경으로부터 보상 r 과 다음상태 s’를 받고 s’의 상태에서 가장 큰 큐함수를 현재 큐 함수의 업데이트에 사용. 큐러닝은 벨만 최적 방정식을 사용 𝑄 𝑆 𝑡 , 𝐴 𝑡 ←𝑄 𝑆 𝑡 , 𝐴 𝑡 +𝛼( 𝑅 𝑡+1 +𝛾 𝑚𝑎𝑥 𝑎′ 𝑄 𝑆 𝑡+1 ,𝑎′ −𝑄( 𝑆 𝑡 , 𝐴 𝑡 )) * 큐러닝을 통한 큐함수의 업데이트 𝑞∗ 𝑠,𝑎 =𝐸[ 𝑅 𝑡+1 +𝛾 𝑚𝑎𝑥 𝑎 ′ 𝑞∗ 𝑆 𝑡+1 , 𝑎 ′ | 𝑆 𝑡 =𝑠, 𝐴 𝑡 =𝑎] * 큐함수에 대한 벨만 최적 방정식
살사와 큐러닝의 차이 살사 큐러닝 <s,a,r,s’,a’> <s,a,r,s’> 큐함수를 업데이트 하기 위한 샘플 <s,a,r,s’,a’> <s,a,r,s’> 큐함수를 업데이트 하기 위한 방정식 벨만 기대 방정식 ⇒ 정책 이터레이션 벨만 최적 방정식 ⇒ 가치 이터레이션 정책 온폴리시 시간차 제어 오프폴리시 시간차 제어 * 살사 에이전트와 환경의 상호작용 * 큐러닝 에이전트와 환경의 상호작용
살사와 큐러닝 결과 비교 * 살사 에이전트(좌)는 큐함수 값에 따라 갇힘 현상이 발생하였고, 큐러닝 에이전트(우)는 갇히지 않고 목표에 도달하였다.
고전 강화학습 알고리즘의 한계 다이내믹 프로그래밍의 한계 1, 2번 문제는 근사함수(Function Approximator)로 계산 복잡도 차원의 저주 환경에 대한 완벽한 정보가 필요 고전 강화학습 알고리즘(몬테카를로, 살사, 큐러닝)으로 3번의 문제를 해결한 것이다. 1, 2번의 문제는 해결되지 않았다. 큐러닝까지의 알고리즘은 상태가 적은 문제에만 적용 가능하다. 1, 2번 문제는 근사함수(Function Approximator)로 근사(Approximation)를 하여 해결 가능. 근사함수 : 기존의 데이터를 매개변수를 통해 근사하는 함수 * 근사함수로 근사의 예
DEEP SARS’A’ Q-function(큐함수)을 Neural Network(인공신경망)에 근사 근사함수 중의 한 종류. 동물의 뇌를 모델링 한 것. 각 노드(node)는 층(Layer)을 쌓는 구조로 하나의 모델을 형성. 오류 역전파(Back-Propagation)로 학습함. 책 154-172p 참고 Q-function(큐함수)을 Neural Network(인공신경망)에 근사 Neural Network는 Gradient descent(경사하강법)를 사용하여 업데이트 Loss function(오차함수)은 MSE(평균제곱오차) 사용. 경사하강법의 종류 : SGD, RMSprop, Adam (문제에 따라 맞는 방법 선택) 모든 경사하강법은 Learning Rate 변수를 가짐 기존의 살사 알고리즘을 사용하여 큐함수를 인공신경망에 근사. 인공신경망을 통해 큐함수를 구함. 경사 하강법을 사용해 큐함수를 업데이트 하려면 오차함수를 정의해야한다. 수식에서 정답과 예측에 해당하는 것으로 오차함수를 구할 수 있다. * 경사하강법의 예 𝑄 𝑆 𝑡 , 𝐴 𝑡 ←𝑄 𝑆 𝑡 , 𝐴 𝑡 +𝛼( 𝑅 𝑡+1 +𝛾𝑄 𝑆 𝑡+1 , 𝐴 𝑡+1 −𝑄( 𝑆 𝑡 , 𝐴 𝑡 )) * 살사에서 큐함수의 업데이트 정답 예측 𝑀𝑆𝐸= (정답−예측) 2 = ( 𝑅 𝑡+1 +𝛾𝑄 𝑆 𝑡+1 , 𝐴 𝑡+1 −𝑄( 𝑆 𝑡 , 𝐴 𝑡 )) 2 * 오차함수
장애물이 움직이는 그리드 월드 세 개의 장애물이 같은 속도(한 스텝마다 한 칸씩 움직임)와 같은 방향으로 움직이고, 벽에 부딪힐 경우에 다시 튕겨 나와 반대 방향으로 움직인다. 장애물을 만날 경우 보상은 (-1)이다. 도착했을 경우 보상은 (+1)이고 한 에피소드가 끝난다.
상태 정의와 딥살사의 인공신경망 상태 정의 Neural Network 에이전트에 대한 도착지점의 상대위치 x, y 도착지점의 라벨 에이전트에 대한 장애물의 상대 위치 x, y 장애물의 라벨 장애물의 속도 장애물이 3개 이므로 ③, ④, ⑤는 3배를 하면 12개 이고 ①, ②를 더하면 총 15개의 상태 Neural Network Input layer Hidden layer Output layer 노드 수 15 30 5 Layer 수 1 2 Activation fuction relu linear https://tykimos.github.io/2017/01/27/MLP_Layer_Talk/ 케라스 설명