1. 순환 신경망(Recurrent Neural Network, RNN)
- 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내면서, 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징을 가지고 있음
- 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀(cell, 메모리 셀, RNN 셀)이라고 함
- 셀은 은닉층의 메모리 셀에서 나온 값을 자신의 입력으로 사용하는 재귀적 활동을 함
- 셀이 출력층 방향으로 또는 다음 시점 t+1의 자신에게 보내는 값을 은닉 상태(hidden state)라고함. 다시 말해 t 시점의 메모리 셀은 t-1 시점의 메모리 셀이 보낸 은닉 상태값을 t 시점의 은닉 상태 계산을 위한 입력값으로 사용함
- RNN은 입력과 출력의 길이를 다르게 설계 할 수 있으므로 다양한 용도로 사용할 수 있음
- 일 대 다(one-to-many) : 모델은 하나의 이미지 입력에 대해서 사진의 제목을 출력하는 이미지 캡셔닝(Image Captioning) 작업에 사용할 수 있음
- 다 대 일(many-to-one) : 입력 문서가 긍정적인지 부정적인지를 판별하는 감성 분류(sentiment classification), 또는 메일이 정상 메일인지 스팸 메일인지 판별하는 스팸 메일 분류(spam detection)에 사용할 수 있음
- 다 대 다(many-to-many) : 입력 문장으로 부터 대답 문장을 출력하는 챗봇과 입력 문장으로부터 번역된 문장을 출력하는 번역기 등에 사용할 수 있음
- RNN의 은닉층 연산을 벡터와 행렬 연산으로 이해할 수 있음
- 만약, 은닉층이 2개 이상일 경우에는 은닉층 2개의 가중치는 서로 다름
3. 파이썬으로 RNN 구현하기
2. 케라스(Keras)로 RNN 구현하기
4. 깊은 순환 신경망(Deep Recurrent Neural Network)
- 다수의 은닉층
5. 양방향 순환 신경망(Bidirectional Recurrent Neural Network)
- 이전 시점의 데이터뿐만 아니라, 이후 시점의 데이터도 힌트로 활용하기 위해서 고안된 것
6. 점검 퀴즈
- RNN을 제대로 이해했는지 퀴즈를 통해서 확인해보세요! 모델에 대한 설명이 다음과 같을 때, 총 파라미터 개수를 구해보세요.
- Embedding을 사용하며, 단어 집합(Vocabulary)의 크기가 5,000이고 임베딩 벡터의 차원은 100입니다.
- 은닉층에서는 Simple RNN을 사용하며, 은닉 상태의 크기는 128입니다.
- 훈련에 사용하는 모든 샘플의 길이는 30으로 가정합니다.
- 이진 분류를 수행하는 모델로, 출력층의 뉴런은 1개로 시그모이드 함수를 사용합니다.
- 은닉층은 1개입니다.
- 출처 : [딥러닝을이용한 자연어 처리 입문] 0901 순환 신경망(Recurrent Neural Network, RNN)
'IT 와 Social 이야기 > NLP 자연어처리' 카테고리의 다른 글
[딥러닝을이용한 자연어 처리 입문] 0903 게이트 순환 유닛(Gate Recurrent Unit, GRU) (0) | 2021.05.20 |
---|---|
[딥러닝을이용한 자연어 처리 입문] 0902 장단기 메모리(Long Short-Term Memory, LSTM) (0) | 2021.05.20 |
수식어 없는 인생 (0) | 2021.05.20 |
[딥러닝을이용한 자연어 처리 입문] 0810 피드 포워드 신경망 언어 모델(Neural Network Language Model, NNLM) (0) | 2021.05.19 |
[딥러닝을이용한 자연어 처리 입문] 0809 다층 퍼셉트론(MultiLayer Perceptron, MLP)으로 텍스트 분류하기 (0) | 2021.05.19 |