본문 바로가기
연구실/강화학습 논문 리딩

Deep Reinforcement Learning using Genetic Algorithm for Parameter Optimization

by 정은진공부해 2020. 6. 16.

논문을 선정한 이유

연구실 논문 리딩 세미나 중에 교수님께서 유전 알고리즘(Genetic Algorithm, GA)에 대한 내용을 말씀하셨다.

리딩할 논문들을 찾아보던 중 마침 GA를 이용한 강화학습 논문이 눈에 들어왔다.


논문의 목표

강화학습(Reinforcement Learning, RL)에서의 하이퍼 파라미터(hyper parameter)들은 전반적인 학습 과정(learning process)에 많은 영향을 끼친다. 

강화학습의 하이퍼 파라미터로는 신경망(ex. policy, value)의 학습률, 감가율(discounting factor) 등이 있다. 잘못된 강화학습 하이퍼 파라미터 설정은 지역 최적화(local optimum)의 원인이 되기도 한다. (특히, continuous control 문제를 효과적으로 해결한 DDPG(Deep Deterministic Policy Gradient)는 이 하이퍼 파라미터에 민감한 것으로 알고 있다.) 

논문의 주된 제안 방법

이 논문에서는 이러한 하이퍼 파라미터를 최적화하기 위해 GA를 이용한다.


구체적인 제안 방법

먼저, 이 논문에서는 DDPG+HER 강화학습 알고리즘을 이용한다. 이 알고리즘의 하이퍼 파라미터들을 찾기 위해 GA를 이용한다. 찾을 하이퍼 파라미터는 각 네트워크의 학습률(learning rate), 감가율 등이 있다.

아래 그림은 내가 이 논문을 읽고 GA 기반의 하이퍼 파라미터 최적화 과정을 도식화한 것이다.

먼저, 부모 염색체가 주어진다. 이 부모 염색체는 각 하이퍼 파라미터들(대부분 실수이다.)을 bits로 인코딩(binary화) 한 것이다. 하이퍼 파라미터들의 리스트에 해당되는 각 염색체를 토대로 최적의 성능(이 논문에서는 85%의 작업 성공률)을 가질 때까지 강화학습한다. 이에 따라, 각각의 염색체들은 최적의 성능에 도달하기까지 소요된 epoch 수를 저장한다. 각 염색체에 대해 1/epoch이 곧 fitness가 된다. 이는 직관적으로 이해할 수 있듯이, 각 염색체(하이퍼 파라미터)가 갖는 학습 속도를 의미 한다. 

그 후, rank selection 방법에 따라 확률적으로 두 염색체 A, B를 고른 뒤 crossover 연산을 한다. 이 논문에서는 uniform crossover 방법을 채택했다. 이 방법은 두 염색체 A와 B에 대해 임의의 각 지점(gene)의 값을 교차시킨다.

그 후, 다양한 염색체들을 생성하기 위해(결과적으로 local optimum을 피하기 위해) 일정 확률(이 논문에서는 0.1)로 mutation 연산을 진행한다. 이 논문에서는 임의의 지점(gene)의 값에 대해 반대 부호를 취하는 flip mutation 연산을 이용했다.

이러한 과정을 반복하여 좋은 성능을 갖는 염색체(하이퍼 파라미터)를 산출한다.

GA 기반 하이퍼 파라미터 최적화 과정의 도식화

강화학습과 GA 기반 하이퍼 파라미터 최적화 과정은 아래의 수도 코드와 같다.

수도 코드

 


실험 환경

mujoco gym의 robotics 작업 환경들에서 실험을 진행했다.

실험

첫 번째 실험은 하이퍼 파라미터가 강화학습의 성능에 정말 영향을 끼치는지를 확인하기 위한 실험으로 판단된다.
실험 1의 그래프에서 볼 수 있듯이, DDPG의 soft update 상수의 변화만으로도 성능 차이가 꽤 심한 것을 확인할 수 있었다.

실험 1

두 번째 실험은 제안 방법이 정말 최적의 하이퍼 파라미터를 찾을 수 있는지를 확인하기 위한 실험이다. 이 실험에서는 단순히 DDPG의 soft update 상수와 감가율만을 최적화했음에도 불구하고, DDPG의 기본 하이퍼 파라미터 대비 성능 향상을 보였다.

실험 2

세 번째 실험은 각 작업에 대해 총 6개의 하이퍼 파라미터들을 최적화했을 때의 실험 결과이다. 실험 3의 그래프에서 볼 수 있듯이, GA를 기반으로 하이퍼 파라미터를 최적화했을 때 모든 작업에서 성능 향상이 된 것을 볼 수 있었다.

실험 3


개인 적인 논문에 대한 생각

장점 : GA는 목적 함수의 연속성, 미분 가능성 등을 고려하지 않아도 비교적 쉽게 문제에 적용할 수 있다는 장점이 있다. 따라서, GA를 이용해 비교적 간편히 하이퍼 파라미터 최적화를 진행할 수 있는 방법인 것 같다.

단점 : 하이퍼 파라미터가 강화학습의 중요한 요소인 것은 자명한 사실이지만, 이를 위해 수많은 강화학습 과정을 반복해야하는지 의문이다. AutoML 관련 논문을 자세히 접해보지 않아서 이 분야의 의의를 잘 모르지만, 당장 내가 보기에는 너무 비효율적으로 보인다. 왜냐하면, 강화학습의 가장 큰 이슈 중 하나가 데이터 비효율성인데 적절한 하이퍼 파라미터를 찾기 위해 강화학습을 많이 돌려서 찾겠다는 것이 맞는 걸까 생각이 든다. 최적의 성능에 도달하지 못한다면 보상 함수를 정교하게 설계하거나(물론, 사람의 노력이 필요함) 데모 데이터를 이용하는 등 다른 방법들을 이용하는 게 좋을 것 같다.