DEEP COMPRESSION:訓練を受け、PRUNINGとの深いニューラルネットワークを圧縮する量子化ハフマン

著作権:オリジナルの作品は、転送するために歓迎します!添付のリンクを転送https://blog.csdn.net/qq_26369907/article/details/89812227

圧迫深度:剪定、量子化およびハフマン符号化ニューラルネットワークの深さを訓練圧縮します

モデル圧縮の知識を学ぶ、この記録紙(ICLR2016最高の紙)学習プロセス。
論文リンク:https://arxiv.org/abs/1510.00149
紙Pytorchは、GitHubのリンクを達成:https://github.com/mightydeveloper/Deep-Compression-PyTorch

抽象

DNNは、ハードウェアリソースに制約の組み込みシステムに適用するためにそれらを困難に、計算集約型およびメモリ集約型モデルです。そのため、著者は次のようにハフマンは、圧縮技術のモデルをコーディング、量子の訓練、剪定の使用を提案しています:

  • 1.接続されている唯一の重要なモデルを残して、ネットワークをトリム。
  • 重量増加を共有重みを定量化することにより、2
  • 3.ハフマン符号化

ステップ1および2の後、我々は残りの接続及び量子化の中心点を微調整するために、ネットワークのトレーニングを再度、トリミングは、量子化ビット数が接続されている還元、接続9-13回数を減少させる、32から5に減少します。ImageNetデータセットにおいて、AlexNetモデルが低減される35倍の精度を損なうことなく、6.9メガバイトの240メガバイトから減少; VGG-16は49倍11.3メガバイトに552メガバイトから減少減少し、精度を損ないません。これは、モデルは内部SRAMキャッシュではなく、外部DRAMメモリチップに適合することができます。
剪定、量子化およびハフマン符号化:実験では、三相の圧迫の深さがあることを示しています。
31〜×27間回:10×、量子化は、さらに圧縮率を向上させるように剪定重量は減少しました。ハフマン符号化は、より多くの圧縮を提供します:35×49×間。圧縮比は、既にスパース表現のためのメタデータが含まれます。圧縮方式は、精度の損失にはなりません。

1はじめに

モデルの重みパラメータは、大量のメモリを消費する、帯域幅に起因する、組込み機器の用途に、大きく、他の欠陥です。

  • 1.appストアは、APPのサイズを制限します。
  • 2.大規模なエネルギー消費モデル

エネルギー消費量は、主にメモリアクセスによって決定されます。45nm世代のCMOS技術で0を使用して、32ビット浮動小数点加算器:9pJ、加算演算の大きさの3桁である5PJ、640pJを使用して32ビットのDRAMのメモリアクセスを使用してSRAMキャッシュアクセスで32ビット。これより高価なDRAMへのアクセスを必要とする、大規模なネットワークチップメモリ​​には適していません。例えば、1000000000、20FPSの速度を接続するニューラルネットワークを実行するために、唯一のDRAM(20Hzの)(1G)(640pJ)= 12にアクセスする必要がある:8W--パワー遠い典型的なモバイルデバイスのエンベロープを超え

以下は、特定のネットワーク開始剪定、トレーニングと共有定量化重み、ハフマン符号化技術を説明します

2 NETWORK剪定

ネットワークの剪定:

Gentyの
左からプルーニングステージは、図に見ることができ、プロセスであります:

  • 通常のトレーニング学習ネットワーク接続から1
  • 2.トリム小さなコネクタの重量が、閾値未満が削除されます。
  • 3再訓練ネットワーク、残りの疎接続からパラメータ取得。

別の記事2015を参照することができ、特定のトリムペーパーでは、私は論文がのフォローアップになります読ん
結果:

  • Alexnet VGG-16パラメータと9-13倍減少;

さらなる圧縮のために、我々は、インデックスではなく、絶対位置、相対位置及びコードの相対位置、このインデックスは、圧縮されたバイト数を格納します。
紙、記憶された相対位置畳み込み率層5と層8ビットFC。
ここに画像を挿入説明
我々は、境界よりも大きい屈折率差を必要とするとき、我々は、図1に示すゼロパディング溶液を使用2:差が3(例えば)の最大値を8を超えると符号なし、我々は、充填されたゼロを追加します。

補足、操作アップ0
図2:
最初のインデックスは行のインデックス番号、0-15され、
第二行は、2つのパラメータ間の異なる長手方向の距離であり、
3番目の列の値は、パラメータの値であり、
図を説明します。データの2つの意味、
例えば、2行目の最初の初期パラメータである距離を表し、第二距離3は、第1のパラメータは= 3 3,4-1で示す3ビットと仮定する距離が8を超える場合、ときに第2番目のパラメータ、相対距離を記憶し、11であると仮定され、例えば、第1〜第8の位置に0までに、このようにインデックスに0〜12の場所を追加、= 8 12-4インデックス位置の対応するデータを追加する第三のパラメータとして、位置0、第四のための真の推定三パラメータと、11 + 4 = 15まで続きます。

3訓練を受け、量子化と重量の共有

