【DG】 Survey DG papers 1 - IBN-net and Relative papers
Survey DG papers1: IBN-net과 관련된 14개의 논문들
정확히 과제를 해결하기 위해, 논문들을 읽으면서 고려해야할 사항은 다음과 같다.
- Top down 방식으로, DG에 정확하게 알아가자.
- 기존 문제점에서, DG 논문들이 해결하려고 하는 것이 무엇인지?
- DG의 많은 방법론들.
- 그들의 공통점과 차이점
- 최근 DG 논문들의 최근 경향, 발전 방향
- 최근 DG논문들의 문제점과 약점이 무엇인지?
논문을 정리하면서 고려해야할 사항은 다음과 같다.
- 요약은 1논문당 15줄 이상을 넘어가지말자.
- 핵심만 파악한다.
- 디테일한 요소는 중요하지 않다.
1. IBN-net -ECCV18
- IN(
Instance Normalization
)과 BN(Batch Normalization
)에 대한 깊은 탐구와 적절한 사용을 한다. (IN, BN 수학수식 참조) Main Issue
: the appearance gap- 해결방법1: Finetunning -» trivial solution
- 해결방법2: appearance invariance를 Feauture가 배우도록 유도하기
- Max pooling, deformable conv -» spatial invariance 일뿐.
- Appearance invariance == The invariance of arbitrary image styles and virtuality (reality)
- IBN-Net만의 특장점, 차이점
- combining IN (Sample variance에 영향 적음) and BN (recognition 성능 향상)
- IN과 BN의 적절한 사용
- Contributions
- Style Transform의 IN을 사용해서, distorted ImageNet에 대해서 SOTA
- 실험을 통한 IN과 BN 분석
IN
: visual and appearance invariance BUT> drops useful content informationBN
: Feature와 individual samples 간의 차이를 줄여서, 학습 수렴을 가속화. BUT> Appearnce 변화에 약한 CNN 탄생
- Relative Works
- Domain Adapataion 을 위해서 사용하던 기법들 (하지만 이것도 결국 Target Domain에 의지함)
- MMD(maximum mean discrepancy)
- CORAL(correlation (covariance) allignment)
- AdaBN
- GAN
- Adversarial Loss
- Pseudo Label Generation
- Domain Generalization 과거 기법들 [아래 논문들 참조]
domain agnostic representations
을 학습하거나모든 domains에 대한 공통점
을 학습하려고 노력함- 하지만 이 방법들도 Source domain datasets (:= related source domains) 에 많이 의존한다.
- IBN 논문에서는 / 앞으로 DG를 위해 내가 생각해야할 포인트는
- DA처럼 Target에 의존하지 않고, 이전 DG처럼 Sources에 의존하지 않는 Generalization 기법을 찾고자 한다. (DG가 Source에 의존하지 않는 것은 불가능하다. 하지만 최대한 의존하지 않으면서 모델을 학습시키고자 노력한다.)
- IN와 같이 appearance invariance 성질을 가진 Layer 를 찾아 모델에 넣었다.
- Domain Adapataion 을 위해서 사용하던 기법들 (하지만 이것도 결국 Target Domain에 의지함)
- Method
1.1 읽어야할 다음 논문 List
- IN을 사용해서 individual contrast를 제거함으로써 Style transfer를 수행하는 논문들
- (#NO 핵심이 없고 메소드도 명확하지 않고 이해가 안된다) Improved texture networks: Maximizing quality and diversity in feed-forward stylization and texture synthesis. CVPR (2017)
- (#13) A learned representation for artistic style. ICLR (2017)
- (#14) Arbitrary style transfer in real-time with adaptive instance normalization. ICCV (2017)
- 다양한 Adpatation 기법들
- (#2) AdaBN: Adaptive Batch Normalization
- MMD: (#3) Deep Domain Confusion: Maximizing for Domain Invariance, (#4) Learning Transferable Features with Deep Adaptation Networks
- CORAL: (#5) Deep coral- correlation (covariance) alignment for deep domain adaptation
- DG 논문들
- (#7) Undoing the damage of dataset bias. ECCV (2012)
- (#8) Domain generalization via invariant feature representation. ICML (2013)
- (#9) Domain generalization for object recognition with multi-task autoencoders. ICCV (2015)
- 참고사항!!
- feature correlations matrix := covariance matrix := feature dot similarity := a gram matrix
- Instacne Normalization을 해주고 feature dot similarity matrix == correlations matrix
- 헷갈리지만, 다 비슷비슷하다. 코드를 보면서 필요한 것을 사용하자.
1.2. DA: AdaBN -arXiv16
- “Label(Contents) 와 관련된 내용은 Conv/FC의 weight에 저장되어 있고, Domain 에 관련된 내용은 BN에 저장되어 있다는 가설”을 제시한다.
- 새로운 Domain Dataset에 대해 위 알고리즘 방법을 사용해서 BN mean, standard diviation를 바꿔, 모델 Transfer를 진행한다.
- 이미 학습된 γ (감마) and β (배타) 에는 이미 Source 의 Style이 남아있으니… mean, standard diviation 이라도!! Target 전체 이미지의 평균, 표준편차값을 이용하여 Target domain에 그나마 적절한 BN을 수행하겠다.
- (Me: Conv/FC의 weight에 Invariance 성질을 어떻게 넣을까??)
1.3. DA: Maximizing for Domain Invariance -arXiv14
Additional domain confusion Loss
==domain confusion metric
==MMD
- 이미지 feature 각각의 (1대1 매칭) 거리 비교는 아니고, 데이터셋 전체의 Feature Centroids를 비교해서 domain confusion을 구한다. 이미지 아래 수식 참조.
- domain confusion 이 최소화 되도록 Model 에 Loss를 준다. 또한 domain confusion 계산값을 이용해 feature를 뽑아야하는 layer와 fc-dimmension을 설정한다.
1.4. DA: MK-MMD -ICML15
Paper: Learning Transferable Features with Deep Adaptation Networks
- Deep Adaptation Network (DAN)
- reproducing kernel Hilbert space (RKHS) 개념을 사용해서, 기존의 MMD를 multiple kernel variant of MMD (MK-MMD) 으로 바꿔 사용
- Feature map 그대로에 대한 Distance를 비교하는 것이 아니라, Feature에 특정한 kernal (다양한 종류의 행렬변환/ 비선형 변환등 모두 가능) 을 적용해 새로운 Feature를 만들고 그것에 대해서 Distance를 비교한다. 이때 Kernel은 PSD kernal을 사용한다고 한다, -» 딥한 수학적 내용이어서 이해는 이정도만 하자.
- 위의 수학 수식과 개념은 복잡해도, 코드를 확인해보면 별거 없다. Source와 Target Feature에 Gaussian_kernel을 적용하고 두개의 Distance를 비교하는듯 하다. MK-MMD
1.5. UDA: Correlation alignment -ECCV16
- CORAL Loss 코드 링크 (frustratingly easy domain adaptation - 2009): “각 Domain의 Feature들 사이의 공분산” 차이를 최소화하여, UDA 하고자 한다. 위 이미지에서 [위 파란색 박스 공분산 수식] 보다는 [아래 파란색 박스 공분산 수식]을 보고 코드와 비교해서 이해하도록 하자. 아래 공분산 수식에서 X_k 가 k번째 이미지의 Feature를 의미한다.
- 주의!!! 이것말고 아래 논문들이 CORAL은 Channel-wise 이다. 이 논문에서는 1 Image 1 vector (N images M dim vector) NxM matrix 를 이용한다.
- MMD(1.3) 기법과 유사한 방법이지만, MMD에서는
Feature들의 평균
을 비교했다면, 이 논문에서는Feature들의 공분산
을 비교한다. MMD(1.3=DDC)기법보다는 강력하고 MK-MMD(1.4=DAN)기법보다는 심플한 방법이다. - (이 이후에, AdaptSeg, ADVENT가 나오면서 Adversarial Learning을 기법을 이용한 Adaptation 기법들이 주를 이루기 시작했다.)
1.6. UDA: by Backpropagation -14
- gradient reversal layer 가 핵심이다. 기존 Gradient 에 -1 을 곱해서 반대 Gradient를 준다.
- AdaptSeg와 Advent 같은 Adversarial learning 과 비슷하면서도 다른 방법이다. Network에 혼란을 주겠다는 같은 목적을 가지고 있지만, Adversarial 처럼 직관적이고 정확한 gradient를 주기에는 무리가 있는 고전방법이다.
1.7. DG: Undoing dataset bias -ECCV12
- SVM과 Visual world 관점에서 Optimization이 이뤄지기 때문에, CNN과는 다른 관점으로 이해할 필요가 있다. (이 방법론을 차라리 CNN weight로 바꿔 생각해보자. 이해가 더 쉽다.)
- 모델을 통해서 학습하고자 하는 것은 2가지 이다. (1)
bias vectors
(2)visual world weights(=모든 데이터셋을 위한 Main Model)
- 핵심: Dataset에 대한 Bias를 인정하고, 한 Dataset에 특화된 모델(w_i)에서 (1) Bias 성질과 (2) General model W_vw 를 분리해내고자 노력한다. 즉
모든 Source domains에 대한 공통 weights
을 학습하고자 노력한다. - IBN-net, RobustNet 관점에서 Appearnce invariance 성질을 가진 Feature/Model/Weight를 학습하고자 하는 노력은 동일하다. 하지만 Source datasets에 너무 많이 의존한다는 단점을 가진 과거 기법이다.
1.8. DG: via invariant feature representation -ICML13
- 이 논문은 (1.4) MK-MMD 에서 Deep Learning 기법이 아닌 고전적인 기법을 사용한 논문이라 이해하면 된다. 또한 MMD는 Source와 Traget을 이용해서 Adaptation 을 수행한다면, 이 논문에서는 Multi-sources 를 사용해서 Multi-Adaptation 모델을 만든다. 이 논문의 저자들은 이것을 Generalization이 이뤄진 것이라 주장한다. 하지만 지금 관점에서는
domain agnostic representations in terms of ONLY Source domains
을 학습한다고 느껴진다. - MMD 처럼 어떤 Source Domain의 이미지가 Input으로 들어가든, Output 값의 평균이 비슷하도록 만든다. 즉 적절한 Kernel을 만들어(학습시켜) G가 Zero가 되도록 만든다.
- Paper key sentences
- Domain-Invariant Component Analysis (DICA) extracts invariants
- minimizing the dissimilarity across domains
- preserving the functional relationship between input and output variables
- Using dimension reduction algorithms including kernel principal component analysis (KPCA)
1.9. DG: with multi-task autoencoders -ICCV15
- 같은 Class, 다른 Domain의 이미지를 Reconstruction하는 Task를 (서로 다른 Domain에 대해서) Multi로 수행하여 Weight가 Domian General하게 만든다
- 위와 같은 알고리즘으로 만든 W는 Image classification을 위해서 사용된다.
- Domain Generalization이라고 하지만, Multi-sources를 활용한 Self-supervised Learning 기법이라고 하는게 맞겠다. 저자는 이 아이디어가 domain invariance에 유용한 Backbone을 만들 수 있을거라 주장한다. 하지만 이 아이디어를 Contrastive Learning과 비교한다면, Contrastive Learning 기법으로 만든 Self-sup-weight 만으로도 충분히 Generalization에 도움이 더 될 것 같다.
- Paper key sentences
- Multi-Task Autoencoder (MTAE) provides good generalization performance.
- MTAE learns to transform the original image into analogs “in multiple related domains”
- jointly learns multiple data-reconstruction tasks