Generating Text with Recurrent Neural Networks

김동하·2023년 12월 11일

paper_review

목록 보기
5/11

https://web.archive.org/web/20211224075156id_/https://icml.cc/2011/papers/524_icmlpaper.pdf

핵심 요약

  • 이 논문에서는 LSTM 기반 모델을 사용하여 단어 수준 언어 모델링 문제를 다루며, 순환 정규화와 최적화 전략에 대해 연구합니다.
  • "weight-dropped LSTM"을 제안하여 숨겨진 상태 간 가중치에 DropConnect를 적용하여 정규화를 수행합니다.
  • 또한 "NT-ASGD"라는 평균 확률적 경사법의 변형을 도입하여 평균화 트리거를 자동으로 결정합니다.
  • 이러한 정규화 전략을 사용하여 Penn Treebank와 WikiText-2에서 최첨단 단어 수준 퍼플렉서티를 달성합니다.

1. Introduction

  • 논문은 LSTM 기반의 단어 수준 언어 모델링에 대한 효과적인 정규화 기법들을 연구합니다.
  • 기존의 dropout과 batch normalization을 RNN에 적용하는 것은 잘 작동하지 않았지만, 이 논문에서는 hidden-to-hidden recurrent weights에 DropConnect 마스크를 사용하여 recurrent regularization을 제안합니다.
  • 또한, NT-ASGD라는 새로운 평균 확률적 경사 하강법을 소개하며, 이는 non-monotonic 조건을 사용하여 평균화 트리거를 결정합니다.
  • 이러한 정규화 전략들을 사용하여 두 데이터 셋(Penn Treebank와 WikiText-2)에서 STOTA 단어 수준 perplexities를 달성하며, 뉴럴 캐시와 함께 사용할 때 더 낮은 perplexity를 얻습니다.
  • Weight-dropped LSTM과 NT-ASGD와 같은 다양한 정규화 기법을 제안하고 이를 사용하여 두 데이터 셋에서 최상의 성능을 달성합니다.
  • 또한 neural cache와 함께 사용하여 더 낮은 perplexity를 달성합니다.
  • 정규화 전략은 기존 LSTM 구현에 수정이 필요 없으며 NVIDIA cuDNN과 같은 라이브러리와 호환되어 효율적인 학습이 가능합니다.
  • 또한 SGD와 ASGD와 같은 최적화 방법을 비교하고, 동적인 non-monotonic 기준을 사용하는 ASGD 변형이 더 우수한 학습 결과를 보여줍니다.

2. Weight-dropped LSTM

  • LSTM(Long Short-Term Memory) 기반 모델의 과적합 문제를 해결하기 위해 기존 방법은 드롭아웃 등이었지만, 이들은 블랙 박스 RNN 구현에 적용하기 어려웠습니다.
  • 이에 제안된 방법은 DropConnect를 사용하여 순환 연결 가중치에 드롭아웃을 적용함으로써 과적합을 방지합니다.
  • DropConnect는 LSTM 구현을 변경하지 않고도 적용 가능하여, 기존 최적화된 블랙 박스 LSTM과 같은 구현에 적용할 수 있습니다.
  • 이 방법은 LSTM의 순환 연결에 대한 과적합을 효과적으로 방지하는 동시에 학습 속도에 미치는 영향을 최소화합니다.

