반응형

Bi-Real Net은 2018년에 출시된 비교적 최근 논문이다. 1-Bit 양자화를 진행함에 있어 ResNet에서 사용했던 Shortcut Connection과 같은 기법을 도입하였으며, 기존에 양자화를 사용할때 사용했던 몇가지 방법론을 수정하여 성능을 개선하였다. 바로 알아보자.

 

 

Bi-Real Net의 Shortcut Connection

 

ShortCut Connection

기존 방법론과 같이 Sign 함수를 통해 양자화를 진행하게 된다. Activation 관점에서 바라보면 양자화 하게 된 후 Conv Layer와 연산을 통해 다음 Layer로 전달되게 된다.

 

이것은 기존의 방법론이고, 저자가 제안하는 방법은 연산이 모두 이루어진 FeatureMap에 양자화가 되기 전 Activation FeatureMap을 더하기 연산을 하여(Short Cut Connection)표현될 수 있는 값의 범위를 늘렸다는것이다.

 

기존 방법으로는 양자화 후 FeatureMap의 표현범위가 $A$개 만큼이었다면, ShortCut Connection이후의 표현범위는 $A^{2}$개 만큼이기 때문에 보다 정확하다. 이때 더하기 연산이 추가됨으로서 연산상의 손실이 발생할 수 있지만, 곱하기 연산 대비 더하기 연산은 무시해도 될정도기 때문에 무관하다고 저자는 설명한다.

 

좀더 상세히 알아보기 위해, 저자가 친절하게도 그림과 함께 예시를 들어서 설명하고 있다.

 

Shortcut Connection으로 인해 달라지는 표현범위

 

이전 Layer로부터 전파된 FeatureMap의 크기가 $14 \times 14 \times 32$라고 가정한다. 이것은 Sign 함수를 통해 양자화가 진행된다. 이제 FeatureMap의 원소는 모두 {-1, 1}로 구성되어있다($A^{l}_{b}$). 1-Bit로 양자화된 $3 \times 3 \times 32$ 크기의 Conv Layer와 함께 연산이 진행된다($A^{l}_{m}$). 연산 이후 나올 수 있는 값의 경우의수를 계산해보면 1개의 Channel에서 {-9, -8, ..., 8, 9}까지 값을 얻을 수 있다. 이것이 32개의 채널만큼 존재하므로 32를 곱해준 {-288, -286,..., 286, 288}까지의 값이 나타나게 된다.

 

즉, 표현가능한 범위는 289개가 된다. Batch Norm Layer는 원소값을 변화시키지만 표현범위에 영향을 주지 않기때문에 있어도 없어도 그만이다($A^{l+1}_{r}$). 여기까지의 단계에서 Bi-Real Net은 ShortCut Connection을 추가로 한번 더 진행한다. 처음 289개의 표현범위를 가지고 있던 FeatureMap을 더하기 연산을 통해서 표현가능한 값의 범위를 $289^2$로 늘려준다.

 

ResNet에서 Shortcut Connection하는것과 동일한 아이디어이다. 이러한 방법을 통해서 정확도를 상당히 개선하였다고 한다.

 

개선된 3가지 방법론

1.  Approximation to the derivative of the sign function with respect to activation.

양자화를 진행할때 Sign함수를 사용하면 역전파가 진행되지 않아 STE를 사용하게되며 XNOR-Net이나 DoReFa-Net에서는 Hard tanh를 사용하였다. 아래 그림의 (b)가 일반적으로 사용하는 STE이다.

 

Sign함수와 최대한 근사한 형태의 STE를 제안

 

저자는 해당 STE가 -1과 1사이의 모든 구간에서 도함수가 1이 되는것이 문제임을 지적하고, 그림의 (c)처럼 최대한 Sign함수에 근사한 형태의 도함수를 제안한 것이다. 해당 함수는 삼각형 모양으로 구간별로 값이 다르기 때문에 보다 양자화 오류가 최소화되도록 업데이트가 이루어지게 된다.

 

2. Magnitude-aware gradient with respect to weights

사실 이 부분은 딱히 변경점이라고 할것이 없어보이는데 저자가 왜 넣었는지 잘 이해가 안간다. XNOR-Net에서 가중치를 양자화할때 Scale Factor라는것을 구해주게 되는데 해당개념과 완전히 똑같다. 차이점이 있다면 XNOR-Net은 가중치의 전체평균을 사용하고, 해당 논문에서는 가중치의 각 채널별 평균이라는 점이다.

 

$$
\bar W^{l, t}{b} = \frac{\Vert W^{l,t}{r} \Vert {1, 1}}{\vert W^{l,t}{r} \vert}Sign(W^{l,t}_{r})
$$

 

3. Initialization

Sign 함수는 -1, 1 의 값을 가지기 때문에 ReLU함수를 사용하게되면 음수가 사라지기 때문에 적절한 초기화가 불가능하게 된다. 이러한것을 방지하고자 ReLU를 Clip(-1, x, 1)로 교체하였다.

 

이러한 3가지 변경사항들을 한눈에 도식화해보면 아래 그림과같이 표현할 수 있다.

 

 

Result

ImageNet 데이터셋을 이용하여 실험을 진행하였으며 위에서 설명했던 3가지 변경사항을 적용했을때와 Shortcut connection을 적용한 모델에 대해서 비교 테스트를 진행하였다. Initialization은 활성함수 변경사항이며, Weight update는 가중치 양자화 방법을 변경한것이며, Activation Backward는 STE를 변경한것을 의미한다.

 

Shortcut connection과 3가지 변경사항을 적용했을때 성능이 가장 좋다.

 

Binary Net, XNOR-Net과도 비교테스트를 진행하였으며, 특히 XNOR-Net 대비 5% 가량 정확도 향상이 되었음은 Shorcut connection이 아주 유의미한 접근방법이었음을 시사한다.

 

XNOR-Net보다 성능이 압도적인 성능을 자랑한다.

 

Shorcut connection이 추가되어 Add연산으로인해 메모리 사용량이나 속도에서 얼마만큼의 저하가 있는지도 XNOR-Net과 테스트를 진행하였다. 오히려 더 효율적인 모습을 보여주게 되는데, 아마도 이것은 3가지 변경사항으로부터 얻은 미세한 성능차이라고 생각된다.

 

 

Conclusion

Shortcut Connection은 ResNet에서 처음 제안되었으며 이후 Upsampling, FPN 등등 많은 부분영영에서 사용이 되고있다. 양자화 세계에까지 적용이되어 상당한 효과를 보여주었던 것으로 보아 앞으로도 이 개념은 많은 부분에서 응용이 될 수 있음을 시사한다고 보여진다. 1-Bit의 양자화는 아직도 연구의 영역이지만 Bi-Real Net을 시작으로 조만간 상용화의 영역으로도 발전할 수 있지 않을까하는 생각을 가져본다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기