新年第2弾は同じく昨年の続きである、「A Survey of Model Compression and Acceleration for Deep Neural Networks」の3, 4, 5, 6章だ。初めは4回に分けて論文の翻訳していくと書いたが、少しペースが上がったので今回と次回の計3回で済みそうだ。
少し慣れてきたかな?? (^ω^)
A Survey of Model Compression and Acceleration for Deep Neural Networks
Ⅲ. Low-Rank Factorization and Sparsity
コンボリューション演算はたくさんの深いCNNに影響を与えてきたため、この層を削減することは、圧縮率を改善して全体的な高速化につながるだろう。コンボリューションカーネルは4次元のテンソル見なすことができる。行列分解に基づくアイディアは、この4次元のテンソルの中に大量の冗長性があるため、それらを除去するのに特に有効な方法だろうという直感から導出された。全結合相に関しても2次元行列とみなすことができ、同様に低ランク近似が役に立つ。
長い期間、コンボリューションの高速化に低ランクフィルタが用いられてきた。例えば高次元DCT(Discreate Consine Transform)や、一次元DCTと1次元ウェーブレットをそれぞれに制約されるテンソル積を利用したウェーブレットシステム等である。分離可能な1次元フィルタを学習することはRigamontiらによって、辞書学習のアイディアとともに導入された。幾つかの単純なCNNモデルに対して、幾つかの低ランク近似とコンボリューションカーネルのクラスタリングスキームがEmilyらによって提示された。彼らは単精度のコンボリューションレイヤに対して、1%の分類誤差で2倍の高速化を達成した。Speeding up Convolutional Neural Networks with Low Rank Expansionsではテキスト認識において、異なるテンソル分解方法を用いた4.5倍の高速化と1%の誤差の低下を報告した。この低ランク近似はレイヤ毎に行わる。一つの層のパラメータはそれが終わった後に確定され、上位の層は最高正誤差基準に基づいて微調整される。これらは、Fig. 2で示されるような2次元のコンボリューション層の圧縮に対する、典型的な低ランク近似手法である。
この方針に沿って、Canonical Polyadic (CP) 分解がカーネルテンソルのために提案された。これらは非線形最小二乗法をCP分解の計算に利用した。Convolutional neural networks with low-rank regularizationでは、低ランクに制約されたCNNをスクラッチでの学習するための低ランクテンソル分解を計算する新しいアルゴリズムが提案された。これはバッチノーマリゼーションを中間の隠れ層の活性の変形に用いている。
Canonical Polyadicの研究は、テンソル分解とdiscriminative fine-tuning
を用いた簡単なステップで大きなCNNモデルを高速化できると書いてある。(^ν^)
discriminative fine-tuning
を調べたところ、Hinton先生のlectureなどが出てきたので時間がある時にチェックしたい。
一般的に、CPとBN分解スキームの双方はCNNをスクラッチでトレーニングする時に利用する。しかしながら、それらにはいくつかの違いがある。例えば、
CP分解の最適な低ランク近似を見つけることは不良設定問題(ill-posed problem)であり、時にはその最適なランクKの近似は存在しないことがある。一方で、BNスキームはその分解が常に存在する。我々は両者の性能の比較も行った(Table Ⅱに示す)。実際の速度向上と圧縮率はそのパフォーマンスの測定に用いられる。私たちはBNのほうが僅かに高い速度向上を果たす一方で、CPが高い圧縮率を与えたことを確認した。
全結合相は2次元の行列とみなすことができるため、上記の手法が同じように適用できることに注目してほしい。低ランク性を全結合相の中に見出す、幾つかの古典的な研究がある。例えば、Mishaら深いモデル内の動的パラメータを、低ランク手法を用いることで削減した。Taraらはacoustic modeling(音響モデル??)に対し、最終層の重みにおける低ランク行列分解を探索した。
Mishaらの研究は概要を見た感じスゴイ事を言っている〔゚Д゚〕
2013年だが、チェックするべきだろうか。。
欠点
低ランクアプローチはモデルの圧縮と高速化に直結し、この考え方は近年のディープラーニングの発展を補っている(e.g. dropout, rectified units, maxout)。
しかしながら、それら計算的に高価な分解演算を含むため実装が簡単ではない。別の問題は層ごとに作用する低ランク近似手法では、グローバルパラメータを圧縮できないことである。異なるレイヤは異なる情報を含むため、これは重要である。最後に、元のモデルと比較する際、行列分解はその収束に大規模な再トレーニングを必要とする。
Ⅳ. Transferred/Compact Convolutional Filters
CNNは、入力画像に対する表現の変換不変特性を探索するためパラメータ効率が良い。これは、深刻なオーバフィッティングなしに非常に深いモデルを訓練することへの成功の鍵である。現状では強い理論が存在しないにも関わらず、大量の実験に基づいた証拠が、変換普遍特性とコンボリューション重み共有が性能の観点から重要であるという考えを支えている。転移されたコンボリューションフィルタをCNNモデルの圧縮に利用するという考えは、近年のequivariand group theory(同変群論??)を導入した研究: Group Equivariant Convolutional Networksに動機付けされる。これはxを入力、Φ(⋅)をネットワークまたは層、T(⋅)を変換行列とした時、equivariance以下で定義される(本文ではTの右上はダッシュではないが、名前がわからなかったので、ダッシュで代用した)。
T′Φ(x)=Φ(Tx)
これは変換関数T()により入力xが変換し、それをネットワークまたはレイヤに通すことは、初めにxをネットワークに通してから表現の変換を行うことと等価であると述べている。この方程式から変換TとT′は、それらが異なるオブジェクト上で演算のと同じである必要は無いことに注目してほしい。この理論より、全体的にネットワークの圧縮するために、変換をΦ(⋅)(層やフィルタ)へ作用させることは理にかなっている。経験的な観察から、深いCNNはモデルの正規化器として機能するので、小さな基本フィルタのセットに対して一定の変換T(⋅)を適用し、それをコンボリューションフィルタの大量のセットとして利用することも有益である。
このトレンドに沿って、コンボリューション層を基本フィルタのセットから構築する多くの改訂案が提案されている(1(DCNN), 2(CRelu), 3(MBA))。これらが共通に持っているものは、変換T(⋅)がコンボリューションフィルタの空間領域でのみ計算される関数群として存在することです。例えば、上の2はCNNのより低いコンボリューション層は、入力信号の正と負の状態の情報を抽出するために冗長なフィルタを学習する。また、T(⋅)を単純な否定関数として以下のように定義する。
T(Wx)=W−x
Wxはコンボリューションフィルタの基底である。W−xはWxの活性とは逆の活性を持つシフトからなるフィルタであり、マックスプール演算の後に選択される(ここの役よくわかりません。。)。このようにすることで、2は全てのコンボリューションフィルタに於いて、簡単に2倍の圧縮率を達成した。これは同時に、否定変形が分類精度を向上させる強力な正則化機として機能することも示している。直感的には、pair-wiseな正負制約を持つ学習アルゴリズムが、冗長ナそれの代わりに有用なコンボリューションフィルタをもたらす可能性があるということだ。3では、コンボリューションカーネルからの応答の大きさは、ネットワークにおけるパターン表現の幅広い多様性を有し、単一の閾値で弱い信号を切り捨てることは適切ではないことが観察されている。従って、MBA(Multi-Bias nonlinearity Activation)は更に多くのパターンを低い計算コストでその行現空間に生成することが提案されている。その際のT(⋅)は以下で定義される。
T′Φ(Wx)=Wx+δ
δはmulti-biasファクタを意味する。Exploiting Cyclic Symmetry in Convolutional Neural Networksはフィルタの複数回の90°回転の組み合わせと水平、垂直のフリップ(以下)について考察した。
T′Φ(Wx)=WTθ
WTθは元のフィルタを θ∈90,180,270 の角度で回転させた変形行列である。Inception-v4の論文では、上記の変形はデータから学習された任意の角度も一般化され、θはデータから直接得られると述べている。Group Equivariant Convolutional NetworksとExploiting Cyclic Symmetry in Convolutional Neural Networksの研究は、共に良い分類性能を達成している。
DCNNは以下のようにT(⋅)を、2次元のフィルタに作用された変換関数のセットとして定義した。
T′Φ(Wx)=T(⋅,x,y)x,y∈{−k,…,k},(x,y)≠(0,0)
T(⋅,x,y)は、空間の次元に沿った(x,y)による第一ペランドの変換を意味する。これは形状を維持するために境界に適切なゼロパディングを行っている。提案されたフレームワークは以下2つの目的で利用することができる。
- 正則化済みマックスアウト・ネットワークの亜種として分類精度を向上させる
- ネットワーク圧縮のためのアーキテクチャによって可変な柔軟性により、効率的なパラメータを実現する
Table ⅢはVGG16をベースラインモデルとして利用し、転移コンボリューションフィルタによる異なる手法でのパフォーマンスを比較している。
この結果はCIFAR10, 100データセットによるTop-5誤差で報告されており、これらの手法が少量の低下もしくは全く変わらない分類精度でパラーメタの削減を達成していることが分かる。
欠点
転移情報をコンボリューションフィルタに作用させるアプローチのために、取り組まれている幾つかの問題ある。1つ目は、これらの手法はVGGのようなwide/flat アーキテクチャにのみ競争力のある性能を達成しており、GoogleNetやResidualNetのような narrow/special なものには未実施なことである。2つ目は転移の仮定がアルゴリズムを導くには強すぎることがあり、一部のデータセットでは結果が不安定になる。
コンボリューションへコンパクトなフィルタを用いることは、計算コストを直接減らすことができる。鍵となるアイディアは、速度を向上させるために緩いパラメトリックフィルタと過剰にパラメータ化されたフィルタを、コンパクトなブロックに置き換えることであり、これらはいくつかのベンチマークでCNNを大幅に高速化する。
Inception-v4では、3 x 3コンボリューションを2つの1 x 1へ分解する手法が用いられている。これは物体認識においてSOTAな高速化性能を達成している。SqueezeNetは3 x 3コンボリューションを1 x 1に置き換えている。これは50倍少ないパラメータとAlexNetと比較して等価な精度を持つ、コンパクトなネットワークとして作成されている。
ここは少し馴染みの無いので訳がかなり怪しい。(´・ω・`)
あらためて勉強し直したい領域だ。
Ⅴ. Knowledge Distillation
我々の知識の限りで、モデルを圧縮するために知識遷移を活用することがはじめに提案されたのはCauruらの研究である。彼らは強力な識別器の圧縮されたアンサンブルモデルを疑似データラベルと共にトレーニングし、元の巨大なネットワークの出力を再現した。しかしながら、この研究は浅いモデルに限られている。このアイディアは近年、Knowledge Distillation(KD) という方法で採用したのがDo Deep Nets Really Need to be Deep?の研究である。これはコンパクトなモデルが複雑なモデルにより学習された関数を真似することで、深く巨大なネットワークを浅いモデルに圧縮するというものである。KDベースのアプローチの主要なアイディアは、軟化されたソフトマックスを通したクラスの分布の出力の学習によって、大きな教師モデルから小さなモデルへの知識の推移することである。
Hintonらの研究の中では、KD圧縮のフレームワークを導入した。これは、生徒ー教師パラダイム(軟化された様式の教師の出力に伴って生徒がペナルティを受ける)に従って、ディープラーニングのトレーニングを削減するというものである。このフレームワークは深い教師ネットワークのアンサンブルを近い深さの生徒モデルに圧縮します。そのために生徒モデルは、分類の正ラベルと同じ容量で教師の出力を予測するようにトレイニングされます。この単純正にも関わらず、KDは様々な画像分類タスクにおいて、信頼できる結果を実証しています。FitNets: Hints for Thin Deep Netsの中では、深いニューラルネットワークの利点を活用することでネットワークの圧縮に取り組んでいる。これは、大きくて浅いネットワークを圧縮するために、FitNetsと呼ばれる細い深いネットワークを学習するアプローチを提案した。この手法は、より細く、より深いネットワークモデルのトレーニングを可能にするという考えを広げた。FitNetは、教師ネットワークの中間表現から学習を行うために、教師の全ての特徴マップを生徒に学習させている。しかしながら、教師と生徒が大きく異なる可能性があるため、このような仮定はとても厳しい。状況によっては、FitNetは性能と収束に悪影響を与えうる可能性がある。上記の全ての手法はMNIST, CIFAR-10, CIFAR-100, SVHN, AFLWによるベンチマークが検証されており、著しく少ないパラメータと乗算が要求される一方で、シュミレーションの結果は教師の性能と同等もしくは上回ることが示されている。
知識蒸留(Distillation Knowledge)の方針に沿った幾つかの拡張が存在する。Bayesian Dark Knowledgeの研究はパラメトリックな生徒モデルでモンテカルロ教師を近似した。提案されたモデルはオンライントレーニングと生徒モデルへの深いニューラルネットを用いている。軟化されたラベルを用いてその知識を表現していた以前の研究と違い、P Luoらはよりコンパクトでありながら、そのラベル確率と同程度の情報を保持したより上位のレイヤ内にあるニューロンを用いてその知識を表現した。Net2Netの研究は、以前のネットワークの知識をそれぞれ新しいネットワークのより深い、或いはより広いネットワークに瞬時に転移することによって、実験プロセスを高速化した。このテクニックは、ニューラルネット仕様間の関数保存変換の概念に基づいている。ZagoruykoらはFitNetの仮定を緩和するためAttention Transfer(AT)を提案した。これは全ての活性の要約であるAttentionマップを転移するものである。
欠点
KDベースのアプローチはモデルをより深く細くし、その計算コストを劇的に減らす手助けをする。しかし、ここにはいくつかの不都合がある。それらの1つは、KDがソフトマックス誤差関数を用いた分類タスクにしか適用できず、その便利さを妨げていることである。もう一つの欠点は、その性能を他の形態のアプローチと競争的にするために、モデルの仮定が厳しくなりすぎる場合があることである。
Ⅵ. Other Types of Approaches
初めに注意(Attention)ベースの手法をまとめよう。Attentionベースのシステムは、タスクに関連した少量の入力領域にアテンド(選択的に集中)することを学習し、計算を大幅に減少させる。Amjadらは低容量の小さなサブネットワークと大容量の大きなサブネットの2種類のモジュールを組み合わせたDynamic Capacity Network(DCN)が導入されました。小容量のサブネットワークは入力全体に活性化され、そのタスクに関連する領域をはじめに発見する。その後、アテンションメカニズムを用いて、大容量サブネットワークが入力のタスク関連領域に集中するように指示する。これを行うと、CNNモデルのサイズは劇的に小さくなりうる。
この方向性に沿って、Noamらは幾つかの重要なニューロンのみを計算する条件付き計算のアイディアを導入した。これは新しい形式の汎用目的のニューラルネットワーク構成要素であるsparsely-gated mixture-of-expoerts Layer (MoE)を提案した。MoEは多数のエキスパート、単純なフィードフォーワードニューラルネット、各入力を計算するためにエキスパートの疎な組み合わせを選択する訓練可能なゲーティングネットワークを考慮した。この論文では、Dynamic Deep Neural Network D2NNが紹介された。これは推論型のニューラルネットワークであり、入力に基づいたD2NNニューロンのサブセットを選択及び実行する。
MoEはその名前と執筆に関わっているメンバ(Hinton先生やJeff Dean氏など)のギャップがすごい笑 (^_^;)
まだチェックしていので、ぜひ読んでみたい。
他にも、全結合層をグローバルアベレージプーリングで置き換える事により、ニューラルネットワークのパラメータを削減する試みがある(DCNN、(Szegedyらの研究)[https://arxiv.org/abs/1409.4842])。このアイディアを適用することによって、GoogleNetやNetwork In Networkなどは幾つかのベンチマークにおいてSOTAな結果を達成している。しかしながら、これらアプローチと転移学習(ImageNetデータセットで学習された特徴を再利用し、新しいタスクに置いて適用する手法)を共に利用することは更に難しい。この問題はSzegedyらによって言及され、転移学習を有効にするため、ネットワークの最上位に線形層を加えることを動機付けている。
Gaoらの研究では、確率的深度(Stochastic Depth)と呼ばれる、空間的に変化する計算時間を用いたResidual Networkに基づいたモデル を対象とした。これは「短いネットワークでトレーニングをして深いネットワークでテストをする」という、一見して矛盾した設定を可能にしている。まず、非常に深いネットワークから開始し、トレーニング中に、それぞれのミニバッチに対してランダムにその層のサブセットを落とし、それらを恒等関数を用いて迂回させる。このモデルはエンドツーエンドで訓練可能で決定的あり、ブロックボックスの特徴抽出器として見なすことができる。この方向性に沿って、Y. Yamadaらは確率的深度を用いたピラミッド型のResidual Networkを提案している。
他には、FFTをベースとしたコンボリューションを用いて、コンボリューションのオーバヘッドを削減する研究や、Winogradアルゴリズムを用いた高速コンボリューションなどのアプローチがある。また、Zhaiらはより一般化されら確率的バージョンによってプーリング層の高速化を行う「Stochastic Spatial Sampling Pooling」と呼ばれる方策を提案した。この研究は計算の高速化だけを目的にしており、メモリストレージの削減は行わない。
今回の投稿で、ニューラルネットワークの圧縮と高速化における4つの主系統を網羅することができた。また、有名なFFTやWinograd等を含む。上記に分類されない事例も確認した。また、他の分類の中にはPyramidal Residual Networkという日本人の研究も紹介されていた。
前回のブログで訳したParameter Pruning and Sharingの時よりも知らない研究が多かったのでチェックが大変だ。(;^ω^)
次回は残りのBenchmarks, Evaluation and DatasetsとDiscussion and Challengesについて訳していこうと思う。
本ブログに対するご意見や間違いの指摘などがありましたら、ぜひコメントください。TwitterでもOKです。皆で議論を深めて行けるような場にしていきましょー。
コメント
コメントを投稿