시퀀스 처리에 있어 컨브넷이 의미있는 이유?
컴퓨터 비전에서 뛰어난 컨브넷의 특징은 시퀀스 처리와도 깊게 관련되어 있다. 즉 컨브넷에서는 시간을 2D이미지의 높이와 너비 같은 공간의 차원으로 다룰 수 있다.
1D 컨브넷(1D Convnet)
특정 시퀀스 처리 문제에서 RNN과 견줄말한다. 일반적으로 계산자원이 적다. 1D 컨브넷은 전형적으로 팽창된 커널(dilated kernet)과 함께 사용된다. 최근에 오디오 생성과 기계 번역 분야에서 큰 성공을 거두고 있다. 이런 특정 분야의 성공 이외에도 텍스트 분류나 시계열 예측 같은 간단한 문제에서 작은 1D 컨브넷이 RNN을 대신하여 빠르게 처리할 수 있다고 알려져 있다.
1D합성곱 층은 시퀀스에 있는 지역 패턴을 인식할 수 있다.
동일한 변환이 시퀀스에 있는 모든 패치에 적용되기 때문에 특정 위치에서 학습한 패턴을 나중에 다른 위치에서 인식할 수 있다. 이는 1D 컨브넷에 이동 불변성을 제공한다.
예를 들어 크기가 5인 윈도우를 사용하여 문자 시퀀스를 처리하는 1D 컨브넷은 5개 이하의 단어나 단어의 부분을 학습한다. 이 컨브넷은 해당 단어가 입력 시퀀스의 어느 문장에 있더라도 인식할 수 있다. 따라서 문자 수준의 1D 컨브넷은 단어 형태학에 관하여 학습이 가능하다고 할 수 있다.
시퀀스 데이터를 위한 1D 풀링(Subsampling)
컨브넷에서 이미지 텐서의 크기를 다운샘플링하기 위해 사용하는 평균 풀링이나 맥스풀링 같은 2D플링 연산을 배웠다. 1D풀링연산은 2D풀링 연산과 동일하다. 입력에서 1D패치(부분 시퀀스)를 추출하고 최대값(최대 풀링)을 출력하거나 평균값(평균 풀링)을 출력한다. 2D 컨브넷과 마찬가지로 1D입력의 길이를 줄이기 위해 사용한다.
댓글 없음:
댓글 쓰기