LSTM(장단기 기억)

LSTM이란?

LSTM(장단기 기억) 신경망은 일종의 RNN(순환 신경망)입니다. LSTM은 데이터 시간 스텝 사이의 장기적인 의존성을 훈련할 수 있으므로 순차 데이터를 학습, 처리, 분류하는 데 주로 사용됩니다. LSTM은 감성 분석, 언어 모델링, 음성 인식, 비디오 분석 등에 널리 활용됩니다.

LSTM 응용 사례와 예제

아래의 예제에서는 MATLAB®Deep Learning Toolbox™를 사용하여 특정한 응용 분야에 LSTM을 적용합니다. 초심자는 다음의 간단한 예제로 LSTM 신경망을 시작할 수 있습니다. LSTM을 사용한 시계열 예측.

레이다 표적 분류

MATLAB에서 LSTM(장단기 기억) 순환 신경망을 사용하여 레이다 반사 신호를 분류할 수 있습니다.

핵심어 검출

사용자가 미리 정의된 핵심어를 말하면 시스템을 활성화할 수 있습니다.

텍스트 생성

딥러닝 LSTM 신경망을 훈련시켜서 단어 단위로 텍스트를 생성할 수 있습니다.

ECG 신호 분류

인체 심장의 전기 활성도의 시간적 변화를 Normal 또는 AFib로 기록하는 ECG 신호를 분류할 수 있습니다.

상수관망 시스템 스케줄링

RL(강화 학습)을 사용하여 상수관망 시스템의 최적 펌프 스케줄링 정책을 생성할 수 있습니다.

비디오 분류

사전 훈련된 영상 분류 모델과 LSTM 신경망을 결합하여 비디오를 분류할 수 있습니다.

RNN과 LSTM의 기술적 특징

LSTM 신경망은 RNN 아키텍처의 특수한 형태입니다. 이 섹션에서는 여러 아키텍처의 차이점과 

LSTM의 장점을 자세히 알아봅니다. 

RNN (순환 신경망).

RNN (순환 신경망).

RNN(순환 신경망)의 기본 구조.

실질적으로 간단한 RNN은 장기적인 의존관계를 학습하는 능력이 제한적입니다. RNN은 일반적으로 역전파를 통해 훈련되며, 여기서 ‘소실’ 또는 ‘폭주’하는 기울기 문제에 직면할 수 있습니다. 이러한 문제로 인해 신경망의 가중치가 아주 작아지거나 아주 커지므로 신경망이 장기적인 관계를 훈련해야 하는 응용 분야에서 효율성이 떨어지게 됩니다.

이러한 문제를 극복하기 위해 LSTM 신경망은 부가적인 게이트를 사용하여 은닉 셀의 어느 정보를 출력과 다음 은닉 상태로 보낼지 제어합니다. 부가적인 게이트를 통해 신경망은 데이터에 있는 장기적인 관계를 더욱 효과적으로 훈련할 수 있습니다. LSTM 신경망은 시간 격차에 대한 민감도가 낮으므로 단순한 RNN에 비해 순차 데이터를 분석하는 데 더욱 적합합니다.

기존 RNN의 은닉 상태 이외에도 LSTM 블록의 아키텍처에는 일반적으로 아래에서 보이는 것과 같이 기억 셀, 입력 게이트, 출력 게이트, 망각 게이트 등이 있습니다.

장단기 기억 블록

RNN에 비해 LSTM(장단기 기억) 아키텍처에는 정보 흐름을 제어할 수 있는 게이트가 더 많습니다.

입력 게이트에 들어가는 가중치와 편향은 셀로 유입되는 새로운 값의 범위를 제어합니다. 이와 유사하게, 망각 게이트와 출력 게이트로 들어가는 가중치와 편향은 각각 셀에 남게 될 값의 범위와 LSTM 블록의 출력 활성화를 계산하는 데 사용되는 셀 안 값의 범위를 제어합니다.

LSTM 신경망에 대한 더 자세한 내용은 Deep Learning Toolbox™를 참조하십시오.

참조: MATLAB for deep learning, machine learning, MATLAB for data science, GPU computing, artificial intelligence

Watch this series of MATLAB Tech Talks to explore key deep learning concepts. Learn to identify when to use deep learning, discover what approaches are suitable for your application, and explore some of the challenges you might encounter.