본문 바로가기

논문 리뷰

Few-shot Knowledge Transfer for Fine-grained Cartoon Face Generation

Keywords

  • Face2Cartooon
  • Conditional GAN
  • Unpaired image to image translation
  • Few shot learning

Contribution

  • 데이터가 많은 group에서 얻은 knowledge를 few shot group으로의 image translation에 transfer하는 방법을 소개했다.

Proposed methods

  • 기존의 U-GAT-IT같은 cartoon generation 모델을 보면, 이미지의 group을 구분하지 않아서 모든 input이 dominate한 group으로 translate되는 단점이 있었다.
  • 가령 face2anime의 경우 anime 데이터셋에는 어린 여성 캐릭터가 많은데, 이러면 노인 사진을 넣었을 때 어린 여자로 바꿔버린다.
  • 그래서 group을 나누어 학습하는게 중요한데, 문제는 anime 데이터셋에 노인 캐릭터가 별로 없다는 것이다.
  • 이 논문은 이런 경우에, 데이터가 풍부한 어린 여성으로의 translation을 학습한 뒤 그 knowledge를 다른 data sparse한 group에 transfer 해냈다.

 

 

우선 데이터가 많은 group간의 translation을 먼저 학습한다. 여기서 architecture는 unpaired 모델이면 다 되는데, 이 논문이 영향을 많이 받은 오픈소스 프로젝트에서 U-GAT-IT기반 모델을 사용해서 거기서 가져왔다고 한다.

 

 

U-GAT-IT 리뷰

Unpaired image to image translation에 관한 논문이다. 1. Geometric change를 잘 한다. 2. 고정된 architecture와 hyperparameter로도 다양한 데이터셋에 대해 잘 한다. Attention map을 이용해 1번을 잘하고 Ad..

yun905.tistory.com

 

 

  Generator를 encoder와 decoder로 나눠서 생각할 때, encoder의 top layer와 decoder의 low layer는 domain specific하지 않고 공유될 수 있다.

 

  • Encoder를 깊게 타고 들어갈수록 원래 domain의 style 정보가 사라지고, 상단의 layer들은 일반적인 feature를 추출하는 역할을 할 것이다.
  • Decoder를 깊게 타고 들어갈수록 target domain으로의 구체적인 style이 입혀지고, decoder의 아랫단은 encoder의 상단에서 온 일반적인 feature를 다루는 구간이 될 것이다.

그런데 transfer learning을 할 때, CNN의 아랫단은 general feature extractor라서 공유할 수 있는 것과 조금 상반되는 개념인 것 같다. 오히려 generator의 encoder의 아랫단은 edge나 색반전 등 general한 low level feature를 잡아내므로 공유할 수 있을 것 같은데.

 

또한, 완전히 group-shared parameter를 얼리고 학습을 시키면 adaptation이 부족해서 성능이 떨어진다고 한다. 따라서 selective backpropagation을 사용하는데, 이 논문에서 설명한 것으로만 이해하자면 few shot group의 input에 대해서는 group-shared parameter를 update 하지 않고, 데이터가 많은 group의 input일 때만 update를 한다는 것이다.

 

위 두 개념을 잘 이해하려면 이 논문이 참고한 (arxiv.org/abs/1806.06029)를 읽어보자.

 

 

Translation을 수식으로 나타내면 위와 같다.

 

 

 

논문에서는 데이터가 많은 group을 0번으로 두었다. 위를 보면 shared encoder/decoder 위에 bar가 붙는데, freezing 된다는 것을 의미한다.

 

Objective Function

 

adversarial loss

 

Least square를 사용한다.

 

 

cycle loss
identity loss
cam loss

 

 

여기까지는 U-GAT-IT과 같다.

 

 

 

이건 위에서 얘기한 오픈소스 프로젝트에서 가져온 loss라고 한다. F는 pre-trained face recognition 모델이다. 그 모델에 돌려서 feature를 뽑고 cosine distance를 잰다. 

 

 

 

