왜 역잔차라고 부를까
전통적인 병목 잔차 구조가 넓은 입력을 좁혔다 다시 넓히는 구성이라면 역잔차는 좁은 입력을 넓혔다 다시 좁힌다. MobileNetV2에서는 확장된 표현에 깊이별 합성곱을 적용하고 1×1 연산으로 출력 채널을 만든다. 확장은 새로운 해상도를 만드는 것이 아니라 주로 채널 차원을 늘리는 단계다.
채널 크기의 예제
입력이 16채널이고 확장 비율이 6이면 중간 표현은 96채널이다. 깊이별 공간 처리를 한 뒤 1×1 투영으로 다시 16채널을 만들 수 있다. 공간 크기도 같다면 입력을 더하는 잔차 연결을 구성할 수 있다. 출력이 24채널이거나 공간 크기가 줄어든 경우에는 같은 입력을 그대로 더할 수 없다.
선형 병목의 의미
좁은 출력 투영 뒤에는 ReLU 같은 활성화를 추가하지 않는 선형 병목을 사용한다. 여기서 선형이라는 말은 블록 전체가 선형이라는 뜻이 아니다. 확장된 중간 단계에는 비선형 활성화가 들어간다. 예를 들어 한 차원의 −1과 −2를 ReLU에 통과시키면 둘 다 0이 되므로 좁은 표현에서 구별이 사라질 수 있다는 점이 설계 동기의 하나다.
비용을 볼 때의 범위
채널을 확장하는 만큼 중간 텐서는 커질 수 있다. 깊이별 합성곱의 적은 연산량과 실제 실행기의 중간 메모리 처리 방식을 함께 고려해야 한다. 역잔차 블록 하나가 같은 채널의 모든 일반 합성곱보다 무조건 싸다는 뜻은 아니며 전체 모형의 정확도와 지연, 메모리 사용을 측정해 비교한다.