일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- TRANSFORMER
- nlp
- Cross-Validation
- VIT
- CDA
- self-attention
- Identity mapping
- 라쏘회귀
- LassoRegression
- Inductive bias
- RidgeRegression
- R
- transfer learning
- Residual learning
- image classification
- lasso
- Encoder
- RESNET
- 선형회귀
- BERT
- CV
- attention
- 좌표하강알고리즘
- 통계학
- glmnet
- 릿지회귀
- decoder
- rnn
- vision transformer
Archives
- Today
- Total
통계 이야기
Recurrent neural network based language model(2010) 논문 요약 본문
1. Introduction
- 머신러닝과 인공지능 분야에서 sequential data prediction은 매우 중요한 문제로 고려되어왔다.
- Statistical language modeling의 목표는 문맥을 고려하여 다음 단어를 예측하는 것이다.
- 이와 같은 자연어처리 분야에서는 해당 목표를 달성하기 위한 대표적인 방법으로는 N-gram 모델이 존재한다.
- 더 성능을 높이기 위해 다양한 방법들이 고안되었지만 cache models와 class-based models과 성능이 비슷했다.
- 실제로 발달된 언어 모델 technique들은 아주 이전의 것들보다 조금 개선이 되었고, 일상 생활에서 아주 드물게 사용이 되었다.
2. Model description
- 우리는 연속적인 데이터를 다루기 위한 방법으로 RNN을 고려하였다.
- 과거의 인공 신경망을 사용하여 통계적 언어 모델링을 했던 여러 시도들이 있었다.
- 그 중 대표적인 방법은 Benjo가 고안했는데 단점으로는 피드포워드 신경망이 학습을 하는데 오직 고정된 길이의 문맥들만을 사용할 수 있다는 것이었다.
- 반면 순환신경망은 제한된 사이즈의 문맥만을 고려하지 않는다. 이 인공신경망 안에서는 정보들이 임의적으로 긴 시간동안 순환할 수 있다.
- 하지만 stochastic gradient descent을 사용하여 장기 의존성을 학습하는 것이 어렵다는 단점 또한 존재한다.
- 이 논문에서는 simple recurrent neural network 혹은 Elman network을 사용하였다. 이는 순환신경망 중, 가장 간단한 형태이며 실행과 학습이 가장 쉬운 형태이다.
- 이 네트워크는 input layer x와 hidden layer s, 그리고 output layer y가 존재한다. 이는 t시간에 각각 x(t), s(t), y(t)로 표현이 가능하다.
- Input vector x(t)는 현재를 나타내는 w vector와 t-1시간에서의 hidden layer을 통과한 s(t-1)을 합한 값이 된다. 식으로 나타내면 다음과 같다.
- 그 후, input, hidden 그리고 output layers들은 다음과 같은 과정을 통과한다.여기서 f와 g는 각각 시그모이드 함수와 소프트 맥스 함수이다.
- Context layer는 보통 30-500개의 unit들을 가지고 있다. 우리의 실험에 따르면, 은닉층의 크기는 훈련 데이터의 양을 반영해야 한다. 즉, 많은 데이터를 학습할수록, 많은 은닉층이 필요하다.
- 네트워크를 학습하기 위해 가중치는 아주 작은 값들로부터 시작되었다. 학습에 stochastic gradient descent를 사용하였고 학습률 또한 처음에는 0.1로 설정하였다. 매 epoch마다 검증 데이터로 비교해보면서 log-likelihood가 증가한다면 학습을 계속하며, 별다른 차이가 없다면 learning rate을 반으로 줄인다. 그 이후에도 별다른 차이가 없다면 학습을 멈춘다. 보통 10-20 epoch에서 학습을 완료하였다.
- 우리의 실험에서는 많은 양의 hidden layer unit을 사용했음에도 불구하고 크게 overtrain을 하지는 않았다. 정규화 과정은 큰 도움을 주지는 못했다.
- y(t) output layer는 이전의 단어인 w(t)와 s(t-1)이 주어졌을 때의 확률분포를 나타낸다.
- 각 학습 step에서 error vector는 cross entropy 기준에 따라 계산이 되고 이에 따라 weight들은 standard back propagation 알고리즘을 통해 업데이트가 된다.
- 통계적 언어 모델링에서 훈련 과정과 테스트 과정은 일반적으로 테스트 과정에서는 가중치들이 업데이트 되지 않는다는 점에서 차이가 있다.
- 여기서 문제는 테스트 데이터에서 새로운 단어가 반복적으로 등장한다면, 그 단어를 예측하는데 모델이 어려움을 겪고 이로 인해 낮은 확률을 부여하게 된다.
- 따라서 이러한 장기 기억은 context units가 아닌, synapses(weights)에 저장이 되어야 한다.
- 이러한 모델을 dynamic model(동적 모델)이라고 한다. 동적 모델은 테스트 데이터에서도 조금씩 가중치를 변형할 수 있는 모델이다.
- 테스트 데이터를 학습한다는 것의 의미는 모델이 새로운 정보를 가중치에 저장하여 장기적으로 활용하는 것과 관련이 있다. 이것은 모델이 동적으로 변화하고 적응하며 새로운 데이터에 대한 장기적인 기억을 관리하는 방법 중 하나라고 할 수 있다.
- 피드포워드 신경망과 RNN 과의 가장 큰 차이점은 학습이전에 정해야 하는 파라미터의 개수이다. RNN LM에서는 오직 hidden layer 크기만큼의 파라미터만이 필요하다. 반면, 피드포워드 신경망에서는 단어를 더 낮은 차원공간으로 투사하는 layer의 크기와 hidden layer 크기, context length만큼의 파라미터들이 필요하다.
2.1 Optimization
- 먼저 모델의 성능을 높이기 위해 training dataset에서 빈도수가 일정 지점을 넘지 못하는 단어들을 rare token으로 결합하였다.
- 이제 단어 확률(Word-probabilities)는 다음과 같이 식을 세울 수 있다.
- 먼저 좌측의 w(t), s(t-1)이 주어졌을 때, w(t+1)가 나올 확률이다. 그러니까 현재 단어와 w(t)와 그 이전의 상태정보 s(t-1)이 주어졌을 경우 다음 단어 w(t+1)가 나올 확률을 나타내는 것이다.
- 이는 일반적인 경우에는 앞에서도 언급했듯, y(t)에 해당된다.
- 다만 rare 단어들의 경우에는 y_rare(t)를 C_rare로 나누어 준다. 여기서 C_rare는 빈도수가 낮은 단어들의 수이다. 모든 희귀단어들은 uniform 분포에서 동일한 확률을 가진다.
3. WSJ experiments
- RNN의 성능을 측정하기 위해 몇 개의 음성인식 태스크들을 선택했다.
- 먼저 DAPRA WSJ'92와 WSJ'93데이터 세트의 100 최상위 목록을 다시 평가한 결과 올라클 단어 오류율은 개발 세트에 대해 6.1퍼센트, 평가 세트에서는 9.5퍼센트를 보였다.
- 훈련 코퍼스 데이터는 뉴욕 타임스 영역의 English Gigaword를 사용했다. 3700만 단어로 구성되어 있어 RNN 모델을 학습하는데 시간이 오래 걸린다. 이와 같은 이유로 훈련에는 오직 640만개의 단어(30만개의 문장)까지만을 사용했다. Perplexity는 held out 데이터로 계산이 되었다.
- 또한 우리는 combined model들의 결과를 기록하기도 하였다. -> RNN 모델의 가중치는 0.75로 backoff LM에는 0.25로 선형 보간(linear interpolation)을 해주었다.
- RNN 90/2
- 90: 은닉층(hidden layer)의 뉴런(유닛)의 수.
- 2: 단어를 희귀 토큰으로 병합하는데 사용되는 기준(임계값). 예를 들어 특정한 단어의 등장 횟수가 2이하라면, 이를 희귀 토큰으로 분류한다.
- 음성인식 후보 목록(n-best lists)을 백오프 모델로 올바르게 점수화를 한다. 이 backoff model은 인식기(recognizer)에서 사용된 데이터의 일부로 훈련되었다. 개방형 어휘 언어모델을 함께 사용하여 알려지지 않은 단어에 작은 확률 값을 할당한다.
- 성능 향상을 위해 여러가지 다른 아키텍처를 가진 RNN 언어 모델의 출력을 선형 보간(linear interpolation)을 한다. 즉, 서로 다른 RNN 언어 모델의 출력을 가중치를 곱하여 결합하는 방법을 의미한다. 또한, 다양성을 증가시키기 위해 가중치 초기화를 무작위로 수행하여 모델 출력에 더 많은 다양성을 부여한다.
- 결과는 다음과 같다.
- Table 1을 보면 알 수 있듯, 단어의 수가 WSJ DEV task에서 단어의 수가 늘어날수록, Perplexity와 WER이 계속해서 낮아지는 것을 확인할 수 있다. 즉, 단어의 수가 많으면 많아질수록 모델의 성능이 더 좋아지는 것을 확인할 수 있다. 이는 단순히 단어의 수를 증가시키는 것만으로도 성능의 큰 향상을 얻을 수 있다는 것을 확인시켜준다.
- Table 2를 보면 3개의 동적 RNN 언어 모델을 혼합하여 사용할 때, 수정된 Kneser-Ney 평활화를 사용하는 5-gram 언어 모델 대비 WER 가 약 18%감소했다는 것을 나타낸다.
- 이것은 언어 모델링 기술을 개선하고 성능을 높일 때 얼마나 큰 효과를 얻을 수 있는지를 보여주는 중요한 결과이다.
- WER감소는 음성 인식 시스템의 정확도를 높이는데 중요하며, 18%감소는 상당히 큰 성능 향상을 나타낸다. 뿐만 아니라 perplexity 또한 약 50% 정도 감소한 모습을 보여준다. RNN dynamic과 KN5-basline모델의 차이이다.
- 이 실험에서 사용된 모든 데이터는 640만개의 데이터 뿐이었다. 이와 같은 작업을 수행한 다른 연구와 비교해보았을 때, 매우 적은 양의 데이터가 사용되었다.
- RNN base 모델은 backoff model과 비교해보았을 때, 약 12%정도 WER을 줄일 수 있었다.
4. NIST RT05 experiments
- SOTA에서 의미 있는 개선을 얻을 수 있는 가능성을 입증하기 위해 NIST RT05평가 데이터 집합을 사용하였다.
- 실험에선느 NIST RT05평가를 위해 사용된 AMI 시스템에 의해 생성된 라티스를 사용했다.
- 실험의 테스트 데이터 집합은 독립적인 헤드셋 조건에서 진행된 NIST RT05 평가 데이터집합을 사용하였다.
5. Conclusion
- RNN은 우리의 모든 실험에서 기존의 SOTA 모델이었던 backoff model을 능가하였다. 심지어 backoff model이 훨씬 더 많은 데이터를 학습했음에도 불구하고 RNN의 성능이 더 좋게 나왔다.
- 이는 언어 모델링이라는 것은 단지 n-gram을 세는 과정이라는 것과 성능 향상을 위한 유일한 길은 단지 학습 데이터를 더 추가하는 것 뿐이라는 믿음을 깨주는 결과이다.
- 우리가 만약 정말로 언어를 학습하는 모델을 개발하고 싶다면, 온라인 학습은 매우 중요하다.
- RNN을 학습하기 위한 시간을 통한 역전파(backpropagation) 알고리즘에 대한 더 자세한 조사는 추가적인 향상을 가져다 줄 것이다. 이는 실제로 toy dataset에서 좋은 결과를 보여주었다. 다만, 그래도 간단한 RNN모델은 긴 문맥의 정보를 아직까진 잡지는 못하는 것으로 보여진다.
- 우리의 연구에서 RNN은 좋은 결과를 보여주었지만, RNN이 언어 모델링을 머신러닝, 데이터 응축, 인지 과학 연구와 이어준다는 점에서 RNN이 매우 흥미롭다고 느꼈다. 우리는 이러한 연결이 계속해서 미래에도 더 잘 이해되어지길 바란다.