학습내용
- 지난 시간이 이야기한 CNN 과 RN 의 관계를 살펴보면 아래와 같습니다.
- RN:
- 모든 다른 토큰의 관계를 봅니다. 모든 단어간의 관계를 봐서 효율적이지 못합니다.
- CNN:
- 작은 범위의 토큰의 관계를 봅니다. 따라서 더 먼 거리의 단어간의 관계가 있을 경우 탐지할 수 없거나 더 많은 convolution 층을 쌓아야합니다.
- 하지만 CNN 방식을 가중치가 부여된 RN의 일종으로 볼 수도 있습니다.
- 그렇다면 가중치가 0 과 1 이 아닌 그 사이의 값으로 계산 할 수 있다면 어떨까요?
- Self Attention
- 장점:
- Long range & short range dependency 극복할 수 있습니다.
- 관계가 낮은 토큰은 억제하고 관계가 높은 토큰은 강조할 수 있습니다.
- 단점
- 계산 복잡도가 높고 counting 같은 특정 연산이 쉽지 않습니다.
- 장점:
- Recurrent Neural Network(RNN):
- 메모리를 가지고 있어서 현재까지 읽는 정보를 저장할 수 있습니다.
- 문장의 정보를 시간의 순서에 따라 압축 할 수 있습니다.
- 단점:
- 문장이 많이 길어질 수록 고정된 메모리에 압축된 정보를 담아야 하기 때문에, 앞에서 학습한 정보를 잊습니다. 이는 곧 정보의 손실을 뜻합니다.
- 토큰을 순차적으로 하나씩 읽어야 하기 때문에, 훈련 할때 속도가 기타 네트워크 보다 느립니다.
- Long Term Dependency 해결방법:
- bidirectional network를 쓰게됩니다.
- LSTM, GRU 등 RNN의 변형을 사용합니다.
- 출처: [edwith] 딥러닝을 이용한 자연어 처리 : Self Attention & RNN - 조경현교수