3. Optimization

  • SGD(Stochastic Gradient Descent)는 컴퓨터 비전, 자연어 처리, 강화 학습 등 다양한 분야에서 딥 러닝 모델을 학습하는 데 가장 인기 있는 방법 중 하나입니다.
  • 딥 네트워크의 학습은 non-convex 최적화 문제로 표현할 수 있습니다.
    • minw1Ni=1Nfi(w)min_w\frac{1}{N}\displaystyle\sum^N_{i=1}f_i(w)
  • 주어진 데이터 포인트 i에 대한 손실 함수 fif_i와 네트워크의 가중치 w, 그리고 데이터에 대한 기대값을 가정합니다.
  • 주어진 학습률 시퀀스 γk에 따라 SGD는 다음과 같은 형태의 단계를 반복적으로 수행합니다.
    • wk+1=wkγk^f(wk)w_{k+1} = w_k − γ_k\hat∇ f(w_k)
  • ^\hat∇는 미니배치 데이터 포인트에 대해 계산된 확률적 그래디언트를 나타냅니다.
  • SGD (Stochastic Gradient Descent)는 최적화 알고리즘으로, 가중치를 업데이트하여 손실 함수를 최소화하는데 사용됩니다.
  • SGD는 일반적으로 다른 알고리즘보다 빠르게 수렴하고 더 좋은 일반화 성능을 갖습니다. 따라서 neural language modeling과 같은 작업에서 효과적으로 사용됩니다.
  • 이러한 이유로 논문은 평균 SGD (ASGD)를 조사하여 학습 프로세스를 개선하고자 합니다.
  • ASGD는 SGD와 유사하지만 최종 해답 대신 평균 값을 반환합니다.
  • ASGD는 딥 네트워크 학습에 많은 관심을 받고 있지만 실제로는 제한적으로 사용됩니다.
  • 이는 학습률 스케줄과 평균화 트리거를 튜닝하기 어려워서 일어날 수 있습니다.
  • 따라서 이 논문에서는 평균화 트리거를 자동으로 결정하는 비단조 트리거(non-monotonical trigger) 변형 ASGD(NT-ASGD)를 제안합니다.

4. Extended regularization techniques

4.1 Variable length backpropagation sequences

  • 고정된 시퀀스 길이로 데이터 셋를 고정 길이 배치로 분할하면 데이터 효율성이 저하될 수 있습니다.
  • 예를 들어, 100개의 요소가 주어진 경우 BPTT(Backpropagation Through Time) 윈도우가 10인 상황에서 10으로 나눌 수 있는 요소는 역전파할 데이터가 없으며, 나머지 90%의 요소는 부분적인 역전파 윈도우만 받을 수 있습니다.
  • 이로 인해 데이터 효율성이 떨어지고 순환적인 개선이 어려워집니다.
  • 학습 중에는 결과적인 시퀀스의 길이와 원래 지정된 시퀀스 길이를 비교하여 학습률을 재조정하며, 이는 데이터 효율성을 향상시키는 데 도움이 됩니다.
  • 이러한 선형 스케일링 규칙은 큰 규모의 미니배치 SGD 학습과 절단된 시간 반복 역전파에 중요한 역할을 합니다.

4.2 Variational dropout

  • Variational Dropout은 hidden-to-hidden transition를 규제하기 위해 드롭커넥트(DropConnect)를 사용하고, 다른 드롭아웃 연산에는 Variational Dropout을 사용하는 것을 제안합니다.
  • 각 예제는 고유한 드롭아웃 마스크를 사용하여 드롭아웃의 다양성이 보장됩니다.

4.3 Embedding dropout

  • Gal & Ghahramani(2016)의 방식을 따라서, 임베딩 드롭아웃을 사용합니다.
  • 이는 단어 수준에서 임베딩 행렬에 드롭아웃을 수행하는 것으로, 드롭아웃이 모든 단어 벡터의 임베딩에 적용됩니다.
  • 드롭아웃 되지 않은 단어 임베딩은 11pe\frac{1}{1-p_e}로 스케일링 됩니다. pep_e는 임베딩 드롭아웃의 확률입니다.
  • 임베딩 행렬에 드롭아웃이 발생하므로 전체 전방향 및 역방향 패스에서 특정 단어의 모든 발생이 사라지며, 원-핫 인코딩과 임베딩 조회 사이의 연결에 Variational Dropout을 수행하는 것과 동등합니다.

4.4 Weight tying

  • 웨이트 타잉(Weight tying)은 임베딩과 소프트맥스 레이어 사이의 가중치를 공유하는 기법으로, 총 파라미터 수를 줄이고 표준 LSTM 언어 모델의 성능을 향상 시킵니다.

4.5 Independent embedding size and hidden size

  • 단어 벡터의 차원을 LSTM의 은닉 상태와 일치 시키는 기존 방식과 달리, 단어 벡터의 크기를 줄여서 총 파라미터를 줄이는 방법을 사용하여 언어 모델의 과적합을 방지하고 성능을 향상 시킵니다.
  • 이를 위해 첫 번째와 마지막 LSTM 레이어의 입력 및 출력 차원을 줄인 임베딩 크기와 일치 시킵니다.

