2018년 11월 18일 일요일

Deep Learning with Sequence Data and text (순차적 데이터와 텍스트의 딥러닝 PyTorch) (14)

LSTM

RNN은 언어 번역, 문장 분류, 많은 순차적인 프로그램등과 같은 실제 세계 어플리케이션을 만드는데 꽤 대중적입니다. 그러나 실제에 있어서 우리가 앞에서 보았던 RNN의 바닐라 버전(기본적인 버전)은 매우 드물게 사용됩니다. RNN의 바닐라 버전은 큰 순차데이터를 다룰때 사라지는 기울기, 기울기 폭발과 같은 문제점들을 가지고 있습니다. 대부분의 실제 프로그램에서는 RNN은 변형, LSTM 또는 GRU가 사용됩니다. 이것은 기본적인 RNN의 한계를 해결합니다. 또한 순차적인 데이터를 더잘 다룰 수 있는 능력을 가지고 있습니다. 여기에서는 LSTM안에서 어떤 일이 일어나는지 이해하는 것을 시도 할 것입니다. 그리고 IMDB데이터 셋을 이용하여 텍스트 분류 문제를 해결하기위한 LSTM에 기초한 network을 만들것입니다.

Long-term dependency

이론에 있어서 RNN은 다음에 무슨일이 발생하는지에 대한 컨텍스트의 빌드를 위해서 과거 데이터로 부터 필요한 모든 의존도를 학습해야 합니다. 예를 들자면, 우리는 "the clouds are in the sky" 문장에서 마지막 단어를 예측하는 중입니다. RNN은 정보 (clouds)가 단지 몇 마디 뒤이기 때문에 그것을 예측할 수 있습니다. 의존도가 필요하고 그것이 가깝지 않은 다른 긴 문장을 봅시다. 그리고 우리는 그것이 마지막 단어에서 예측하기를 원합니다. 그 문장은 다음과 같습니다. "I am born in Chennai a city in Tamilnadu. Did schooling in different states of India and I speak..." RNN의 바닐라 버전(기본적인 버전)에서는 그것을 순차적 앞선 부분에서 일어난 컨텍스트를 기억하기 위해서 어렵게 찾습니다. LSTM과 다른 RNN의 변형은 얼마나 많은지 또는 어떤 데이터가 기억될 수 있는지 나중에 결정하는 LSTM 내부에 다른 신경망을 더 함으로서 이 문제를 해결합니다.



댓글 없음:

댓글 쓰기