Future Finance A.I. Challenge 2020
Idea : Face2Malnyun
- 만일 웹툰에서 데이터 허락을 받지 못하면, 다른 데이터셋을 찾아봐야 할지도.. ex) Simpson1, Simpson2, Anime, Cartoon, Selfie2Anime
Part 1. Pre-trained Model
- 데이터셋 정리 ( 심슨 데이터셋 / 웹툰 데이터셋 문의 )
- 모델에 대한 이해
- GPU서버 대여 ( Ubuntu / GPU 15TFLOPS / Keras, PyTorch / Python)
- StyleGAN / U-GAT-IT 구현완료 ( 파라미터 튜닝은 조금 살펴봐야됨, 모델 이해 X, FFHQ Pre-trained 모델 확인 )
Model | Paper | Code |
---|---|---|
U-GAT-IT | Paper | Code |
StyleGAN | Paper | Code |
StyleTransfer | Paper | Code |
WBCartoonization | Paper | Code |
- FreezeD / ADA 논문 리뷰
Method | Paper | Review |
---|---|---|
FreezeD(FreezeDiscriminator) | Paper | Pretrained된 Discriminator의 low-layer을 Freeze시키고 High-layer만 학습시키는 방법 |
ADA(AdaptiveDataAugmentation) | Paper | 5가지 방법으로 Adaptive하게 Data Augmentation하는 방법 논문 p.19-20 참조 |
- 데이터 수집
- Docker 시스템 구축
- U-GAT-IT 모델구조 파악
- Local Discriminator (n_layer = 5) 와 Global Discriminator (n_layer = 7) 으로 (2개의 Discriminator + 1개의 Generator) x 2
- Loss : Adverserial Loss (MSE) + Cycle Loss (MAE) + Identity Loss (MAE) + CAM Loss(Class Activation Map) (BCE) (+ VGG Loss)
- Discriminator에 Spectral Normalization 사용
- CAM (Class Activation Map) : class classification에 영향을 주는 feature map / global adaptive maxpool + global adaptive avgpool
- AdaLIN (Adaptive Layer Instance Normalization) : Instance (channel-wise), Layer (layer-wise) 을 adaptive하게 normalization
- Dataset 추가
- Selfie2Anime
- github 세팅 / docker 생성
- (지헌) 파이프라인 구성
- (주성/병지) GAN구조 파악 / DCGAN / ADA / PyTorch tutorial
- Main 파이프라인 구현 완료
- 학습중 ( face dataset : face에서 3500개 추출해서 사용중)
- 하이퍼파라피터 조정중
- 학습중 - 120K후에 Linear하게 lr->0으로 감소 ( 실수한거 발견 - 210K후에 실험 중단)
- 학습중
- Selfie2Anime 데이터셋으로 Pretrained한 모델 발견 ( FreezeD 이용해서 Transfer Learning 해볼 예정 )
- Dataset 의 문제인지 학습이 잘 안됨
- Transfer Learning ( FreezeD )
- Dataset ( Selfie2Anime )
- ADA 추가
- 데이터셋 변화( Selfie2Anime ), 모델 감량( 6res -> 4res ), 전처리 추가 -> 학습 잘됨.
- 이미지 사이즈 증가 -> 96에서 192
- Cycle Coefficieint, Identity Coefficieint (10,10) -> (15,15)
- 주성님 서버 받으면 transfer learning 해볼 예정
- 병지님 인물데이터 받으며 웹툰데이터셋 구성
Part 2. Parameter Customizing
- Transfer Learning 시작 (webtoon dataset) Cycle, Identity -> (10,10), lr = 0.00001
- AIHub에서 받은 인물 데이터셋은 잠시 기각
- VGG Loss, TV Loss 추가
- Transfer / fine-tuning 시작
- 연놈 데이터 추가.
- VGG Loss 삭제 -> 이유는 모르겠지만 CAM Loss랑 충돌이 일어나는 것 같음
- CAM Loss coefficient 2000을 증가
- Transfer보다 fine-tuning이 더 성능이 잘나오는 거 같음
- TV Loss : 15, lr = 0.0002
-
White-box-Cartoonization 모델 추가
-
White-box-Cartoonization 구조 파악 및 정리
-
pretrain된 모델 데이터로 실행이 잘됨. transfer를 통해 추가 학습 필요없다고 판단.
-
Server1 에서 여신강림 mode collapse발생 -> 재학습 (TV Loss : 20, CAM Loss : 1500, lr = 0.0001)
-
Server2 에서 연놈, 학습 잘 되던 중 80epoch 넘어가면서 overfitting 발생
- 이미지사이즈 256, light=False로 YSGR/YN 두 개 학습.
- YSGR이미지가 256이고 YN이 192라 YN은 잘 안됨.
- 서버2에 이미지 사이즈 128, light=False, res_block = 6으로 설정하고 다시 학습중
- U_GAT_IT + TV Loss (여신강림)
- U_GAT_IT + TV Loss (연놈)
- White-Box-Cartoonization (Pretrained)
- Style Transfer