Contents

Generative Adversarial Imitation Learning (GAIL)

Imitation learning의 목적은 expert를 잘 따라하는 것이다. 이러한 방법으로 behavior cloning이나 inverse reinforcement learning과 같은 방법이 알려져있고 2016년에 generative adversarial imitation learning이라는 방법이 소개되었다.

Behavior Cloning and Inverse RL

Imitation learning의 방법 중 behavior cloning은 expert의 방식을 지도학습의 방식으로 따라하게 하는 것이다. “따라하게 한다"는 목적에 충실하면서 가장 단순한 방법일 것이다. 하지만 이러한 방식은 정확하게 따라하기만 하면 차라리 다행인데 오차가 필연적으로 발생하고 이런 오차들이 누적되면서 점점 expert는 맞닥뜨리지 않았을 상황에 놓이고 과정이 망가지게 되는 문제가 있다. Inverse reinforcement learning은 cost function, 즉 reward logic을 학습하고 이 logic에 따라 강화학습을 적용해 문제를 푸는 것이다. Inverse RL을 언급할 때 꼭 등장하는 말이 inner loop에 강화학습을 풀면서 계산량이 지나치게 많이 사용된다는 것이다. 강화학습문제를 그냥 푸는 것도 쉽지 않은데 cost function을 추정하고 강화학습을 풀고 이렇게 향상된 policy로 또 cost function을 추정하고 다시 강화학습을 하는 방식은 언뜻 보기에도 쉽지 않은 방식이다.

GAIL

GAIL은 inverse RL에서 cost function을 추정하고 강화학습을 푸는 문제를 동시에 수행한다. 다음의 pseudo code를 보자.

/gail/algorithm1.png
Algorithm 1

준비물은 expert의 trajectory, 정책과 discriminator의 파라미터이다. 이후에는 정해진 횟수만큼 다음을 반복한다.

정책을 사용해 trajectory를 sampling한다. 그리고 이렇게 만들어진 trajectory를 GAN구조의 fake data로, expert의 trajectory를 real data로 구별하도록 discriminator를 훈련시킨다. 이 논문에 generative adversarial이라는 단어가 들어간 이유는 바로 정책의 향상과 discriminator가 서로 경쟁하는 구조로 설계했기 떄문이다. Discriminator를 훈련한 뒤 TRPO를 사용해 정책을 업데이트한다.

Inverse RL이 cost function을 추정하고 강화학습을 푸는 두 단계의 구성이었다면 여기서는 한 iteration 안에서 같은 목적을 달성하려고 하므로 더 효율적인 학습이 될 것을 기대할 수 있다.

Reference