산업 비전 검사를 위한 전이 학습 (Transfer Learning for Industrial Visual Inspection)

산업 비전 검사를 위한 전이 학습 (Transfer Learning for Industrial Visual Inspection)

전이 학습 이란

2012년 Alex Krizhevsky가 AlexNet11이라는 Convolutional neural network(CNN)으로 ImageNet 데이터 세트에서 기존 비전 알고리즘을 모두 압도하는 성능을 발표한 이후, CNN은 비전 검사에서 매우 광범위하게 적용되고 있습니다. 그러나 기존 비전 알고리즘과 비교했을 때 CNN의 치명적인 단점은 매우 많은 데이터가 필요하다는 것입니다. 이러한 문제로 초창기 CNN은 주로 ImageNet과 같이 매우 많은 이미지들로 구성된 데이터 세트에만 적용되어 왔습니다. 

많은 연구자들이 어떻게 하면 데이터가 적은 도메인에서도 CNN을 적용할 수 있을지 고민했습니다. 그 결과 중 하나가 ‘전이 학습(Transfer learning)’ 입니다. 전이 학습이란 데이터가 아주 많은 도메인(Source domain)에서 학습된 지식을 데이터가 적은 도메인(Target domain)으로 옮기는 학습 방법론입니다. CNN에서 전이 학습은 주로 Target domain 학습을 위한 Weight 값을 Source domain에서 학습된 Weight 값으로 초기화하는 방식으로 이루어집니다.

전이 학습 연구에서 사용하는 Soucre domain과 Target Domain의 유사성에 대한 고찰

2014년 이후로 CNN 연구 대부분에 전이 학습이 적용되었습니다. 그런데 대부분의 연구들에서 전이 학습 적용 시 Source domain과 Target domain을 서로 동일한 특성이 있는 데이터 세트로 설정했습니다. 그러나 세이지가 초점을 두고 있는 산업은 제조업입니다. 제조업 도메인의 이미지들이 학계에서 주로 사용하는 ImageNet의 이미지들과 얼마나 차이가 있는지 DAGM 데이터 세트22를 통해 비교해 보았습니다.

DAGM는 섬유 형상 배경에 가상 결함을 만들어 놓은 데이터 세트로 [그림1]과 같이 ImageNet 데이터 세트와 이미지 외관이 매우 다르다는 것을 알 수 있습니다. [그림2]는 동일한 CNN에 Source domain과 Target domain 이미지들을 통과시켜 Feature vector를 추출한 후 PCA, t-SNE로 2차원 공간에 표현한 결과입니다. CNN 역시 이 두 데이터 세트의 특징이 서로 다르다고 인식합니다. 

따라서 기존 연구들과 같이 전이 학습을 잘 적용하기 위해서는 우리가 목표로 하는 제조업 도메인의 데이터와 유사한 특성을 가진 Source domain 데이터 세트가 필요해 보입니다. 하지만 각 제조업체들이 보유한 제품 데이터는 매우 엄격한 보안 하에 관리되기 때문에 제조업 도메인에서 ImageNet과 같이 방대한 데이터 세트를 구축하는 것은 거의 불가능에 가깝습니다. 그렇다면 제조업에서는 전이 학습을 적용할 수 없는 걸까요?

[그림1] ImageNet 데이터 세트와 DAGM 데이터 세트 비교
[그림2] ImageNet 데이터와 DAGM 데이터의 특징을 2차원 공간에 투영한 결과 (좌: PCA, 우: t-SNE)

제조업 비전 검사 분야에서 전이 학습을 적용하다

결론부터 말씀드리면 전이 학습은 Source domain과 Target domain의 특성이 매우 다를 때에도 잘 작동합니다. 즉, 제조업 도메인(target)의 검사를 위한 CNN을 학습시킬 때에도 ImageNet 데이터 세트를 Source domain으로 선택해 전이 학습을 적용하면 됩니다. 전혀 다른 도메인 사이에 전이 학습을 적용했을 때 CNN에 어떠한 영향을 미치는지 살펴보고자 합니다. 그에 앞서 기초 배경에 대한 정리 사항은 다음과 같습니다.

