22.05.23 RUL 예측 SOTA 모델 논문 요약 - stacked DCNN, RVE, Semi-supervised deep architecture

2022. 5. 23. 16:17카테고리 없음

stacked DCNN - NCMAPSS

- 20개의 변수는 서로 다른 스케일을 가지고, 그런 데이터를 학습시키면 모델의 수렴이 느려진다. 따라서 표준 정규화를 데이터에 적용시켰다. 그리고 나면 정규화된 데이터의 time window(이전의 데이터를 몇 개 볼건지)를 sliding하면서 네트워크의 인풋에 넣는다.

네트워크는 Level1과 Level2가 있다. 

Level1 : DCNN 사용.(Conv - Batch Normalization - Activation Func - Pooling - Dropout) 잠재적으로 유용한 특성을 추출. input 신호의 time window 인코딩을 생성. (1. 높은 차원의 feature를 낮춤, 2. 노이즈 제거)

 

Level2 : DCNN 사용.(FC - ReLU) RUL 추정. NASA Score대신 RMSE를 loss로 하여 training 했다.

인코딩은 raw 신호의 차원 축소 버전이기 때문에 레벨 2 모델은 모델의 수용 필드(receptive field)를 확장하고 시간에 따른 추세trend 로부터 학습할 수 있다. 또한 이 L1,L2에 최적의 하이퍼파라미터를 얻기 위해 베이지안 최적화를 진행했다.

 

레벨 1 모델은 RUL을 상당히 잘 추정하기 때문에, 레벨 2 모델은 추세를 포착하고 RUL을 개선하기 위해 희소 인코딩 세트만 있으면 된다.(그림 7 참고)

그림 7

그리고 교차 검증 중에서도 kfold 반복 무작위 하위 샘플링 검증을 사용하였는데, 그 이유는 그냥 kfold는 validation set의 크기가 감소하기 때문이다. (일반적으로 모델의 성능을 validation하려면 train 세트의 일부를 최종 test 세트로 저장해야 합니다. 따라서 train/validation 세트의 샘플 수가 감소합니다.)

제안된 방법론에는 다른 접근법이 사용되었는데, 이는 fold당 훈련된 모든 모델을 앙상블로 사용하는 것으로 구성된다. 이 접근법은 두 가지 주요 이점을 가지고 있다.

첫 번째는 교차 검증을 통해 최종 앙상블 모델 성능에 대한 신뢰 메트릭을 얻을 수 있다는 것이다. 두 번째는, 첫 번째와 관련된 것으로, 그림 7과 그림 8과 같이 표본당 예측을 사용하여 최종 평균 예측의 신뢰 구간을 만들 수 있다는 것입니다.

 

RVE(Recurrent Variational Encoder) - CMAPSS

훈련 세트는 run-to-failure 데이터로 구성됩니다. 즉, 각 엔진 장치는 알 수 없는 서로 다른 성능 저하 상태로 시작하여 healthy으로 간주되며 시간이 지남에 따라 엔진 장치는 고장으로 저하되므로 마지막 데이터 샘플은 엔진 장치가 unhealthy(RUL=0)으로 선언된 시간 주기에 해당합니다. 

반대로 테스트 세트의 센서 기록은 시스템 오류가 발생하기 전 어느 시점에서 종료(건강할 때 일수도 있음)되고 이 엔진에 대한 실제 RUL 값(정답=100 등)이 제공됩니다.

 

각 time step에서 데이터는 시간 창 내의 센서에서 선택되어 RUL을 예측하기 위한 네트워크에 대한 입력으로 사용되는 고차원 특징 벡터를 형성합니다.

 

RUL 예측 시에는 CNN(Convolutional NN)이나 RNN(Recurrent NN)를 사용하는 게 좋다. CNN이 좋은 이유는 특징 추출에 좋다. [14,15,16] RNN이 좋은 이유는 데이터의 시간적 특성을 모델링하기에 양방향에서 쉽게 찾을 수 있다.[17,18,19] 또한 데이터 라벨링에 의존하지 않기 위해 semi-supervised 방법이 개발되기도 한다. [23] 하지만 블랙박스로 처리되어 설명력이 부족하여 인간이 봤을 때 의사결정을 하기 쉽지않다. -> 따라서 RVE에서는 시각 진단맵을 제공한다.(성능이 저하된 항공기의 포인트는 주변 영역으로 그룹화되고 반대로 정상 항공기에 속하는 포인트는 위치하도록 하는 맵)

 

