본문 바로가기

트렌드 한눈에 보기/학계 트렌드

[CS234] Lecture 7: Imitation Learning 정리

갑자기 CS234 페이지가 사라졌다...!

당황스러움을 진정시키고, 인터넷에 학생들이 올린 코드와

강의 자료들을 수집했다(대부분 중국인들이 올렸다).

cs231n은 그대로 접속 가능한 것으로 보아 사이트 문제는 아닌데,

cs234만 사라진 이유가 무엇일까?

유튜브 강의도 사라질지 모른다.

이번 강의까지가 Deep Reinforcement Learning에 관한 내용이니 그나마 다행이다.


지난 시간에 빠르게 지나갔던 Dueling DQN의 추가 설명이다.

State Value Function: V는 현재 상태에서 특정 행동지침을 따를 때

받을 수 있는 보상의 현재가치이고,

State Action Value Function: Q는 현재 상태에서 행동을 취한 후에

특정 행동지침을 따를 때 받는 보상의 현재가치이다. 

그러므로 두 값의 차이는 현재 상태에서 취하는 행동이 

어떤 영향을 끼치는지 알 수 있고, 이 값을 Advantage라고 한다.

어떤 게임에서는 모든 장면에서 행동을 취할 것이 아니라

차가 충돌하기 전에만 움직이면 된다.

위 자동차 게임에서는 모든 장면에서 자동차를 이동시키면서

쓸모 없는 움직임만 생성해내고 있다.

Dueling DQN이 다른 DQN 방식보다 얼마나 더 잘 작동하는지 나타낸 표인데

명확하게 그려져 있지 않아서 이해하기는 어렵다.

어쨌든 잘 작동한다는 뜻으로 받아들이면 될 것 같다. 

이렇게 Model Free Policy Control이 끝이 났다.

 

이제 계속 다른 종류의 강화학습을 배울 차례이다.

지금까지 한 것처럼 밑바닥에서 학습을 시킬 수도 있지만

전문가 옆에서 견습을 하면서 학습을 하면

더 빠르게 목표를 달성할 수 있지 않을까 하는 생각에 탄생한 것이 Imitation Learning이다.

몬테주마 게임 같은 경우에는 

픽셀 게임 주제에 굉장히 넓은 세계관을 지니고 있어서 

기존 DQN으로는 해결이 어렵다.

슬라이드에 나온 사진만 보더라도 넓은 세계관 중에서 

DQN으로는 달랑 두 개만 탐색했고, 

오른쪽은 좀 더 진보했음에도 모든 시나리오를 방문하지 못한 것이다.

 

교수님의 연구실이나, Uber AI lab에서도 붙잡고 있던 문제라고 하는데

세계적 석학들이 게임 풀겠다고 애쓰고 있는게 뭔가 아이러니하다. 

뭐 이런 것들을 할 줄 알아야 다른 분야에도 쓰일 수 있는 거겠지만...

어쨌든 큰 진보가 이뤄진 것은 Imitation Learning이 적용된 이후라고 한다.

 

다른 강화학습이 기존 경험을 통해 파라미터를 수정해가는 방식을 사용한다면,

Imitation Learning의 역할은 전문가가 겪은 경험을 통해 학습하는 것이다.

몬테주마처럼 보상을 받는 텀이 너무 길거나 모호할 때,

또는 최적의 행동지침을 바로 세우기가 어려울 때 사용하면 좋다. 

 

Imitation Learning에는 세 가지 방식이 있다.

  1. Behavioral Cloning
  2. Inverse RL
  3. Apprenticeship Learning via Inverse RL

명확히 따지면, Imitation Learning은 "딥 러닝" 처럼 하나의 뭉뚱그려진 용어같다.

Behavioral Cloning도 Supervised Learning의 일종이니, 

"전문가"의 개입을 통해 학습을 가속할 수 있는 방식의 총칭인 셈이다.

 

또한 위 세 가지 방식은 각각 개별적인 것이 아니라,

기술의 발전에 따라 덧붙여온 흔적이라고 생각하는 게 좋다.

Behavioral Cloning은 1990년대 초부터 연구되었던 분야인데 제대로 작동하지 않았고,

이후에 Inverse RL, Apprenticeship Learning으로 연결되어 온 것 같다.

 

우선 Behavioral Cloning은 전문가가 생성해낸 "경험"으로부터 행동지침을 학습하는 것이다.

Imitation Learning의 완전 초기 모델이라서 현재는 거의 안쓰는 것 같다.

대표적인 문제로, 오차로 인해 전혀 다른 영역에 들어가게 되었을 때

해당 영역이 전문가의 "경험"에 포함되어 있지 않다면 어떻게 빠져나올 것인가 하는 예시가 있다.

두 번째 Inverse RL은 Behavioral Cloning에서 한 단계 진보한 버전이다. 

단순히 전문가의 경험을 토대로 상황에서 취할 행동을 결정하는 것이 아니라

경험을 통해 보상 함수를 만들어낼 수 있는 것이다.

(1, 2), (2, 4), (6, 12) 같은 좌표를 받다 보면 y = 2*x 라는 식을 구할 수 있는 것과 

같은 원리인 것 같다.

이를 바탕으로 Apprenticeship Learning을 할 수 있다.

 

Apprenticeship Learning의 핵심은, 보상함수를 만들어내는 것에서 그치지 않고

그 보상 함수를 최대로 활용할 수 있는 행동지침을 또 만들어내는 것이다.

잘 만들어진 행동지침인지 확인하는 것은

전문가의 경험과 비교해보면 쉽게 알 수 있다.

 

GAIL이라고 해서, 전문가의 경험인지 아니면 그것을 토대로 만들어낸 행동지침인지

판별해주는 존재를 도입해서 학습을 더욱 빠르게 해준 논문이 있다고 한다.

 

하지만 GAN이 그러했든 수많은 튜토리얼 영상이 올라오지 않는 것으로 보아

Imitation Learning의 연구는 2018년 이후로 끝이 난 것인지, 궁금하다.

하루가 다르게 나오는 딥러닝 분야 논문이 3년동안 진전이 없다면

이 분야는 끝이 났다고 합리적 의심을 해볼만 하다.

물론 딥러닝 분야 자체도 수 십 년이 넘는 암흑기를 거쳐서 재조명된 사례이지만...


전반적으로 강의가 알고리즘 강의보다는 역사 강의에 가까웠던 것 같다.

강의를 계속 듣는 게 맞나 싶을 정도의 수업이었다.

Assignment 2를 하면서 생각을 좀 정리해봐야할 일이다.