본 게시물에서는 "A neural network constructed by deep learning technique and its application to intelligent fault diagnosis of machines" (Jia et al. 2017) 논문을 리뷰하도록 하겠습니다. 이 논문에서는 bearing fault detection 문제를 해결하기 위해 Autoencoder 모델을 사용했습니다. 

 

Introduction

저자는 먼저 bearing fault detection에 전통적인 오토인코더를 적용하는 것에 대해 두 가지 문제를 지적했습니다. 첫 번째는 classifier에 넣기 위해 feature를 추출할 때, 사실 너무 비슷한 feature가 많다는 것입니다. 따라서 실제로 분류에 영향을 미치는 feature는 몇 개 되지 않는 문제가 발생합니다. 또한 전통적인 오토인코더를 통해 학습된 feature들은 shift-variant한 성질을 가지고 있으며, 이로 인해 오분류가 발생하게 됩니다. shift-variant한 특성이 무엇인지는 뒤에서 더 자세히 설명하도록 하겠습니다. 이 논문에서는 NSAE-LCN (Normalized Sparse Autoencoder - Local Connection Network)이라는 모델을 제시하여 앞서 말한 문제들을 해결하려고 노력했습니다. 

 

Shortcomings of traditional autoencoders

전통적인 오토인코더의 문제점을 더 자세히 살펴보도록 하겠습니다. 첫 번째 문제는, 충분히 다양한 feature가 생성되지 않는다는 점입니다. 오토인코더는 raw signal 데이터에 weight matrix를 곱함으로써 feature를 추출하기 때문에, 적절한 weight matrix를 얻는 것이 중요합니다. weight matrix의 각 행은 basis vector인데, 오토인코더를 더 잘 활용하기 위해서는 단지 좋은 basis vector를 뽑는 것뿐만 아니라 각 벡터가 다른 정보를 담고 있어야 합니다.

두 번째 문제는 데이터가 shift-variant할 경우 오토인코더 모델을 그대로 적용하기 어렵다는 것입니다. 아래 그림의 두 데이터 a, b는 비슷한 fault impact를 가지고 있지만, T2만큼의 time shift가 있습니다. 전통적인 오토인코더는 이 두 데이터가 비슷하다는 것을 알아내기 어렵습니다. 반면 이 논문의 모델은 local feature를 뽑음으로써 이러한 문제를 해결할 수 있다고 합니다. 

 

Sparse Autoencoder

NSAE를 보기 전에 먼저 전형적인 sparse autoencoder를 보도록 하겠습니다. unlabeled data $\{x_m\}^M_{m=1}$이 주어졌을 때, encoder, decoder의 구조는 다음과 같습니다. hidden layer $h_m$을 sparse하게 만들기 위해 KL divergence term이 목적 함수에 추가됩니다. 이는 activation 값의 평균에 페널티를 줘서 hidden layer에 0에 가까운 값이 많아지도록 합니다. 

Model architecture of sparse autoencoder

 

Proposed Method - NSAE

이 논문에서 제안하는 NSAE는 traditional sparse autoencoder와 달리 다음과 같은 네가지 특징을 가지고 있습니다. (1) Activation 함수로 Sigmoid 대신 ReLU를 사용하고, (2) bias term을 사용하지 않고, (3) KL divergence term을 L1 norm으로 대체하고, 마지막으로 (4) 목적 함수에 soft orthonormality constraint를 적용합니다. 저는 4번이 이 논문의 핵심 아이디어라고 생각했습니다.

논문에서 제시한 아이디어를 그림으로 나타낸 것입니다. $W^TW = I$가 되도록 하는 soft orthonormality constraint를 통해 오토인코더의 weight matrix가 행마다 다른 정보를 학습하게 됩니다.

 

Proposed Method - NSAE-LCN