Source domain 데이터 세트는 ImageNet을 사용한다.Target domain 데이터 세트는 DAGM을 사용한다. Target의 문제는 [그림3]과 같이 DAGM 여섯 종류의 섬유 재질을 분류함과 동시에 결함 여부를 판단하는 Classification이다. 각 섬유 재질은 1,000개의 정상 데이터와 150개의 결함 데이터로 구성되어 있다.CNN은 VGG16 네트워크를 사용한다. 네트워크를 학습시키기 위한 Optimizer로는 Batch size 32, Learning rate 1e-3의 SGD를 사용한다.전이 학습 방법론으로는 Source 네트워크의 Weight를 Target 네트워크로 전이한 후 전체 Target 네트워크를 재학습시키는 Fine-tuning을 사용한다. 참고로 사례와 같이 두 도메인이 다를 경우 전이된 네트워크의 Weight를 Freeze하는 전이 방법론은 잘 작동하지 않는다.33

[그림3] DAGM 데이터 세트

제조업 도메인에서 전이 학습이 CNN 성능에 미치는 영향과 특징

아래와 같은 세 가지 설정으로 CNN을 학습해 제조업 도메인에서 전이 학습이 CNN 성능에 어떤 영향을 미치는지 확인했습니다.

  1. Scratch (no aug): Data augmentation 없이 처음부터 Target 데이터 세트에 CNN 학습
  2. Scratch (aug): Target 데이터 세트에 Data augmentation(rotate, flip)을 적용한 후 처음부터 CNN을 학습전이 학습:
  3. 전이 학습을 적용해 Target 네트워크를 학습

실험 결과는 [그림4]과 같습니다. 먼저 Scratch (no aug)는 분류 정확도가 낮은 지점(70.87%)에서 수렴합니다. 이를 통해 DAGM 데이터 세트와 같이 적은 수의 데이터로 깊은 네트워크를 학습시킬 경우 Over-fitting이 발생한다는 것을 알 수 있습니다. Scratch (aug) 결과로도 확인된 바와 같이 Over-fitting 문제는 Data augmentation으로 해결할 수 있습니다. 그러나 최종 정확도(99.55%)에 수렴하기까지 매우 오랜 시간(320k iteration)을 학습해야 합니다.

반면 전이 학습을 적용할 경우 어떠한 Data augmentation 없이도 최종 정확도(99.90%)까지 매우 적은 학습 시간(2,242 interation)만에 도달하는 것을 확인할 수 있습니다. 이를 통해 제조업과 같이 방대한 Source domain을 구축하기 힘든 도메인에서 Target domain과 전혀 다른 특성의 Source domain으로부터 전이 학습을 적용하는 것이 큰 도움이 된다는 점을 확인할 수 있습니다 

[그림4] 각 실험의 Classification 성능 비교

그렇다면 전이 학습을 이용해 학습한 CNN(이후 ‘전이학습’)은 어떤 특징으로 처음부터 학습한 CNN(이후 ‘Scratch’)과 비교했을 때 훨씬 높은 학습 효율을 낼 수 있었을까요? 총 세 가지 특징으로 정리할 수 있습니다. 전이 학습의 특징을 살펴보기 위해 앞선 실험에서 높은 분류 정확도에 도달한 전이 학습과 Scratch (aug)의 특징을 비교 분석해보고자 합니다.

특징1. 동일한 수준의 정확도에 도달하기까지 전이 학습에서는 Weight update가 Scratch보다 적게 일어나며, 주로 네트워크 윗단의 Weight update가 더 많이 발생한다. 

[그림5]은 학습이 수렴한 후 전이 학습과 Scratch (aug)의 각 Layer에서 Weight 변화율을 비교한 결과입니다. 흥미롭게도 두 네트워크에서 Weight 변화율은 완전히 반대 경향을 보입니다. 전이 학습에서는 Scratch (aug)에 비해 전체적으로 훨씬 적은 양의 Weight 변화가 일어났음을 확인할 수 있습니다.

