* 이 포스팅은 아래 원문을 번역한 포스팅입니다. 포스팅의 게시 시점과 번역 시점이 일치하지 않음을 사전에 밝힙니다.
원문: Introducing deep learning and long-short term memory networks https://www.ibm.com/developerworks/analytics/library/iot-deep-learning-anomaly-detection-1/index.html

* 본 포스팅은 딥러닝의 특수성에 기인하여 기술 용어에 한해서 영문표기를 그대로 따랐습니다. 예를 들어 ‘long-short term memory networks’를 ‘장기-단기 메모리 네트워크’로 표기하지 않았습니다.

Content series:
‘딥러닝과 LSTM 네트워크 소개’는 ‘딥러닝을 사용한 IoT 시계열 데이터의 이상 검출’의 연재 포스팅 중 첫번째 포스팅입니다. 본 연재 포스팅은 총 5개의 포스팅으로 구성되어 있습니다.

히든 레이어에 대해 깊게 알아보기

히든 레이어의 요점은 무엇일까요? 바로 각 계층을 개별 머신러닝 알고리즘으로 볼 수 있다는 것입니다. 업스트림 레이어의 출력은 입력으로 사용되며 출력은 다음 레이어로 전달되어 그 다음 레이어로 입력됩니다. 이 동작은 레이어를 쌓고 심층 신경망을 만들 때 다운 스트림 레이어의 성능을 향상시키는 데 도움이되는 중간 데이터를 학습한다는 것을 의미합니다. 가장 유사한 예는 인간 두뇌의 시각 시스템입니다. 첫 번째 레이어 (당신의 각막 바로 다음에 있는 것들)는 얼굴, 자동차 및 고양이를 인식하지 않지만 선, 원, 직사각형 및 점과 같은 모양을 인식합니다. 더 깊이 들어가면 레이어가 인식 할 수있는 것보다 많은 이미지를 볼 수 있습니다.

결론적으로 딥 피드 포워드 (deep-feed-forward) 신경망은 수학적 함수(충분한 데이터가 주어지고 그것을 훈련시키는 컴퓨팅 파워가 있다면)를 배울 수 있습니다.

시계열 데이터에는 long-short term 메모리 네트워크가 필요합니다.

바라건대 우리가 함께 검토한 내용들로 인해 당신은 신경망이 매우 강력하다고 확신하고 있을 것입니다. 그러나 불행히도 시계열 데이터 (IoT 데이터는 주로 시계열 데이터임)에 있어서는 피드 포워드 네트워크를 사용하기 어렵습니다. 이러한 네트워크는 메모리를 보유하지 않기 때문에 시퀀스를 인식하는 데 좋지 않기 때문입니다. 이 문제의 한 가지 해결책은 피드백 루프를 추가하는 것입니다.

그림 7. 피드백 루프

이러한 피드백 루프는 이제 네트워크에 메모리 유닛을 사용하기 때문에 피드 포워트 네트워크 상에서 레이어가 깊어질 수록 기억하지 못하는 문제를 다소 수정합니다. 피드백 루프는 시간적으로 가까운 네트워크에는 잘 작동하지만 더 먼 시간적 사건을 기억하기는 어렵습니다. 때문에 그림 8과 같이 LSTM (long-term term memory) 네트워크를 얻기 위해 메모리 셀을 뉴런에 추가해야합니다.

그림 8. Long-short term 메모리 네트워크

모델 트레이닝에는 컴퓨팅 파워가 필요합니다.

LSTM 네트워크의 단점은 무엇일까요? 신경망을 사용할 때 좋은 성능을 얻으려면 많은 양의 데이터와 많은 컴퓨팅 성능이 필요합니다. 좋은 소식은 현재 그래픽 카드(GPU)가 2009 년에 있었던 16,000 코어의 클러스터와 동일한 컴퓨팅 성능을 가지고 있다는 것입니다. IBM은 현재 neuromorphic 칩을 IBM Watson Group에 제공할 목적으로 릴리즈 작업중입니다. neuromorphic 칩은 동일한 컴퓨팅 파워를 가지지만 전력은 단 3 와트만 소비합니다. 이는 향후 성능 향상 및 에너지 절감의 여지가 있습니다.

LSTM 네트워크는 어떤 알고리즘이라도 배울 수 있습니다.

왜 저는 코그너티브 IoT 솔루션에 대해 말하면서 이 모든 것들을 말하고 있을까요? LSTM 네트워크는 튜링(Turing)머신 입니다. 이것은 LSTM 네트워크가 컴퓨터가 수행할 수있는 알고리즘을 학습할 수 있음을 의미합니다. 최신의 알고리즘과 대조적으로 LSTM 네트워크는 시계열 예측 및 코그너티브 IoT에 관한 모든 분야의 예외 탐지에 사용됩니다. 코그너티브 IoT 응용 프로그램에서 당신은 사전에 조치를 취할 시스템의 상태를 예측하거나 무언가가 고장 났을 때 통보 받기를 원할 수 있습니다.
그럼 이 때 규칙 기반의(rule-based) 최신 알고리즘의 문제점은 무엇일까요? 아무 문제도 없습니다. 다만, 저는 LSTM이 대개 최신 알고리즘보다 뛰어나다고 말하고 있습니다.(특히 시스템을 학습시킬 충분한 데이터가 있는 경우) 때때로 크게, 때로는 조금 뛰어나고, 드물게는 성능이 안좋을 수도 있습니다. 이는 각각의 사례별 정확도 증가에 따른 추가 컴퓨팅 비용을 정당화할 수 있는지 여부에 따라 다릅니다.