4.6 Activation Regularization (AR) and Temporal Activation Regularization (TAR)

  • 2-정규화는 네트워크의 가중치에 적용되어 모델의 norm을 조절하고 과적합을 감소 시키는 방법입니다.
  • 또한, 개별 유닛의 활성화와 RNN의 서로 다른 시간 단계에서 출력의 차이에 L2 감쇠(decay)를 사용할 수 있으며, 이러한 전략은 각각 활성화 정규화(AR)와 시간 활성화 정규화(TAR)로 레이블되어 있습니다.
  • AR은 네트워크를 정규화 하는 방법으로 0보다 상당히 큰 활성화를 벌칙으로 부과합니다. 구체적으로, AR은 다음과 같이 정의됩니다.
    • αL2(mht)α L_2(m ⊙ h_t)
  • TAR은 모델의 숨겨진 상태에서 큰 변화를 방지하기 위해 벌칙을 부과하는 둔감성 정규화 방법입니다.
  • 이는 드롭아웃 마스크 m과 L2 정규화(L2()=2)(L2(·) = \|·\|_2)를 활용하며, RNN의 출력 ht와 스케일링 계수 α를 사용하여 구현됩니다.
  • 이러한 방법은 네트워크의 과적합을 줄이고 효과적인 학습을 돕습니다.
  • AR의 표기법을 사용하여 TAR은 다음과 같이 정의됩니다.
    • βL2(htht+1)β L_2(h_t − h_{t+1})
  • β는 스케일링 계수입니다. AR 및 TAR 손실은 모든 레이어에 적용되는 것이 아니라 최종 RNN 레이어의 출력에만 적용됩니다.

5. Experiment Details

  • 이 연구에서는 Penn Treebank (PTB)와 WikiText-2 (WT2) 데이터 셋에서 언어 모델링을 수행하여 다양한 접근 방법의 영향을 평가했습니다.
  • PTB 데이터 셋은 주로 언어 모델링 실험에 사용되는 데이터 셋으로, 전처리가 많이 되어 있으며 대문자, 숫자, 구두점이 없고 어휘 크기가 10,000개로 상대적으로 작습니다.
  • WT2 데이터 셋은 위키피디아 기사에서 가져온 것으로 PTB 데이터 셋의 약 두 배 크기이며, 어휘 크기가 30,000개 이상입니다.
  • 이들 데이터 셋에서는 3층 LSTM 모델을 사용하고, 학습에는 NT-ASGD 알고리즘을 750 epoch 동안 사용했습니다. 또한 ASGD를 T = 0으로 실행하여 솔루션을 더 개선하는 세밀한 조정 단계를 추가로 수행했습니다.
  • 여기서 BNN과 XNOR-Net처럼 AlexNet의 첫 번째와 마지막 레이어를 낮은 bitwidth로 양자화 하지 않았습니다.
  • 실험에서는 모든 모델에 대해 최대 norm이 0.25인 gradient clipping을 적용하고, 초기 학습률은 30으로 설정했습니다.
  • 또한, BPTT 길이에 대해서는 0.95의 확률로 N(70, 5), 0.05의 확률로 N(35, 5)를 사용했습니다.
  • 단어 벡터, LSTM 레이어 사이의 출력, 최종 LSTM 레이어의 출력, 그리고 임베딩 dropout에 대해 각각 (0.4, 0.3, 0.4, 0.1)의 dropout 값을 사용했습니다.
  • weight-dropped LSTM에는 재귀적인 가중치 행렬에 대해 0.5의 dropout을 적용했습니다.
  • WT2 데이터 셋에 대해서는 단어 어휘 크기가 증가하므로 입력 dropout을 0.65로 증가 시켰습니다. 모든 실험에서 AR과 TAR의 값을 각각 2와 1로 설정하고, 임베딩과 소프트맥스 가중치를 공유하였습니다. 이러한 하이퍼파라미터는 시행착오를 통해 선택되었으며, 더 정교한 하이퍼파라미터 검색이 가능하다면 더 많은 개선이 가능할 것으로 기대됩니다.
  • 결과에서는 이 접근법을 AWD-LSTM이라고 약칭 하였습니다.

