1 X 1 Convolution

Sukhun-Net·2024년 4월 18일

1 x 1 convolution의 장점

  1. 행과 열의 크기 변화 없이 체널 수 조절 가능 ★
  2. 연산량 (파라미터 수) 감소
  3. 비선형성

1. 채널 수를 조절 하는 관점

입력(하늘색) , 필터(주황색) , 출력(초록색)

입력(하늘색) : 행 x 열 x #channel (64 x 64 X 192)

필터(주황색) : 행 x 열 x #channel x #filter (1 x 1 x 192 x 1)

  • #channel 은 입력단의 channel 수와 동일해야하고, #filter는 원하는 출력단의 channel 수

  • 유의: 1x1 conv 설명을 보면, 대게 3개의 곱으로 나타내는 경우가 많은데, 이때는 #channel을 생략한 경우이다. (#filter는 표현) 위의 필터를 3개의 곱으로 나타내면 1 x 1 x 1이다.

출력(초록색) : 행 x 열 (입력 matrix 크기와 유지) x #filter

※ 현재, 위의 그림의 경우 #filter가 1이어서, 이해가 어려울 수 있다. 만약, 1x1x192 크기의 필터가 6개가 있다면 (주황색 6개) , 초록색 출력이 6차원으로 현재 그림에서 5개가 뒤로 더 쌓인다고 이해하면 된다. 그렇다면, 최종 출력은 64 x 64 x 6의 형태를 가질 것이다.

최종적으로 64 x 64 x 192 를 1 x 1 conv 필터를 통해 64 x 64 x 6으로 입력 이미지의 크기 변환 없이 차원 수를 조절 할 수 있음을 알 수 있다.

2. 연산량 (Parameter) 을 줄이는 관점

- 1. 1 x 1 Convolution 안 쓴 경우

#params : (5x5x128)x64 = 204,800

(5x5x128) : 필터 크기 , 64: 필터 개수

- 2. 1 x 1 Convolution 쓴 경우

#params : (1x1x128) x 32 + (5x5x32) x 64 = 4096 + 51,200 = 55,296

약 4배 감소했음을 확인 할 수 있다.

profile
Data Scientist (Computer Vision, Multimodal)

0개의 댓글