Author Archives: saige

세이지리서치는 어떤 기술들을 서비스하고 있나요?

7월 6, 2022

세이지리서치의 미션: Inspection Done Right

 

모든 제조업 현장에서는 생산된 제품의 하자 여부를 검사하는 공정을 반드시 거칩니다. 이 공정을 ‘QC (quality control) 공정’이라 칭하는데, 기계가 아닌 사람의 손에 이루어지는 게 대부분입니다. 많은 제조업 분야에서 QC 공정을 자동화하기 위해 노력하고 있으나, 현재 기술로는 쉽지 않은 상황이며 특히 제품의 외관을 검사하는 일은 더더욱 사람의 손이 필요합니다. 외관에 발생하는 결함은 종류가 매우 다양할 뿐만 아니라 비슷한 유형의 결함이라도 발생하는 형태가 각각 다르기 때문입니다. 이에 제조업 현장에서는 외관 검사에 룰 기반 머신비전 시스템 도입을 통해 QC 공정 자동화하고자 오랜 시간 검토 중입니다. 하지만 아직도 뚜렷한 해결책을 찾지 못하고 있는 상황입니다.

세이지리서치가 추구하는 미션은 제조업 현장에서의 QC 공정을 머신러닝/딥러닝 기술을 통해 고도화 및 자동화하는 것입니다. 그중에서도 사람의 손을 필수적으로 거쳐야만 하는 작업인 비전 기반 QC 공정의 고도화를 최우선 목표로 삼고 있습니다. 그렇다면 현재 세이지리서치는 제조업에서 발생하는 문제들을 어떤 기술로 해결하고 있을까요?

 

 

 

제품의 외관 결함 검사 – SaigeVision

 

제조업에서 수행하는 비전 기반 QC 문제 중 하나는 제품 외관에 발생한 결함을 검사하는 것입니다. 세이지리서치에서는 제품 외관 결함 검사 공정에서 나타나는 다양한 문제들을 해결하기 위해 여러 기술을 개발하고, 실제 생산라인에 적용하고 있습니다.

 

제품 외관 결함 검사의 근본적인 어려움

제품의 외관 결함을 검사하는 일은 기존 룰 기반 머신비전 알고리즘뿐만 아니라 사람도 쉽게 풀 수 없는 문제입니다. 이는 제조 공정 자체가 지닌 복잡성과 어려움 때문입니다. 특히 1. 결함의 종류가 많고, 2. 결함 및 배경의 형상이 비정형이며, 3. 제품 특성 및 제조 환경 문제로 빛 반사와 왜곡이 보이기 때문에 특히 더 어렵다고 말할 수 있습니다.

위 문제뿐만 아니라 제조업 결함을 검사하는 일은 매우 빠른 검사 속도와 높은 검사 정확도를 요구하므로 다른 도메인에 비해 자동화가 더 어렵다는 단점이 있습니다. 세이지리서치는 제조업 외관 검사 문제에 특화된 딥러닝 기반 이미지 기술(classification, object detection, sementic segmentation)을 지속해서 개발하는 동시에 실제 산업에도 적용하고 있습니다. 세이지리서치에서 연구하고 있는 대표적인 키워드는 아래와 같습니다.

  • 빠른 학습 속도 및 높은 검사 정확도 – Transfer learning
  • 빠른 검사 속도 – 딥러닝 모델 경량화
  • 다양한 제조 환경에 대응 – Augmentation, Robustness, Generalization Performance

 

 

부족한 결함 데이터

제조 공정에서는 결함 데이터가 매우 적게 발생하는데 이는 딥러닝 학습에 필요한 데이터가 부족하다는 것을 의미합니다. 그래서 기존에는 제조업 외관 검사에 딥러닝을 적용하기 위해서는 결함 데이터가 충분히 모일 때까지 기다려야만 하는 번거로움이 있었습니다. 세이지리서치에서는 결함 데이터 부족 문제가 제조업에 딥러닝을 적용하는 데에 큰 장애물 중 하나라고 판단, 이를 해결할 수 있는 기술인 가상 결함 이미지 생성 기술 개발에 성공했습니다.

