Author Archives: saige

Autoencoding Under Normalization Constraints

August 18, 2021

[ Abstract ]

Likelihood is a standard estimate for outlier detection. The specific role of the normalization constraint is to ensure that the out-of-distribution (OOD) regime has a small likelihood when samples are learned using maximum likelihood. Because autoencoders do not possess such a process of normalization, they often fail to recognize outliers even when they are obviously OOD. We propose the Normalized Autoencoder (NAE), a normalized probabilistic model constructed from an autoencoder. The probability density of NAE is defined using the reconstruction error of an autoencoder, which is differently defined in the conventional energy-based model. In our model, normalization is enforced by suppressing the reconstruction of negative samples, significantly improving the outlier detection performance. Our experimental results confirm the efficacy of NAE, both in detecting outliers and in generating in-distribution samples.

A Peek into Automatic Data Augmentation by Policy Searching

August 2, 2021

Date: 2021.07.20.

Writer: Hyeokjun Kwon

Source: Saige Blog – A Peek into Automatic Data Augmentation by Policy Searching

 

Machine-learning(ML, 기계학습) 혹은 Deep-learning(DL, 딥러닝) 기반으로 모델을 학습할 때 data augmentation(DA, 데이터 증강)은 모델의 generalization(일반화) 성능좋은 representation 학습에 있어서 매우 중요한 기술입니다. 하지만 이 data augmentation은 주로 사람의 경험이나 직관에 크게 의존하고 있습니다. ML/DL community에서도 이러한 문제를 인식하고, 효과적으로 data augmentation을 자동으로 수행하기 위한 연구들이 있어왔습니다. 이번 글에서는 엔지니어에 대한 의존성을 제거하고 data-augmentation을 사람보다 효과적으로 수행하기 위해 연구되고있는 갈래 중 하나로서, “탐색”기반 접근법인 automatic augmentation policy searching에 대해 다루어보고자 합니다.

먼저 deep-learning에서 data augmentation의 중요성을 알아본 후, 최적의 data augmentation을 자동으로 수행하기 위한 automatic data augmentation란 무엇인지 소개하고, 그 중에서 Automatic augmentation policy searching에 관련된 주요 연구 5개를 순서대로 소개하는 것으로 마무리하고자 합니다.

Deep-learning에서의 data augmentation

Data augmentation과 필요성

DL에서 Generalization

DNN(Deep Neural Network)은 매우 felxible한 universal function approximator입니다. 때문에 주어진 데이터셋을 이용해 DNN 모델을 학습할 때, 학습 데이터 셋에 쉽게 과적합(Overfitting) 되어버리게 됩니다. Overfitting이 일어나면, 학습한 데이터셋에 대해서는 성능이 매우 우수할지라도, 저희가 보기에는 비슷하지만, 학습에 없었던 데이터셋(test dataset)에 대해서는 성능이 잘 나오지 않습니다. 이를 overfitting이라는 말 대신, 일반화(generalization) 성능이 좋지 못하다라고 말하기도 합니다.

Figure 1. 적절히 fitting된 모델(좌)과 overfitting된 모델(우).

