관리 메뉴

Bull

[Deep Learning] 코드를 보며 RNN 이해하기 본문

Artificial Intelligence/Deep Learning

[Deep Learning] 코드를 보며 RNN 이해하기

Bull_ 2024. 5. 30. 19:11

 

https://colah.github.io/posts/2015-08-Understanding-LSTMs/


RNN(Recurrent Neural Network)은 시퀀스 데이터를 처리하기 위해 설계된 인공 신경망의 한 유형이다.

RNN은 텍스트, 시간 시계열 데이터, 오디오 신호 등 순차적인 데이터에 유용하다.

 

처음 사진만 보고 이해가 안갈 수도 있다. 나도 혼자 책으로 처음 접할 때 output이 여러 개인 것에 대해 이해를 못했다.

하지만 최근 학교 수업에서 간략하게 코드를 통해 수업을 했는데 예제를 보고 어떤 느낌인 지 확 와닿았다.

 

이렇게 이해하면 쉽다. [0,1,2 → 3], [1,2,3 → 4], [2,3,4 → 5] ... [1111,1112,1113 → 1114]를 학습시킨 후,

[53783,53784,53785 → ???] 에 대한 y값을 예측하는 것이다.

 

위의 예제에서 입력값은 3개지만, 더 늘릴 수도 있다.

연속된 패턴을 기억할 수 있기 때문에 위의 지식을 기반을 자연어에 활용이 가능하다.

자연어처럼 문장을 숫자로 벡터라이징한 후 연속된 문장을 학습시킨다면, 빈칸 뚫린 문장을 넣어 빈칸에 들어가는 단어를 예측할 수 있다.

 

하지만 SimpleRNN은 단순하기 때문에 여기서 더 확장된 버전인 LSTM, GRU를 통해 자연어 처리를 구사할 수 있다.

 

Code


 

 

 

 

Training RNN