Search

이번에 소개해 드릴 논문은 데이터 없이 트레이닝된 모델만 있을 때, 우리가 knowledge distilling을 통해서 새로운 모델을 얻을 수 있을까하는 문제를 다루고 있습니다. 여러가지 문제 - 보안 레벨이라든지, 개인 정보 보호라든지 - 때문에 원 모델을 학습시킨 데이타가 접근 가능 하지 않을 경우를 가정해본다면, 충분히 생길 수 있는 문제일 것 같습니다.

 

일단, 원 모델을 학습시킨 데이타가 접근 가능하지 않기 때문에, 다음과 같은 상황에 유사하다고 할 수 있겠습니다. 선생님과 학생이 있는데, 사용가능한 교재가 없는 것이죠. 다음과 같은 문제들을 해결해야, 학생을 가르칠 수 있을 겁니다.

  1. 교재를 어떻게 준비할까요? (우리가 데이타 포인트들을 만들 수 있을까요?)
  2. 교재의 양이 충분치 않을 경우, 어떻게 잘 가르칠 수 있을까요?

이와 같은 문제를 해결하기 위해, 저자들은 다음과 같은 구조의 뉴럴 네트워크를 제안합니다.

M은 학습된 모델입니다. (따라서 고정되어있습니다) 학습되는 부분은 G와 D인데, 다음과 같이 동작합니다.

  • D는 z hat 을 x hat으로 부터 생성하는 역할입니다. z hat은 x hat의 dimensional representation이라고 볼 수 있습니다. z bar 와 z hat, y bar 와 y hat의 차로부터 네트워크를 업데이트 할 loss function을 구합니다.
  • 위 네트워트 (저자들은 KegNet 이라고 이름 붙였습니다)가 학습이 끝나면, 이젠 학생 네트워크를 학습시킬 수 있습니다. G는 학생 네트워크를 학습시킬 데이타 포인트들을 만들어네는 네트워크 역할을 하게 됩니다.
  • 학생 네트워크는 M에서 tensor decomposition을 통해서 만들어냅니다. 저자들은 많은 방법 중에서 Tucker decomposition을 선택했구요. Tensor decomposition을 통해서 만들어낸 경량화된 모델은 fine tuning이 필요한데, fine tuning을 위한 데이터를 KegNet을 통해서 만들겠다는 것입니다.
  • 만들어지는 데이타 포인트들이 너무 유사해 지는 것을 방지하기 위해, loss function에 diversity를 고려한 항이 추가되어 있습니다.
  • KegNet을 y와 z를 만들기 위한 auto-encoder의 형태를 하고 있다고 이해할수 있다고 합니다.
  • 또한, 학습시키기위한 데이타 포인트들을 만들기 위한 Generative Adversarial Network (GAN)의 형태로 볼 수도 있다고 합니다.

생성된 이미지들을 보면 저자들이 의도한대로 구현된 것을 보실 수 있습니다. 물론, 사용한 데이터셋이 다른 데이터셋들에 비해 상대적으로 작은 편을 감안하면, 발전시킬 여지가 많은 것이 아닐까 추측해봅니다.

 

정량적으로 성능 분석한 결과 일부를 발췌해 보았습니다. Tucker decomposition후에 생긴 성능 손실을 상당한 수준으로 복구하신 것을 볼 수 있습니다. 괄호 안의 숫자는 Tucker decomposition후에 얼마나 모델 사이즈가 줄었나하는 것을 표시하기 위한 scaler입니다.

 

더 자세한 부분을 알고 싶은 분들을 위해 원문 링크를 첨부합니다.