즉, RVE에서는 두 가지 진단을 한다. 1. 먼저 상태가 알려진 샘플에 대해 잠재공간 속의 근접성을 기반으로 특정 순간의 항공기 상태를 감지하는 시각적 진단맵, 2. 항공기의 남은 수명을 결정짓는 RUL 값을 명시적으로 보고하는 정량적 진단

 

입력 데이터의 압축된 표현(잠재공간)을 학습하기 위해 VAE(Variational AutoEncoder) 비슷한 것을 사용하여 입력 데이터의 잠재 공간을 뽑아낸다. 우리는 VAE대신 RVE(Recurrent Variationl Encoder)를 사용한다.

 

VAE : 적은 data를 가지고 원래 data가 가지는 분포를 가깝게 근사하고, 그 분포에서 하나를 뽑아 새로운 data를 생성. data의 특징을 잘 파악하여 그 특징들의 분포에 크게 벗어나지 않으면서 그 속에서 새로운 값을 만들 수 있다.

인코더 - 잠재공간 - 분류기(디코더)

 

VAE의 한계 : 주로 생성작업을 지향, 데이터를 가능한 한 압축한 상태로 프로젝션하여 잠재공간을 정규화하기때문에 중복이 발생? 

VAE

 

RVE : 인코더( 양방향(hidden state를 이용해 과거의 정보 보존, 데이터를 역방향에서 순방향으로도 처리) LSTM으로 구성 - 가우스 분포를 근사화한다.) - 회귀

인코더 - 잠재공간 - 회귀(디코더 대신 회귀 - Dense 층 2개, input tensor - output tensor)

RVE

D_kl = 두 확률분포의 차이

 

칼만 필터 : 데이터의 노이즈를 줄이기 위해 사용하는 것,

알파를 낮게 하면 더 강한 smoothing이 일어난다. smoothing을 강하게 하면 성능이 더 나아진다. 우리가 모델링하려는 것은 고장 지점의 감지가 아니라 저하율 의 변화 , 즉 일정 시간이 지나면 엔진 부품이 이전과 다른 속도로 저하되는 중단점 이라는 점에 주목하는 것이 중요합니다. 

 

RVE에서 중요한 요소는 window 길이, smoothing 강도 또는 순환 계층(Recurrent layer)의 내부 뉴런 수 이다.

 

 

Semi-supervised Deep Architecture - CMAPSS

CNN(Convolutional Neural Network ) 및 LSTM(Long-Short Term Memory)과 같은 DL 기술 은 터보팬 엔진 성능 저하 에 대한 RUL 예측에서 빠른 발전과 기존 예후 알고리즘을 능가하는 성능을 보여주었습니다 [5] , [6] , [7]. DL 기술은 엔진 성능 저하 역학에 대한 사전 지식 없이도 RUL을 예측합니다. 따라서 오늘날 데이터 분석가는 RUL 예측 문제에 대한 지식을 기능 엔지니어링보다는 DL 기술의 선택 및 설계에 적용합니다. 그러나 CNN과 LSTM은 모두 순전히 지도 학습에 의존합니다. 즉, 훈련 절차에서 레이블이 지정된 큰 훈련 데이터 세트가 필요합니다. 

 

Semi-supervised learning은 fine-tuning 절차에서 레이블이 지정된 훈련 데이터가 감소할 때 supervised learning에 비해 더 높은 RUL 예측 정확도를 수행합니다. 준지도 학습은 학습 데이터가 100% 레이블링된 경우 지도 학습에 비해 더 높은 RUL 예측 정확도를 제공합니다. 이는 unsupervised pre-training 단계가 무작위로 초기화되는 가중치보다 더 적합한 로컬 최소값을 사용하여 가중치를 초기화한다는 것을 나타냅니다. 특히 훈련 레이블의 60% 이상이 포함된 경우 만족스러운 RUL 예측 정확도를 제공합니다. 즉 semi-supervised learning의 활용도는 다음과 같이 훈련 레이블의 40% 이상을 제거할 때 눈에 띄게 나타납니다.

 

데이터세트 : 교차검증 활용. FD001 및 FD003에서 전체 훈련 하위 집합의 총 엔진 중 20%가 교차 검증을 위해 무작위로 선택됩니다. 나머지 80%는 훈련 세트로 지정됩니다. FD002 및 FD004의 증가된 완전한 훈련 부분 집합 크기로 인해 전체 엔진의 10%가 교차 검증을 위해 무작위로 선택되고 나머지 90%는 훈련 집합으로 지정됩니다.

 

