*강의영상*: https://www.youtube.com/watch?v=dUzLD91Sj-o&list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r
저번 강의에서 신경망을 학습 시킬때 필요한 절차, 구성 요소에 대해 배우고 실제로 어떻게 학습시키는지, 또한 학습 시킬 때 생기는 문제에 대해 자세히 알아보았다.
이번 강의에서는 Recurrent Neural Networks(RNN), 시퀀스 데이터를 처리하는 데 유용한 순환 신경망 구조로, 이 강의에서는 RNN의 기본 개념부터 고급 주제까지 폭넓게 다루었다. 주요 내용을 알아보자.
RNN은 시퀀스 데이터 처리를 위해 설계된 신경망으로, 내부 상태를 유지하여 이전 입력의 영향을 반영할 수 있다.
RNN의 구조를 수식을 통해 알아보자.
1. Cell state 업데이트 수식:
$
h_t = f_W(h_{t-1}, x_t)
$
이 수식은 현재 시간 $ t $에서의 은닉 상태 $ h_t $가 이전 시간의 은닉 상태$ h_{t-1} $과 현재 입력 $ x_t $에 의해 결정됨을 나타낸다. 함수 $ f_W $는 네트워크의 학습 가능한 가중치 $ W $를 포함한 함수이다. 이 수식이 RNN의 핵심으로, 시퀀스 데이터를 처리할 때 각 시점의 입력과 이전 상태를 기반으로 현재 상태를 계산한다.
2. 구체적인 상태 계산:
$
h_t = \tanh(W_{hh} h_{t-1} + W_{xh} x_t)
$
여기서 은닉 상태 $ h_t $는 두 개의 주요 가중치 행렬 $ W_{hh} $와 $ W_{xh} $에 의해 결정된다.
- $ W_{hh} $는 이전 은닉 상태 $ h_{t-1} $에 곱해지는 가중치 행렬로, 시퀀스 데이터 내에서 시간적 관계를 학습한다.
- $ W_{xh} $는 현재 입력 $ x_t $에 곱해지는 가중치 행렬로, 입력 데이터와 은닉 상태 간의 관계를 학습한다.
- $ \tanh $ 함수는 비선형 활성화 함수로, RNN이 단순한 선형 모델에 머물지 않도록 하는 역할을 한다. 이 비선형성 덕분에 RNN은 복잡한 패턴을 학습할 수 있다.
3. 출력 계산:
$
y_t = W_{hy} h_t
$
마지막으로, 출력 $ y_t $는 현재 은닉 상태 $ h_t $에 또 다른 가중치 행렬 $ W_{hy} $를 곱해 계산된다. 이 출력은 최종적으로 네트워크가 예측하고자 하는 값 또는 다음 네트워크 계층으로 전달되는 값이 된다.
RNN은 다양한 형태의 데이터 처리에 응용될 수 있다. 대표적인 예로는 다음과 같다:
이미지 캡셔닝(Image Captioning): 이미지에서 시퀀스 형태의 설명을 생성하는 문제
비디오 분류(Video Classification): 비디오의 프레임 시퀀스를 입력으로 받아 단일 라벨을 출력하는 문제
기계 번역(Machine Translation): 한 언어의 단어 시퀀스를 받아 다른 언어로 번역하는 문제
그중 하나인 many to one(Encoder) + one to many(Decoder) 구조를 가진 seq2seq 모델을 알아보자.
인코더 - 디코더 형태를 띄고있는 이 구조는 어떤 언어를 다른 나라 언어로 바꿀 때 작동한다. 예를 들어 하나의 언어로 학습된 가중치가 last vector에 모든 정보가 저장되고 마지막 벡터에 저장된 정보를 통해 다른 가중치 기본값을 가지고있는 구조에 last vector에 저장되어 있는 가중치가 foward pass로 first init input이 되어 디코더 구조에 전파된다.
컴퓨터 비전에서 벗어나, 또 다른 예시인 Language modeling에 대해 살펴보자. 여기서 언어 모델링이란 주어진 시퀀스의 문자들을 입력으로 받아 다음 문자를 예측하는 작업을 의미한다. 이 슬라이드에서는 “hell”이라는 입력을 주고, 다음 문자 “o”를 예측하는 과정을 설명하고 있다.
입력 시퀀스는 “hello”라는 단어로, 여기서 각 문자는 원-핫 인코딩(one-hot encoding)된 벡터로 표현된다. 예를 들어, ‘h’는 [1, 0, 0, 0], ‘e’는 [0, 1, 0, 0] 등으로 표현된다. 각 문자는 RNN의 입력 레이어로 들어가며, 이 원-핫 인코딩된 벡터가 입력으로 사용된다.
각 출력은 네트워크가 다음으로 예측하는 문자에 대한 점수(혹은 확률)를 제공하며, 최종적으로 네트워크는 가장 높은 점수를 받은 문자를 선택하여 출력하게 된다. 예시에서, “hell” 다음에 올 문자로 “o”를 예측하는 과정을 보여준다.
또 다른 예제로 Image captioning에 대한 예제도 존재한다. one to many 구조의 하나로 Convolution 특유의 fully connected layer의 가중치가 추가 되며 RNN formula에 W(ih) * v가 다른 점이라고 볼 수 있겠다.
RNN의 대표적인 문제점으로는 기울기 소실(Vanishing Gradient)과 기울기 폭발(Exploding Gradient)이 있다. 이러한 문제는 RNN이 긴 시퀀스를 처리할 때 발생하며, 학습 과정에서 기울기가 소실되거나 폭발하여 학습이 제대로 이루어지지 않는 문제를 야기한다.
이를 해결하기 위해 기울기 클리핑(Gradient Clipping)을 사용해야 한다. gradient clipping 이란 loss가 결정 될 때 마다 역전파로 구한 기울기의 eucliean norm을 구해 너무 크면 스케일링 하는 과정이다. 구해진 기울기를 조정한다는 것을 사실 깔끔한 과정은 아닌 hack 의 일종인 듯 하다.
기울기 폭발 문제가 clipping으로 조금 해결됐다고 생각해도, gradient vanishing problem이 남았다...
RNN의 기울기 소실 문제를 해결하는 LSTM(Long Short-Term Memory)과 같은 고급 RNN 구조를 알아보자.
LSTM은 RNN의 변형 구조로, 기울기 소실 문제를 해결하기 위해 설계되었다. LSTM은 각 타임스텝에서 상태 정보를 유지하는 '셀 상태'와 이를 제어하는 '게이트' 구조를 도입하여, 정보의 흐름을 보다 효과적으로 관리할 수 있다.
LSTM은 각 타임스텝에서 두 개의 상태 벡터, 즉 셀 상태(Cell State)와 Hidden State를 유지한다. LSTM의 핵심은 입력 게이트(Input Gate), 출력 게이트(Output Gate), 망각 게이트(Forget Gate)와 같은 여러 게이트 구조를 통해 정보를 제어하는 것이다.
- 망각 게이트(Forget Gate)는 이전 셀 상태를 얼마나 유지할지를 결정하며, 기울기 소실을 방지하는 데 중요한 역할을 한다.
- 입력 게이트(Input Gate)와 g 게이트(g Gate)는 새로운 정보가 셀 상태에 얼마나 반영될지를 조절한다.
- 출력 게이트(Output Gate)는 셀 상태의 어떤 부분을 숨겨진 상태로 보낼지를 결정하여 최종 출력을 생성한다.
- g 게이트(g Gate)는 hidden state에서 넘어온 정보의 가장 가까운 형태이다.
이러한 구조 덕분에 LSTM은 긴 시퀀스를 처리할 때도 안정적으로 학습할 수 있다. 특히, 셀 상태를 통한 연속적인 기울기 흐름(Gradient Flow)이 가능해지며, 경로에 gradient friendly한 additive, element-wise multuplication밖에 없기 때문에 gradient super highway라고 불리기도 한다.
결과론적으로, 이는 기울기 소실 문제를 효과적으로 완화한다. 또한 gradient vanishing 문제가 사라졌기 때문에 LSTM은 RNN보다 긴 시퀀스에 대해 더 나은 성능을 발휘할 수 있다
...오늘은 RNN의 개념과 응용 예시, 특히 LSTM에 대해 알아보았다. 또한 그에 관한 수식, 구조와 아키텍처에 대해 자세히 알아보았다.
'Computer Vision' 카테고리의 다른 글
[논문리뷰] Co-teaching: Robust Training of Deep Neural Networks with Extremely Noisy (3) | 2024.10.15 |
---|---|
[EECS 498-007] lec13. Attention (1) | 2024.08.25 |
[EECS 498-007] lec11. Training Neural Networks II (0) | 2024.08.17 |
[EECS 498-007] lec10. Training Neural Networks I (1) | 2024.08.15 |
[EECS 498-007] lec8. CNN Architectures (0) | 2024.08.13 |