Skip to main content
QUICK REVIEW

[논문 리뷰] BMXNet: An Open-Source Binary Neural Network Implementation Based on MXNet

Haojin Yang, Martin Fritzsche|arXiv (Cornell University)|2017. 05. 27.
Advanced Neural Network Applications참고 문헌 8인용 수 10
한 줄 요약

BMXNet은 xnor 및 popcount 연산을 사용하여 효율적인 추론과 학습을 구현하는 오픈소스, MXNet 기반 라이브러리입니다. 이는 가중치와 활성화를 이진화하여 표준 GEMM 대비 최대 29배의 모델 크기 감소와 125배의 속도 향상을 달성하며, CPU 및 GPU에서 전체 이진 및 양자화 네트워크를 지원합니다.

ABSTRACT

Binary Neural Networks (BNNs) can drastically reduce memory size and accesses by applying bit-wise operations instead of standard arithmetic operations. Therefore it could significantly improve the efficiency and lower the energy consumption at runtime, which enables the application of state-of-the-art deep learning models on low power devices. BMXNet is an open-source BNN library based on MXNet, which supports both XNOR-Networks and Quantized Neural Networks. The developed BNN layers can be seamlessly applied with other standard library components and work in both GPU and CPU mode. BMXNet is maintained and developed by the multimedia research group at Hasso Plattner Institute and released under Apache license. Extensive experiments validate the efficiency and effectiveness of our implementation. The BMXNet library, several sample projects, and a collection of pre-trained binary deep models are available for download at https://github.com/hpi-xnor

연구 동기 및 목표

  • 모바일 및 IoT 시스템과 같은 저전력 장치에 대규모 딥러닝 모델을 구현하는 데 도전하는 것.
  • 이진 및 양자화된 가중치와 활성화 표현을 통해 딥 신경망의 메모리 사용량과 계산 비용을 줄이는 것.
  • 부동소수점 산술 대신 비트 연산( xnor 및 popcount)을 사용하여 BNN의 효율적인 추론 및 학습을 가능하게 하는 것.
  • 모듈러하고 즉시 사용 가능한 MXNet 대체 프레임워크를 제공하여 이진 및 저비트 양자화 네트워크를 유연한 비트 폭 제어 기능으로 지원하는 것.
  • 사전 훈련된 모델을 사용하여 안드로이드 및 아이폰 애플리케이션을 통해 모바일 플랫폼에서 BNN의 실질적 배포를 보여주는 것.

제안 방법

  • 표준 MXNet 레이어의 즉시 사용 가능한 대체품으로서 QActivation, QConvolution 및 QFullyConnected 레이어를 도입하며, 'act_bit' 매개변수를 통해 구성 가능한 비트 폭을 지원합니다.
  • 가중치와 활성화의 기반 기반 이진화를 수행하며, 32/64비트 워드당 32/64개의 이진 값 저장으로 최대 32배의 메모리 사용량 감소를 달성합니다.
  • 표준 GEMM 대신 xnor 및 popcount 연산을 사용하여 행렬 곱셈을 수행함으로써, POPCNT 명령어 지원이 있는 CPU에서 계산 속도를 크게 향상시킵니다.
  • OpenMP를 사용하여 xnor GEMM 커널을 가속화함으로써, 난이도 있는 GEMM 대비 최대 125배의 속도 향상과 CBLAS-ATLAS 대비 50배의 속도 향상을 달성합니다.
  • 이전 연구의 결과를 따르며, 첫 번째 및 마지막 레이어에서 이진화를 피함으로써 하이브리드 훈련 전략을 지원합니다.
  • 가중치와 활성화에 대해 2~31비트까지의 임의의 비트 폭 양자화를 지원하여 이진 네트워크를 초월해 혼합 정밀도 모델을 지원합니다.

실험 결과

연구 질문

  • RQ1MXNet 기반으로 구축된 BNN 프레임워크가 경쟁적인 분류 정확도를 유지하면서도 상당한 모델 압축과 계산 효율성을 달성할 수 있는가?
  • RQ2CPU에서 xnor 기반 GEMM의 성능은 표준 GEMM 및 CBLAS-ATLAS 대비 속도와 메모리 사용 측면에서 어떻게 비교되는가?
  • RQ3특정 레이어(예: 첫 번째 및 마지막 레이어에서 이진화를 피함)만 이진화하는 것이 모델 정확도와 모델 크기에 어떤 영향을 미치는가?
  • RQ4어느 정도까지 이진 및 양자화 네트워크는 안드로이드 및 아이폰과 같은 모바일 플랫폼에 효과적으로 배포될 수 있는가?
  • RQ5기존 MXNet 컴ponent와 원활하게 통합되며 CPU 및 GPU 실행을 모두 지원하는 모듈러하고 오픈소스의 BNN 라이브러리를 설계할 수 있는가?

주요 결과

  • BMXNet은 32비트 워드당 32개의 이진 가중치 저장으로 최대 29배의 모델 크기 감소를 달성하여, MNIST 모델 크기를 47MB에서 1.6MB로 줄였습니다.
  • xnor_64_omp 커널은 POPCNT 지원이 있는 4코어 CPU에서 난이도 있는 GEMM 대비 최대 125배의 속도 향상과 CBLAS-ATLAS 대비 50배의 속도 향상을 달성했습니다.
  • MNIST에서 이진 LeNet 모델은 97.3%의 테스트 정확도를 기록하여 전체 정밀도 모델과 유사한 성능을 보였으며, 모델 크기는 단지 1.6MB였습니다.
  • CIFAR-10에서 이진 모델은 84.2%의 테스트 정확도를 달성하여 이진화에도 불구하고 뛰어난 성능을 보였습니다.
  • ImageNet에서 ResNet-18을 사용한 완전 이진화 모델은 61%의 top-1 정확도를 기록했고, 첫 번째 스테이지만 전체 정밀도로 유지한 부분 이진화된 버전은 모델 크기 증가가 최소한이면서도 84%의 top-1 정확도를 달성했습니다.
  • 안드로이드 및 아이폰용 모바일 애플리케이션은 이진화된 ResNet-18 모델을 사용하여 실시간 카메라 피드를 성공적으로 분류하여 실질적인 배포 가능성 확인했습니다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.