Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Learnable Companding Quantization for Accurate Low-bit Neural Networks #36

Open
ryoherisson opened this issue Jun 16, 2021 · 0 comments
Assignees

Comments

@ryoherisson
Copy link
Contributor

ryoherisson commented Jun 16, 2021

一言でいうと

2ビット,3ビット,4ビットモデルの非一様量子化手法を提案.

論文リンク

著者/所属機関

Kohei Yamamoto
(Oki Electric Industry Co., Ltd.)

投稿日付(yyyy/MM/dd)

2021/03/12

概要

量子化関数のうち,非一様量子化は一様量子化よりも量子化誤差や予測誤差を低減することが期待される.しかし,効果的な量子化レベルの正確な推定は容易ではなく,特に低ビットモデルでは一様量子化に比べて精度が劣ることが多い.

本論文では,通信や信号処理の分野で広く使用されるCompanding(Compression and Expansion)技術に基づく,非一様量子化手法のLearnable Companding Quantization(LCQ)を提案.この手法では,入力信号のダイナミックレンジを非線形に制限することでビット幅を縮小する.

これにより,非線形関数とその逆関数を用いることで入出力間のスケールを変化させず,スケールを維持することで量子化誤差を減らし,バックプロパゲーションによる学習を安定化できる.また,Companding関数が微分可能であれば,そのパラメータを最適化することで,タスクの損失を直接最小化できる.

CIFAR-10/100,ImageNet,COCOデータセットで良好な精度を示した.

スクリーンショット 2021-06-17 8 47 43

新規性・差分

  • コンパンド関数を定式化することで,学習によって量子化レベルを柔軟かつ不均一に制御
  • 正規化の有効範囲を重み量子化器(LWN)のみに限定することで,量子化学習を安定化できることを発見
  • 再量子化を行うことで,効率的な推論に必要なLUTのメモリコストを削減

手法

LCQ quantizer
スクリーンショット 2021-06-17 10 14 47

Backpropagation for companding
スクリーンショット 2021-06-17 10 18 49
スクリーンショット 2021-06-17 10 19 06

Backpropagation for clipping
スクリーンショット 2021-06-17 10 19 23

Limited Weight Normalization
スクリーンショット 2021-06-17 10 17 43

結果

スクリーンショット 2021-06-17 10 15 56
スクリーンショット 2021-06-17 10 16 02
スクリーンショット 2021-06-17 10 16 33

コメント

@ryoherisson ryoherisson self-assigned this Jun 16, 2021
@ryoherisson ryoherisson changed the title [WIP]Learnable Companding Quantization for Accurate Low-bit Neural Networks Learnable Companding Quantization for Accurate Low-bit Neural Networks Jun 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant