논문 원본 : https://arxiv.org/abs/2208.08084
AdaBin: Improving Binary Neural Networks with Adaptive Binary Sets
This paper studies the Binary Neural Networks (BNNs) in which weights and activations are both binarized into 1-bit values, thus greatly reducing the memory usage and computational complexity. Since the modern deep neural networks are of sophisticated desi
arxiv.org
1. Introduction
- 양자화 (Quantization)는 모델을 경량화하는 데 있어 매우 중요한 기술로 연구되고 있음
- 양자화된 모델은 낮은 비트 수를 사용해 메모리 사용량을 줄이고, 계산 속도를 향상시킬 수 있음
- 특히, BNN (Binary Neural Network)은 가장 극단적인 양자화 모델로, 가중치와 활성화 값을 단 1bit로 표현
- 이를 통해 64배 빠른 연산 속도와 32배 적은 메모리 사용을 가능하게 함
- 하지만 BNN의 단점은 정확도가 크게 낮아지는 것이며, 특히 detection, segmentation, tracking과 같은 복잡한 task에서는 성능이 많이 떨어짐
BNN의 한계
- IEEE-754 표준에 따르면, 일반적인 32bit 부동소수점 숫자는 6.8 x 1038 개의 서로 다른 값을 표헌할 수 있음
- 하지만 1bit 숫자는 단 2가지 값만을 표현할 수 있어 정보 표현력이 크게 떨어짐
- 기존 BNN 기법은 단순히 가중치와 활성화 값을 +1 또는 -1로 변환하는 방식 (sign function)을 사용
- 하지만 딥러닝 모델에서 layer마다 특징이 다르기 때문에 모든 층에 동일한 -1, +1 값만 사용하는 것은 비효율적
- AdaBin은 기존처럼 고정된 -1과 1 값만 사용하지 않고, 적응적으로 (binary values를 유연하게 조정) 최적의 이진화 값을 찾는 방법
- 가중치 최적화
- 통계 분석을 기반으로 가중치의 중심을 맞추고, 실수형 분포와의 차이를 최소화하는 방법 사용
- 활성화값 최적화
- 기울기 기반 최적화 기법을 활용해 각 layer의 특징에 맞게 이진화 값의 중심과 거리를 조정
- 기존의 sign fucntion을 초기값으로 설정한 후, 학습 과정에서 최적의 값으로 조정하는 방식 사용
- 가중치 최적화
기존 BNN과 AdaBin의 차이
- 기존 BNN들은 가중치와 활성화 값을 {-1, +1} 또는 {0,+1} 같은 고정된 값만 사용하여 2~3가지의 출력값을 생성
- 하지만 AdaBin은 더 다양한 이진값을 허용하여 총 4가지 출력값을 만들 수 있으며, 이로 인해 기존 BNN보다 훨씬 강력한 표현력을 가질 수 있음

- 또한, AdaBin은 XNOR과 BitCount 연산을 사용해 기존 BNN처럼 빠르게 계산할 수 있도록 설계되었으며, 추가적인 계산량도 거의 없음
실험 결과
- CIFAR-10 및 ImageNet 데이터셋에서 기존의 최신 BNN 기법보다 더 나은 성능을 보임
- PASCAL VOC 데이터셋 (Object Detection 분야)에서도 기존 BNN 기법보다 1.9mAP 향상을 달성
- 이론적으로 기존 BNN보다 60.85배 더 빠른 연산 속도와 31배 적은 메모리 사용량을 기록

