1×1 Convolution – 작지만 알찬 Convolution

This entry is part 7 of 9 in the series 딥러닝 핵심 개념

1. 들어가며

다양한 딥러닝 네트워크에서 1×1 convolution 연산을 사용하는 모습을 자주 볼 수 있습니다. 대표적인 초창기 네트워크로 GoogleNet (Inception), ResNet을 들 수 있습니다. GoogleNet에서는 1×1 convolution을 사용하여 연산량은 줄이면서도 성능은 향상할 수 있었죠. Convolution 연산은 넓은 window에서의 정보를 추출하는 연산인데요. 이러한 관점에서 생각했을 때 1×1 convolution 연산은 어떠한 장점이 있는지 쉽게 떠오르지 않습니다. 1×1 convolution은 단순한 window에서의 정보 추출이 아닌, 다른 관점에서 살펴봐야 이해할 수 있습니다.
이번 글에서는 1×1 convolution의 장점을 정리해 봅니다.

2. 1×1 Convolution의 효과

다음은 1×1 convolution의 효과에 대해 알아봅니다.

2-1. 학습 파라미터 감소

가장 대표적인 효과는 학습 파라미터 수의 감소입니다. 왜 학습 파라미터의 개수가 감소하는지 직접 계산해 보며 알아보겠습니다.

1x1 Convolution 효과1 : 계산량 감소
그림1. 1×1 Convolution 효과1 : 계산량 감소

위 그림은 일반적인 3×3 convolution 연산 과정을 보여줍니다. 사용된 convolution filter의 파라미터 개수(파란색)는 총 1800개입니다. 반면 아래 그림은 1×1 convolution과 3×3 convolution을 연결한 연산 과정을 보여줍니다. 이때 사용된 convolution filter의 파라미터 개수(파란색)는 총 950개입니다. 두 경우의 입력 feature map 사이즈와 출력 feature map 사이즈는 동일한데요. 절반 수준의 학습 파라미터를 사용하여 거의 동일한 효과를 내는 연산을 수행했음을 알 수 있습니다.

이때 파라미터 개수를 줄여준 결정적인 원인은 1×1 convolution 연산의 추가입니다. 이를 통해 중간 연산 결과 feature map의 채널 수를 줄여준 것(분홍 형광색)이 결정적이었죠. 마지막 3×3 convolution 연산을 할 때 필요한 파라미터 개수를 대폭 낮출 수 있었기 때문입니다.

이렇게 학습 파라미터가 줄어듦으로 인해 세 가지 효과를 얻을 수 있습니다.
첫 번째는 학습 속도를 빠르게 해주는 것입니다.
두 번째는 종합적인 computational cost를 줄여주는 것입니다.
세 번째는 overfitting를 완화한다는 것입니다..

파라미터가 많다는 것은 그만큼 입출력 정보끼리의 연결된 연산이 많다는 것을 의미하죠. 이는 그만큼 입력 정보에 대해 세세하게 연산한다는 뜻입니다. 따라서 입력 정보의 조그마한 변경에도 예민하게 반응할 수밖에 없기 때문입니다.

2-2. 비선형성 추가

두 번째 효과는 비선형성을 추가할 수 있다는 것입니다. 쉽게 말해서 ReLU 등의 activation function을 한번 더 사용할 수 있다는 뜻입니다. 다시 3×3 convolution과 1×1 convolution + 3×3 convolution의 연산 과정을 비교해 보겠습니다.

1x1 Convolution 효과2 : 비선형성 추가
그림2. 1×1 Convolution 효과2 : 비선형성 추가

먼저 3×3 convolution의 연산 과정을 살펴보죠. 3×3 convolution과 pooling 사이에 한 번의 ReLU 함수가 들어가 있는 모습을 볼 수 있습니다. 반면 1×1 convolution + 3×3 convolution 연산을 보겠습니다. ReLU 함수가 두 번 포함되어 있는 모습을 볼 수 있습니다. 1×1 convolution 직후 ReLU 함수를 한번 더 사용할 수 있기 때문입니다. 이렇게 1×1 convolution을 사용하면 비선형 활성 함수를 추가할 수 있다는 장점이 있습니다.

2-3. 객체 정보와 위치 정보의 독립적 연산

세 번째 효과는 객체 정보와 위치정보를 독립적으로 연산할 수 있다는 것입니다. 아래 그림은 CNN 연산에서의 feature map을 나타낸 그림입니다. 보통 feature map의 width, height에는 input의 위치 정보가 포함되어 있다고 말하죠. 그리고 feature map의 channel에는 객체 정보가 포함되어 있다고 말합니다.

feature map의 구성
그림3. feature map의 구성

왜 1×1 convolution은 객체 정보와 위치 정보를 독립적으로 연산한다고 할까요? 1×1 convolution + 3×3 convolution 과정을 다시 한번 살펴보겠습니다.

1x1 Convolution 효과3 : 객체정보와 위치정보의 분리
그림4. 1×1 Convolution 효과3 : 객체정보와 위치정보의 분리

1×1 convolution은 convolution 필터 사이즈가 1×1 이므로 spatial 정보는 포함하지 않습니다. 따라서 객체 정보만 독립적으로 연산한다고 생각할 수 있습니다. 반면 일반적인 3×3 convolution 등은 객체 정보와 위치정보를 종합하여 연산한다고 생각할 수 있습니다. 1×1 convolution은 객체 정보와 위치 정보를 독립적으로 연산하여 적은 연산양만으로도 더 좋은 성능을 낼 수 있습니다.

3. 마무리

지금까지 1×1 convolution 연산의 장점에 대해 살펴봤습니다. 1×1 convolution 연산의 포인트는 window에 포함된 정보를 추출하는 것이 아닙니다. 그보다는 채널수를 변경할 수 있다는 점이 포인트였죠.이에 따라 1×1 convolution은 계산량을 줄일 수 있다는 장점이 있었습니다. 또한 1×1 convolution 연산을 추가함에 따라 비선형 함수를 추가해 줄 수 있는 장점도 있었죠. 마지막으로 객체정보와 위치정보를 독립적으로 연산할 수 있다는 장점이 있었습니다.

Series Navigation<< Convolutional Neural Network : 연산 방법RNN(Recurrent Neural Network) >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
aaaa
aaaa
3 months ago

모 인공지능 유튜버 님이 1×1 컨볼루션의 의미에 대해서

여러 피쳐맵들의 가중치 sum 이다라고 표현했는데 어떻게 생각하시나요

w1F1 + w2F2 + w3F3

이런식으로 하여서 어떤 피쳐맵이 더 중요한지 학습을 하게 하는 효과가 있다
뭐 요런뜻

2
0
Would love your thoughts, please comment.x
()
x
Scroll to Top