본 논문에서 제안하는 NaturalInversion은 Data-free 환경에서 pre-trained classifier를 활용하여 모델이 학습했던 분포와 유사한 이미지를 만들어냅니다. 이미지를 만들기 위하여 첫째, pre-trained된 모델에서 추출한 다양한 크기의 feature map을 활용하는 Feature Transfer Pyramid(FTP) 구조를 사용하여 이미지의 fidelity를 높입니다. 두번째로, mode collapse 문제를 완화시키기 위한 one-to-one generative model을 사용하여 이미지의 다양성을 확보 합니다. 마지막으로, 학습의 안정성 및 색감의 다양성을 확보하기위한 Adaptiave Channel Scalining parameter를 사용합니다. 본 논문에서 제안하는 방식을 활용하여 이미지를 만들 시, 기존 방식보다, 모델을 학습시켰던 original dataset과 유사한 분포의 이미지를 만들 수 있음을 다양한 실험을 통해 증명했습니다. 위 그림에서 첫번째 행에 나열된 이미지들이 본 논문에서 제안한 방식으로 만든 이미지 sample 입니다. 이해를 돕기 위해, 본 논문의 abstract을 아래에 첨부합니다.
We introduce NaturalInversion, a novel model inversion-based method to synthesize images that agree well with the original data distribution without using real data. In NaturalInversion, we propose: (1) a Feature Transfer Pyramid which uses enhanced image prior of the original data by combining the multi-scale feature maps extracted from the pre-trained classifier, (2) a one-to-one approach generative model where only one batch of images are synthesized by one generator to bring the non-linearity to optimization and to ease the overall optimizing process, (3) learnable Adaptive Channel Scaling parameters which are end-to-end trained to scale the output image channel to utilize the original image prior further. With our NaturalInversion, we synthesize images from classifiers trained on CIFAR-10/100 and show that our images are more consistent with original data distribution than prior works by visualization and additional analysis. Furthermore, our synthesized images outperform prior works on various applications such as knowledge distillation and pruning, demonstrating the effectiveness of our proposed method.
자세한 내용은 2022년 2월에 개최되는 AAAI-2022 conference 후에 소개하겠습니다. 감사합니다.
이번에 강민구 전문연구 요원님, 김동진 학생 연구원님과 함께 Team 'Machine Running'으로 함께 참여했던
성균관대학교 삼성융합의과학원(SAIHST) 디지털 헬스 학과와 디지털 헬스케어 파트너스(DHP)가 공동 주최하는 제 6회 Digital Health Hackathon 2021에서 공동 1위로 최우수상을 수상하였습니다.
해커톤 주제는 'bio-health simulation data를 이용하여 치료의 효과를 증가시키는 인과관계가 있는 유전자를 찾아내는 것'입니다.
환자 맞춤형 치료는 특히 암 환자의 맞춤형 항암 치료 분야에서 뚜렷한 성과를 보입니다. 이는 암 유전자 분석을 통해 변이 유전자에 타깃이 되는 약물을 찾아내는 과정을 통하여 이루어집니다. 하지만, 환자의 데이터로부터 항암 효과와 인과 관계가 있는 유전자 변이를 찾아내는 과정은 매우 어렵습니다. 암세포에서 유전자 변이는 수천 개 이상이 존재하며, 치료 효과와 유의한 연관성을 분석하기에는 환자의 데이터가 일반적으로 매우 적습니다.
이러한 문제를 해결하기 위해 Feature selection을 filter method와 wrapper method를 혼합 사용하여 해결하는 방식을 제안하였습니다. 많은 feature를 1차 적으로 걸러내기 위해 filter method로서 cox regression의 결과를 사용하였습니다. 2차 적으로는 치료에 긍정적인 유전자 변이를 확인하기 위해 wrapper method로서 강화학습 기반의 meta-heuristic feature selection으로 유전자 변이 정보를 찾아내는 방법을 제안하여 사용하였습니다.
안녕하세요. 오늘 소개드릴 논문은 AAAI'2021에 게재된 DegAug입니다. 논문 제목에서 알 수 있듯이 Feature representation을 나누고 semantic augmentation을 통해 Out-of-Distribution generalization을 달성한 논문입니다.
About Out-of-Distribution
논문에 대한 내용에 앞서 IID와 OoD의 개념을 말씀드리겠습니다.
Independent, Identical Distribution (I.I.D)→예를 들면 CIFAR10의 train-set과 test-set이 나눠져 있지만 그 둘은 동일한 분포를 가지고 있습니다. 따라서 이 둘은 I.I.D입니다.
어떤 랜덤 확률 변수 집합이 있을 때 각각의 랜덤 확률변수들은 독립적이면서 동일한 분포를 가지는 것을 의미합니다.
Out of Distribution (OoD)(ICML 2021, Stanford) WILDS: A Benchmark of in-the-Wild Distribution Shifts→ 당연하게도 실제 상황에선 OoD가 더 많이 존재합니다.
예를 들어, Medical 응용의 경우 특정 병원에서 얻은 데이터로 학습한 뒤, 다른 병원에 배포되는 경우가 있습니다. 학습 때와 다른 분포를 테스트시 추론하게 되므로 이 경우 OoD입니다.
학습 데이터의 분포를 따르지 않는 데이터를 따르지 않는 데이터를 이야기합니다.
그렇다면 기존의 학습방법으로 OoD을 잘 추론할 수 있을까요? → 그렇지 않습니다!
위 그림은 2019년 페이스북에서 나온Invariant Risk Minimization에 나온 예시입니다.초록색 배경의 소🐮 와모래색 배경의 낙타🐪 로 학습을 시킨 모델이 있다고 가정해봅시다.
이 모델에초록색 배경낙타🐪를 추론시킬 경우 소🐮로 추론한다고 합니다.
즉, 기존의 학습 방법은 데이터간의 가장 큰 공통 특징(배경색)을 가지고 학습 및 추론을 하기 때문에 학습 데이터와 다른 데이터(OoD)은 잘 추론하지 못합니다.
OoD는 언제 문제가 될까요?
위 그림은 페이스북에서 CVPR'2019에 발표한 논문에서 발췌한 그림입니다.
왼쪽 사진은 상용 클라우드 플랫폼 (Azure, Clarifai, Google, Amazon)의 AI classification 모델에 서로 다른 국가에서 촬영한 비누를 추론시킨 결과입니다 네팔에서 촬영한 사진의 경우 모든 상용 솔루션이 틀리는 것을, 영국에서 촬영한 사진의 경우 대부분의 경우에서 맞는것을 알 수 있습니다.→ 상용 솔루션의 경우 대부분 미국에서 배포하고 있고, 미국을 포함한 수입이 높은 국가에서 수집한 데이터로 학습을 진행합니다. 따라서 데이터를 수집한 국가와 다를수록 즉 OoD의 경우 정확도가 낮아지는 것을 알 수 있습니다.
오른쪽 사진은 한달 수입이 $x$ 인 국가에서 데이터를 수집한 뒤, 상용 솔루션 모델들에 추론시켰을 때 정확도를 나타낸 표입니다. 수입이 높은 국가에서 수집한 데이터인 경우 정확도가 높은 것을 알 수 있습니다.
DegAug
Category vs . Context
이 논문에선 하나의 이미지가 category, context 2개의 정보를 담고 있다고 얘기하고 있습니다
context : 각 이미지가 가지고 있는 환경적인 특징을 의미합니다. 예를 들어 잔디밭 위에 양이 있다면 잔디밭이 context가 됩니다.
category : label을 의미합니다.
따라서 하나의 이미지는 category-context의 쌍으로 이루어져 있습니다. 만약 train-set에 없는 category-context쌍을 기존의 학습 방법으로 학습한 모델의 추론시키면 잘 추론을 못하고, 이 연구는 이를 해결하고자 하는 논문입니다.
Proposed Method
Overall Architecture
자 그럼 이 논문에서 OoD을 어떻게 해결했는지. 즉, OoD generalization을 어떻게 달성했는지 알아보도록 하겠습니다.
위 그림은 OoD 데이터를 학습하기 위한 이 논문의 구조를 도식화 한 그림입니다
input data를 backbone네트워크에 추론
1에서 얻은 embedding vector를 category feature extractor와 context feature extractor에 각각 추론
gradient간의 코사인 유사도를 감소하는 방향으로 backbone 네트워크의 학습을 진행함으로써 backbone 네트워크가 category와 context를 모두 담은 embedding vector를 추출할 수 있도록 학습이 진행됩니다.
train-set에 없는 데이터를 잘 추론하기 위해 DecAug는 feature-level에서 augmentation을 진행합니다. (Semantic augmentation)
→ 위 수식을 보시면 context feature에 context loss gradient를 더해줌으로써 train-set에 없는 category-context 쌍의 학습을 진행할 수 있습니다.
위의 방법을 통해 얻은 category feature와 context feature를 합쳐 최종적인 classification을 하게 됩니다.
모든 loss function을 정리하면 다음과 같습니다.
Experiments
DegAug는 총 3가지 데이터셋에 대한 실험 결과를 보여주고 있습니다
먼저 colored-MNIST에 대한 실험 결과 입니다.
ERM은 일반적인 학습 방법입니다. DegAug가 가장 높은 정확도를 보이는 것을 확인할 수 있습니다.
PACS 실험 결과입니다.
PACS는 Picture, Art, Cartoon, Scatch 4개의 도메인으로 이루어진 데이터셋으로 3개의 도메인을 train-set에, 나머지 하나의 도메인을 test-set으로 두고 정확도를 측정합니다.
NICO 실험 결과입니다.
Conclusion
Feature augmentation을 통해 OoD generalization을 달성한 DegAug에 대해 알아보았습니다. feature를 augmentation한다는 점에서 흥미로웠지만 OoD generalization을 달성하기 위해 context label이 필요하다는 점이 굉장히 크리티컬한 것 같아 아쉬움이 남습니다. self-supervised learning과 이 연구를 합치거나 StyleGAN과 같이 context를 변경해 DegAug를 진행한다면 더 재밌지 않을까.. 라는 생각을 논문을 읽으며 많이 했던 것 같습니다.
이번에는 CVPR 2021에 poster paper로 accept 된Revisiting Knowledge Distillation: An Inheritance and Exploration Framework을 리뷰하려고 합니다. 자세한 내용은원문을 참고해주세요. 코드의 경우, 비공식코드로 구현해두었습니다.
Introduction
Class distribution사이에서 similarity와 consistency의 정보를 전달함으로써 knowledge distillation 분야가 성공할 수 있었다고 저자는 말하고 있습니다.(Hinton의 KD, Tf-KD etc.) 또한, layer 중간의 output에서 feature representation을 transfer하는 방법도 성공을 이끌었다고 말하고 있습니다.
하지만, 직접적으로 teacher를 따라하게 student에게 knowledge를 전달하는 것은 student가 알려지지 않은 feature를 탐색할 확률을 줄일 것이라 생각했고, 이를 확인한 사진이 아래의 사진입니다.
사진을 보시면 knowledge distillation을 진행했을 때, teacher 가 바라보는 feature부분을 그대로 보는 것을 알 수 있습니다. 실제 답은 치타임에도 꼬리부분을 악어라고 인식하게 되는 것이라고 할 수 있습니다.
또 이러한 사실을 더 명확히 확인하기 위해서 small network에서 large network로의 knowledge distillation을 진행했을 때, 아래의 사진처럼 loss가 오히려 증가하는 현상을 발견했습니다. 즉 teacher의 network가 작더라도 compact하게 지식을 갖고 있다는 것입니다. (ind와 비교할 때 kd가 train loss 학습은 더 빠르지만, evaluation에서 보면 점점 더 높은 loss로 saturation됨)
이러한 점을 들어 단순히 KD에서 teacher 정보를 받아들이기만 해서는 안된다고 저자는 말하고 있습니다.
Related Work
Knowledge Distillation(KD)에는 전달하는 지식, 전달하는 시점에 따라서 분류가 갈리는데 여기서는 크게 3가지만 소개하도록 하겠습니다.
Student가 teacher 없이 referred target에 의해서 knowledge 가 transfer되는 방식(Tf-KD, Snapshot Distillation, etc.)
Motivation of Proposed Method
앞서 저자가 teacher에 의해 transfer되는 knowledge에 의해 같은 위치의 feature만 관찰한다고 말했습니다. 이를 극복하는 방법을 저자는 진화이론에서 떠올렸다고 합니다.
진화 이론은 inheritance와 variation of traits에서 발생한다고 하는데, 이 중 variation of traits를 달성할 방법에 대해서 고민하게 됩니다. 저자는 강화학습의 Q learning에서의 epsilon greedy에 의한 exploration과 과거 논문 중 image를 학습하기 어렵게 만드는 universal adversarial network의 loss term에서 영감을 받았다고 합니다. 즉, exploration을 통해 다른 feature도 관찰하고 이는 더 좋은 위치를 보게 만들어 줄 수도 있다라는 생각을 갖게 해준 것입니다.
아래 사진을 보시면 TPAMI 2020에 게재된 논문에서 $L_{dstc}(x)$ 를 사용함으로써 original의 이미지에 loss에 의해 발생하는 gradient를 전달하여 동일하게 보이지만 network에 의해서 다른 곳을 관찰하게 유도하는 이미지를 생성합니다.
이런 것을 활용하여 다른 feature도 관찰할 수 있게 유도한 논문을 통해 다른 feature를 관찰할 수 있는 exploration method를 선택하면 단순히 teacher를 따라하지 않아도 된다! 라고 생각한 것이라고 할 수 있겠습니다.
Proposed Method
이러한 inheritance(KD)와 exploration을 같이한 framework를 제시한 것의 구조는 다음과 같습니다.
제시한 loss term은 다은과 같습니다. $L_{goal}$은 classification의 CE Loss나 object detection에서 일반적으로 사용하는 loss term입니다.
$L_{exp}$: teacher의 feature대신 다른 feature를 배우는 loss(exploration) $L_{exp}=||{F_{exp}}/{||F_{exp}||_2}-(F_T)/{||F_{T}||_2}||$
위 두 loss는 encoding 된 latent vector를 비교함으로써 사용되고
여기서 Encoder는 teacher의 경우, pretrained model을 사용하므로 auto-encoder를 통해 미리 학습한 후 사용하며, student는 학습과 동시에 사용합니다.
Auto-encoder
- Auto-encoder는 이 논문에서 teacher와 student간의 shape이 다른 것을 해결하기 위해서 제시하였습니다. (Tecaher만 사용하고 Student는 학습과 동시에 진행합니다) 동일 latent space로 옮겨서 확인하려고 만들었습니다. 논문에서는 아래의 구조로 사용했다고 합니다. Loss term의 경우 reconstruction loss인 L2 norm을 사용하였으며 식은 $L_{rec}=||f_T-R(f_T)||^2$ 을 사용하였습니다.
이러한 구조를 사용하여 학습하는 방법은 다은과 같습니다.
1. 먼저 reconstruction loss를 사용하여 teacher's factor를 학습하는 auto-encoder를 만듭니다.
2. Student의 encoder와 backbone network를 동시에 학습합니다.
IE-KD in Deep Mutual Learning(IE-DML)
- Online learning에서는 IE framework를 적용하기엔 pretrained_model이 존재해야 teacher의 faeture를 학습하는 auto encoder 먼저 학습하므로 다른 방식이 필요합니다. DML의 경우 AutoEncoder까지 동시에 학습시킵니다.
IE-KD의 경우 feature 기반 Knowledge transfer에 모두 적용할 수 있습니다. 그래서 본 논문에서는 SOTA였던 모든 method에 대해 적용하여 성능을 비교하였습니다.
-Attention Transfer(ICLR 2017) ->IE-AT
-Factor Transfer(NIPS 2018) ->IE-FT
-Overhaul of Feature Distillation(ICCV 2019) -> IE-OD
Ablation Study
저는 개인적으로 진짜 feature들이 보는 곳이 보기만 하는 것이 맞는지 궁금했습니다. Ablation Study에서 이를 보여주고 있는데 기존 baseline에 대비해서 Centered Kernel Alignment (CKA)를 측정한 결과, 기존보다 다소 낮은 것을 확인할 수 있었습니다. 그리고 baseline에 비해서 더 많은 neuron들이 activate됨을 통해 효율적으로 사용하고 있음 또한 확인할 수 있었습니다.
그리고 앞서 언급한 epsilone greedy와 같이 exploration과 exploitation 비율이 어느정도일 때 적절한지 확인한 실험도 존재하였습니다. 적절하게 balanced 되어있을 때, 더 좋은 성능을 보여줌을 확인할 수 있었습니다.
Conclusion
Knowledge Distillation이라는 분야에서 단순히 지식을 넘겨주는 측면 뿐만 아니라 새로운 것 또한 배울 수 있어야 발전한다고 제시한 논문입니다. 그 크기에 비해서 성능 개선폭이 낮은 것은 아쉽지만, 관전의 변환을 준다는 점에서 흥미로운 논문이라고 생각합니다.
자세한 내용은 논문을 참조하시거나 댓글로 남겨주시기 바랍니다.
코드는 official code가 없어 제가 구현해둔코드에서 성능을 확인해보셔도 좋을 것 같습니다.