Inverted Bottleneck Block

문상준·2024년 11월 19일
0
post-thumbnail

Inverted Bottleneck Block이라는 제목의 의미

기존의 Bottleneck Block는 projection phase → 연산 → expansion phase 단계를 통해 연산 효율성을 추구
반면, Inverted Bottleneck Block은 expansion phase → 연산 → projection phase를 통해 더 높은 표현력을 추구


각 phase의 의미

  • expansion phase : 입력 채널을 확장하여 더 많은 특징을 학습할 수 있도록 한다 (더 높은 표현력 추구)
  • projection phase : 입력 채널 차원을 줄여 이후의 연산량을 줄이고, 필요 없는 정보를 제거

각 phase별 예시

위 그림에서 입력 텐서를 32321232*32*12 (spatial 크기 : 32x32, channel 수 : 12)라고 한다면,

Expansion phase
11121*1*12 Conv filter(spatial 크기 : 1x1, channel 수 : 12)수는 72개가 되고, 그 둘을 convolution 하게 되면, 32327232*32*72 텐서가 된다.

이때, 사용된 filter수가 72인 이유는 위 그림에서 알 수 있듯이 expansion factor를 6으로 두었기에 126=7212*6 = 72 인 것이다

Depth-wise Conv phase
그 텐서를 3313*3*1의 필터 72개로 depth-wise Conv하게 되면, 32327232*32*72의 텐서가 나온다.

Projection phase
이를 다시 11721*1*72의 필터 12개로 convolution하게 되면, 결과 텐서 32321232*32*12 텐서가 나오게된다.

block에서 채널을 늘리기 위해서는 pointwise(1x1) convolution이 사용되었고,
경량화된 convolution 연산을 위해 depthwise separable convolution을 사용한 것을 확인하면 기존의 mobilenet과 유사한 것을 알 수 있습니다.

0개의 댓글