일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- mme paper
- shrinkmatch paper
- CoMatch
- 컴퓨터구조
- cifar100-c
- adamatch paper
- ConMatch
- 딥러닝손실함수
- BYOL
- GAN
- Entropy Minimization
- Meta Pseudo Labels
- SSL
- tent paper
- dann paper
- CycleGAN
- shrinkmatch
- UnderstandingDeepLearning
- 백준 알고리즘
- mocov3
- CGAN
- remixmatch paper
- simclrv2
- semi supervised learnin 가정
- conjugate pseudo label paper
- Pseudo Label
- Pix2Pix
- 최린컴퓨터구조
- WGAN
- dcgan
- Today
- Total
Hello Data
RNN(Recurrent Neural Network)에 대한 이해해보기 본문
Attention, Transformer을 이해하기 위해 RNN기초부터 공부해보려고 한다.
참고 자료 : 위키독스 허민석님 영상 ratsgo님 블로그
RNN과 기존의 DNN 구조간의 차이를 비교했을 때 그림으로 확인한다면 더 잘 느낄 수있다.
단방향으로 이루어진 DNN과 달리 RNN의 경우 그 전의 과정이 다음의 결과에 영향을 미치는 것을 확인할 수 있다.
그전 까지의 결과를 반영해서 다음 출력 값을 고려할 수 있다는 점에서 자연어 처리 부문 machine translation에서 탁월한 성능을 보인다(many to many)
RNN을 이루는 각 요소들을 한번 알아보자.
$x_{t}$ : 입력벡터
$cell$ : 메모리셀(은닉상태)
$y_{t}$ : 출력벡터
$W_{xh}$ : 입력벡터에서 은닉상태로 갈 때의 가중치
$W_{hh}$ : 이전 은닉상태에서 다음 은닉상태로 넘어갈 때의 가중치
$W_{hy}$ : 은닉상태에서 출력벡터를 뽑아내기 위한 가중치
위 이미지와 같이 만약 입력 벡터가 4개일 경우 $W_{xh}$도 4개지만 이러한 가중치는 다르지 않고 같은 것이다.($W_{hh}, W_{hy}$마찬가지)
초기 은닉상태를 $h_{0}$이라 할 때 $h_{1} = tanh(W_{hh} * h_{0} + b_{h}$ 이렇게 나타낼 수 있다.
이것을 일반화 해보자면 $h_{t} = tanh(W_{hh} * h_{t-1} + b_{h}$ 이렇게 나타낼 수 있다.
여기서 활성화 함수는 주로 tanh를 쓰지만 비선형함수인 ReLU를 쓸 수도 있습니다.
출력상태 역시 일반화 해서 나타내보자면 $y_{t} = W_{hy} * h_{t} + b_{y}$
위 RNN 구조를 보면 알 수 있다시피 입력sequence에 대해 길이 제한 없이 받을 수 없다는 것이 가장 큰 장점 중 하나이다.
RNN은 machine translation 분야 뿐만 아니라 sentiment 분석에서 또한 활발하게 쓰이고 있는 기본 구조입니다.
이 또한 딥하게 들어가면 한없이 딥하게 들어갈 수 있으니 다음에 또 궁금한 내용을 발견하게 되면 추가 하겠습니다.
'딥러닝' 카테고리의 다른 글
Dilated Convolution 이란 (0) | 2023.01.17 |
---|---|
Convolutional Neural Network 특징 (0) | 2023.01.05 |
*args와 **kwargs 쓰임 (0) | 2022.12.30 |
딥러닝 Momentum(관성)에 대한 이해 (0) | 2022.11.25 |
비전공생의 Backpropagation(역전파) 직접 손으로 해보기 (0) | 2022.11.09 |