1 x 1 Convolution

AlexNet과 VGGNet의 큰 파라미터를 줄이기 위해 GoogLeNet에서는 1x1 Convolution을 사용했습니다.

1x1 Convolution은 이후 다양한 모델에서 연산량을 줄이기 위해 사용되어 이 방법이 매우 효과적임을 증명합니다.

 

입력 데이터의 채널(Channel) 수 조절

https://medium.com/analytics-vidhya/talented-mr-1x1-comprehensive-look-at-1x1-convolution-in-deep-learning-f6b355825578

위 그림과 같은 (64 * 64 * 192) 블럭에 (1 * 1 * 192) 블럭을 Convolution 하게 되면 (64 * 64)개의 픽셀(원소) 각각의 192개의 채널(숫자)와 필터(1*1)의 192개의 채널(숫자) 사이에서 요소간 곱셈을 하게 됩니다.

정리하자면, 필요한 필터는 (1 * 1 * #channel * #filter)가 되며, #channel은 입력 블럭의 channel수와 동일해야 하고, #filter는 출력 블럭의 channel 수로 지정되어야 합니다. 따라서 #filter 수는 필요에 따라 조절할 수 있습니다.

 

계산량 감소

1x1 Convolution은 Channel 수를 조절하여 필요한 파라미터를 수를 줄일 수 있습니다.

https://hwiyong.tistory.com/45

 

비선형성

1x1 Convolution은 비선형성을 추가할 수 있는 ReLU 등의 활성화 함수와 함께 사용될 수 있어, 모델의 표현력을 높일 수 있습니다.

 


참고1

참고2

 

'ML & DL > Deep Learning' 카테고리의 다른 글

WBF, Ensemble for Object Detection 정리  (0) 2023.05.19
NMS, Soft-NMS 정리 및 구현  (0) 2023.05.19
Mixup 정리 및 구현  (0) 2023.04.27
CNN Architectures  (0) 2023.03.28
Albumentations 사용법 및 예시  (0) 2022.05.23
욱근욱