4 minute read

배경

기존의 순환 신경망은 입력 데이터의 순서와 흐름을 기억하기 위해 이전 시점의 정보를 다음 시점으로 계속 전달하는 구조를 가진다. 그러나 모델의 크기(레이어 수, 파라미터 수)를 키우면 훈련 데이터에만 지나치게 맞춰지는 과적합 현상이 심하게 발생했다.

이러한 과적합을 막기 위해 일반적인 딥러닝에서는 드롭아웃(Dropout) 기법을 사용한다.

드롭아웃이란?

드롭아웃(Dropout)은 모델이 과적합되는 것을 막기 위해 사용하는 대표적인 규제(Regularization) 기법이다.

신경망 학습 과정에서 각 레이어의 뉴런들은 서로 연결되어 입력 정보를 바탕으로 정답을 예측한다. 하지만 모든 뉴런이 매번 동시 작동하면 특정 뉴런들끼리 과도하게 의존하는 결합 현상이 발생하고, 이로 인해 모델이 훈련 데이터의 잡음이나 세부적인 특징까지 과도하게 학습하게 된다.

드롭아웃은 매 학습 단계마다 전체 뉴런 중 일정 비율을 무작위로 선택하여 임시로 deactivated 상태(출력을 0으로 변경)로 만든 뒤 학습을 진행한다. 이렇게 하면 무작위로 일부 뉴런이 꺼진 채로 순전파와 역전파가 이루어진다. 학습할 때마다 무작위로 꺼지는 뉴런 조합이 계속 바뀌기 때문에 개별 뉴런들은 특정 다른 뉴런에만 의존하지 않고 스스로 유용한 특징을 추출하는 법을 배우게 된다. 매번 조금씩 다른 구조를 가진 여러 개의 신경망을 학습시키는 것과 유사한 효과를 내어 모델의 일반화 성능을 높여준다.

학습이 모두 끝나고 실제로 데이터를 에측하는 추론 단계에서는 드롭아웃을 끄고 모든 뉴런을 다시 활성화하여 사용한다. 다만 학습 단계에서는 뉴런 일부가 꺼진 상태로 가중치가 조정되었기 때문에 추론 단계에서는 뉴런의 출력값에 학습 시 적용했던 비율을 곱해 전체적인 출력의 크기를 일정하게 맞춰준다.

image

RNN에서 드롭아웃 적용 시 문제점

하지만 이 드롭아웃 기법을 RNN의 시간 축 순환 연결에 그대로 적용하면 과거의 기억 정보가 손실되고 내부 노이즈가 커져서 학습이 제대로 이루어지지 않는 문제가 발생한다. 이 때문에 당시 RNN 모델들은 레이어를 1~2개 이상 깊게 쌓지 못하고 성능 향상에 한계를 겪고 있었다.

다시 쉽게 설명하면,

\[h_t = \tanh(W_{hh} h_{t-1} + W_{xh} x_t + b_h)\]

기본 RNN은 위 구조와 같이 시간 단계 t마다 입력 $x_t$와 이전 은닉 상태 $h_{t-1}$을 받아 현재 은닉 상태 $h_t$를 계산한다.

여기서 $W_{hh}$는 시간 축을 따라 이전 기억을 전달하는 순환 가중치이며, $W_{xh}$는 현재 입력을 처리하는 입력 가중치이다.

여기서 문제점은 수평(순환) 연결에 일반 드롭아웃을 적용했을 때이다.

일반적인 드롭아웃은 확률 p에 따라 뉴런을 무작위로 끄는 마스크 $m \sim \text{Bernoulli}(1-p)$ 를 곱한다.

만약 이 드롭아웃 마스크를 시간 축 순환연결($h_{t-1} \to h_t$) 에 매 타임스텝마다 독립적으로 적용하면 수식은 다음과 같이 변한다.

\[h_t = \tanh(W_{hh} (m_t \odot h_{t-1}) + W_{xh} x_t + b_h)\]
  • $m_t$: 타임스텝 $t$에서 새로 생성된 무작위 드롭아웃 마스크
  • $\odot$: 요소별 곱

이때 장기 기억 손실(Long-term memory) 손실 문제가 생긴다. 타임스텝 $t=1$부터 $t=T$까지 정보가 전달될 때, 은닉 상태에는 지속적으로 서로 다른 마스크($m_1, m_2, \dots, m_T$)가 곱해진다. 이로 인해 과거의 문맥 정보가 시간 경과에 따라 기하급수적으로 제거되어 지워진다.

