DQN 학습 속도 향상

이 기사는 Akatsuki Advent Calendar 2018의 21 일째 기사입니다.

소개



이 기사에서는 기계 학습에서 사용되는 DQN에 대해 학습 속도 개선 방법을 다루고 싶습니다.

소재로서 여기 블로그 에서 다루어지고 있는 카드 편성 문제를 DQN로 해결하는 과제를 고속화해 봅니다. Original에서는 대략 전승하기 위해 20000회 정도의 시도가 필요했습니다.

Original과의 차이





Original에서 어떻게 개선했는지 Original에서는 신경망에 현재 어느 덱을 선택하고 있는지를 index로 입력하고 있었지만, 이것을 선택해야 할 덱 번호만 1이 서 있는 one hot 표현으로 전개하고 있다 합니다. 언뜻 보면, 변수가 늘어나 학습이 느려질 것 같습니다만, Original에서는 데크의 index라고 하는 입력은 다른 모든 입력에 관련되고 있습니다. 이 때문에, 학습시에는 적의 속성의 모든 조합을 망라할 필요가 있습니다. 한편, 개량판에서는 덱 1과 적 1, 덱 2와 적 2와 같이 각각의 카드끼리 밖에 결합하지 않기 때문에, 덱 No 마다 학습하면 좋아집니다.

결과





학습시켜 얻은 보상을 플롯하면(100회의 이동 평균을 사용하고 있습니다) 위와 같이 되었습니다. 다른 모든 매개 변수는 동일합니다. Original이 20000회 시도로 드디어 5점 부근에 오는 반면, 개량판은 2500~3000회 정도의 시도로 5점 부근에 도달하고 있습니다. 7~8배 정도 개선이 보였다.

요약



DQN의 학습 속도를 향상시키기 위해서는 신경망의 계층을 바꾸거나, 하이퍼파라미터를 바꾸는 등의 대책이 있습니다만, 신경망에 넣는 입력을 재검토함으로써 크게 개선이 가능할 가능성이 있습니다. 이번과 같이 입력 중 하나가 데이터 열의 index로 사용되고 있는 경우, one hot 표현에 전개하는 것으로 뉴런간의 결합이 적어져 학습 속도를 개선할 수 있습니다.

좋은 웹페이지 즐겨찾기