본문 바로가기
논문 리뷰/Quantization

[Paper Review] A comprehensive review of Binary Neural Network

by hyeon827 2025. 3. 13.

 

논문 원본 : https://arxiv.org/abs/2110.06804

 

A comprehensive review of Binary Neural Network

Deep learning (DL) has recently changed the development of intelligent systems and is widely adopted in many real-life applications. Despite their various benefits and potentials, there is a high demand for DL processing in different computationally limite

arxiv.org

 

 

2. Binary Neural Network

  • BNN은 기존 CNN과 동일한 구조를 가지지만, 모든 가중치와 활성화 값을 1bit로 변환하여 연산을 단순화한 모델

 

2.1 What is BNN?

  • BNN에서는 이진 연산 (Binary Operation, XNOR + popcount)을 활용하여 계산량을 대폭 줄일 수 있음
    • XNOR 연산 : 두 값이 같으면 1, 다르면 0을 반환하는 이진 논리 연산
    • popcount 연산 : 1이 몇 개 있는지를 계산하는 연산

  • CNN & BNN 연산

 

 

2.2 Forward & Backward Propagation

  • 하지만, 1bit 가중치와 활성화 값만으로 학습을 수행하는 것은 쉽지 않음
  • 역전파 과정에서 문제가 발생함
    • 문제점 : 활성화 함수를 이진화(sign function)하면, 미분 값이 0이 되어 기울기 소실 문제 발생
    • 해결책 : STE 기법을 사용하여, 실제 연산에서는 1비트 값만 사용하되, 학습 중에는 부동소수점 값을 유지하여 가중치를 업데이트

 

 

3. Binary Neural Network Optimization

3.1 Quantization Error Minimization

  • 32bit 값을 단순히 ±1 값으로 변환하면 너무 많은 정보가 사라짐
  • 변환 과정에서 원래의 가중치와 활성화 값 크기에 대한 정보가 사라져 모델 성능이 떨어짐

 

3.1.1 Scaling Factor

  • XNOR-Net(2016)에서는 채널별 scaling factor (α, β) 를 추가하여 정보 손실을 보완
  • XNOR-Net ++ -> 활성화와 가중치의 scaling factor를 하나로 통합하여 최적화
  • DA-BNN -> 데이터에 따라 자동으로 조정되는 적응형(Adaptive) scaling 방식 도입

 

 

3.1.2 Quantization Function

  • 기존 Sign 함수 대신 더 나은 변환 방법을 사용하여 성능 향상
    • SI-BNN (2020): 활성화는 [0,1] 범위로, 가중치는 [-1,1] 범위로 변환하여 성능 향상
      • [0,1]의 장점
        • 기존 CNN과 유사한 구조 (ReLU는 음수를 모두 0으로 바꿈)
    • AdaBin (2022): 레이어마다 최적의 이진 가중치 세트를 자동으로 찾는 방법 제안

 

3.1.3  Activations / Weights distribution and Others

  • 양자화를 수행하기 전에 가중치와 활성화 값의 분포를 조정하여 정보 손실을 줄이는 방법
    • 기존 방법은 이진화 과정에서 중요한 정보가 너무 많이 손실됨
    • 이진화하가 전에 분포를 조정하면 더 좋은 결과를 얻을 수 있음
      • ReCU (2021): 양자화 오류를 최소화하기 위해 가중치 분포를 정규화하는 기법 적용 
        • 가중치 분포를 정규화 후 이진화

 

 

3.2 Loss Function Improvement

  • BNN은 이진화(1bit 표현)로 인한 정보 손실 때문에, 실수값 (32bit) 네트워크보다 정확도가 떨어질 수 있음
  • 기존의 cross entropy loss에 추가적으로 네트워크의 출력 분포가 일정한 형태를유지하도록 도와주는 분포 손실(distribution loss)이나 정규화 항(regularization)을 추가

 

 

3.3 Gradient Approximation

  • sign 함수의 미분 값은 0이기 때문에, 역전파 과정에서 가중치가 업데이트되지 않는 문제가 발생
  • 이를 해결하기 위한 방법 중 하나가 바로 STE로, sign 함수의 기울기를 근사하는 기법
  • 하지만 STE를 사용하면 -1과 +1의 경계 근처의 가중치 학습이 어려워져 역전파의 업데이트 능력이 크게 저하
  • STE 문제를 해결하기 위해 다양한 기울기 근사 기법이 연구
    • Sigmoid 근사 기법
      • BNN-RBNT(2018)에서 제안
      • 경계 근처에서 기울기가 작아지므로, 불필요한 업데이트가 줄어듦
    • 다항식 근사 기법
      • Bi-Real-Net(2018)에서 제안
      • sign 함수의 기울기를 다항식 형태로 조정
      • 경계 근처에서 기울기 감소 -> 불필요한 업데이트 방지
    • 동적 기울기 조정
      • IR-Net(2020)에서 제안
      • 학습 과정 중 기울기 크기를 동적으로 변화
      • 중앙에서는 기울기를 1를 유지하지만, 경계 근처에서는 점진적으로 감소하도록 설계

 

 

 

 

3.4 Network Topology Struct

  • BNN 모델의 성능을 개선하기 위해 기존 네트워크 (ResNet 등)를 수정한 연구들이 많음
  • BNN에 맞는 새로운 네트워크 구조를 설계
  • ex) ReActNet
    • ReAct Sign 함수
      • 학습 가능한 binary 임계값 추가 (T)
    • ReAct PReLU
      • Leaky ReLU의 한 변형으로, 음수를 입력 받을 때 학습 가능한 a 계수 추가

 

 

3.5 Traing Strategy and Tricks

 

 

6. Binary Neural Network Applications (Image Classification)

 

6.1 CIFAR-10 Dataset

 

 

6.2 ImageNet Dataset

 

 

 

 

6.3 Unsupervised and Semi-supervised Learning