2. Related Work
XNOR-Net
- 기존 BNN에서 양자화 과정에서 발생하는 오류를 줄이기 위해 채널별 스케일링을 도입하여 이진화된 가중치를 원래 값과 가깝게 복원한느 방법 제안 -> 이후 많은 BNN 연구에서 이 개념 활용
ABC-Net
- 부동소수점 (Full-Precision) 가중치를 더 정확히 표현하기 위해 여러 개의 이진 가중치의 선형 결합을 사용
- 또한, 여러 개의 이진 활성화 함수를 활용하여 정보 손실을 줄이는 방법 도입
- 즉, 단순히 한 번반 -1, +1로 변환하는 게 아니라, 여러 개의 이진화된 가중치를 합쳐 원래 값을 더 가깝게 표현
Bi-Real Net & BinaryDesneNet
- ResNet과 DesneNet 구조에서 영감을 받음
- Bi-Real Net : 1bit CNN과 실수형 CNN 간의 성능 차이를 줄이기 위해 Shortcuts를 추가하는 방법 제안
- BinaryDenseNet : 성능을 더 향상시키기 위해 더 많은 단축 경로를 연결
IR-Net
- Information Entropy 최대화
- 양자화된 가중치들이 특정 값 (-1 또는 1)에 너무 쏠리지 않도록 하고, 균형 있게 분포되도록 조
- Quantization Error 최소화
- 가중치의 중심을 조정
- 학습 가능한 scaling factor를 적용하여 원래 가중치와 차이는 줄임
ReActNet
- ReAct Sign 함수
- 학습 가능한 binary 임계값 추
- ReAct PReLU
- Leaky ReLU의 한 변형으로, 음수를 입력 받을 때 학습 가능한 a 계수 추가

3. Binarization with Adaptive Binary Sets
- AdaBin에서는 -1과 1을 고정하지 않고, 학습을 통해 최적의 두 값 b1, b2를 찾을 수 있도록 함
- β : 이진화된 값들의 중심, 즉 원래 실수값의 평균 (center)
- α : 두 값 사이의 거리 (distance)

3.1 Weight Equalization
- 중심 βw 계산
- 가중치 분포의 중심 (βw)을 원래 실수 가중치의 평균값으로 설정
- 즉, 이진화된 가중치가 원래 가중치 분포의 평균을 유지하도록 설정

- 거리 αw 계산
- 이진화된 값이 원래 값과의 차이를 최소화하도록 scaling

3.2 Gradient-based Activiation Binarization
- 학습을 통해 최적의 두 개의 값을 찾음
- βa : 활성화 값의 중심 (center)
- αa : 활성화 값의 거리 (distance)

- 활성화 값이 너무 크면 학습이 불안정해지므로, gradient clipping 적용

- 각 변수들의 gradient 업데이트 수식

- 최종 이진화 과정 (Inference 단계)
- 학습이 끝난 후에는

3.3 Non-linearity
- 기존 연구에서는 PReLU (Parametric ReLU)를 사용하여 BNN의 학습을 돕는 방식을 제안함
- PReLU는 음수 값 부분에 학습 가능한 scaling factor를 추가하여 학습을 유연하게 함
- 하지만 AdaBin을 적용한 후, 일부 층에서 이진화된 값들이 대부분 양수가 되는 현상 발생
- 즉, PReLU가 적용되는 음수 값이 거의 없어져 PReLU의 비선형성이 제대로 작동하지 않음
- 이를 위해 Maxout 함수를 사용하여 더 강한 비선형성을 적용
- : 양수 부분의 학습 가능한 계수 (초기값 = 1)
- : 음수 부분의 학습 가능한 계수 (초기값 = 0.25)
- PReLU와 다르게 양수, 음수 모두 학습 가능하도록 확장됨

3.4 Binary Convolution for AdaBin
- AdaBin에서도 여진히 XNOR, BitCount 연산을 활용하여 가속화

- IR-Net과 비교
- 연산량 2.74% 증가
- 파라미터 수 1.37% 증가
- 하지만 이론적으로 60.85x 속도 향상, 31x 메모리 절약
4. Experiments
4.1 Results on CIFAR-10
- ResNet-18: 93.1% 정확도 → ReCU보다 0.3% 향상
- ResNet-20: 0.4% 정확도 향상 (RBNN 대비 최고 성능 달성)
- VGG-small (1-bit binarization): 92.3% 정확도 → SLB보다 0.3% 향상

4.2 Results on ImageNet

- BNN 전용 네트워크 비교

5. Conclusion
- AdaBin은 이진 값의 중심()과 거리()를 학습하여 최적의 이진값을 찾음
- 결과적으로, 원래 실수형 가중치와 더 잘 맞는 이진 표현이 가능하여 성능 향상