小さなCNNを直接トレーニングするのではなく、なぜモデルを圧縮するのですか?

著者:ツグミ建物の天
リンクします。https://www.zhihu.com/question/303922732/answer/547325762
出典:ほとんど知っている
著者が著作権を保有。営利目的の複製については、作者に連絡して承認を得てください。非営利目的の複製については、出典を明記してください。
 

まず、「小さなCNNを直接トレーニングする」というフレーズはあまり適切ではありません。前提が必要です。すでに小さなモデルが設計されています(VGG19 ResNet152この大きなモデルは石から飛び出さないだけでなく、注意深く設計、試行錯誤が導入されました)。したがって、ここに含まれる問題があります。小さなモデルを設計する方法です。

ただし、この問題に特化したモデルアクセラレーションアルゴリズムシステム全体に分岐があり、これはネットワーク設計の合理化と呼ばれています典型的な代表はSqueezeNet MobileNet v1 / v2 ShuffleNet v1 / v2 IGC v1 / v2 / v3です。多くの場合、本質的にはグループの畳み込みを前提として機能します。

次に、モデルを圧縮/高速化することは、たとえば携帯電話、FPGA、ドローンなど、モデルをより適切に展開することです。1つは事前トレーニング済みモデルで、もう1つはコンパクトバージョンです。2つの精度はほぼ同じです。後者は消費電力がはるかに少なくなります。もちろん、圧縮/加速モデルが必要です。(正確さを保証する方法はほとんどアルゴリズムのことです)

さらに、いくつかの加速圧縮アルゴリズムを使用してモデルをプッシュすると、より速くより小さなモデルが得られるだけでなく、精度が所定の事前学習済みモデルを超える可能性があります(これは通常、加速圧縮アルゴリズムの蒸留技術によって実現されます)。明らかに、ケーキのアイシング。

着氷点:圧縮アルゴリズムは、モデルを(量子化によって低ビットにプッシュして、ハードウェアレベルの高速を実現することもできます。典型的な仕事、BinaryConnect、BNN、XNOR-Net。この作業は必然的にディープラーニングチップのコデザインと組み合わされ、実用的な意味を持つモデルを大幅に加速できます。

最後に、モデルアクセラレーションアルゴリズムシステムのさまざまなブランチアルゴリズムを重ねて使用することができます。たとえば、剪定と量子化を再度渡すと、加速効果が急激に変化します。

このシステムは、一般に次のように分けられます。1)プルーニング2)量子化3)知識の蒸留4)低ランクの分解5)コンパクトなアーキテクチャーの設計これらの分岐方法。(比較的ニッチなものもあり、実際の意味はそれほど大きくないので、ここでは触れません)

贴两篇综述:ディープニューラルネットワークのモデルの圧縮と加速の調査[1710.09282] ディープニューラルネットワークのモデルの圧縮と加速の調査

深い畳み込みニューラルネットワークの効率的な計算における最近の進歩[1802.00939]深い畳み込みニューラルネットワークの効率的な計算における最近の進歩)、要約はまだ非常に良いです。

241件のオリジナル記事を公開 54 件を賞賛 130,000回の訪問+

おすすめ

転載: blog.csdn.net/txpp520/article/details/105549799