-
강화학습 DQN 파라미터 최적화 관련python source code 2023. 8. 22. 22:55728x90
2016년 3월 이세돌-알파고 대국 이후 벌써 7년이란 시간이 흘렀다.
그만큼 강화학습 알고리즘에 대한 연구가 많이 진행되었고 심층 강화학습(심층신경망)을 활용한 여러 어플리케이션들도 개발이 많이 되었다.
필자도 DQN(Deep reinforcement learning)을 사용한 여러 연구사례를 도출하고자 다양한 시도를 하고 있지만 아직 시행착오 단계일 뿐...
더군다나 reward 를 주는 방식, learning rate, gamma 값 등에 따라 다양한 패턴을 보이는 경우가 많다.
위 그림은 보상에 작은 변화 하나를 줬을 뿐인데 이렇게 큰 차이가 나게 된 것이다...
정리하자면 아래와 같다.
1. step 수가 정해진 에피소드여도 에피소드 종료 시점까지 step수를 더 늘리고 늘어난 만큼 reward를 줄이는 것을 추천한다.
2. 보상에 음수값을 주는 것은 비추, 신경망을 만들 때 어떤 활성함수를 쓰느냐에 따라 다르겠지만 필자는 relu와 출력은 sigmoid함수를 사용하였기 때문에 음수의 보상을 추가하는 것은 오히려 target value의 우하향 추이를 만들게 되었다.
3. 디테일하게 학습률, discount rate 등을 미세하게 조정하며 최적화된 값을 찾는 것도 필요하다... epoch 수나 batch 크기도 어떻게 변화를 주는지 확인해도 좋을 듯 하다.
4. 코드 전체적으로 파악한 경우, target 값의 범위, 에피소드가 끝나기 전, 보상을 줄 때 next state로부터 받은 value값과 현재 상태로부터 받은 보상값의 적절한 학습률을 반영하는 것도 중요하다고 느꼈다.
반응형'python source code' 카테고리의 다른 글