데모사례 : IoT 시계열 데이터의 이상 탐지

이 데모 사례에 대해 생각해보세요. 이 사례는 후속 튜토리얼의 기초가 될 것입니다. 베어링을 측정하는 진동(가속도계) 센서 데이터의 이상을 감지하는 작업을 생각해보세요. 그림 9와 같이 베어링에 센서를 부착합니다.

그림 9. 베어링에 부착한 가속센서

가속도계 센서는 3개의 x, y, z 축 각각에 진동을 기록합니다. 회전 운동 패턴을 고려한 보다 정교한 센서가 있지만 모든 스마트 폰에서 볼 수있는 것처럼이 간단한 센서로도 문제가 없습니다. (스마트 폰의 가속도계에 액세스하고 분석하는 방법을 배우려면 다음의 튜토리얼을 따르십시오.) 이와 같은 시스템을 데모에서는 사용하기가 어렵기 때문에 Node-RED에 시뮬레이터를 구현하여 데이터를 생성해야합니다. 여기에서는 Lorenz attractor 물리 모델을 사용합니다. 튜토리얼에서 생성된이 데이터를 사용하여 이상 징후를 감지하고 기본적으로 베어링이 파손될 시기를 예측합니다. 이 테스트 데이터 시뮬레이터를 어떻게 생성했는지 보려면 이 시리즈의 다음 튜토리얼인 이상 탐지를 위한 데이터 생성을 읽으십시오.

테스트 데이터 생성기를 정상 상태와 오류 상태의 두 가지 상태로 전환 할 수 있습니다. 그림 10은 부품의 정상인 상태의 시계열상의 세 가지 진동 크기를 보여주는 위상 도표입니다.

그림 10. 정상 상태의 위상 도표

그림 10에서와 같은 위상 도표를 사용하여 실제 모델의 매개 변수를 약간 변경한 오류 상태를 확인할 수 있습니다.

그림 11. 결함 상태의 위상 도표

위상 도표에 익숙하지 않은 경우 그림 12 및 그림 13의 실행 차트에서 세 축 값을 볼 수 있습니다. (다시 정상과 결함 상태의 실행 차트 입니다.)

그림 12. 정상 상태의 실행 차트

그림 13. 결함 상태의 실행 차트

일반적인 기술 중 하나는 DFT(이산 푸리에 변환) 또는 웨이블릿을 사용하여이 데이터를 시간에서 주파수 도메인으로 변환하는 것입니다. 다시, 그림 14와 그림 15에서 정상 상태와 결함 상태에 대한 DFT를 보여줍니다.

그림 14. 정상 상태의 이산 푸리에 변환

그림 15. 결함 상태의 이산 푸리에 변환

결함 상태에는 더 많은 에너지와 추가 주파수가 있음을 명확하게 볼 수 있습니다. 이 데이터는 이전에 배웠던 분류 기준을 학습하는 데 충분합니다. 그러나 우리는 더 잘할 수 있습니다. 우리는 데이터로부터 정상적인 행동을 학습할 수있는 시스템을 만들고 새로운(보이지 않는) 데이터 (또는 순차적 패턴)를 본 후 경고를 알림을 보낼 수 있습니다.

이러한 시스템은 그림 16과 같이 LSTM 기반 자동 인코더(auto-encoder)입니다.

그림 16. LSTM 자동 인코더 모델

이 시스템은 신경망의 병목 현상을 통해 막대한 양의 데이터를 압축하여 관측된 것과 동일한 데이터를 재구성하려고합니다. (물론 병목 현상을 사용하여 방대한 양의 관련없는 데이터가 손실됩니다.) 이러한 신경망은 시스템이 정상적으로 작동하는 방식을 학습하고 새로운 패턴이 나타나는 즉시 데이터를 재구성하는데 어려움을 감지하고 경보를 발생시키게 됩니다.

결론

본 포스팅을 통해 여러분은 신경망에 대한 충분한 이해와 함께 코그너티브 IoT 시스템에서 어디에 딥러닝이 적용될지에 대해 파악하셨을 겁니다.
다음 튜토리얼에서는 아파치 스파크 (Apache Spark)에 대한 다양한 기술을 사용하여 딥러닝 시스템을 구현하고, 시스템에서 이러한 기술의 영향력에 대한 이해도를 높이도록 하겠습니다. 또한 Deeplearning4j, Apache SystemML 및 TensorFlow (TensorSpark)와 같은 IBM Cloud에서 실행되는 공개 표준 및 오픈 소스 솔루션에 대해서도 말씀 드리겠습니다.

* 본 포스팅은 딥러닝과 LSTM 네트워크 소개 (1)편에서 이어지는 글입니다. https://developer.ibm.com/kr/systems/machinelearning/2017/11/14/deeplearning-lstm-1/

작성자: 맹윤호

토론 참가

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.