본문 바로가기
딥러닝

인셉션(Inception) 특징: 1x1 Conv, Auxiliary classifier

by 데이널 2024. 3. 7.

인셉션(Inception) 모델의 아이디어와 블럭의 살펴보면서 두 가지 특징으로 1x1 Convolution과 Auxiliary classifier라고 이야기했습니다. 이 글에서는 그 두 가지를 더 자세히 살펴보도록 하겠습니다.

 

 

1x1 Convolution 특징

1x1 Conv의 의미

  • 1x1 Conv는 채널 전체 정보의를 유지하면서 필터 수를 줄여서 차원 감소를 가능하게 하는 역할을 했습니다. 블럭과 블럭을 연결하는 레고블럭과 같은 역할을 한다고 볼 수 있죠.
  • 예를 들어, Inception과 같이 블럭단위로 기능을 하는 네트워크 안에 또 다른 네트워크가 존재하는 계념입니다.
  • 또 다른 용어로 Point-wise Convolution이라고 표현하기도 합니다. 점마다 수렴하는 Conv(합성곱)이라는 의미입니다. 

 

Channel 수 조정

  • Convoultion layer를 사용할 경우, channel의 수는 하이퍼파라미터로 사람이 직접 결정해야 합니다. 하지만 1x1 Conv 연산을 하면 channel의 수를 마음껏 조절이 가능하다는 이점이 있죠. 
  • Bottleneck 구조라고 하는 이유는 >< 모양 처럼 1x1로 좁아졌다가 다시 3x3 Conv 변경하기 때문입니다. 

 

계산량 감소

  • 128x128, 3x3 = 147,456
  • 128x32 + 32x128, 3x3 = 40,960 3배 이상 적은 연산을 수행합니다.   

 

비선형성

  • 1x1 Conv 사용 후, 활성화 함수로 ReLU를 사용하여 모델에 비선형성을 증가시킵니다. 
  • 이런 방법을 통해 복잡한 패턴을 더 잘 인식할 수 있습니다. 

 

1x1 Convolution의 장단점

  • 장점 : 계산 속도가 좋아지고 Overfitting을 방지할 수 있습니다. 
  • 단점 : 데이터가 압축 되면서 정보소실 문제도 발생할 수 있습니다. 
  • 결론 : 속도가 중요한지, 정보손실이 중요한지의 trade-off 가 필요합니다. 

 

Auxiliary classifier 특징

GoogLeNet (ILSVRC challenge 2014 winner)에서 처음 도입된 개념으로 training을 도와주는 보조 역할을 합니다. 층(Layer)이 깊어지면서 생기는 vanishing gradient 문제를 해결하기 위해 필요했죠. 


기울기(gradient)가 전달이 잘 되지 않는 하위 layer을 trainin하기 위해 사용됩니다. 중간중간에도 오차(Loss)를 계산할 수 있는 Layer를 추가하여 최종 Loss에 반영하는 방식입니다. 

 

1. 적용 방법

  • 일반적인 신경망에서는 softmax를 맨 마지막 layer만 설계하지만 Auxiliary classifier는 중간에 softmax를 적용하는 Layer를 두는 방식입니다. 
  • 이렇게 하면 gradient가 소실되지 않고 Backpropagation을 수행할 수 있습니다. 
  • 전체 Loss를 구할 때 이런 공식을 사용할 수 있습니다. total_loss = real_loss + 0.3*aux_loss_1 + 0.3*aux_loss_2

Auxiliary classifier
Auxiliary classifier

2. 주의 사항

  • Backpropagation시, weight값에 지나치게 큰 영향을 주는 것을 막기 위해 auxiliary classifier에 0.3을 곱하는 방식을 사용했습니다. 
  • 이는 실제 output에 의해 계산된 loss가 100%라면 auxiliary loss에는 30%의 가중치만 준다는 의미입니다. 
  • 마지막 최종 결과 부분의 softmax(classifier)는 따로 value를 곱하지 않고 사용합니다. 
  • Auxiliary classifier는 training시 사용하고 inference하는 과정에서는 중간에 2개의 auxiliary classifier를 모두 제거합니다. 

 

3. Auxiliary classifier 효과

그렇다면 어느 위치에 Auxiliary classifer를 놓을 것이 좋을까요?

  • Liwei 연구팀은 초기 10~50번 정도의 iteration을 통해 gradient 어떻게 변화는지 확인하고 적정 위치를 찾는 방법을 추천했습니다. 
  • 아래 왼쪽 그림은 Auxiliary classifer가 없는 경우 gradient가 계속 줄어드는 현상을 보였습니다. 
  • 아래 오른쪽 그림은 파란색 점선은 0에 근접한 값을 갖는 반면, Auxiliary classifer를 적용한 빨간색은 gradient가 다시 증가함을 보여줍니다. 

 

Auxiliary classifier 효과
Auxiliary classifier 효과