Figure 1. 적절히 fitting된 모델(좌)과 overfitting된 모델(우). (출처: https://untitledtblog.tistory.com/158)

Overfitting이 일어나는 근본적인 이유는 DNN 모델의 capacity(felxiblity와 유사합니다.)가 일반적으로 주어지는 학습 데이터셋에 비해 너무 크기 때문입니다. 이러한 경우, 쉽게 말해서 DNN은 단순히 학습 데이터들을 “외워”버리게 됩니다. 학습 데이터셋이 작기 때문에 이를 다 외워서 풀 수 있고, 굳이 데이터에 내재된 특징들을 배우려하지 않습니다. 단순히 학습 데이터셋을 외워서 문제를 잘 푸는 모델은 학습 데이터셋에서 조금만 다른 데이터가 들어오면 제대로 문제를 풀지 못합니다.

때문에 DL 기반으로 학습된 모델을 실제로 사용하기 위해서는 generalization이 매우 중요합니다. 이를 해결하기 위해서 많은 연구들이 이미 진행되었고, 그 중 매우 기본적이지만, 효과적인 방법이 data augmentation 입니다.

Data augmentation

앞서 overfitting이 일어나는 근본적인 이유가 DNN 모델의 capacity에 비해 주어지는 학습 데이터셋이 작기 때문이라고 말씀드렸습니다. 만약 데이터가 무한정 주어진다면, overfitting 문제는 존재하지 않습니다. 하지만 이는 실제로 불가능합니다. 무한정 많은 데이터가 주어질리도 만무하고, 있다하더라도 유한한 시간안에 무한정 많은 데이터로 모델을 학습하는 것은 불가능합니다.

무한히 많은 데이터를 얻을 수 없는 대신, 주어진 데이터를 가지고 이를 적절히 잘 불려서 학습에 사용하는 접근법이 바로 data augmentation입니다. Figure 2에서 볼 수 있듯이, 한장의 코알라 사진만으로도, 수 없이 많은 다른 이미지들을 생성할 수 있습니다. 물론 저희가 인식하기에는 같은 사진에 ~~장난질?~~만 해둔 것처럼 보이기는 하지만, DNN 입장에서는 모두 다른 숫자로 이루어진 데이터입니다. DNN한테 이러한 augmentation된 수 많은 코알라 이미지들을 “코알라”로 분류하도록 학습시키면, DNN은 이 이미지들로 부터 공통된 특성을 찾고, 그것을 “코알라”이라는 분류가 가져야할 특징으로서 학습하게 됩니다. 이로서 DNN은 단순히 데이터를 외우는 것이 아니라, 데이터셋에 내재된 특징을 학습하고, overfitting을 피하게 됩니다.

Figure 2. data augmentation.

Figure 2. data augmentation. (출처: https://github.com/aleju/imgaug)

Figure 3. sliding puzzle

Figure 3. sliding puzzle (출처: “슬라이딩 퍼즐”, Google image)

그렇다면, figure 2의 방식으로 data augmentation을 무작정해서, 모델을 학습시키면 overfitting을 잘 막을 수 있을까요? 당연히 그렇지 않습니다. 너무 강한 data augmentation은 오히려 모델에 혼란만 가중시킬 수 있습니다. Figure 3에 있는 슬라이딩 퍼즐을 보고, 퍼즐을 맞추었을 때, 어떤 캐릭터가 있는건지 쉽게 상상이 가시나요? 맞추셨더라도, 지금은 $4\times4$이지만, 만약 $8\times8$이 되어도 맞출 수 있을까요? 아마 쉽지 않을 것 같습니다. 이는 퍼즐이 어려워짐에 따라, 원래 그 캐릭터가 가지고 있던 중요한 특성들이 없어져버리기 때문입니다. 이처럼 무분별한 augmentation은 데이터가 원래 가지고 있던 특성을 파괴해서, 오히려 학습에 불안정성을 증가시킵니다. 또한 특히 이미지 데이터의 경우 CNN(Convolutional Neural Network)라는 모델을 많이 사용하는데, 이 종류의 모델은 이미지의 지역적인 특성(선, 특정 패턴, 등)을 잘 학습하는 특징이 있습니다. 하지만 figure 3와 같은 augmentation은 이미 원래 이미지의 지역적인 특성을 잃어버린 것 같군요. 이러한 이미지로는 CNN이 유의미한 정보를 학습하기 어렵습니다. 물론 테스크에 따라 이러한 augmentation이 도움이 되는 경우도 있지만, 이 또한 task specific하다는 문제가 있습니다.

그렇다면 내가 하려는 어떤 테스크(task)에 대해 잘 맞는 어떤 적절한 augmentation은 도대체 무엇일까요? 이를 정확히 알기는 아마 불가능할 것 같습니다. Data augmentation은 거의 무조건 쓰이는 중요하고 기본적인 기법이기는 하지만, 실제 적용할 때는 잘되는 것 같은 “적당한” augmenting operation을 사람의 “직관”과 “경험”에 의존하여 사용합니다. 그것으로 충분할 수도 있지만, ML/DL community의 연구자들은 이를 용납하지 않았습니다. 이들은 “적당한 data augmentation을 찾는 문제”를 다시 ML/DL 방법론으로 해결하고자 하고 있습니다. 그것이 바로 이 글의 주제인 automatic data augmentation입니다.

Automatic Data Augmentation

제가 생각하기에 data augmentation 연구는 대략 아래와 같이 4가지로 나눌 수 있습니다.

  • Data augmentation
    • Single operation
      • Manually designed single operation: 엔지니어의 직관과 경험에 의해 설계된 augmenting operation
      • Automatically designed single operation: Augmentation network를 두고, 엔지니어는 loss function만 정의해서 network가 스스로 augmentation을 학습
    • Combination of operations (Augmentation policy)
      • Manually designed augmentation policy: 엔지니어가 hand tunning 😱. 연구라기 보다는 application에 가깝습니다.
      • Automatic augmentation policy searching: Search algorithm을 사용해서 주어진 데이터와 테스크에 대한 최적의 augmentation policy(augmentation의 조합)을 탐색

Manually~라고 시작하는 분류는 이번 글의 관심사가 아닙니다. 앞서 엔지니어가 직접 augmentation을 디자인하거나 결정하는 것이 어려운 문제임을 충분히 설명하였습니다. 그렇다면 automatic data augmentation에 속하는 남은 두가지 분류에 대해서 간략히 소개해보도록 하겠습니다.

Automatically designed single operation은 엔지니어의 직관이나 경험에 의해 설계된 augmenting operation이 아닌, augmentation을 위한 DNN (augmentation network)을 따로 두고, 엔지니어는 단지 augmentation network를 학습하기 위한 적절한 목표(objective function or loss function)만 정해주어 DNN 스스로가 좋은 augmentation을 만들어내는 augmentating operator가 되도록 학습시키는 방식입니다. 여기에 속하는 많은 연구들이 있지만, 이번 글에서는 다루지 않습니다.

Automatic augmentation policy searching이 바로 이번 글의 주제입니다. 데이터셋과 테스크가 주어졌을 때, augmentation network 없이, 기존에 있는 augmenting operation(rotation, invert, shearing, color jittering, cutout, 등)들을 어떻게 조합하면 최적의 augmentation이 가능한지를 자동으로 탐색하는 방식입니다. Automatic augmentation policy searching이라는 이름은 augmenting operation을 조합하는 정책을 탐색한다는 의미에서 제가 붙혔습니다.(편의를 위해 이번 글에서 이렇게 쓰겠습니다.) 참고로 이후의 내용에서 augmentation policy라고 말하는 것들은 reinforcement learning의 agent의 policy와는 다른 개념입니다. 오히려 augmentation policy는 RL agent의 policy로 부터 샘플링된 하나의 stochastic action으로 보는게 맞습니다.

이 분류의 문제 상황이나 자세한 내용은 세이지리서치 Notion에 페이지에서 논문을 보면서 다루어보도록 하겠습니다.

세이지리서치 Notion – A Peek into Automatic Data Augmentation by Policy Searching


Conclusion

이번 글에서는 Deep-learning에서의 data augmentation 기법의 중요성과 한계점을 살펴보고, 한계점을 다시 ML/DL 방법론으로 풀려고하는 automatic data augmentation이라는 분야 중 Automatic augmentation policy searching 방법론에 대한 연구 5개를 살펴보았습니다. 저도 최근에야 관심이 생겨 보기 시작한 분야의 연구들이었기 때문에, 각 연구의 배경이나 숨은 의미까지는 충분히 담아내지 못했을 수도 있지만, 읽어보시면서 automatic data augmentation이 왜 필요한지, 어떻게 문제를 정의하고 풀어낼 수 있는지, 각 연구들이 선행 연구를 어떻게 개선해나갔는지에 대해서 알게되셨기를 바랍니다.

또한 오늘 소개한 연구들이 대부분 이미지 데이터에 집중되어 있었는데, ML/DL에서 다루는 주요 데이터가 이미지인 것은 맞지만, 이 연구들의 방법론이 이미지에만 국한된 방법론이라고 생각하지는 않습니다. 따라서 search based autmated data-augmentation이 다른 데이터에 대해서는 어떤식으로 적용되는지 알아보는고, 데이터의 특성에 따른 차이를 automatic data augmentatoin 방법론에 포함시킬 수 있는지 생각해보는 것도 재밌을 것 같습니다. 읽어주셔서 감사합니다! 😁


Reference

Transfer Learning for Industrial Visual Inspection

August 2, 2021

Date: 2021.07.08

Writer: Seunghyeon Kim

Source: Saige Blog – Transfer Learning for Industrial Visual Inspection

 

Transfer learning 이란?

2012년 Alex Krizhevsky가 AlexNet[1]이라는 convolutional neural network (CNN)으로 ImageNet 데이터셋에서 기존 비전 알고리즘을 모두 압도하는 성능을 보고한 이후로 CNN은 비전문제에 매우 광범위하게 적용되고 있습니다. 하지만 기존 비전 알고리즘에 비해 CNN이 갖는 치명적인 단점이 있었는데 그것은 바로 깊은 CNN을 학습시키기 위해 매우 많은 양의 데이터가 필요하다는 것이었습니다. 이러한 문제점 때문에 초창기 CNN은 주로 ImageNet과 같이 매우 많은 이미지들로 구성된 데이터셋에만 적용되어 왔습니다.

많은 연구자들이 어떻게 하면 데이터가 적은 도메인에 CNN을 적용할 수 있을 지를 고민하고 연구한 결과 여러 방법들을 생각해냅니다. 그 방법들 중 하나가 본 글의 주제인 transfer learning입니다. Transfer learning이란 데이터가 아주 많은 도메인(source 도메인)에서 학습된 지식을 데이터가 적은 도메인(target 도메인)으로 전이(transfer)시키는 학습 방법론입니다. CNN에서 transfer learning은 주로 데이터가 적은 target 도메인 학습을 위한 CNN의 weight 값을 source 도메인에서 학습된 CNN의 weight 값으로 초기화하는 방식으로 적용됩니다. Transfer learning에 대한 아이디어는 2012~2013년에 활발히 논의가 되어 2014년에 이와 관련된 많은 논문들이 publish 되었습니다[2-7]. 이 중에서 특히 [7]에서 보고한 transfer learning에 관한 다양한 실험 결과들은 연구자들로 하여금 CNN에 transfer learning을 적용하는 방식에 대한 많은 영감을 주었습니다. [2-7] 논문들은 모두 CNN 연구 초창기에 transfer learning이라는 방법론이 정착할 수 있도록 하는 데에 많은 기여를 한 논문들이므로 한 번쯤 읽어보는 것을 추천드립니다.

Transfer learning 연구들에서 사용되는 source domain과 target domain의 유사성에 대한 고찰

2014년 이후로는 거의 모든 CNN 연구에 transfer learning이 적용되었습니다. 그런데 대부분의 연구들에서 transfer learning 적용 시 source와 target 도메인들을 서로 동일한 특성을 가지고 있는 데이터셋으로 세팅하여 사용하였습니다. 대표적인 예로는 source 도메인에 ImageNet 데이터셋을, target 도메인에 비교적 작은 데이터셋인 Pascal VOC나 Caltech-101 데이터셋을 사용하는 경우가 있습니다. 이러한 source와 target 도메인의 데이터셋들은 전체적으로 비슷한 유형의 이미지들로 구성되어 있으며 심지어 서로 동일한 클래스도 존재합니다(그림 1).

이러한 source와 target 도메인은 단지 사람이 보기에 유사하다고 생각되는 정도가 아니라 CNN에서 추출하는 feature들도 유사한 특성을 보입니다. 그림 2는 동일한 CNN에 source와 target 도메인의 이미지들을 통과시켜 feature vector를 추출한 후 PCA, t-SNE로 2차원 공간에 embedding 시킨 결과입니다. 그림에서 볼 수 있듯이 CNN은 target 도메인인 Caltech-101과 Pascal VOC 데이터셋의 feature가 ImageNet 데이터셋의 feature와 매우 유사하다고 판단합니다. 따라서 이와 같이 유사한 도메인 사이에서 transfer learning이 잘 작동하는 것은 어떻게 보면 당연한 결과라고 할 수도 있습니다.

하지만 세이지리서치에서 주로 타겟하고 있는 도메인은 제조업 도메인입니다. 제조업 도메인의 이미지들이 학계에서 주로 사용되는 ImageNet 데이터셋의 이미지들과 얼마나 다른 지를 DAGM 데이터셋[8]을 통해 살펴보겠습니다. DAGM 데이터셋은 섬유 형상 배경에 가상의 결함들을 만들어 놓은 데이터셋으로 그림 3과 같이 이미지의 외관이 ImageNet 데이터셋과 매우 다릅니다. 이미지의 외관뿐만 아니라 CNN 역시 이 두 데이터셋의 feature가 서로 다르다고 인식합니다. 위에서 설명한 방법과 동일한 방식으로 ImageNet과 DAGM 데이터셋에서 추출한 feature들을 시각화하면 그림 4와 같습니다. 그림 4의 결과를 통해 CNN은 학계에서 흔히 사용되는 Caltech-101이나 Pascal VOC와는 달리 DAGM과 같은 제조업 데이터의 feature는 ImageNet 데이터의 feature와 매우 다르다고 인식하는 것을 확인할 수 있습니다.

따라서 다른 연구들에서와 같이 transfer learning을 잘 적용하기 위해서는 우리가 타겟으로 하려는 제조업 도메인의 데이터와 유사한 특성을 가지고 있는 source 도메인의 데이터셋을 이용하는 것이 필요해 보이기도 합니다. 하지만 각 제조업체들에서 생산하는 제품에 대한 데이터는 매우 엄격한 보안 아래에서 관리되며 따라서 안타깝게도 제조업 도메인에서 ImageNet과 같이 방대한 데이터셋을 구축하는 것은 거의 불가능에 가깝습니다. 그렇다면 이러한 제조업 도메인에서는 transfer learning을 어떻게 적용해야 할까요?

 

그림 1. Transfer learning을 적용하는 많은 연구들에서 사용되는 source와 target 도메인 사이의 유사성

그림 1. Transfer learning을 적용하는 많은 연구들에서 사용되는 source와 target 도메인 사이의 유사성

그림 2. CNN에서 추출한 각 데이터셋의 feature를 2차원 공간에 embedding 시킨 결과

그림 2. CNN에서 추출한 각 데이터셋의 feature를 2차원 공간에 embedding 시킨 결과(PCA)

그림 2. CNN에서 추출한 각 데이터셋의 feature를 2차원 공간에 embedding 시킨 결과

그림 2. CNN에서 추출한 각 데이터셋의 feature를 2차원 공간에 embedding 시킨 결과(t-SNE)

그림 3. ImageNet 데이터셋과 DAGM 데이터셋

그림 3. ImageNet 데이터셋과 DAGM 데이터셋

그림 4. ImageNet 데이터와 DAGM 데이터의 feature embedding 결과(왼쪽: PCA, 오른쪽: t-SNE)

Transfer learning for industrial visual inspection

결론부터 말씀드리면 transfer learning은 source와 target 도메인의 특성이 매우 다를 때에도 잘 작동합니다. 즉, 제조업 도메인의 검사를 위한 CNN을 학습시킬 때에도 ImageNet 데이터셋을 source 도메인으로 선택하여 transfer learning을 적용하면 됩니다. 그렇다면 지금부터는 서로 전혀 다른 source와 target 도메인 사이에 transfer learning을 적용했을 때 CNN의 성능이 어떻게 변하는지, CNN에서 학습되는 feature에는 어떠한 영향을 미치는 지에 대해 살펴보겠습니다. 본격적인 논의에 앞서 다음 몇 가지 사항들을 정리하고 가겠습니다.

  • Source 도메인의 데이터셋은 ImageNet을 사용합니다.
  • Target 도메인의 데이터셋은 DAGM을 사용합니다. DAGM 데이터셋은 그림 5와 같이 총 여섯 종류의 섬유 재질 배경 위에 결함이 있는 데이터셋입니다. Target 도메인의 문제는 DAGM의 여섯 종류의 섬유 재질을 분류함과 동시에 결함인지 아닌지까지 분류하는 classification 문제입니다. 각 섬유 재질은 1000개의 정상 데이터와 150개의 결함 데이터로 구성되어 있습니다.
  • CNN은 VGG16 네트워크를 사용합니다. 네트워크를 학습시키기 위한 optimizer로는 batch size 32, learning rate 1e-3의 SGD를 사용합니다.
  • Transfer learning 방법론으로는 source 네트워크의 weight를 target 네트워크로 transfer 후 전체 target 네트워크를 재학습시키는 fine-tuning을 사용합니다 (저희의 문제와 같이 source와 target 도메인이 다를 경우 transfer된source 네트워크의 weight를 freeze 하는 transfer learning 방법론은 잘 작동하지 않으며 이에 대한 자세한 내용은 [9]에서 확인할 수 있습니다).

그림 5. DAGM 데이터셋

제조업 도메인에서 transfer learning이 CNN의 성능에 미치는 영향

제조업 도메인에서 transfer learning이 CNN 성능에 미치는 영향을 확인하기 위해 다음과 같은 세 가지 세팅으로 CNN을 학습하였습니다.

  1. Data augmentation 없이 target 데이터셋에 CNN을 처음부터 학습시킴: Scratch (no aug)
  2. Target 데이터셋에 data augmentation (rotate, flip)을 적용한 후 CNN을 처음부터 학습시킴: Scratch (aug)
  3. Transfer learning 적용하여 target 네트워크를 학습시킴: Transfer Learning

실험 결과는 그림 6과 같습니다. 먼저 *Scratch (no aug)*는 낮은 분류 정확도(70.87%)에 수렴하는 것을 확인할 수 있습니다. 이를 통해 DAGM 데이터셋과 같이 적은 수의 데이터로 깊은 네트워크를 학습시킬 경우 over-fitting이 발생하는 것을 확인할 수 있습니다. 이러한 over-fitting 문제는 data augmentation으로 해결할 수 있습니다 (Scratch (aug) 결과). 하지만 그래프에서 볼 수 있듯이 최종 정확도(99.55%)에 수렴하기까지 매우 오랜 시간(320k iteration)을 학습해야 하는 것을 확인할 수 있습니다. 반면에 transfer learning을 적용할 경우 어떠한 data augmentation 없이도 최종 정확도(99.90%)까지 매우 적은 학습(2,242 iteration)만에 도달하는 것을 확인할 수 있습니다.

이 실험 결과를 통해 제조업 도메인과 같이 방대한 source 도메인을 구축하기 힘든 도메인에는 target과 전혀 다른 특성의 source 도메인으로부터 transfer learning을 적용하는 것이 큰 도움이 된다는 것을 알 수 있습니다.

그림 6. 각 실험의 classification 성능 비교

 

Transfer learning으로 학습된 CNN의 특징

Transfer learning을 사용하면 저희의 타겟인 제조업 도메인에 적은 데이터만으로 CNN을 성공적으로 적용할 수 있는 것을 확인하였습니다. 그렇다면 transfer learning을 이용하여 학습한 CNN (이후 Transfer learning이라고 기술)은 어떤 특징을 가지길래 처음부터 학습한 CNN (이후 Scratch라고 기술)과 비교하여 훨씬 높은 학습 효율을 낼 수 있는 지에 대해 알아보겠습니다.

Transfer learning은 Scratch에 비해 다음과 같은 세 가지 특징을 보입니다.

  1. 동일한 수준의 정확도에 도달하기까지 Transfer learning에서는 Scratch보다 적은 양의 weight update가 일어납니다. 또한 네트워크의 아랫단보다 윗단의 weight update가 많이 됩니다.
  2. Transfer learning은 Scratch보다 더 sparse한 feature를 학습합니다.
  3. Transfer learning은 Scratch보다 더 disentangle된 feature를 학습합니다.

Transfer learning의 각 특징들을 살펴보기 위해 DAGM 실험에서 높은 분류 정확도에 도달한 두 네트워크 Transfer learning과 *Scratch (aug)*의 특징들을 비교 분석해보겠습니다.

1. Transfer learning은 Scratch보다 적은 양의 weight를 update 하며 네트워크의 윗단을 주로 update 합니다.

CNN의 각 $l$ 번째 layer의 weight 변화율을 아래 식과 같이 weight의 초기값 $w_{0}$과 학습이 수렴한 후의 weight 값 $w_{\text{converged}}$의 차이로 정의합니다.

$$\gamma^{l} \triangleq \frac{\parallel w_{\text{converged}}^{l} -w_{0}^{l} \parallel_{2}}{\parallel w_{0}^{l} \parallel_{2}}$$

그림 7은 학습이 수렴한 후 Transfer learning과 *Scratch (aug)*의 각 layer에서의 weight 변화율 $\gamma^{l}$을 비교한 결과입니다. 흥미롭게도 두 네트워크에서 weight 변화율은 전혀 반대의 경향을 보입니다. Transfer learning에서는 *Scratch (aug)*에 비해 전체적으로 훨씬 적은 양의 weight 변화가 일어나는 것을 확인할 수 있습니다. 특히 Transfer learning은 네트워크의 아랫단(1~7번째 layer)의 weight를 거의 update하지 않는 것을 확인할 수 있습니다. 즉, Transfer learning의 아랫단에서는 ImageNet 데이터셋에서 학습된 source 네트워크와 거의 동일한 low-level feature를 추출합니다 (neural network의 아랫단에서는 이미지의 edge와 같은 low-level feature들이 학습된다고 알려져있습니다 [3]). Transfer learning에서 주로 학습 되는 것은 네트워크의 윗단이며 이를 통해 source 도메인과는 전혀 다른 target 도메인의 task가 학습이 된다는 것을 알 수 있습니다.

이와는 반대로 *Scratch (aug)*는 윗단보다는 아랫단이 훨씬 더 많이 학습됩니다. 즉, CNN을 새로운 target 도메인에 처음부터 학습시킬 때는 해당 도메인에 맞는 low-level feature들을 학습하는 데에 학습의 많은 부분이 투자된다는 것도 확인할 수 있습니다.

그림 7. Transfer learning과 *Scratch (aug)*의 각 layer의 weight 변화율

2. Transfer learning은 Scratch보다 더 sparse한 feature를 학습합니다.

CNN의 각 $l$ 번째 layer의 output feature의 sparsity를 아래 식과 같이 정의합니다.

$$s^{l} \triangleq \frac{\text{Number of dead channels of the $l$-th layer}}{\text{Number of total channels of the $l$-th layer}}$$

그림 8은 Transfer learning과 *Scratch (aug)*의 각 layer에서의 sparsity $s^{l}$을 비교한 결과입니다. Sparsity 역시 두 네트워크 사이에 매우 큰 차이가 있습니다. 먼저 Transfer learning의 아랫단 (1~8번째 layer)은 sparsity 값이 거의 0에 가깝습니다. 즉, Transfer Learning의 아랫단에서는 source 네트워크에서 학습된 매우 dense한 feature들이 추출되고 있다는 것을 알 수 있습니다. 하지만 Transfer learning의 9번째 layer부터 sparsity가 증가하기 시작하고 마지막 layer에서는 매우 급격하게 증가하여 *Scratch (aug)*의 sparsity와 비교해서 매우 큰 차이를 보입니다 (마지막 layer에서의 sparsity – Transfer Learning: 90.47%, Scratch (aug): 8.44%).

그림 9는 동일한 데이터가 주어졌을 때 *Scratch (aug)*과 Transfer learning의 마지막 convolutional layer의 output feature를 시각화 한 것입니다. 그림에서 볼 수 있듯이 Transfer learning의 마지막 convolutional layer에서는 대부분의 feature가 비활성화 되며 활성화된 소수의 feature들에서 이미지의 결함 형상을 정확하게 표현하고 있는 것을 확인할 수 있습니다. *Scratch (aug)*의 feature들도 결함 영역을 정확히 표현하고 있기는 하지만 Transfer learning에 비해 매우 dense한 것을 알 수 있습니다.

이러한 feature의 sparsity를 통해 Transfer learning의 윗단 layer들은 아랫단 layer들에서 추출되는 dense한 정보들 중에서 target 도메인에 가장 적합한 소수의 feature들을 적절하게 선택하고 조합하도록 학습된다는 것을 알 수 있습니다. 따라서 source 도메인이 매우 다양하고 방대한 데이터들로 구성되어 있기만 하면 target 도메인과 전혀 다른 특성을 갖고 있더라도 transfer learning이 성공적으로 적용될 수 있다는 결론을 내릴 수 있습니다. 또한 transfer learning은 target 도메인에 대한 새로운 feature를 만들어내는 것이 아니라 source 도메인의 정보 중 불필요한 정보들을 제거하는 방식으로 작동하기 때문에 학습이 매우 효율적이고 빠르게 수렴합니다.

그림 8. Transfer learning과 *Scratch (aug)*의 각 layer의 sparsity

그림 9. 동일한 데이터(맨 왼쪽)가 주어졌을 때 Scratch (aug) (중간)과 Transfer learning (오른쪽)의 마지막 layer의 output feature를 시각화 한 것

그림 9. 동일한 데이터(맨 왼쪽)가 주어졌을 때 Scratch (aug) (중간)과 Transfer learning (오른쪽)의 마지막 layer의 output feature를 시각화 한 것

 

3. Transfer learning은 Scratch보다 더 disentangle된 feature를 학습합니다.

위에서 저희는 Transfer learning과 Scratch (aug)가 결함의 특징을 전혀 다른 방식으로 학습한다는 것을 확인하였습니다. 그렇다면 두 네트워크가 학습하는 feature 중에서 어떤 것이 더 좋은 feature 일까요? 딥 뉴럴 네트워크가 학습하는 feature를 연구하는 여러 연구들에서 데이터를 더 많이 disentangle 하는 feature일 수록 더 좋은 feature라고 주장하고 있습니다 [11-13]. 딥러닝에서 학습되는 feature의 disentanglement에 대한 명확한 정의는 아직 없지만 많은 연구들에서 disentangle된 feature의 manifold는 flat하다는 데에 동의합니다. 따라서 저희는 Transfer learning과 *Scratch (aug)*에서 학습된 feature의 manifold가 flat한 정도를 통해 두 네트워크에서 학습된 feature들의 disentanglement를 비교해보겠습니다.

Feature의 disentanglement에 대한 정량적 지표는 [11]에서 제시하는 측정 방법을 사용하여 구할 수 있습니다. [11]에서 제시하는 정량적 지표는 feature space에서 두 점 사이의 Euclidean 거리와 geodesic 거리 값의 차이를 구하는 것입니다. 완전히 flat한 manifold에서는 두 점 사이의 Euclidean 거리와 geodesic 거리 값이 동일하기 때문에 [11]에서 제시하는 정량적 지표의 값이 작을 수록 feature가 더 disentangle되어 있다고 할 수 있습니다. 저희 데이터에서 이를 계산하는 자세한 과정은 [10]를 참고해주시기 바랍니다. Transfer learning과 *Scratch (aug)*에서 disentanglement 정량적 지표를 계산하면 표 1과 같습니다. 결과에 따르면 Transfer learning에서 학습된 feature의 manifold가 더 flat하며 따라서 더 disentangle 되어 있다는 것을 확인할 수 있습니다.

Feature의 disentanglement의 정도는 정량적 지표 뿐 아니라 정성적으로도 비교할 수 있습니다. 딥러닝 연구 초창기에 딥 네트워크에서 학습되는 feature의 disentanglement에 대한 개념을 확립시킨 유명한 연구 [12]에서는 disentangle된 feature의 여러 특징들을 정의했습니다. 그 중 하나는 서로 다른 클래스의 feature들 사이를 linear interpolation 할 때 disentangle된 feature일 수록 더 그럴듯한 형상이 나온다는 것입니다. 그림 10은 [12]의 저자인 Yoshua bengio의 강의 슬라이드이며 이러한 개념을 가장 잘 설명하고 있습니다. 즉, disentangle된 feature일 수록 feature의 manifold가 flat하며 따라서 linear interpolation 상의 점들이 manifold 위에 존재할 확률이 더 높아집니다.

이러한 개념을 저희 데이터에 적용한 결과는 그림 11과 같습니다. DAGM 데이터셋에서 Texture 1 클래스와 Texture 2 클래스 사이, Texture 2 클래스와 Texture 5 클래스 사이를 linear interpolation 할 때 그림 11의 중간 행은 *Scratch (aug)*의 feature를, 마지막 행은 Transfer learning의 feature를 시각화 한 것 입니다 (feature들을 어떻게 시각화 했는 지는 [10]를 참고해주시기 바랍니다). *Scratch (aug)*의 feature는 서로 다른 클래스 사이를 interpolation 하는 중간에 두 클래스의 결함이 동시에 존재하는 구간이 많습니다. 즉, *Scratch (aug)*의 feature는 그림 10에서 설명하는 것과 같이 disentangle된 정도가 적은 것을 알 수 있습니다. 반면에 Transfer learning의 feature는 이에 비해 interpolation 상에서 두 결함이 겹쳐 있는 구간이 훨씬 적습니다. 이를 통해 Transfer learning의 feature가 *Scratch (aug)*의 feature보다 더 disentangle 되어 있다는 것을 확인할 수 있습니다.

이와 같은 정량적, 정성적 실험을 통해 Transfer learning의 feature가 disentangle 되어 있다는 것을 확인하였습니다. 따라서 (적어도 feature의 disentanglement라는 측면에서는) Transfer learning이 Scratch보다 더 좋은 feature를 학습한다는 것을 알 수 있습니다.

표 1. 두 네트워크에서 학습한 feature disentanglement의 정량적 지표값

표 1. 두 네트워크에서 학습한 feature disentanglement의 정량적 지표값

그림 10. Disentangle된 feature의 manifold에 대한 설명 (from https://www.youtube.com/watch?v=Yr1mOzC93xs)

그림 10. Disentangle된 feature의 manifold에 대한 설명 (from https://www.youtube.com/watch?v=Yr1mOzC93xs)

그림 11. 서로 다른 클래스 사이를 linear interpolation 할 때 각 data space를 시각화한 결과.

그림 11. 서로 다른 클래스 사이를 linear interpolation 할 때 각 data space를 시각화한 결과. 첫번째 행: input space, 중간 행: Scratch (aug)의 마지막 convolutional layer의 feature space, 마지막 행: Transfer learning의 마지막 convolutional layer의 feature space.

결론

이번 포스팅에서는 세이지리서치의 타겟인 제조업 도메인에 transfer learning이라는 기술을 어떻게 적용해야하는지, 또 transfer learning을 적용했을 때 어떤 효과가 있는 지에 대해서 알아보았습니다. 세이지리서치에서는 본 글에서 소개한 DAGM 데이터셋 외에 매우 다양한 제조업 데이터에 transfer learning을 적용하고 있습니다. 오늘 소개드린 내용이 다양한 도메인에 transfer learning을 적용하려는 독자분들에게 도움이 되었으면 좋겠습니다. 혹시 본 글에서 다루지 못한 자세한 내용이 궁금하신 분들은 [10]를 참고해주시기 바랍니다. 감사합니다.

참고자료

[1] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. “Imagenet classification with deep convolutional neural networks.” Advances in neural information processing systems 25 (2012): 1097-1105.

[2] J. Donahue, Y. Jia, O. Vinyals, J. Hoffman, N. Zhang, E. Tzeng, T. Darrell, Decaf: A deep convolutional activation feature for generic visual recognition, in: Proc. of the International Conference on Machine Learning, 2014, pp. 647–655.

[3] M. D. Zeiler, R. Fergus, Visualizing and understanding convolutional networks, in: Proc. of the European Conference on Computer Vision, 2014, pp. 818–833.

[4] A. S. Razavian, H. Azizpour, J. Sullivan, S. Carlsson, Cnn features off-the-shelf: An astounding baseline for recognition, in: Proc. of the IEEE Conference on Computer Vision and Pattern Recognition Workshops, 2014, pp. 512–519.

[5] M. Oquab, L. Bottou, I. Laptev, J. Sivic, Learning and transferring mid-level image representations using convolutional neural networks, in: Proc. of the IEEE Conference on Computer Vision and Pattern Recognition, 2014, pp. 17171724.

[6] R. Girshick, J. Donahue, T. Darrell, J. Malik, Rich feature hierarchies for accurate object detection and semantic segmentation, in: Proc. of the IEEE Conference on Computer Vision and Pattern Recognition, 2014, pp. 580–587.

[7] J. Yosinski, J. Clune, Y. Bengio, H. Lipson, How transferable are features in deep neural networks?, in: Proc. of the Advances in Neural Information Processing Systems, 2014, pp. 3320–3328.

[8] Heidelberg Collaboratory for Image Processing, Weakly supervised learning for industrial optical inspection, https://hci.iwr.uni-heidelberg.de/node/3616, [Online; accessed 19-October-2019] (2007).

[9] Kim, Seunghyeon, et al. “Transfer learning for automated optical inspection.” 2017 International Joint Conference on Neural Networks (IJCNN). IEEE, 2017.

[10] Kim, Seunghyeon, Yung-Kyun Noh, and Frank C. Park. “Efficient neural network compression via transfer learning for machine vision inspection.” Neurocomputing 413 (2020): 294-304.

[11] P.P. Brahma, D. Wu, Y. She, Why deep learning works: A manifold disentanglement perspective, IEEE Trans. Neural Networks Learn. Syst. 27 (10) (2016) 1997–2008

[12] Y. Bengio, G. Mesnil, Y. Dauphin, S. Rifai, Better mixing via deep representations, in: Proc. of the 30th International Conference on Machine Learning, Vol. 28, 2013, pp. 552–560.

[13] Y. Bengio, A. Courville, P. Vincent, Representation learning: a review and new perspectives, IEEE Trans. Pattern Anal. Mach. Intell. 35 (8) (2013) 1798–1828.