이와는 반대로 Scratch (aug)는 아랫단에서 훨씬 많은 학습이 진행됩니다. 처음부터 CNN을 새로운 Target domain에 학습시킬 때에는 해당 도메인에 맞는 Low-level feature들을 학습하기 위해 많은 부분이 투자된다는 의미입니다.

[그림5] 전이 학습과 Scratch (aug)의 각 layer에서 weight 변화율

특징2. 전이 학습은 Scratch보다 더 Sparse한 특징을 학습한다.

[그림6]은 전이 학습과 Scratch (aug)의 각 Layer에서 Sparsity을 비교한 결과입니다. Sparsity 역시 두 네트워크 사이에 큰 차이가 있음을 확인할 수 있습니다. 먼저 전이 학습의 아랫단(1~8번째 layer)은 값이 거의 0에 가깝습니다. 이는 전이 학습 아랫단에서 Source 네트워크에서 학습된 매우 Dense한 특징들이 추출되고 있다는 것입니다. 그러나 9번째 Layer부터 Sparsity가 높아지기 시작하고, 마지막에는 급격히 증가(90.4%)해 Scratch (aug)의 값(8.44%)와 매우 크게 차이납니다.

[그림6] 전이 학습과 Scratch (aug)의 각 Layer에서 Sparsity

[그림7]는 동일한 데이터가 주어졌을 때 Scratch (aug)와 전이 학습의 마지막 Convolutional layer의 Output feature를 시각화 한 자료입니다. 그림에서 볼 수 있듯이 전이 학습 대부분의 특징들이 비활성화되며, 활성화된 소수의 특징들에서 이미지의 결함 형성을 정확하게 표현하고 있습니다. Scratch (aug)의 특징들도 결함 영역을 비교적 정확히 표현하지만, 전이 학습에 비해 매우 Dense합니다.

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

[그림7] 동일한 데이터(왼쪽 첫번째)가 주어졌을 때 Scratch (aug)(가운데)와 전이 학습(오른쪽)의 마지막 Layer의 Output feature 시각화

특징3. 전이 학습은 Scratch보다 더 Disentangle된 특징을 학습한다.

위에서 저희는 전이 학습과 Scratch (aug)가 결함 특징을 전혀 다른 방식으로 학습한다는 것을 확인했습니다. 그렇다면 두 네트워크가 학습하는 특징 중에서 어떤 것이 더 좋은 것일까요? 딥 뉴럴 네트워크가 학습하는 특징을 연구하는 여러 연구들에서 데이터를 더 많이 Disentangle 할수록 더 좋은 특징이라고 주장합니다44. 딥러닝에서 학습되는 특징의 Disentanglement에 대한 명확한 정의는 아직 없으나, 많은 연구에서 Disentangle된 특징의 Manifold는 Flat하다는데 동의합니다. 따라서 전이 학습과 Scratch (aug)에서 학습된 특징의 Manifold가 Flat한 정도를 비교했습니다.

특징에서 Disentanglement에 대한 정량적 지표는 P.P. Brahma 등(2016)이 제시한 방법으로 측정할 수 있습니다. 여기서 정량적 지표는 Feature space에서 두 점 사이의 Euclidean 거리와 Geodesic 거리 값의 차이를 구하는 것입니다. 완전히 Flat한 Manifold에서는 두 점 사이의 Euclidean 거리와 Geodesic 거리 값이 동일하기 때문에 P.P. Brahma 등(2016)에서 제시하는 정량적 지표 값이 작을수록 Feature가 더 Disentangle되어 있다고 할 수 있습니다5. 두 네트워크에서 Disentanglement 정량적 지표를 계산하면 [표1]과 같습니다. 결과에 따르면 전이 학습에서 학습된 Feature의 Manifold가 더 Flat하기 때문에 더욱 Disentangle하다고 볼 수 있습니다.

