일반화
• 기능 근사를 사용하여 정말 큰 영역에서 의사 결정을 내리도록 확장
심층 강화 학습
• 심층 신경망을 사용하여 표현
가치, Q 함수
정책
모델
• SGD(stochastic gradient descent)로 손실 함수 최적화
심층 Q-네트워크(DQN)
• 가중치 w를 갖는 Q-네트워크에 의한 상태-동작 값 함수 표현
DQN(Deep Q-Networks)에서 재생 경험
• DQN은 경험 재생 및 고정 Q 타겟을 사용합니다.
• 탐욕스러운 정책에 따라 조치를 취하십시오.
• 리플레이 메모리 D에 트랜지션 저장(st,at,rt+1,st+1)
• D에서 전환(s,a,r,s')의 무작위 미니 배치 샘플
• Q-학습 목표 w.r.t를 계산합니다. 오래된 고정 매개변수 w−
• Q-network와 Q-learning 타겟 간의 MSE 최적화
• 확률적 경사하강법 변형 사용
아타리의 DQN
• 픽셀 s에서 값 Q(s,a)에 대한 종단 간 학습
• 입력 상태 s는 마지막 4개 프레임의 원시 픽셀 스택입니다.
• 출력은 18개의 조이스틱/버튼 위치에 대해 Q(s,a)입니다.
• 보상은 해당 단계의 점수 변화입니다.
• 모든 게임에서 수정된 네트워크 아키텍처 및 하이퍼파라미터
DQN을 사용하여 Atari 게임하기
• 게임 화면 전처리
원시 게임 화면 이미지를 직접 공급하는 것은 비효율적입니다.
이를 방지하기 위해 게임 화면을 전처리한 후 DQN에 전처리된 게임 화면을 피드합니다.
이제 게임 상태(게임 화면의 이미지)를 다음과 같이 취하는 preprocess_state라는 함수를 정의합시다.
입력하고 전처리된 게임 상태(게임 화면 이미지)를 반환합니다.
DQN을 사용하여 아타리 게임하기
• DQN 구축
우리는 아타리 게임을 하기 위해 합성곱 신경망을 DQN으로 사용한다는 것을 배웠습니다.
게임 화면의 이미지를 입력으로 입력하고 Q 값을 반환합니다.
3개의 컨볼루션 레이어로 DQN을 정의합니다.
DQN을 사용하여 아타리 게임하기
• 네트워크 교육
에피소드 수 설정:
시간 단계 수 정의:
배치 크기 정의:
우리가 고려하고 싶은 과거 게임 화면의 수를 설정합니다:
DQN 클래스 인스턴스화:
더블 DQN
• 이 아이디어를 DQN으로 확장
• 현재 Q-network w는 동작을 선택하는 데 사용됩니다.
• 이전 Q-네트워크 w−는 작업을 평가하는 데 사용됩니다.
듀얼 DQN
• 직관: 가치를 정확하게 표현하는 데 필요한 기능은 특정 값을 지정하는 데 필요한 기능과 다를 수 있습니다.
행동의 차이
• 예시
게임 점수는 V(s)를 정확하게 예측하는 데 도움이 될 수 있습니다.
그러나 반드시 상대 행동 값을 나타내는 것은 아님 Q(s,a1) 대 Q(s,a2)
• 장점 함수(Baird 1993)
Atari의 DQN을 위한 실용적인 팁
• DQN은 일부 Atari 작업에서 다른 작업보다 더 안정적입니다. Pong은 신뢰할 수 있는 작업입니다. 달성하지 못하면
좋은 점수, 뭔가 잘못되었습니다
• 큰 재생 버퍼는 DQN의 견고성을 향상시키며 메모리 효율성이 핵심입니다.
uint8 이미지 사용, 데이터 복제 금지
• 인내심을 가지십시오. DQN은 천천히 수렴됩니다. ATARI의 경우 10-40M 프레임을 기다려야 하는 경우가 많습니다.
(GPU에서 몇 시간에서 하루 교육) 무작위 정책보다 훨씬 더 나은 결과를 볼 수 있습니다.