NL-019, An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling (2018-Preprint)
0. Abstract
- 지금까지 연구들을 보니 audio synthesis와 machine translation에서 CNN이 RNN보다 성능이 좋다.
- 만약 sequence modeling task를 한다고 할 때, 우리는 어떤 구조를 써야하나? 이것을 알기 위해 CNN과 RNN을 광범위하게 비교해보았다.
- 그런 결과 simple conv가 LSTM보다 성능이 좋음을 알 수 있다.
- 따라서 sequence modeling task에서 시작을 할 때, 첫 시도로 conv 구조로 해봐라!
- (사실 이 결론이 이 논문의 전부라고 생각하고 논문 내용은 이것을 비교한 게 끝입니다.)
1. Introduction
- 보통은 sequence modeling 시작으로 RNN으로 접근을 한다. 실제로 Goodfellow가 쓴 "Sequence Modeling: Recurrent and Recursive Nets" 책도 있다.(Goodfellow 디스인 듯..ㄷㄷ)
- 최근 연구에서 CNN이 audio synthesis, word-level language modeling, machine translation에서 SOTA이다.(지금도 그런가? 기계 번역에서 SOTA인건 신기하네요)
- 여기서 든 궁금증으로 부터 시작한 거 같은데 다른 영역에서는 CNN sequence modeling은 어떨까?
- 따라서 1. polyphonic music modeling 2. word- and character-level language modeling 3. synthetic stress tests을 포함한 여러 task에서 비교를 해봤다.
- 비교시 효과적인 다른 RNN과 비교를 하였다.(LSTM, GRU 이런 것을 말하는 듯?)
- CNN은 TCN(temporal convolutional network)라는 구조를 이용하였다. 즉 TCN vs LSTM(or GRU)
- 결과는 TCN이 더 좋다. RNN의 능력(long history 담을 수 있는)에도 불구하고 TCN이 longer memory에 더 적합하다..(이런 걸 발견했기 때문에 2018 논문이란 말이..?)
2. Background
- CNN이 언어에 쓰인 연구
- RNN의 발전 연구
- 여러 RNN 비교 연구(LSTM vs GRU)
- 2017년의 한 논문을 ref로 다는데, 여기서 8개의 LSTM 변형과 비굘르 해봤는데 큰 차이가 없었고 큰 변화를 찾는 건 어렵다는 것이 결론이다. 즉 LSTM을 왜 지금까지 큰 변형없이 그냥 쓰는지 알 수 있었음.
- CNN과 RNN의 결합
- Convolutional LSTM
- Quasi-RNN
- Dilated RNN
- 이 논문들에서 CNN과 RNN의 결합이 각각의 장점을 혼용할 수 있어서 좋다고는 한다. 하지만 우리는 generic CNN, RNN과만 비교를 하였다.
- 시간이 될 때, 이러한 결합 구조를 공부하면 좋을 것 같다.
- Sentence-level과 document-level classification 논문은 있었지만 sequence modeling에서 비교는 처음인가봄.
3. Temporal Convolutional Networks
- Causal Convolution (casual은 time series에서 앞의 time 만 이용한다는 의미)
- 어떠한 length도 받을 수 있고 output sequence도 같은 길이를 가진다.(RNN 처럼)
- WaveNet과 비슷하지만 훨씬 간단하다.
3.1 Sequence Modeling
- x0~xt을 관찰하여 yt를 예측하는 식.
- Causal한 특징
- 문장 전체를 보고 출력을 하는 task와는 다른 거(즉 sequence-to-sequence 와는 다른 거)
3.2 Casual Convoltuions
- 간단하게 생각: TCN = 1D FCN + casual convolutions
- Zero-padding 사용하여 output length = input length
- Long history를 보기 위해서는 deep or very large filters을 사용해야한다는 단점이 존재.
3.3 Dilated Convolutions
- d: dilation factor, k: filter size
- 이러한 dilated로 위에서 말한 receptive field를 넓힘으로써 문제를 해결
3.4 Residual Connections
3.5 Discussion
- 장점
- Paralleism: 병렬로 처리 가능(즉 앞의 결과가 나올 때까지 기다릴 필요가 없음, 순차적으로 할 필요 없다는 것이 RNN과 다름)
- Flexible recpetive field size: Receptive field size를 바꾸기가 쉽다. 따라서 다른 도메인에 적용하기가 쉽다.
- Stable gradients: RNN은 이러한 문제가 중요한디 TCN에서는 gradient vanishing/exploding이 일어나지 않는다.
- Low memory requirement for training: 같은 층의 parameter을 공유
- Variable length inputs: 다양한 입력 사이즈 가능(RNN하고 비슷함)
- 단점
- Data storage during evaluation: 실제로 evaluation하는 과정을 생각하면 중간 중간 과정을 다 기억해야 해서 memory가 더 많이 필요하다.(RNN은 과거 정보를 cell state에 담아서 진행하기 때문에 계속 기억할 필요가 없다.)
- Potential parameter change for a transfer of domain: Transfer하려는 도메인의 receptive field가 적게 필요한 경우 성능이 안좋다.(이는 TCN 구조가 항상 같은 receptive field르르 가지기 때문에 그런 것 같음)
4. Sequence Modeling Tasks
- The adding problem
- (0.1, 1), (0.3, 0), (0.5, 0), (0.2, 1), ... (1, 0)과 같이 두 개의 항을 가지는데, 첫 번째 항은 0부터 1사이의 랜덤 값, 두 번째 항은 두 개만 1
- 이 때 1에 해당하는 두 개의 첫 번째 항 값 더하는 문제(ex에서는 0.3이 나와야 함)
- 1로 그냥 예측하면 MSE가 0.1767이라고 함.(즉 이것보단 좋아야 의미가 있음)
- Sequential MNIST and P-MNIST
- MNIST와 Permuted-MNIST로 이미지를 vector화 시켜서 진행
- 여러 입력을 받아 출력으로 classification 하는 거 같은데 이건 정보를 얼만큼 제지하는 능력을 보는지 한다고 한다.
- Copy memory
- 1~8 사이의 랜덤 숫자 (10개) + 0 (T-1개) + 9 (10개) 가 입력
- 0 (T+10개) + 입력의 앞의 10개 숫자
- 실제로 Copy memory 언급한 논문에서는 숫자로 안하고 카테고리(숫자가 아닌)를 이용해서 하는 거 같다.
- 이는 얼마나 정보를 잘 기억하는지 보려는 것이겠지?
- JSB Chorales and Nottingham
- polyphonic music dataset: 382개의 4개 파트로 이루어진 harmonized chorales
- 각 항(382개를 말하는 듯)은 88-bit binary code로 피아노의 88개의 키에 매칭
- 정확히 무슨 task인지는 이해가 안됨. Sequence modeling을 생각해봤을 때, 음악에서 다음 음계를 예측하는 것인가?
- PennTreebank
- Character-level & word-level language modeling
- 그냥 단순 다음 character(or word)을 예측하는 것? 아니면 POS tag?
- Wikitext-103
- PTB 확장 느낌(데이터양도 많아지고 많은 사실적 표현, voca 그리고 희귀한 단어까지 포함되어 있다고 함)
- LAMADA
- 문장의 마지막 단어 추측
- 원래는 빈칸 맞추기 문제를 위해 제작된 것 같은데 sequence modeling 처럼 앞 부분만 보고 했다는 것 같음
- text8
- Character-level language modeling
5. Experiments
- 자세한 실험 세팅은 논문에.. 여기서 주장하는건 간단한 튜닝을한 TCN이 canonical RNN보다 성능이 일반적으로 좋다는 것이다!
- Synthetic Stress Tests: The adding problem, Sequential MNIST and P-MNIST, Copy Memory
- Polyphonic Music and Language Modeling: Polyphonic music, Word-level Language modeling, Character-level Language modeling
6. Conclusion
- TCN(dilation & residual)이 일반적 RNN인 LSTM, GRU 보다 좋다.
- 같은 capacity라고 하면 TCN은 RNN보다 longer memory에 적합하다.
- 하지만 TCN은 현재 정교한 알고리즘과 구조로 많은 연구가 진행되지 않았다.
- 따라서 이러한 연구가 진행된다면, LSTM처럼 많은 진보와 성능 향상을 기대해볼 수 있다.
Reference
댓글
댓글 쓰기