Normalized sparse autoencoder를 이용한 local connection network의 구조는 아래 그림과 같습니다. 하나의 sample을 생각해 보면, 먼저 raw vibration signal을 여러 개의 조각으로 나눕니다. 그리고 여기서 $N_S$개의 조각을 랜덤으로 뽑아서 Normalized sparse autoencoder의 input으로 넣습니다. NSAE의 weight matrix, $W_{loc}$은 아래 그림처럼 의미 있고, 동시에 다양한 피쳐들을 뽑아내도록 학습됩니다. 이 $W_{loc}$을 input layer의 segment와 각각 곱함으로써 feature를 추출하는 것입니다. 또한 shift-invariant한 feature를 뽑아내기 위해서 local layer의 값들에 평균을 취합니다. 이로써 time shift가 있더라도, local한 feature를 잘 발견할 수 있게 됩니다. 마지막 output layer는 softmax classifier로서, bearing fault condition을 판별합니다.

 

 

Experiment Result

실험 결과는 다음과 같습니다. 다른 논문들과 마찬가지로 CWRU의 12K dataset을 사용했습니다. 전체 데이터 중 25%를 학습에, 나머지 75%를 검증에 사용했다고 합니다.

오토인코더의 weight matrix $W_loc$의 각 행을 시각화한 그림이 재미있었습니다. (a)와 (b)는 각각 NSAE의 벡터들을 시간 도메인, 주파수 도메인으로 시각화한 것이고, (c)와 (d)는 SAE의 벡터들을 시각화한 것입니다. 이 논문에서 주장한 것처럼, NSAE를 통해 추출된 feature들이 훨씬 다양한 양상을 보입니다.

   이 글에서는 Industrial Anomaly Detection 관련 논문 경향을 살펴보도록 하겠습니다. 풍력 발전용 터빈, 발전소, 고온 에너지 시스템, 저장 장치, 회전 기계 부품 등 산업 현장에서 사용되는 기기들은 매일 엄청난 스트레스를 받습니다. 따라서 기기에 이상이 있는지를 미리 알아내는 것이 굉장히 중요합니다. 그런데 anomaly는 자주 발생하지 않고, 여러 가지 이유로 인해 이상이 발생하기 때문에 이를 미리 예측하기가 어렵습니다. 최근 이러한 rare event를 예측하기 위해 여러 Neural Net 기반 알고리즘이 널리 사용되고 있습니다.

   Industrial Anomaly의 범위는 굉장히 넓습니다. 간단하게는 센서의 출력인 1차원 벡터부터, 사진 혹은 영상과 같은 복잡한 데이터를 입력으로 받을 수도 있습니다. 따라서 범위를 조금 좁혀서 'Bearing Fault Detection' 관련 논문에 대한 경향을 조사했습니다. 베어링은 모든 모터 및 기타 회전 시스템에서 중요한 역할을 합니다. 베어링의 이상을 탐지하기 위해 여러 지표를 사용하는데, 베어링의 진동을 모니터하는 경우가 많습니다. 'Bearing Fault Detection' 대신 'Machinery Health Monitering'이라는 용어를 사용하기도 합니다. 베어링 이상 탐지에 Neural Net을 사용한 논문들을 시간 순서대로 하나씩 보도록 하겠습니다. 

 

A Rolling Element Bearing Fault Diagnosis Approach Based on Multifractal Theory and Gray Relation Theory, Li et al., 2016

Neural-network-based motor rolling bearing fault diagnosis, Li et al. (2000)


2000년에 발표된 Bearing vibration analysis에 Neural Network를 적용한 논문입니다. frequency domain에서 고속 푸리에 변환으로 feature를 추출하고 이를 1 layer Neural Net의 input으로 넣었습니다. input feature로는 6개를 사용했는데, 이는 뉴럴 넷을 통한 것이 아니라, 미리 정해져 있는 hand-crafted feature를 사용한 것입니다. Neural Net 모델의 output으로 세 가지 fault condition 중 하나를 결정하는 indicator를 출력합니다.

 

PCA-based feature selection scheme for machine defect classification, Malhi et al. (2004)


직전 논문과 달리 이 논문에서는 principal component analysis (PCA)에 기반하여 feature selection을 수행했습니다. 그 후 1 layer Fully Connected Neural Net과 K-means 알고리즘을 이용하여 anomly를 판별하였습니다.

 