데이터 처리 시 마스킹이라는 것을 사용한다. DL4J 라이브러리는 시계열 데이터를 처리하기 위해 "CSVSequenceRecordReader"를 제공합니다. 각 시계열이 자체 파일에 정의되어 있는 시계열 데이터를 읽습니다. 파일의 각 행은 하나의 시간 단계를 나타냅니다. 결과적으로 4개의 훈련 세트의 각 시계열(엔진)은 자체 파일로 분할됩니다. 입력 훈련 데이터의 모양은 [miniBatchSize, inputSize, timeSeriesLength]입니다. 여기서 miniBatchSize는 미니 배치의 엔진 수, 입력 크기는 열 수, timeSeriesLength는 미니 배치의 총 시간 단계 수입니다. . 엔진은 가변 시간 단계 길이를 가지므로 미니 배치의 더 짧은 엔진은 시간 단계 길이가 가장 긴 것과 같도록 0으로 채워집니다. 따라서 훈련 중에 마스크 어레이가 사용됩니다. 이러한 추가 배열은 시간 단계가 실제로 존재하는지 또는 단순히 패딩인지 여부를 기록합니다. 모든 성능 평가에서 마스크 어레이가 고려됩니다.

 

제안된 semi-supervised deep architecture 구조 : 

L1 RBM(Recurrent Boltsmann Machine) :