重量を表すビットの数、および共有ネットワーク量子化加重トリミングされた後の圧縮ネットワークのより大きい程度の重量を減少させることによって。より効果的に右接続部を有することにより、格納するための重必要の数、及びその後微調整これらの共有重みを制限するために同じ重みを共有します。
ここに画像を挿入説明
図III、我々はネットワークレイヤ4つの入力ニューロンと出力ニューロン4があると、重量が4×4の行列です。図の左上にある4 重量4重量行列、左下は4で勾配マトリックス4、重量共有手順は次の通りです。

  • 1.权重被量化为4类格子(用四种颜色表示,同一颜色表示权重是相近的),同一种颜色格子的所有权重用同一个值表示,对于相同颜色格子的权重我们只需要存储最小的索引在共享权重表里就可以。例如:
    深蓝色:2.09 ,2.12 ,1.92, 1.87 平均值:2.00
    粉红色:1.48, 1.53, 1.49 平均值:1.50
    黄色: 0.09,0.05, -0.14, 0, 0 平均值: 0.00
    绿色 : -0.98, -1.08, -0.91,-1.03 平均值: -1.00
    因此共享权重controids: 2.00, 1.50, 0.00 , -1.00
  • 2.所有的梯度用同一颜色来分组,组内相加,和乘于LR,再被1中的centroids减去,获得fine-truned centroids值。例如:
    分组后最内相加结果为: 0.04, 0.02, 0.04, -0.03
    相加结果乘LR,再与1中的Centroids相减,得到:fine-truned centroids值

操作过程参考图三。

压缩率

R = n個 B n個 リットル インクルード グラム 2 K + K B r =\frac{nb}{nlog_2k + kb}
其中:n表示权重个数(分子n表示压缩前的,分母表示压缩后的个数),b表示存储的比特位数, k表示 k clusters,用log2K表示编码的索引。
图三,最初有4×4 = 16个权值,但只有4个共享权值:相似权重组合在一起共享相同的值。最初我们需要存储16个权重,每个权重32位,现在我们只需要存储4个有效权重(蓝色、绿色、红色和橙色),每个权重32位,加上16个2位索引,压缩率为:16 * 32 /(4 * 32+2*16) = 1/3.2

3.1 WEIGHT SHARING

其实就用了非常简单的 K-means,对每一层都做一个weight的聚类,属于同一个 cluster 的就共享同一个权值大小。注意的一点:跨层的weight不进行共享权值;
我们将n个原始权值W = {w1,w2,…wn}划分为k个簇C = {c1,c2,…ck},从而最小化簇内平方和(WCSS):
ここに画像を挿入説明
我们的方法确定了网络完全训练后的权值共享,使共享的权值近似于原始网络的权值。

3.2 INITIALIZATION OF SHARED WEIGHTS

centroid 初始化影响聚类质量,从而影响网络的预测精度。作者尝试了很多生产初始点的方法:Forgy(random) 初始化从数据集中随机选择k个观测值,并将它们作为初始中心点。初始化的中心体用黄色表示。由于双峰分布中存在两个峰,所以Forgy方法往往集中在这两个峰附近
density-based 初始化y轴上权重的CDF的线性空间,然后找到与CDF的水平交点,最后找到x轴上的垂直交点,x轴成为质心,如图蓝点所示。该方法使两峰附近的质心密度增大,但比Forgy方法更分散。
linear initialization 初始化线性空间的中心点之间的[最小,最大]的原始权重。这种初始化方法对权值的分布是不变的,与前两种方法相比是最分散的。
ここに画像を挿入説明
画出了AlexNet中conv3层的权重分布,横坐标是权值大小,纵坐标表示分布,其中红色曲线表示PDF(概率密度分布),蓝色曲线表示CDF(概率密度函数),圆圈表示的是centroids:黄色(Forgy)、蓝色(density-based)、红色(linear)。
可以从图中看到,Forgy 和 density-based 方法产生的centroids很少落入到大权值的范围中,造成的结果就是忽略了大权值的作用;而Linear initialization产生的centroids非常平均,没有这个问题存在;
后续的实验结果也表明,Linear initialization 的效果最佳。

3.3 FEED-FORWARD AND BACK-PROPAGATION

センター1次元k平均クラスタリングは、重量を共有することです。伝播段階と正引きテーブルの重量の後段に間接のレベルがあります。
各接続重みテーブルのインデックスは、メモリを共有しました。バックプロパゲーションプロセスでは、各共有権の勾配を計算し、共有し、権利を更新するために使用されます。このプロセスは、図3に示されています。

コーディング4ハフマン

ハフマン符号化はロスレス符号化が非常に一般的な手法です。それによれば、シンボルの発生確率は、可変長符号化を実行します。
ここに画像を挿入説明
右図の重量と最後AlexNet完全に接続された層から量分布指数インチ 図から分かるように、不均一な分布、二峰性形状は、私たちは、その最終的記憶されているネットワークはさらに30%~20%減少ハフマン符号化処理を使用することができます。

5回の実験

実験の多くを行って、とても興味を持っているいくつかの他の人が紙を見ることができます。

MNIST ON 5.1 LENET-300-100とLENET-5

圧縮LeNet-300-100とLeNet-5モデル、データセットのMNISTデータセット。
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

IMAGENET ON 5.2 ALEXNET

わずかに

5.3 VGG-16 IMAGENET ON

わずかに

おすすめ

転載: blog.csdn.net/qq_26369907/article/details/89812227