YBIGTA / DeepNLP-Study

딥러닝 자연어처리 스터디의 논문 구현 코드 및 스터디 자료 모음 공간입니다.
MIT License
135 stars 23 forks source link

[VDCNN] 질문 #19

Open hwkim94 opened 6 years ago

hwkim94 commented 6 years ago

down sampling하는 방식이 이해가 잘 되지 않습니다.

dreamgonfly commented 6 years ago

VDCNN에서는 3가지 방식의 down sampling 방식을 실험합니다.

(i) The first convolutional layer of Ki+1 has stride 2 (ResNet-like). (ii) Ki is followed by a k-max pooling layer where k is such that the resolution is halved (iii) Ki is followed by max-pooling with kernel size 3 and stride 2 (VGG-like).

첫번째 방법은 stride가 2인 cnn을 사용하여 길이를 반으로 줄입니다. 이는 1D CNN을 이해하면 쉬우실 겁니다. kernel size가 3이고 padding이 2라면, stride가 2일 때 문장 길이에 해당하는 차원이 절반이 됩니다. 문장 길이가 20이었다면 padding 후에 22, 1d cnn 후에는 11이 됩니다.

두번째 방법은 문장 길이의 절반 만큼 max값을 가져오는 것입니다. 즉 문장길이가 20이었다면 20개의 숫자 중 10개만을 취합니다.

세번째 방법은 cnn에서 주로 하듯이 max pooling을 하는 것입니다. 즉 3개의 숫자에서 max값을 가져오며 문장 길이에 슬라이딩합니다.

코드를 참고해주세요 https://github.com/dreamgonfly/deep-text-classification-pytorch/blob/master/models/VDCNN.py