[표1] 두 네트워크에서 학습한 Feature disentanglement의 정량적 지표값

Feature disentanglement는 정성적으로도 비교할 수 있습니다. 딥러닝 연구 초창기에 딥 네트워크에서 학습되는 Feature disentanglement에 대한 연구를 확립시킨 연구55에서는 Disentangle된 Feature의 여러 특징들을 정의했습니다. 그 중 하나는 서로 다른 클래스의 Feature들 사이를 Linear interpolation할 때 Disentangle된 Feature일수록 더 그럴듯한 형상이 나온다는 것입니다 ([그림8]). 즉 Disentangle feature일수록 Manifold가 Flat하며 따라서 Linear interpolation 상의 점들이 Manifold 위에 존재할 확률이 높아집니다.

[그림8] Disentangle feature의 Manifold에 대한 설명 (출처: https://www.youtube.com/watch?v=Yr1mOzC93xs)

이러한 개념을 본 연구 사례에 적용한 결과는 [그림9]과 같습니다. DAGM 데이터 세트에서 Texture 1 클래스와 Texture 2 클래스 사이, Texture 2 클래스와 Texture 5 클래스 사이를 Linear interpolation할 때 중간 행은 Scratch (aug)의 Feature를, 마지막 행은 전이 학습의 Feature를 시각화한 것입니다. Scratch (aug)의 Feature는 서로 다른 클래스 사이를 Interpolation 하는 구간에 두 클래스의 결함이 동시에 존재하는 구간이 많습니다. Scratch (aug)의 Feature는 [그림8]에서 설명하는 바와 같이 Disentangle 정도가 적은 것을 알 수 있습니다. 반면에 전이 학습의 Feature는 Interpolation 상에서 두 결함이 겹쳐진 구간이 훨씬 적습니다. 이를 통해 전이 학습의 Feature가 Scratch (aug) 보다 더 Disentangle하다는 것을 확인했습니다.

이와 같은 정량적 및 정성적 실험을 통해 전이 학습의 Feature가 Disentangle되어 있다는 것을 확인했습니다. 따라서 Feature disentanglement 측면에서는 전이 학습이 보다 더 좋은 Feature를 학습한다는 것을 알 수 있습니다.

[그림9] 서로 다른 클래스 사이를 Linear interpolation 할 때 각 Data space를 시각화한 결과. 첫번째 행: Input space, 중간 행: Scratch (aug)의 마지막 Convolutional layer의 Feature space, 마지막 행: Transfer learning의 마지막 Convolutional layer의 Feature space

이번 글에서는 제조업에서 전이 학습이라는 기술을 어떻게 활용할 수 있는지, 또 이를 적용했을 때 어떤 효과가 있는지에 대해 알아보았습니다. 세이지는 DAGM 데이터 세트 외에도 매우 다양한 제조업 데이터에 전이 학습을 적용하고 있습니다. 제조업 분야에 특화된 기술 개발을 위해 끊임없이 도전할 것입니다.

  1. Krizhevsky, A., Sutskever, I. & Hinton, G. E. ImageNet classification with deep convolutional neural networks. Advances in neural information processing systems, 25, 2012, pp.1097-1105. ↩︎
  2. Heidelberg Collaboratory for Image Processing, Weakly supervised learning for industrial optical inspection, https://hci.iwr.uni-heidelberg.de/node/3616, 2007, [Online; accessed 19-October-2019]. ↩︎
  3. Kim, S., et al. Transfer learning for automated optical inspection. 2017, International Joint Conference on Neural Networks (IJCNN). IEEE. ↩︎
  4. 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.
    Y. Bengio, A. Courville, P. Vincent, Representation learning: a review and new perspectives, IEEE Trans. Pattern Anal. Mach. Intell. 35 (8), 2013, pp.1798–1828. ↩︎
  5. Kim, S., Noh. Y.-K., and Park, F. C. Efficient neural network compression via transfer learning for machine vision inspection. Neurocomputing 413, 202, pp.294-304. ↩︎

관련기사