또한 내부 노이즈 증폭 및 역전파 불안정 문제도 생긴다. 순환 경로 $W_{hh}$는 여러 타임스텝에 걸쳐 동일한 가중치가 반복해서 곱해지는 구조이다. 여기에 타임스텝마다 무작위 노이즈 $m_t$가 누적되면 기울기(gradient) 계산 시 노이즈가 대폭 증폭되어 학습 신호가 교란된다.

해결

RNN 및 LSTM 모델은 입력 데이터를 시간 순서대로 처리하면서 이전 시점의 핵심 정보를 다음 시점으로 전달하도록 설계되어있다. 하지만 기존의 드롭아웃 기법은 무작위로 활성화 뉴런을 꺼버리는 방식이었기 때문에, 시간이 흐름에 따라 연속적으로 이어지는 내부 상태 전달 과정에 드롭아웃이 작용하면 꼭 필요한 과거 정보가 중간에 쉽게 손실되거나 왜곡되는 심각한 문제가 발생한다. 이로 인해 모델이 과거의 맥락을 길게 유지하지 못하고 학습 과정 자체가 크게 불안정해지는 한계가 있었다.

이런 한계를 극복하기 위해 연구진은 신경망 내부의 연결 경로를 두 종류로 엄격히 구분하고 드롭아웃의 적용 여부를 다르게 설정하는 전략을 개발했다.

‘수평 방향 연결(Horizontal Connection)’과 ‘수직 방향 연결(Vertical Connection)’이다.

첫 번째 경로인 ‘수평 방향 연결’은 동일한 레이어 안에서 이전 시점(t-1)의 은닉 상태나 셀 상태를 다음 시점(t)으로 전달하는 순환 구조이다. 이 수평적 경로에는 드롭아웃을 전혀 적용하지 않고 온전히 유지함으로써, 먼 과거의 중요한 문맥 정보와 기억이 도중에 손실되거나 왜곡되지 않도록 보호했다.

두 번째 경로인 ‘수직 방향 연결(Vertical Connection)’은 특정 시점(t)에서 아래쪽 레이어가 출력한 결과값을 위쪽 레이어의 입력값으로 전달하는 층간 구조이다. 연구진은 오직 이 수직적 경로에만 드롭아웃을 선택적으로 적용했다. 각 레이어 사이를 오가는 정보에만 무작위 뉴런 차단 기법을 도입함으로써, 상위 레이어가 하위 레이어의 특정 뉴런 조합에 과도하게 의존하는 복합 적응 현상을 방지하고 레이어 간 과적합을 강력하게 억제할 수 있었다. 즉, 시퀀스 전체를 관통하는 장기 기억력은 수평 경로를 통해 안전하게 보존하면서도, 수직 경로를 통해서 신경망 전체의 일반화 능력을 극대화하는 정교한 규제 구조를 완성하였다.

효과

이와 같이 선택적 드롭아웃 방식을 도입함에 따라, 기존에는 과적합과 학습 불안정성 때문에 불가능했던 모델의 대형화가 비로소 가능해졌다. 연구진은 레이어 2개와 레이어당 1500개의 은닉 유닛을 갖춘 대규모 LSTM 구조를 구축하고 이 기법을 적용하여 성능을 평가했다. 언저 모델의 대표적인 성능 평가 기준인 Penn Treebank 데이터셋 테스트에서, 기존 단일 LSTM 모델들이 기록하던 Perplexity 수치인 114.5를 78.4까지 대폭 낮추는데 성공했다. perplexity는 언어 모델이 다음 단어를 얼마나 잘 예측하는지 나타내는 성능 평가이다. PPL이라고 부르기도 한다. 수치가 낮을수록 높은 정확도를 의미하며, 당시 연구자들이 마의 장벽으로 여기던 ‘수치 100 이하’를 단일 모델로 돌파하며 대형 순환 신경망의 실효성을 확증했다.

나아가 이 regularization 기법은 언어 모델링 분야에만 국한되지 않고 다양한 시퀀스 데이터 처리 과제에서도 탁월한 일반화 능력을 증명했다.

결국 이ㅣ 연구는 순환 신경망의 고유한 구조적 특성을 파괴하지 않으면서도 과적합을 완벽하게 제어할 수 있는 올바른 규제 알고리즘을 최초로 제시했다. 이를 통해 RNN과 LSTM은 정보 손실 없이 레이어를 더 깊게 쌓고 파라미터를 대폭 늘릴 수 있게 되었으며, 자연어 철, 음성 인식, 기계 번역 등 다채로운 시퀀스 기반 AI 연구가 한 단께 크게 도약하는 결정적인 계기가 되었다.

Leave a comment