SRU(Simple Recurrent Unit)
SRU는 병렬화와 시퀀스 모델링이 가능한 light recurrence한 unit입니다. 기존 RNN Architecture(RNN, LSTM, GRU)는 previous time step에 대한 의존성 때문에 병렬처리가 불가능하여 학습 속도가 느렸습니다. 이런 단점을 SRU는 높은 병렬화 및 시퀀스 모델링 기능을 제공하여 학습시간 단축시켰습니다.
SRU는 분류, 질의응답에서 cuDNN-optimized LSTM보다 5~9배 빠른 속도를 보였고, LSTM과 convolutional models보다 좋은 성능을 보였습니다.
특징
- SRU의 state연산은 time-dependent이지만, 각 state 차원은 independent입니다. 이것은 hidden dimension과 time steps에서 병렬화 연산하는 CUDA-level optimization으로 병렬 처리 가능합니다.
- SRU는 convolutions을 더 많은 recurrent 연결로 대체하였습니다(QRNN과 KNN과 같이). 이건 적은 연산으로 모델링을 유지합니다.
- SRU는 highway connection방법과 deep architecture에서 gradient전파에 맞게 조정된 매개 변수 초기화 체계를 사용하여 deep recurrent models training을 개선합니다.
연산방법
SRU는 forget gate, state, reset gate, hidden state 연산을 수행합니다.
- Light recurrence (1, 2번 수식)
Forget gate: 정보 흐름을 제어
State: 이전 state와 현재 입력을 forget gate에 따라 조정
특징
- 문자열 정보를 위해 input x와 state c를 연산
- 이전 state에 영향을 받음
- 병렬처리를 위해 matrix multiplication 대신 point-wise multiplication 연산 수행
- Highway network (3, 4번 수식)
Hidden state: input x와 state light recurrence로부터 생성된 c를 적절하게 결합함 ((1−r)는 skip connection)
특징
- 딥 네트워크의 gradient-based training을 수행
감사합니다.
Reference
- https://arxiv.org/abs/1709.02755
댓글
댓글 쓰기