Support vector machine in machine condition monitoring and fault diagnosis, Widodo et al (2007)


 이 논문은 Support Vector Machine을 사용하는 fault diagnosis 방법을 정리한 survey입니다. SVM은 분류 경계면과 데이터 포인트 사이의 거리를 최대화하는 기법입니다. kernel의 종류에 따라 경계면의 모양이 달라지게 됩니다. SVM은 feature extraction 능력이 약하기 때문에, 다른 방법으로 먼저 feature를 추출한 후, SVM을 사용한다고 합니다.

 

 

Fault Detection with Autoencoder


이제부터는 Fault Detection에 많이 사용되는 autoencoder 기반 논문을 소개하도록 하겠습니다. Autoencoder의 reconstruction error의 분포를 만들고, 값이 특정 수준 이상이면 anomaly라고 판단합니다. 이렇게 reconstruction error로 바로 anomaly를 판별하는 방식도 있고, 많은 논문에서는 antoencoder를 feature extractor로 사용합니다.

 

Bearing fault diagnosis method based on stacked autoencoder and softmax regression, Tao et al. (2015)


이 논문에서는 feature extractor로 2-layer Stacked Autoencoder를 사용하는데, 두 레이어의 hidden layer size와 dropout masking probability를 다르게 줍니다. 그 후 Softmax Regression을 사용하여 비정상 데이터를 탐지합니다. 앞의 논문들과 달리 feature를 추출하는 정해진 방법이 없고, 원형 센서 데이터를 그대로 모델의 인풋으로 넣어서 autoencoder가 특징을 배우도록 합니다.

 

Deep neural networks: A promising tool for fault characteristic mining and intelligent diagnosis of rotating machinery with massive data, Jia et al. (2016)


이 논문에서는 layer를 더 깊게 쌓았습니다. supervised learning에서 많이 하는 것처럼, autoencoder로 모델을 층층이 pre-train 시킨 후, supervised loss로 fine-tuning합니다.

 

Multi-sensor feature fusion for bearing fault diagnosis using sparse auto encoder and deep belief network, Chen et al. (2017)


이 논문에서는 SAE-DBN 구조를 사용합니다. 시간 도메인과 주파수 도메인의 피쳐가 각각 다른 센서 신호로부터 나옵니다. 비정상 탐지에 여러 종류의 데이터를 같이 활용한 것이죠. 이렇게 뽑은 피쳐를 2-layer sparse autoencoder에 넣어서 피쳐를 합친 후에 Deep Belief Network로 상태를 분류합니다.

 

Transformer fault diagnosis using continuous sparse autoencoder, Wang et al. (2016)


이 논문에서는 continuous sparse auto-encoder (CSAE)를 feature extractor로 사용하는데, sparse autoencoder에서 activation 함수를 씌우기 전에 확률 유닛을 하나 추가한 것입니다. 확률 유닛을 추가함으로써 gradient의 방향을 바꾸고, over-fitting을 방지할 수 있었다고 합니다.

 

Bearing fault diagnosis with autoencoder extreme learning machine: A comparative study, Mao et al. (2017)


이 논문에서는 Autoencoder로 뽑은 feature를 ELM의 input으로 넣습니다. ELM(Extreme Learning Machine)이란 gradient 기반 방식의 문제점을 개선하기 위해 고안된 알고리즘입니다. ELM에서는 H의 의사 역행렬을 구함으로써 back propagation 과정을 거치지 않고 적합한 값을 빠르게 찾을 수 있습니다. 따라서 진단 속도가 빠르다는 장점이 있습니다.

 

Comparison of Algorithms


출처 : Artificial intelligence for fault diagnosis of rotating machinery: A review, Liu et al., 2018 (paper)

 

Performance comparison of Algorithms


출처 : Artificial intelligence for fault diagnosis of rotating machinery: A review, Liu et al., 2018 (paper)

 

RNN on time series data


 

More Recent Papers


최근(2019년 5~6월)에 bearing fault detection 관련해서 나온 논문들은 크게 sparse autoencoder 혹은 CNN 중 하나를 사용하는 경향이 있습니다. 여기에 전통적인 SVM 방법이나 GAN과 같은 generative model을 사용하는 논문도 간혹 보입니다.

 

참고 자료