일반적으로 GAN (generative adversarial network) 기반의 이미지 생성 기술은 학습이 쉽지 않고, 결함과 같은 작은 형상은 생성이 어렵다고 알려져 있습니다. 그러나 세이지리서치는 다양한 산업의 다양한 제품에서 발생하는 결함을 학습 및 생성할 수 있도록 GAN 알고리즘을 개선하였습니다. 이를 ‘가상 결함 생성 기술’이라고 말하며, 이 기술을 통해 만들어진 결함 데이터는 외관 검사의 학습 데이터로 사용되어 실제 결함 데이터가 부족한 공정에 적용되고 있습니다.

 

 

라벨링의 어려움 및 새로운 결함에 대한 대응

제조업 현장에 딥러닝을 적용하는 데 걸림돌이 되는 장애물 중 하나는 딥러닝 학습을 위한 라벨링이 매우 힘들다는 것입니다. 딥러닝을 제조 공정에 성공적으로 적용하기 위해서는 새롭게 발생하는 결함 데이터들을 라벨링 하여 주기적으로 그리고 지속해서 학습해줘야 합니다. 하지만 높은 해상도(> 5M pixels)의 제조업 이미지 데이터 수천, 수만 장에서 결함을 찾아 라벨링 하는 것은 매우 어려운 작업입니다. 더불어 학습하지 않은 결함에 대한 대응이 되지 않는다는 점도 일반적인 딥러닝 외관 검사의 또 다른 한계점이라 말할 수 있습니다.

세이지리서치에서는 이러한 딥러닝 적용의 문제점을 해결하기 위해 Anomaly Detection이라는 기술을 개발하였습니다. 이 기술은 학습 과정에서 정상 데이터만으로 정상 데이터의 특징들을 학습한 후 검사 과정에서 정상과 다른 점들을 모두 찾아내는 기술입니다.

세이지리서치는 이와 같은 Anomaly Detection 기술을 이용하여 다음과 같은 제조업 딥러닝 적용 이슈들을 해결하고 있습니다.

  1. 라벨링 과정에서 Anomaly Detection을 적용하여 수천 장의 정상 데이터 사이에 숨어 있는 결함들을 라벨러에게 찾아줍니다. 이를 통해 라벨링에 드는 인력을 최소화할 수 있습니다.
  2. 기존 딥러닝 기반 외관 결함 검사 결과와 Anomaly Detection 결과를 종합적으로 적용해 기존에 학습한 결함은 물론 예상치 못한 신규 결함까지 찾아낼 수 있습니다.

 

 

운영의 어려움

아무리 관리가 잘 되는 공정이라 할지라도 제조 환경은 시시각각 끊임없이 변화합니다. 공정에서 취득되는 데이터의 특성 역시 마찬가지입니다. 일례로 장비에 설치된 조명의 노후화로 데이터의 색감이 달라질 수도 있고, 카메라 초점이 안 맞아 블러 현상이 발생할 가능성도 존재합니다. 이는 아무리 데이터를 잘 모으고 라벨링을 잘하여 좋은 학습 모델을 만들었다고 해도 동일한 딥러닝 모델로 검사를 지속해서 수행할 수 없고, 주기적으로 데이터를 모아 재학습하는 과정이 꼭 필요하다는 걸 의미합니다. 하지만 이 과정에서 현재 적용되고 있는 딥러닝 모델이 제대로 작동하고 있는지, 문제가 발생할 여지는 없는지 공정 엔지니어가 현장에서 계속 모니터링을 해야 합니다. 이처럼 사람의 노동력이 반드시 투입되어야 하다 보니 자동화에 대한 효용성은 떨어질 수밖에 없습니다.

세이지리서치에서는 이런 단점을 해소하기 위한 첫 번째 단계로 현재 검사에 적용되고 있는 딥러닝 모델에 대한 신뢰도를 사용자에게 알려주는 기술을 개발하였습니다. 현재 딥러닝 모델이 검사하고 있는 데이터의 특성이 학습 단계와 비교했을 때 얼마나 다른지를 딥러닝 검사의 신뢰도라는 수치로 정의합니다. 신뢰도가 일정 수준 이하로 떨어지면 사용자에게 보고됩니다. 이 기술이 공정에 적용될 경우 공정 엔지니어는 검사 결과를 24시간 지켜볼 필요 없이 시스템에서 신뢰도 경고할 때만 확인하면 되기 때문에 운영상에서 겪을 수 있는 많은 어려움이 해소될 수 있습니다.