6. Experimental Analysis

  • Table 1과 2에서 AWD-LSTM 모델과 다른 경쟁 모델들의 단일 모델 perplexity 결과를 제시하였습니다.
  • AWD-LSTM 모델은 PTB와 WT2 데이터 셋에서 최신 기술을 약 1 단위와 0.1 단위로 앞서는 SOTA를 기록했습니다.
  • 다른 모델들과 비교하여 AWD-LSTM은 vanilla LSTM을 사용하며, 다른 모델들은 복잡한 RNN cell을 사용하는 등 더 복잡한 구조를 가지고 있습니다.
  • 또한, Melis et al. (2017)의 연구와 비교하여, 우리의 연구에서는 하이퍼파라미터를 더욱 효율적으로 공유하여 더 적은 모델 파라미터를 사용하고 성능을 향상 시켰습니다.
  • 우리의 연구와 Melis et al. (2017)의 접근 방식은 서로 보완적이며, 더욱 세밀한 하이퍼파라미터 탐색을 통해 추가적인 개선이 가능합니다.

Table 1: Penn Treebank 언어 모델링 작업에 대한 검증 및 테스트 셋에 대한 Single model perplexity

Table 1: Penn Treebank 언어 모델링 작업에 대한 검증 및 테스트 셋에 대한 Single model perplexity

img

Table 2: WikiText-2에 대한 Single model perplexity

7. Pointer models

  • 이전의 neural language model에 포인터 증강 기법이 효과적 인지에 대한 의문이 있었습니다.
  • Neural cache 모델을 추가로 적용하여 언어 모델의 perplexity를 개선하였으며, 특히 낮은 빈도의 단어들에 대해서 큰 도움이 되었습니다.
  • 이러한 모델의 간단함과 학습 비용 부담이 적은 점이 장점이었습니다.
  • 이러한 연구 결과는 기존의 neural language model이 아직도 기본적인 의존성을 잘 포착하지 못하거나 최근에 본 단어를 효과적으로 기억하지 못하는 한계를 보여주었습니다.
  • 또한, 이러한 연구 결과는 neural cache 모델이 기존 복잡한 모델에 비해 간단하면서도 효과적인 것을 보여주며, 두 접근 방식은 서로 보완적일 수 있다는 점을 시사합니다.

8. Model Ablation Analysis

  • 논문은 최상의 LSTM 모델의 다양한 변형을 검증하고 테스트하여 그 결과를 Table 3에 정리하였습니다. 이러한 변형들은 최적화나 정규화 방법을 제거한 것들입니다.

    • SGD를 사용하여 학습률을 감소 시킨 모델은 성능 저하가 있었습니다.
    • 모노토닉 기준을 사용하는 것도 성능을 저하 시켰습니다.
    • Fine-tuning 단계를 제거하는 것도 성능을 저하 시켰습니다.
    • 정규화 전략을 제거하는 것도 성능을 저하 시켰습니다. 특히, hidden-to-hidden LSTM 정규화를 제거하면 성능이 크게 저하되었습니다.
    • 정적 시퀀스 길이를 사용하는 것도 성능이 저하되었습니다.
    • 임베딩 벡터와 은닉 상태의 크기를 일치 시키는 것도 성능이 저하되었습니다.
    • 임베딩 dropout, AR/TAR 및 가중치 감쇠를 제거한 경우 모두 모델의 perplexity가 증가하였으며, 이는 모델의 부족한 정규화로 인한 것으로 추측됩니다.

    img

    Table 3. Penn Treebank 및 WikiText-2에 대한 검증 및 테스트 셋에 대한 결과를 보고하는 최고의 LSTM 모델에 대한 모델 제거

    9. Conclusion

  • 이 논문에서는 신경망 언어 모델의 정규화와 최적화 전략을 다룹니다.

  • 논문은 가중치 드롭드(weight-dropped) LSTM을 제안하고, 평균화된 SGD와 비모노토닉 트리거를 사용하여 언어 모델의 학습에 적용함으로써 성능을 향상 시킵니다.

  • 또한 변수 BPTT 길이와 neural cache 등의 다양한 정규화 전략을 조사하고, PTB와 WikiText-2 데이터 셋에서 새로운 최고의 perplexity를 달성합니다.

  • 제안된 전략은 일반적으로 다른 시퀀스 학습 작업에도 적용 가능하며, 기존 방법보다 우수한 성능을 보여줍니다.

0개의 댓글