1. Introduction to RNNs
순환 싱경망(RNN)은 순차 데이터 용으로 잘 알려져 있습니다.
텍스트, 오디오, 비디오 및 모든 시계열 형식의 순차적 데이터를 다룰 때마다 RNN이 첫번째 선택이 될 것입니다.
Sequential Modeling
- Sequential Modeling
- Understanding Recurrent Neural Networks (RNNs)
- RNN Wariants
- LSTM
- GRU
- Bi-directional sequence modelling
- Challenges in vanilla RNNs
RNN 을 알려면 순차 모델링과 순차적 데이터를 아는 것이 중요합니다.
순차적 데이터란 특정 시퀀스에 있는 데이터에 대한 것을 이야햐기 합니다.
Xt인 점이 있고 Xt+1 인 점을 생각하면,
Xt+1 은 Xt와 연관함
Xt+2 은 Xt+2와 연관함을 생각할 수 있습니다.
예를 들면 시간에 따라 가격이 변화하는 값인 주식을 순차적 데이터 (Sequential Data) 라고 합니다.
CNN과 Fully Connected 신경망은 이러한 종류의 데이터를 처리할 수 있다고는 하지만, 이러한 순서로 연결된 종류의 데이터에는 퍼포먼스가 좋지 않습니다.
따라서 이러한 데이터에 맞는 RNN에 대한 모델에 살펴보겠습니다.
이번 게시물에서는 순수한 RNN 모델에 대해 작성하겠습니다.
2. Why We need Sequential Modelling?
그렇다면 CNN과 Fully Connected 신경망보다 순차적 모델이 필요한 이유는 무엇일까요?
- 입력과 출력은 케이스마다 길이가 다를 수 있다.
예시 1) 'Pankj 가 뮌헨에 산다'
예시 2) 'pankj gupta가 독일 뮌헨에 산다'
Fully Conneted 및 CNN에선 이러한 종류의 패딩이 필요합니다.
처음에는 문장의 최대 길이를 가정하여 신경망을 초기화해야하고 이 방법으로 문자으이 최대 길이에 도달하지 못하면 문장 끝에 패딩을 추가합니다. 이 특정 패딩은 빈 픽셀 수 또는 빈 행렬로 될 것입니다.
이 패딩들은 분류에서 중요한 역할을 하지 못하고, 이러한 종류의 패딩은 더 나아가 부적절한 역할을 할 수도 있습니다.
해당 그림은 RNN 모델에 대한 처리 과정입니다.
CNN VS RNN
RNN
- 입력 데이터가 순차적 패턴에서 상호 의존적일 때 RNN이 매우 잘 수행됨
- 이전 입력값과 다음 입력값이 상호 의존할 때
- 마지막 입력과 다음 입력간의 상관 관계가 매우 중요하고 RNN이 마지막 출력을 기반으로 편향을 도입했기 때문에 순차 데이터에서 잘 수행됨
CNN
- 모든 출력은 자체 종속적(개별 데이터 포인트가 독립적) 이다.
- 이전 입력 값과 다음 입력값이 독립적임
- 피드 포워드 신경망으로, 테스트시 입력 데이터 기록을 기억하지 못함
RNN 을 수학적으로 살펴보았을 때
RNN 은 기억해야할 사항이 있습니다.
이전셀이 h(t-1) 이고, 현재 셀이 h(t)라고 합시다.
이제 학습률을 찾아야합니다.
학습해야하는 목적함수는 Fc입니다. Fc에는 이전 셀인 h(t-1)과 현재 셀이 있는 입력을 x(t)를 학습해야합니다.
3. Problems in RNN
- 기울기 소실 및 기울기 폭주 (Vanishing and exploding Gradient)
- 500개 이상이나 1000개 이상의 시퀀스가 있으면 해당 지점에 도달하기 된다.
- LSTM은 해당 문제를 해결함. 하지만 훈련 시간이 많이 걸린다는 문제점이 있음 (RNN계열이기떄문)
- Due to resurrent nature, RNNs take lots fo time in training
- 반복적인 특성으로 인해 RNN이 훈련에 많은 시간이 걸린다.
참고 자료
- https://childult-programmer.tistory.com/54
'공부정리 > Deep learnig & Machine learning' 카테고리의 다른 글
[DeepLearning] Attention (0) | 2023.01.17 |
---|---|
[Deeplearning] LSTM Networks (0) | 2023.01.16 |
[Deeplearning] 이미지 데이터 증강(Augmentation) - Pytorch transforms 정리 (0) | 2023.01.11 |
[Deeplearning] 작물 잎 사진으로 질병 분류하기 (2) - Pytorch (0) | 2023.01.10 |
[Deeplearning] 작물 잎 사진으로 질병 분류하기 (1) 베이스라인 설계- Pytorch (0) | 2023.01.10 |