Cosine distance를 이해하려면 우선 cosine similarity를 알아야 하는데, 위와 같이 두 벡터간의 cosine theta 값이다. 1이면 두 벡터의 각이 0인 것이고, 0이면 두 벡터의 각이 90도인 것이다. Cosine distance는 1 - cosine similarity이다. 즉 이 loss term은 face recognizer의 feature space에서 generated image와 source image의 각이 0도가 되도록(유사하도록) 한다. 이 논문에서 사용된 cartoon 데이터셋이 사람 얼굴과 큰 차이가 없어서 이런 loss를 사용했다. 가령, 심슨과 같이 사람 형태가 거의 남아있지 않는 cartoon face를 생성하는 모델이라면 이 loss를 사용하지 않는 것이 좋을 것 같다.

 

 

Group classification loss of real images
Group classification loss of fake images

 

위와 같은 group classification loss도 추가되었다. Generator가 group label을 고려하지 않고 생성하는 것을 막을 수 있을 것이다.

 

 

 

합쳐서 이런 objective를 가지게 된다.

 

Results

 

  • Basic model은 group 0에 해당하는 여성 얼굴과 여성 캐릭터간의 mapping만 학습했다. 우리는 여기서 branch를 만들어서 다른 group간의 mapping도 학습하길 원하는 것이다. 그래서 보면 남자 얼굴도 여자처럼 바꾼다.
  • Baseline 1은 group을 신경쓰지 않고 그냥 unpaired로 돌린 것이다. 데이터셋에는 여자 캐릭터가 200개이고 나머지 그룹의 캐릭터는 15개 이하이다. 그래서 많은 group쪽으로 생성 결과가 쏠린다. 남자 캐릭터의 눈을 보면 속눈썹이 길다.
  • Baseline 2는 fine tuning시에 group 1,2,3을 구분하지 않고 합쳤다고 한다. 결과는 나쁘지 않지만, 모델이 pre-train 된 여자와 여자 캐릭터간의 mapping을 까먹은 모습이다. 여기서 shared parameter를 freeze했는지 궁금하다. Freeze를 풀었을 때 어떻게 망가지는지 아래에서 실험하기 때문에, 여기서는 아마 freeze를 한 채로 실험을 했을 거라고 생각한다. 저자에게 문의해보니 freeze 하지 않았다고 한다. Freeze 하고 여자 캐릭터의 이미지를 간헐적으로 보여주면 mapping을 까먹는 문제를 해결할 수 있지 않을까?

 

 

 

Baseline 3에서는 baseline 2와 달리 group label을 구분지었다. 하지만 각 group을 동시에 fine tuning하지 않고 하나의 group에 대해서만 fine tuning 했다. 결과적으로 overfitting이 일어났다. 그 말은 각 group을 동시에 training하면 overfitting이 안난다는 것인데, 각 group이 공동으로 update하는 것은 discriminator밖에 없으므로 여기서는 discriminator overfitting이 일어났다는 의미일 것이다.

 

이 실험들로 알 수 있는것은,

 

1. 통째로 학습시키는 것은 안된다(baseline 1).

2. Group별로 branch가 필요하다(baseline 2).

3. 각 group을 동시에 훈련해서 discriminator overfitting을 막자(baseline 3).

 

이렇게 정리할 수 있겠다.

 

 

Selective backpropagation을 사용하지 않고 few shot group에 대해서도 shared parameter들을 update 한 결과이다. 이렇게 하면 distribution을 해친다고 주장한다. Distribution을 해친다는게 정확히 어떤 의미인지 모르겠다. 하지만 transfer learning 시에 데이터가 적음에도 freezing을 안걸고 하면 pre trained model을 망친다는 것은 당연해 보인다.

 

 

'논문 리뷰' 카테고리의 다른 글

Understanding Deep Learning Requires Rethinking Generalization  (0) 2021.02.06
Training GANs with Limited Data  (0) 2021.01.23
U-GAT-IT 리뷰  (0) 2021.01.09
VDSR 리뷰  (0) 2021.01.02
Deep Knowledge Tracing 리뷰  (1) 2020.12.26