일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- cifar100-c
- dcgan
- tent paper
- mocov3
- semi supervised learnin 가정
- dann paper
- shrinkmatch paper
- adamatch paper
- 컴퓨터구조
- shrinkmatch
- remixmatch paper
- SSL
- Pseudo Label
- GAN
- mme paper
- 백준 알고리즘
- CycleGAN
- Pix2Pix
- CGAN
- conjugate pseudo label paper
- UnderstandingDeepLearning
- Entropy Minimization
- 최린컴퓨터구조
- WGAN
- simclrv2
- 딥러닝손실함수
- ConMatch
- Meta Pseudo Labels
- BYOL
- CoMatch
- Today
- Total
Hello Computer Vision
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 |