- 이진 단위(on이면 1, off면 -1로 구성된 대칭 RNN, Wij = Wji인 형태. 머신러닝 모델의 가중치가 대칭형이다. 이 NN의 각 뉴런은 통계 역학의 Boltsmann 분포를 기반으로 출력(또는 상태)를 생성하는 확률적 단위이다. Boltsmann Machine은 두 가지 모드로 작동한다.(1 고정 모드 : 가시적인 뉴런이 환경에 의해 결정된 특정 상태에 고정됨 , 2 자동 모드 : 보이는 뉴런과 숨겨진 뉴런이 자유롭게 작동하도록 허용되는 자유 실행)

- Boltzmann 학습의 목적은 보이는 단위의 상태가 특정 원하는 확률 분포를 충족하도록 연결 가중치를 조정하는 것

- 레이블이 지정되지 않은 raw input data에서 추상적인 feature를 자동으로 학습하기 위해 비지도학습의 사전훈련단계로 활용된다.

- 본 연구에서는 초기 비지도 사전 훈련 단계로 RBM 을 활용하였다. 그러나 RBM은 다소 오래되고 감독되지 않은 DL 기술입니다. 오늘날에는 보다 강력한 비지도 DL 기술을 사용할 수 있습니다. 예를 들어, VAE [36] , [37] 는 유망해 보입니다. VAE는 변형 추론을 사용하여 훈련 데이터의 기본 확률 분포를 모델링합니다. 

L2,L3 LSTM : 숨겨진 정보를 드러내고 순차데이터의 장기종속성 학습. C-MAPSS 데이터 세트의 가장 짧은 시계열에는 128개의 시간 단계가 포함되어 있으므로 정방향 및 역방향 패스는 100개 시간 단계로 설정됩니다.

L4 FNN : 추출된 모든 특징을 매핑

L5 FC : loss계산 및 RUL 예측

 

GA : Genetic Algorithm - 하이퍼파라미터를 효율적으로 조정하기 위해. 

Dropout은 훈련 중에 유닛을 무작위로 삭제 하는 하이퍼 매개변수 p 를 도입합니다. 이러한 방식으로 드롭아웃은 서로 다른 아키텍처의 기하급수적인 수를 대략적으로 결합합니다. 따라서 딥 아키텍처는 입력 데이터의 일반화된 표현을 학습하여 특징 추출 능력을 향상시킵니다. GA 접근법은 L1, L2, L3, L4 모두에서 n 의 다른 값을 테스트할 수 있으므로 0.5에서 0.9까지의 범위에서 p 의 다른 값을 테스트할 수도 있습니다. 그러나 L1은 입력데이터의 중요한 feature를 유지하기 위해 드롭아웃을 비활성화하는게 좋다. 그리고 출력레이어 L5에서도 사용하지 않는 게 좋다고 한다.

특히 Dropout은 미세 조정 절차에서 여러 다른 아키텍처를 대략적으로 결합하여 특징 추출 능력을 향상한다.

 

첫째, GA 접근 방식은 주어진 검색 공간 내에서 제안된 준지도 심층 아키텍처에 대한 임의의 하이퍼 매개변수를 선택합니다. 이러한 임의의 하이퍼 매개변수 집합 중 하나를 개인이라고 하고 개인 집합을 모집단이라고 합니다. 다음으로, 모집단의 각 개인의 정확도는 개인의 하이퍼 매개변수를 사용하여 네트워크를 훈련하여 평가됩니다. 그런 다음 훈련의 최상의 결과가 유지되어 차세대 하이퍼 매개 변수의 부모로 사용됩니다. 추가적으로, 알고리즘의 탐색을 증가시키기 위해 크로스오버 후에 약간의 무작위 돌연변이가 수행됩니다.

 

초기화(Initialization) 단계는 문제 해결을 위해 개별적인 유전자 집단을 만듭니다. 초기의 유전자 집단은 불규칙적으로 생성을 합니다. 선택(Selection) 단계는 다음 세대를 위해 문제 해결에 근접한 성공적인 유전자를 선택합니다. 유전 연산(Genetic operators) 단계에서는 선택 단계에서 선택한 유전자를 재결합 시킵니다. 이 단계에서 "돌연변이"가 나타날 확률도 존재합니다. 종료(Termination) 단계에서는 종료 조건에 도달했는지를 검증합니다. 종료 조건이 아니면 세대 교체를 위해 위의 단계를 반복합니다. 

 

하이퍼파라미터 최적화 기법들

https://st4ndup.tistory.com/12?category=1172352 

 

Hyperparameter optimization _ 하이퍼파라미터 최적화

1. Hyperparameter 2. Grid Search와 Random Search 3. Bayesian Optimization 4. Genetic Algorithm 5. 그 외의 것들  1. Hyperparameter 흔히 통계를 배울 때, Parameter라는 말을 정말 많이 듣게 된다. 관심을..

st4ndup.tistory.com

1. Grid Search :  Hyperparameter들의 범위에 대해 가능한 모든 Point를 전부 조사하여 모델의 평가가 가장 좋은 최적의 집합을 찾아내는 것

2. Random Search : 모든 격자점에 대한 testing 대신 사전적으로 주어진 범위 하에서 랜덤으로 뽑아 testing을 하는 방식이다. 

3. Bayesian Optimization : 앞서 Grid Search와 Random Search 모두 독립적인 testing의 반복을 통해 최고의 평가를 받는 모델을 선정하였던 것이라면, Bayesian Optimization은 전 단계에서 진행한 testing에서 얻어낸 사전 지식을 통해, 최적의 조합이 있을 것으로 예측되는 지점을 조사하는 방식을 반복하여 Hyperparameter의 이상적인 집합을 찾는 방식

매 단계의 testing이, 최적의 Hyperparameter를 찾는데 유용함.

정리

1. 초기 testing을 통해서 f(x)에 대한 예측 함수를 만든다.

2. 다음으로 관측할 만한 점을 추천 함수로부터 추천을 받아, testing을 한다.

3. testing 한 점을 반영하여 예측 함수를 갱신한다.

4. 2 ~ 3을 반복하여 f(x)를 최대화(혹은 최소화) 시켜주는 최적의 Hyperparameter를 얻어낸다. 

 

4. Genetic Algorithm : 적자생존 이론과 유전적 다양성, 돌연변이 등의 생명체의 유전적 특징들을 반영한 최적화 방식.

Genetic Algorithm에서 '유전자'는 Hyperparameter의 어떤 한 조합을 의미하고, 랜덤 하게 만들어진 초기의 유전자들은 적자생존과 교배를 통해 특징을 물려받게 된다.

생물의 유전도 그렇듯, 우수한 형질을 가진 편인 세대의 자손이라고 해서 반드시 우수한 형질만을 물려받지는 않지만, 이전 세대의 특징이 우수하면 우수할수록 자손 또한 우수할 확률이 높다. 그렇기 때문에 교배의 대상은 항상 적자생존을 통해 이루어지며, 일반적인 방법으로 우수한 유전자는 확률적으로 교배의 기회를 더 많이 갖는다. 다만 우수하지 못한 유전자라고 하여 Drop 시키지는 않는데, 이는 실제 생태계의 유전적 다양성을 반영한 것으로, 알고리즘 자체가 과도하게 경직된 방향으로만 단순하게 흘러가는 것을 막음으로써 Local maximum(혹은 Local minimum)에 갇히는 것을 방지한다.

Local maximum에 갖히는 것을 방지하는 대책으로 또 하나는, 앞서 언급한 돌연변이의 존재이다. Genetic Algorithm에서는 실제 유전적 다양성에 영향을 미치는 요인 중 하나인 변이를 일정 확률로 데이터에 왜곡을 주는 특정 연산을 실행하는 방식으로 만들어낸다. 이를 반복하여 진행하면, 최적의 Hyperparameter의 조합을 찾아낼 수 있게 된다.