Skip to main content
QUICK REVIEW

[논문 리뷰] Quantizing deep convolutional networks for efficient inference: A whitepaper

Raghuraman Krishnamoorthi|arXiv (Cornell University)|2018. 06. 21.
Advanced Neural Network Applications인용 수 756
한 줄 요약

이 백서은 CNN 가중치와 활성화를 8, 4, 또는 16비트로 양자화하기 위한 사후 학습 및 양자화 인식 방법을 조사하고, 아키텍처 전체에서 정확도 영향력을 분석하며, 엣지 기기에서 효율적 추론을 위한 텐서플로 도구 및 훈련 모범 사례를 제공합니다.

ABSTRACT

We present an overview of techniques for quantizing convolutional neural networks for inference with integer weights and activations. Per-channel quantization of weights and per-layer quantization of activations to 8-bits of precision post-training produces classification accuracies within 2% of floating point networks for a wide variety of CNN architectures. Model sizes can be reduced by a factor of 4 by quantizing weights to 8-bits, even when 8-bit arithmetic is not supported. This can be achieved with simple, post training quantization of weights.We benchmark latencies of quantized networks on CPUs and DSPs and observe a speedup of 2x-3x for quantized implementations compared to floating point on CPUs. Speedups of up to 10x are observed on specialized processors with fixed point SIMD capabilities, like the Qualcomm QDSPs with HVX. Quantization-aware training can provide further improvements, reducing the gap to floating point to 1% at 8-bit precision. Quantization-aware training also allows for reducing the precision of weights to four bits with accuracy losses ranging from 2% to 10%, with higher accuracy drop for smaller networks.We introduce tools in TensorFlow and TensorFlowLite for quantizing convolutional networks and review best practices for quantization-aware training to obtain high accuracy with quantized weights and activations. We recommend that per-channel quantization of weights and per-layer quantization of activations be the preferred quantization scheme for hardware acceleration and kernel optimization. We also propose that future processors and hardware accelerators for optimized inference support precisions of 4, 8 and 16 bits.

연구 동기 및 목표

  • 엣지 추론을 가능하게 하기 위해 모델 크기, 메모리, 전력을 줄이는 양자화를 동기 부여한다.
  • 여러 CNN 아키텍처에서 8, 4, 16비트 양자화에 대한 정확도와 지연 트레이드오프를 특성화한다.
  • 사후 학습 양자화와 양자화 인식 학습 접근법을 개발하고 평가한다.
  • TensorFlow/TensorFlow Lite에서 양자화된 모델 구현을 위한 실용적인 가이드라인과 도구를 제공한다.

제안 방법

  • 가중치와 활성화에 대해 균일한 선형, 대칭 및 확률적 양자화기를 제시한다.
  • 시뮬레이션 양자화 및 직통 추정기(STE) 하에서 순전파 및 역전파 형식을 도출한다.
  • ImageNet에서 MobileNet, Inception, ResNet, NasNet과 같은 네트워크를 대상으로 사후 학습 양자화(가중치 전용 및 가중치-활성화) 및 양자화 인식 학습을 평가한다.
  • 정확도에 미치는 양자화 정밀도(레이어당 대 채널당)의 영향을 분석한다.
  • 양자화 추론에 대해 배치 정규화 처리 및 계산 친화적인 접힘 전략을 논의한다.
  • 양자화 및 배포를 위한 텐서플로 도구 및 양자화와 배포를 위한 실용적 워크플로를 제시한다.

실험 결과

연구 질문

  • RQ1일반적인 CNN 아키텍처에서 가중치의 채널당 양자화, 활성화의 레이어당 양자화 중 어떤 양자화 스킴이 부동소수점에 가깝게 정확도를 유지하는가?
  • RQ2사후 학습 양자화와 양자화 인식 학습은 8비트 이하 비트폭에서 정확도 측면에서 어떻게 비교되는가?
  • RQ3배치 정규화 처리 방식이 양자화된 CNN의 정확도와 안정성에 미치는 영향은 무엇인가?
  • RQ4TensorFlow/TensorFlow Lite에서 양자화된 모델의 실용적 배치를 가능하게 하는 도구와 훈련 워크플로는 무엇인가?
  • RQ5정수 CPUs, DSP, 및 특수 가속기에서 양자화 네트워크를 사용할 때 대기 시간과 모델 크기 이점은 무엇인가?

주요 결과

  • 8비트로 레이어당 가중치 양자화와 레이어당 활성화의 조합은 많은 아키텍처에서 FP32 대비 약 2% 내외의 정확도 차이를 보인다.
  • 8비트로 가중치를 양자화하면 8비트 산술이 불가능하더라도 사후 학습 양자화를 통해 모델 크기가 약 4배 감소한다.
  • 양자화된 네트워크는 CPU에서 더 빠르게 실행되며(2배~3배), 고정소수점 SIMD 하드웨어에서 훨씬 더 빨라진다(최대 약 10배).
  • 양자화 인식 학습은 FP32 격차를 8비트에서 약 1%까지 좁히고, 아키텍처에 따라 4비트 가중치 양자화와 2%~10%의 정확도 손실을 허용한다.
  • 일반적으로 가중치를 양자화할 때 채널당 양자화가 레이어당보다 우수하게 작동하며, 특히 4비트 정밀도에서 미세 조정을 할 때 그렇다.
  • 활성화 양자화가 8비트로도 정확도 손실이 거의 없으며, 배치 정규화 간소화나 ReLU6와 같은 정규화 전략 덕분이다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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