Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to Deep Compression

1,565 views

Published on

This document introduce the literature 'Deep Compression' written by S. Han, et al. You can easily understand that literature by reading this. Only Japanese.

Published in: Technology
  • Be the first to comment

Introduction to Deep Compression

  1. 1. ディープラーニングの最新動向 圧縮技術編① Deep Compression 2017/1/5 株式会社ウェブファーマー 大政 孝充
  2. 2. 今回取り上げるのはこれ [1] S. Han, et al.”Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding.”ICLR 2016 - Best Paper Award. Deep Neural Networkのパラメータ容量を3段階の圧縮技術 を用いて大幅に縮減した!
  3. 3. 解説のポイント ①取り組んだ課題とは ②手法の説明  1)Pruning  2)Quantization  3)Haffman Encoding ③結果どうなった?
  4. 4. 解説のポイント ①取り組んだ課題とは ②手法の説明  1)Pruning  2)Quantization  3)Haffman Encoding ③結果どうなった?
  5. 5. Deep Learningはパラメータ容量が巨大なので こんなに不便 ●問題1:巨大過ぎてAppStoreなどで扱えない コンピュータ で学習 数百MB
  6. 6. Deep Learningはパラメータ容量が巨大なので こんなに不便 ●問題2:モバイルのバッテリーを大量消費する すぐに電池がなくなる 数百MB そもそもメモリ上に 展開できない
  7. 7. よってモバイル向けに容量を減らしたい! コンピュータ で学習 数百MB 数十MB? 数MB?
  8. 8. 解説のポイント ①取り組んだ課題とは ②手法の説明  1)Pruning  2)Quantization  3)Haffman Encoding ③結果どうなった?
  9. 9. 手法全体の流れ 第1段階 Pruning 第2段階 Quantization 第3段階 Huffman Encoding
  10. 10. 解説のポイント ①取り組んだ課題とは ②手法の説明  1)Pruning  2)Quantization  3)Haffman Encoding ③結果どうなった?
  11. 11. 圧縮第1段階:Pruning(切り詰める) 普通に学習した後、閾値を超えないような小さな値の 重みを削減する。 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 0.0008 0.007 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 0.001 これで10分の1とかにする
  12. 12. 解説のポイント ①取り組んだ課題とは ②手法の説明  1)Pruning  2)Quantization  3)Haffman Encoding ③結果どうなった?
  13. 13. 圧縮第2段階:Quantization(量子化) まず、似た重み同士でまとめる この例の場合、16個の重みを4種類にまとめる
  14. 14. 圧縮第2段階:Quantization(量子化) まとめ方は、k-means法を用いる argmin C w −Ci 2 w∈Ci ∑ i=1 k ∑ 4種類のクラスタにまとまった。
  15. 15. 圧縮第2段階:Quantization(量子化) 求まった重みを初期値としてFine-Tuningする back propagationはクラスタごとの勾配を求める ∂L ∂Ck = ∂L ∂Wij ∂Wij ∂Cki, j ∑ = ∂L ∂Wij Ι Iij = k( ) i, j ∑ :indicator function Ι ⋅( )
  16. 16. 圧縮第2段階:Quantization(量子化) 第2段階全体図
  17. 17. 解説のポイント ①取り組んだ課題とは ②手法の説明  1)Pruning  2)Quantization  3)Haffman Encoding ③結果どうなった?
  18. 18. 圧縮第3段階:Haffman Encoding(ハフマン符号化) Haffman Encodingを用いてさらに容量を減らす 重みの値1 1.0 00 重みの値2 2.0 01 重みの値3 3.0 10 例) 1.0 00 1.0 00 3.0 10 2.0 01 2.0 01 2.0 01 2.0 01 14 bits よく出現する数字には短い bit をあて、 余り出現しない数字には長い bit をあてる 1.0 10 1.0 10 3.0 110 2.0 0 2.0 0 2.0 0 2.0 0 11 bits
  19. 19. 解説のポイント ①取り組んだ課題とは ②手法の説明  1)Pruning  2)Quantization  3)Haffman Encoding ③結果どうなった?
  20. 20. いろいろなモデルの圧縮率 LeNetで40分の1、AlexNetで35分の1、VGGNetで はなんと、49分の1!
  21. 21. いろいろなモデルのスピード増加率 どのモデルにおいても、のきなみ早くなっている
  22. 22. いろいろなモデルの電力消費削減率 どのモデルにおいても、のきなみ電力が削減されてい る
  23. 23. 結論 l  LeNet、AlexNet、VGGNetいずれにおいてもパラ メータの容量を大幅に削減できた l  結果、速度の大幅な上昇、および電力消費の大幅 な削減が達成できた l  このしくみにより、Deep Learningがモバイルでも使 用できそうだ!
  24. 24. おわり

×