딥러닝 신뢰도 분석 기술의 적용 시나리오

 

 

 

제조 공정의 이상 감지 SaigeVAD

 

SaigeVision으로 수행하는 외관 검사는 여러 공정을 거친 후, 제조된 최종 제품의 결함에 대한 검사입니다. 제조 공정의 QC 작업을 고도화시키기 위해서는 최종 결과물에 결함이 있는지 없는지 검사하는 것도 중요하나, 해당 결함이 발생한 원인 공정을 찾아내는 것도 중요합니다. 세이지리서치에서는 이러한 목표를 달성하기 위해 제조 공정을 24시간 모니터링함으로써 이상 동작을 감지할 수 있는 VAD (video anomaly detection) 기술을 개발하였습니다. SaigeVAD는 공정의 정상 동작 영상을 학습하여 실제 제조 공정에서 정상과 다른 임의의 이상 동작을 검출하는 기술입니다. SaigeVAD는 공정 영상에서 설정된 원하는 영역(region of interest, ROI)을 실시간으로 검사해서 이상 동작이 발생했을 때 해당 구간의 결함 score와 결함 여부를 사용자에게 알려줍니다.

 

공정 라벨지 검사 : 결함 (파란색 라벨지 및 라벨지가 안 붙은 부분) 검출
튜브 뚜껑 조립 검사 : 결함 (뚜껑이 닫히지 않는 부분) 검출

 

 

 

SaigeVAD 역시 SaigeVision과 마찬가지로 매우 다양하게 변화하는 제조 환경에 적용되는 기술이며 아래와 같은 특성을 보입니다.

 

 

실시간 환경 변화 대응

실제 현장에서의 공정 영상 내에는 촬영 환경이 바뀌는 경우가 빈번하게 발생합니다. 대표적으로 공정에 설치된 조명 세팅이 변화하는 경우를 예로 들 수 있습니다. SaigeVAD는 공정을 검사하며 실시간으로 환경 변화를 학습하게 합니다. 이를 통해 더 이상 동작이 아닌 단순한 환경 변화의 영향을 상쇄시킴으로써 재학습 없이 검사를 수행할 수 있습니다.

환경 변화가 있을 때와 없을 때의 기준 점수 (적응 점수 양상 모식도)

 

 

실시간 카메라 변화 대응

자동화 공정 현장에서는 유지보수 작업으로 인해 감시 카메라의 위치를 변경해야 하는 경우가 종종 발생합니다. 이때, 사용자가 설정한 검사 영역(ROI)이 부적절한 위치에 놓이게 되고, 이는 결함 검사 알고리즘의 성능을 떨어뜨립니다. SaigeVAD는 실시간으로 카메라의 이동을 감지하고 기존 ROI 영역으로 조정해주는 기술을 탑재해서 카메라 변화가 발생할지라도 재학습하는 번거로움 없이 검사를 수행할 수 있습니다.

검사 영역 조정 모식도

검사 영역 조정 모식도

 

 

 

제품의 제조 코드 인식 및 데이터베이스화 SaigeOCR

 

제조업에서 생산되는 모든 제품은 고유의 일련번호를 가지고 있으며 이 번호를 기반으로 제조 공정이 관리됩니다. 따라서 제조 공정 QC 고도화를 위해 세이지리서치에서 집중하고 있는 마지막 기술은 OCR (Optical character recognition)입니다. 세이지리서치는 OCR 기술을 실제 제조 공정에 성공적으로 적용하고자 다양한 촬영 환경에 강건한 OCR 기술, 주요 문자데이터를 추출하여 정형화할 수 있는 OCR 기술을 SaigeOCR에 탑재했습니다.

 

다양한 촬영 환경에 대응

위에서 언급했듯 실제 제조 공정에서 촬영되는 데이터에는 다양한 빛 반사와 틀어짐이 생길 수 있습니다. 또한, 제품이 항상 정렬되어 들어오는 것이 아니므로 이미지상에 존재하는 제품이 왜곡되어 있을 수 있습니다. OCR 기술은 제품상에 있는 작은 문자들을 인식해야 하므로 이러한 공정상의 노이즈는 OCR 기술에서 더 민감하게 다뤄져야 합니다. SaigeOCR은 제조 환경에서 발생하는 외관의 빛 번짐 현상을 시뮬레이션하는 이미지 처리 기법을 학습 과정에 적용함으로써 다양한 조명 환경에서도 문자를 정확하게 인식할 수 있게 하였습니다. 그뿐만 아니라 학습 과정에서 다양한 형상의 글씨체를 생성하여 학습함으로써 작은 글씨체 변화도 놓치지 않고 인식할 수 있습니다.

SaigeOCR 학습에 사용되는 가상 데이터

SaigeOCR 학습에 사용되는 가상 데이터 (빛 변화 및 글씨체를 시뮬레이션하여 만들어 냄)

만약 제품이 틀어져서 촬영되더라도 제품상에 존재하는 텍스트 영역의 기하학적 정보(휘어짐, 기울기 등)를 자동으로 추출, 이를 기반으로 텍스트를 정방향으로 정렬하여 인식률을 높이는 기술을 개발하여 적용하고 있습니다.

tech_blog_img7

 

 

주요 문자 데이터 추출 및 정형화

OCR 기술로 제품상에 있는 모든 문자를 인식할 수 있습니다. 하지만 제품상에 있는 문자열 데이터로 공정을 관리하기 위해서는 공정 관리에 주요한 정보들을 별도로 추출하고 정형화하는 과정이 추가로 필요합니다. SaigeOCR은 transformer 기반의 주요 문자데이터 추출 및 정형화 기술을 탑재하여 사용자가 원하는 정보를 원하는 형태로 정형화할 수 있는 기능을 제공하고 있습니다.

영수증에 있는 문자

영수증에 있는 문자 중 사용자가 추출하고 싶은 정보(Company, date, address, total)만 추출 및 정형화

 

 

 

마치며

 

세이지리서치가 제조 공정 QC 고도화를 위해 어떤 문제를 풀고 있는지, 어떤 기술을 개발하고 있는지에 대해 소개해드렸습니다. 다음 게시글부터는 세이지리서치에서 개발하는 각 기술에 대한 구체적인 내용을 다뤄볼 계획이니 많은 관심 부탁드립니다.

 

A Riemannian geometric framework for manifold learning of non-Euclidean data

8월 18, 2021

[ Abstract ]

A growing number of problems in data analysis and classification involve data that are non-Euclidean. For such problems, a naive application of vector space analysis algorithms will produce results that depend on the choice of local coordinates used to parametrize the data. At the same time, many data analysis and classification problems eventually reduce to an optimization, in which the criteria being minimized can be interpreted as the distortion associated with a mapping between two curved spaces. Exploiting this distortion minimizing perspective, we first show that manifold learning problems involving non-Euclidean data can be naturally framed as seeking a mapping between two Riemannian manifolds that is closest to being an isometry. A family of coordinate-invariant first-order distortion measures is then proposed that measure the proximity of the mapping to an isometry, and applied to manifold learning for non-Euclidean data sets. Case studies ranging from synthetic data to human mass-shape data demonstrate the many performance advantages of our Riemannian distortion minimization framework.

Autoencoding Under Normalization Constraints

8월 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

8월 5, 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에 있는 슬라이딩 퍼즐을 보고, 퍼즐을 맞추었을 때, 어떤 캐릭터가 있는건지 쉽게 상상이 가시나요? 맞추셨더라도, 지금은 $4times4$이지만, 만약 $8times8$이 되어도 맞출 수 있을까요? 아마 쉽지 않을 것 같습니다. 이는 퍼즐이 어려워짐에 따라, 원래 그 캐릭터가 가지고 있던 중요한 특성들이 없어져버리기 때문입니다. 이처럼 무분별한 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

8월 5, 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, 아래: t-SNE)

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

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

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

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

그림 5. DAGM 데이터셋

그림 5. DAGM 데이터셋

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

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

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

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

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 변화율

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

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

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.