深層学習の計算コスト削減、MobileNetの設計思想 | Accel Brain

深層学習の計算コスト削減、MobileNetの設計思想

Accel Brain; Console×

問題設定:「深層学習のコモディティ化」以降の深層学習

ニューラルネットワークは、先述した深層強化学習関数近似器表現学習自己符号化器など、多方面で活用され、とりわけ画像認識では高い精度を発揮している。しかし、その精度改善にはしばしば高いコストが必要になる。近年の「最先端(state of the art)」のネットワークは、多くのモバイルアプリケーションや組み込み系のシステム能を超えた計算リソースを要求している。したがって深層学習一般の参照問題となるのは、「計算コスト削減如何にして可能になるのか」である。

だが実態として、画像認識やモバイルアプリケーションのユースケースとの関連で言えば、深層学習の概念実証や研究開発がこの問題設定に注力し始めたのは、最近の出来事である。と言うのも、近年の「最先端(state of the art)」の深層学習は、その発展方法をネットワークの「大規模化」と「複合化」に頼り過ぎていたためだ。

今では「機械学習ライブラリ」も十分普及している。画像認識程度の難易度であれば、ニューラルネットワークを大規模化し、その構造的な複合性を高めれば、誰であれ、手を動かしているうちに、ある程度の「精度」を出すことができるであろう。GPUやCythonに注意を傾けておけば、アルゴリズムそのものの再設計の必要から目を逸らすこともできる。ある意味では、「計算コスト削減が如何にして可能になるのか」という問題設定を度外視することが、近年の深層学習の「最先端(state of the art)」としての立場を担保し、コモディティ化の加速化に貢献していたとも言える

無論、全てのPoCやR&Dが、計算コストに対する盲目的な姿勢に依存していた訳ではない。確かに一方では、精度と能の最適な均衡状態を掘り当てる(strike)ために、深層ニューラルネットワークをチューニングすることが、活発な研究主題にもなっている。周知のように、AlexNet、VGGNet、GoogleLeNet、ResNetなどのようなアルゴリズムは、しばしばこの主題において貢献してきた。この他にも、ニューラルネットワーク構造を如何にカットするか、あるいはネットワークのリンク(Connectivity)を如何に学習するのかについては、事前学習器や次元削減、あるいは転移学習問題との関連から、更なる研究が進められている。また最適化方法との関連で言えば、旧くからある遺伝アルゴリズム強化学習もまた無関係ではないはずだ。

しかしこうした問題領域の中でも、とりわけMobileNetに関しては、特筆すべき設計思想を表明している。2017年と2018年に提出されたMobileNetV1/V2に関する二つの論文では、上記の先行研究の多くのアプローチが、結局のところ「ネットワークの複合化」の一言に尽きると一蹴されている。MobileNetの設計者たちは、そのような問題解決策には与しない。MobileNetの設計思想は、多くの先行研究とは異なって、如何に単純な設計で済ませるのかを重視している。MobileNetは、モバイルアプリケーションなどのように制約された環境でも耐久して機能することに特化したニューラルネットワークとして設計されている。このアーキテクチャは、同一の精度に到達するまでに必要となる作動数やメモリの削減を可能にする。

そこで、ここではMobileNetV1/V2に関する以下の二つの論文を参照することで、その設計思想において参照される問題設定問題解決策観察する。それにより、どのような主題に対してどのような貢献が、どのような計算コスト問題に対してどのようなアルゴリズム設計が採用されているのかを記述していく。

  • Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., … & Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861.
  • Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L. C. (2018). Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation. arXiv preprint arXiv:1801.04381.

問題再設定:深層学習の計算コスト削減は如何にして可能になるのか

初めに、この二つの論文の著者たちの問題意識がより一層明瞭になるように、問題を再設定しておく。ここで記述する問題再設定は、上記の二つの論文における問題設定と論理的に同値ではない。だが以下の問題再設定の観点から上記の二つの論文の観察観察すれば、この論文の著者たちがどのような観点からアルゴリズムを導入しているのかをより良く理解することが可能になる。

アルゴリズム設計における計算コスト削減では、典型的な問題志向型の等価機能主義的なアプローチが採用される。アルゴリズムは何らかの問題設定を前提とした問題解決策に他ならない。だがその問題解決策としてのアルゴリズムが別の問題を派生させている場合には、当の問題設定問題解決に同様に貢献し得るような別のアルゴリズムを、つまり機能的等価物を用意しなければならない。

機能的に等価問題解決策は相互に代替可能である。それらの問題解決策は、同一の問題設定を前提とした上で、等しく有用なアルゴリズムとして観察される。機能的に等価問題解決策の中から特定の問題解決策だけが選択されるのは、基準となる別の区別が導入されることで、いずれか一方が採用されるべきであるという意思決定が下された場合だ。上述した問題設定との関連で言えば、ここでいう基準とは、計算コストに他ならない。計算複合性区別が導入される時、観察者はより低い計算コストで済ませられると期待できる問題解決策を優遇するようになる。

とりわけ計算コストという派生問題においては、まずモデルの規模やレイテンシーなどのような要因から速度劣化やサーバ負荷のような問題を派生させているアルゴリズムを特定させる問題設定から始まる。そして、当の問題設定をあくまでも前提とした上で、機能的に等価な別のアルゴリズムで代替することが如何にして可能になるのかを記述していくことになる。

その際、定式化という名目上、数学的な形式が導入される。数式は計算コスト削減に対する期待構造化する。この期待期待はずれに終わるか、その通りに成就するかは、専ら実装されたアルゴリズムの実行によって区別される。例えばCPU/GPU負荷やメモリ負荷などのような指標やTATやレスポンスタイムなどのような実行結果は、数学的に構造化された期待との差異を定量的に観察することを可能にする。この差異情報としてフィードバックされることで、観察者は、数学的な形式の再導入によって、更なる改善案を認知的に期待できるようになる。

したがって、数学的な形式の導入は、アルゴリズムーーとりわけまだ誰も知らない新しいアルゴリズムーーを「学習」する上で有用となる。逆に、数学的な形式を放棄した上での設計は、ただ既存の専門たちが用意したブラックボックスを規範的に期待するしかない。それは「暗がりに鬼を繋ぐが如く」ラッピングされた「機械学習ライブラリ」を盲目的に確信する程度の創意工夫に留まる。そうした観察者にできるのは、精々のところ、パラメタチューニングと題されたブラックボックス・テストだけである。

計算コスト削減を重視した設計思想を有しているMobileNetアルゴリズム設計もまた、数学的な形式を前提とした問題設定問題解決策の記述によって成り立っている。それはまず、標準的な畳み込み層機能を確認した上で、機能的に等価な別の畳み込み層を設計するという手続きから始まる。既存のアルゴリズムと代替案となるアルゴリズム機能的等価を保証した上で、初めて計算コスト比較可能性が担保されるからである。

この思考手続きについては、とりわけ「コンサル業界」の者たちならば馴染み深いはずである。例えば「猫の分類問題を前提に設計されたCNNのモデル」と「顧客の再訪問条件の特定のために設計されたロジスティック回帰モデル」をわざわざ「比較」したプレゼンテーションを敢行するコンサルタントは、恐らく一人もいないだろう。

重要となるのは、「何のアルゴリズムか」というWasを問うことではない。アルゴリズムの名前を連想ゲームのように紹介できる能力や、恣意的にパラメタチューニングした結果を「やってみた」とアピールするYoutuber的な能力は、ここでは何の役にも立たない。むしろその問題解決策としてのアルゴリズムが「如何にして可能になるのか」というWieを問うことこそが重要となる。そしてこの問いの前提となるのは、分類問題や回帰問題などのような、問題設定に他ならない。言い換えれば、問題となるのはアルゴリズムではない。問題こそが問題だ。

MobileNetの設計もまた問題志向型のアプローチとなっている。真っ先に参照されているのは、主題からもわかるように、既存の深層畳み込みニューラルネットワーク計算コストに他ならない。この計算コストが問題だからこそ、代替案となる新しいアルゴリズムを提起できる。ただし、既存のアルゴリズムで実現できていたことが新しいアルゴリズムではできなくなるというのは、可能な限り防ぎたい。だからこそ機能的等価が目指されるのである。

問題解決策:標準的な畳み込み層

標準的な畳み込み層は$$D_F × D_F × M$$の特徴写像Fを取り込み、$$D_F × D_F × N$$の特徴写像Gを生成する。ここで、$$D_F$$は正方形の横幅と縦幅を表す。学習データが画像データであれば、例えば当該画像のピクセル値を反映させた正方行列となる。またMは、入力チャネル(input channel)の数で、入力の深さ(input depth)を表す。$$D_G$$と表記すれば、それは出力された正方行列の特徴写像の縦幅と横幅を反映していることになる。またNは、出力チャネル(output channel)の数で、やはり出力の深さ(output depth)を表す。

Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., ... & Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861. p. 3より掲載。

Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., … & Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861. p. 3より掲載。

標準的な畳み込み層は、畳み込みカーネルKによってパラメタ化されている。そのサイズは、$$D_K × D_K × M × N$$である。ここでいう$$D_K$$は、正方行列として想定されているカーネルの空間次元を表している。またMは、入力チャネル数で、Nは出力チャネル数である。

これらを前提とすれば、標準的な畳み込みによって出力された特徴写像は次の内積で計算される。

$$G_{k, l, n} = \sum_{i, j, m}^{}\bf{K}_{i, j, m, n} \cdot \bf{F}_{k+i-1, l+j-1,m}$$

この計算コストは次のようになる。

$$D_K \cdot D_K \cdot M \cdot N \cdot D_F \cdot D_F$$

この計算コストは、入出力それぞれのチャネル数とカーネルサイズ、そして特徴写像のサイズの乗によって左右されることを表している。一方これに対してMobileNetモデルは、因子分解による区別の導入を介して、実質的な計算コストの縮減を可能にしている。

機能的等価物の探索:深さ志向の分離可能な畳み込み層

標準的な畳み込みの演算子はフィルタリングの効果を有している。ただしこのフィルタリング効果は、新しい特徴表現を実現するために、畳み込みカーネルと特徴結合(combination)に基づいている。このフィルタリングと結合ステップは、計算コストを縮減するために、「深さ志向の分離可能畳み込み(depthwise separable convolutions)」として利用することによって、二つのステップ区別される。

深さ志向の畳み込み層とポイントワイズの畳み込みの差異

深さ志向の分離可能畳み込みは、文字通り深さの方向に分離することが可能畳み込み層意味する。その層は次の二つの層に区別される。「深さ志向の畳み込み(depathwise convolution)」の層と「ポイントワイズの畳み込み(pointwise convolution)」の層である。

第一の層は、深さ方向(depthwise)の畳み込み層となる。それは入力チャネルごとに単一の畳み込みのフィルタに適用されることにより、軽量なフィルタリングとして実行される。第二の層は、1 × 1の畳み込み層であるために、ポイントワイズ(pointwise)の畳み込みと呼ばれている。この畳み込みは、入力チャネルの線形の結合を計算することを通じて新しい特徴を生成する責任を担う。MobileNetは双方をバッチごとに正規化した上で利用する。また双方の各層において、ReLu活性化関数が用いられる。

深さ志向の畳み込みのフィルタリング

Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., ... & Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861. p.3より掲載。

Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., … & Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861. p.3より掲載。

深さ志向の畳み込みでは、一つの入力チャネルごとに、すなわち一つの入力の深さに応じて、一つのフィルタを備えている。それは以下のように表現できる。

$$\hat{\bf{G}}_{k, l, m} = \sum_{i, j}^{}\hat{\bf{K}}_{i, j, m} \cdot \bf{F}_{k+i-1, l+j-1,m}$$

ここで$$\hat{\bf{K}}$$は深さ志向の畳み込みカーネルで、そのサイズは$$D_K × D_K × M$$となる。この時、このカーネルにおけるm次元のフィルタが、特徴写像Fにおけるm次元のチャネル数に適用される。これにより、フィルタリングされた出力値の特徴写像$$\hat{\bf{G}}$$におけるm次元のチャネル数が生成される。

この深さ志向の畳み込み計算コストは次のようになる。

$$D_K \cdot D_K \cdot M \cdot D_F \cdot D_F$$

ポイントワイズの畳み込みによる機能的な埋め合わせ

Nが不要となっているため、標準的な畳み込み計算コストよりも低くなっている。しかしここで実行されているのは、あくまでも入力チャネルのフィルタリングのみである。この畳み込みでは、新しい特徴写像を生成するための結合が実行されていない。そのため、計算コストが低いとは言え、これだけでは上述した標準的な畳み込みとの機能的等価が確保されないはずだ。

この関連からMobileNetでは、この畳み込みに加えて、新たな層が導入される。その層は、1 × 1の畳み込みを新しい特徴写像の生成として機能させることによって、深さ志向の畳み込みによる出力値の線形結合結果を算出する。この新たに導入された1 × 1の畳み込み層こそが、先述したポイントワイズの畳み込み層である。

Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., ... & Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861. p.3より掲載。

Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., … & Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861. p.3より掲載。

機能的要約して言えば、深さ志向の畳み込み層は標準的な畳み込み層に対する計算コストの縮減のために導入されている。だがこの層だけでは標準的な畳み込み層機能を全うできないために、その埋め合わせとして、補完的にポイントワイズの畳み込み層が導入される。深さ志向の畳み込み層とポイントワイズの畳み込み層構造的に結合されて初めて、深さ志向の分離可能な畳み込み層は、標準的な畳み込み層機能的等価物となる。

標準的な畳み込み層深さ志向の分離可能な畳み込み層機能的に等価問題解決策である。ここまでの確認を終えて初めて、双方の計算コスト比較可能であるという前提に立つことが許される。尤も、ポイントワイズの畳み込みにもまた計算コストが伴うことを忘れてはならない。M次元の1 × 1の畳み込みがN個並べられているのだから、その計算コストは次のように計算される。

$$M \cdot N \cdot D_F \cdot D_F$$

問題解決策:アルゴリズムの「比較」可能性

総じて言えば、深さ志向の分離可能な畳み込み層計算コストは、次のようになる。

$$D_K \cdot D_K \cdot M \cdot D_F \cdot D_F + M \cdot N \cdot D_F \cdot D_F$$

標準的な畳み込み層深さ志向の分離可能な畳み込み層計算コスト差異は、次のような比で表せるであろう。

$$\frac{D_K \cdot D_K \cdot M \cdot D_F \cdot D_F + M \cdot N \cdot D_F \cdot D_F}{D_K \cdot D_K \cdot M \cdot N \cdot D_F \cdot D_F}$$

$$ = \frac{1}{N} + \frac{1}{D_K^2}$$

深さ方向に分離可能畳み込みは、ほとんど$$D_K^2$$の要因によって、標準的な畳み込み層に比べて計算量を減らすことができている。MobileNetでは基本的に3×3の深さ志向の分離可能な畳み込み層を利用する。計算量はこれにより、標準的な畳み込み層に比べて8倍から9倍程度下がることが見込まれる。しかも精度の低下は最小限に抑えられるという。

問題解決策:横幅の乗数

実用的な観点かられば、モデルは小さければ小さいほど良く、処理は速ければ速いほど良い。そこでMobileNetでは、極めて単純なパラメタであるαが導入される。ここでいうαは「横幅の乗数(width multiplier)」を表す。1がベースラインとなり、大抵の場合は0.75や0.5や0.25のような値がセットされる。

このパラメタの機能は、各層のネットワークを形式的に薄くすることにある。このパラメタは入力チャネル数と出力チャネル数の双方に対して、文字通り乗で作用する。その際、計算コストは次のようになる。

$$D_K \cdot D_K \cdot \alpha M \cdot D_F \cdot D_F + \alpha M \cdot \alpha N \cdot D_F \cdot D_F (\alpha \in \{0, …, 1\})$$

問題解決策:解像度の乗数

計算コスト削減として機能する第二のハイパーパラメタは、「解像度の乗数(resolution multiplier)」となるρである。MobileNetでは、この乗数を入力画像データニューラルネットワークの各層における内部表現に一に適用させることで、一にそのサイズを縮減させることができる。

横幅の乗数と解像度の乗数をパラメタとして入力した場合、計算コストは次のようになる。

$$D_K \cdot D_K \cdot \alpha M \cdot \rho D_F \cdot \rho D_F + \alpha M \cdot \alpha N \cdot \rho D_F \cdot \rho D_F (\alpha \in \{0, …, 1\}, \rho \in \{0, …, 1\})$$

派生問題:次元削減は如何にして可能になるのか

n層を含んだ深層ニューラルネットワーク$$L_i$$を想定する。どの層も、$$h_i × w_i × d_i$$次元の活性化テンソルを有している。

ここで、次のように用語を再定義する。各活性化テンソルのうち、$$h_i × w_i$$はピクセル値を表す。$$d_i$$は次元を表す。形式的に、実際の画像の入力集合を前提とすれば、各層の活性化関数集合は、特徴写像の重要度に応じた多様体(manifold)を形成する。こうした多様体は本来解析的に算出することが不可能である。したがって我々は、この多様体質を経験的に理解しなければならない。

長らくこの多様体概念は、ニューラルネットワーク内部における低次元のサブ空間に埋め込まれていると想定されてきた。別の言い方をするなら、我々が深層の畳み込み層におけるdチャネルの個々のピクセルを観察できるのならば、それらのピクセル値でコード化された情報が、実際に幾つかの多様体に埋め込まれていることを認識できるはずである。多様体は低次元の部分空間に埋め込むことが可能なのである。

こうした多様体の振る舞いや属に関する事実は、単純に一層における次元削減によって把握されてきた。一見すれば、この埋め込みによって、演算空間次元削減可能になるかのように思える。

これに成功したのが、MobileNetV1であった。それは計算量と精度のトレードオフを「横幅の乗数」パラメタによって処理できるようにした。この直感的なチューニングが妥当であると仮定すれば、このパラメタは活性化空間における次元削減可能にしている。ただしそれは、多様体が全体の空間(entire space)に及ぶ限りにおいての話である。深層畳み込みニューラルネットワークが、ReLuのように、実際上座標変換ごとに非線形を有していることを念頭に置くなら、この直感は無力となる。

問題再設定:ReLuの情報損失

このことを把握するために、次の演算子を導入しよう。

$$A \ ReLu(Bx)$$

ここでのxは$$x \in \it{R}^n$$を満たす。nはチャネル数となる。Bは m × n の行列である。Aは n × m の行列となる。$$m \leq n$$の場合、この形式による変換は、情報損失させるという犠牲(at the cost of losing information)において、非線形構成する。逆に$$n \ll m$$の場合には、この形式での変換は、高次の非線形を有するものの、特に初期のアトランダムな重みにおいては、高い確率でまだ可逆的である。

周知のように、ReLuは恒等変換の関数として機能する一般的に、$$A \ ReLu(Bx)$$の結果が非ゼロの量Sを有する場合、内部Sに写像されたデータポイントは、入力データの線形変換Bを介して得られる。したがって、全次元の出力に対応する入力空間は、線形変換に限定される。言い換えれば、ReLuの活関数が搭載された深層畳み込みニューラルネットワークは、出力領域の非ゼロの量の部分に対しては、線形分類器の機能しか持ち得ない。

このことをSをxの関数として再記述するなら、次のようになる。

$$S(X) =\{ReLu(x)|x \in X\}$$

もしS(X)が非ゼロならば、次の補助命題が成り立つ。

$$interior \ S(X) \subseteq X$$

この補助命題を証明するために、$$S’ = interior \ S(X)$$と置こう。もし$$x \in S’$$ならば、$$x_i > 0$$となる。恒等関数であるReLuが負の座標のデータポイントを含まないことを想定すれば、確かにこの関連は妥当である。0の座標における内点などあり得ない。したがって、$$x \in S’$$を満たすいずれにおいても、$$x = ReLu(x)$$となる。

線形変換とReLu演算子を差し込む任意の構成において、この構成を保持するような入力空間Xにおける一部は、Sが非ゼロを維持する限り、線形変換となる。そしてそれ故に、この演算子はもはや、深いネットワークの中では、主導的な役割を持たなくなるだろう。しかしながら、このことは強調されている訳ではない。確かに、入力された多様体がn-1次元の多様体の中に埋め込まれている可能性があるのならば、最初の量はゼロなのだから、上述した補助命題は単純に真となる。入力された多様体の次元は、全く何の情報損失も起こり得ないと保証できるほど有意に低いということになる。

ReLu(x)の非線形が0未満と0の全体の写像となる射影関数として機能するために、ニューラルネットワークでこの非線形を利用すれば、情報損失を招く。一度ReLuが入力された多様体の部分をより低次元の出力値として分解してしまえば、後続するネットワークのより深い層は、分解された標本に対してもはや如何なる区別も導入できなくなる。それは、入力された多様体差異が検出されなくなるということである。グレゴリー・ベイトソンの有名な一句に従い、差異構成する差異であれば何であれ情報であるとすれば、ReLuが著しい情報損失を招いているのは、直感的にも容易に理解できるはずだ。これを前提とすれば、十分な規模の拡張層を伴わせたボトルネック層を導入する場合などには、ReLu活性化関数存在によって引き起こされる情報損失に耐を持つように、アルゴリズムを設計する必要がある。

一面においては確かに、ReLu活性化空間に対応する。だがその活性化は不可避的に情報欠損を伴わせている。ReLuの変換が情報を保存しながら実行可能なのは、入力される多様体活性化空間の著しく低次元の部分空間に埋め込むことが可能である場合に限られる。この場合にのみ、ReLuの変換は、特徴表現可能関数集合に、特徴表現に必要となる情報複合性を導入することを可能にするに過ぎない。

Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L. C. (2018). Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation. arXiv preprint arXiv:1801.04381., p. 3より掲載。

Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L. C. (2018). Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation. arXiv preprint arXiv:1801.04381., p. 3より掲載。

例えば上図では、入力データの線形変換による出力結果が次元数ごとに可視化されている。このReLu変換は、高次元空間に埋め込まれた低次元の多様体表現している。5次元までの出力結果と15次元、30次元の出力結果比較してれば、その差異は際立っている。特に2,3次元の場合には、多様体データポイントは崩壊しているために、情報損失が生じていることがわかる。一方、15,30次元の場合には、高次元の非凸形となっている。

次元削減問題の枠組みにおいて、多様体というのは、高次元の活性化空間に対応した低次元のサブ領域に埋め込まれていなければならない。つまりReLu関数は、より高い複合性の縮減とその保存が如何にして可能になるのかという問題を派生させるのである。もし多様体ReLu変換後に非ゼロの量で残存するなら、それは線形変換に対応する。しかしReLuにおいて、入力された多様体情報複合性を完全に保存することができるのは、入力された多様体が入力空間のより低い次元のサブ空間に埋め込まれている場合に限られる。

問題解決策:反転残差構造

次元削減問題とReLu情報損失問題は、MobileNetV2の設計思想に大きな方向付けを与えている。これらのReLuに関する洞察が、ニューラルネットワーク深層アーキテクチャ最適化のための手掛かりを示しているのである。実際MobileNetV2の設計者たちは、多様体が低次元であるという前提に立つことで、多様体情報損失を補うために設計された「線形ボトルネック層(linear bottleneck layers)」を畳み込みブロックの中に挿入する。MobileNetV2の設計においては、このボトルネック層の機能が、とりわけ従来の「残差ブロック(residual block)」との区別によって特徴付けられている。

基本的にMobileNetV2MobileNetV1機能的な拡張と見做して差し支えはない。確かに中間水準の拡張層(expansion layer)における特徴フィルタリングでは、MobileNetV1でも採用されていた軽量の「深さ志向の畳み込み」が導入されている。しかしMobileNetV2アーキテクチャにおいて重要となるのは、それが「反転残差構造(inverted residual structure)」に基づいている点である。伝統的な残差モデルが入力と出力の拡張表現を利用しているのに対して、この構造では、残差ブロックの入力と出力が線形の「薄いボトルネック層(thin bottleneck layers)」になっている。

Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L. C. (2018). Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation. arXiv preprint arXiv:1801.04381., p. 3より掲載。

Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L. C. (2018). Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation. arXiv preprint arXiv:1801.04381., p. 3より掲載。

問題解決策:深層残差学習

残差ブロックを利用した深層残差学習(Deep Residual learning)は、ある層における最適な出力値を学習するというよりは、その層の入力値を反映させた残差関数学習する。仮に$$\it{H}(x)$$を幾つかの層数で積層化された層で学習されるべき写像であると見做した場合、xはこれらの積層の中の最初の層で入力される値ということになる。

ここで、入力値と出力値の次元数が同一となるモデルを仮定しよう。この場合、もし多重に非線形を有した層が複合的な関数として漸近的に近似されることが可能であるという前提に立つならば、例えば$$\it{H}(x) – x$$のように、残差関数を漸近的に近似することが可能であると想定できる。つまり、$$\it{H}(x)$$を近似する積層を予期するというよりは、$$\it{F}(x) := \it{H}(x) – x$$を近似する層を想定するのである。これを前提とすれば、元々の関数は、$$\it{F}(x) + x$$であるということになる。

この再記述は、各層に渡って伝播される勾配能力を改善することを意図している。深層残差学習では各重み層との関連から残差ブロックとショートカット用のリンクが追加される。

 He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778)., p771より掲載。


He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778)., p771より掲載。

定式化して言えば、重み層(Weight layer)の個数がiのグラフに挿入されている残差ブロックは次のように定義される。

$$y = \it{F}(x, \{W_i \}) + x$$

xは入力値で、yは出力値となる。関数Fは、学習されるべき残差写像となる。上図は、i = 2の場合となる。この時、$$\it{F} = W_2\sigma (W_1x)$$となる。σはReLu関数意味する。$$\it{F} + x$$の演算はショートカットの結合リンクによって実行される。このショートカットの結合リンクの導入によって新たなパラメタや計算コストの増大が伴う訳ではない。これは実践上魅力的であるばかりか、通常のReLuニューラルネットワーク残差ネットワークの比較観点を設定する上でも重要となる。と言うのもこれにより、双方は機能的に等価となり、同一のパラメタ数、深さ、広さを前提とした上で、計算コスト比較することが可能になるためである。

入力値と出力値は同一の次元でなければならない。次元を統一するという名目上、ここでは$$W_s$$の正方行列を線形投影の作用素として導入することにより、残差ブロックは次のように再記述できる。

$$y = \it{F}(x, \{ W_i \}) + W_s x$$

残差ブロック機能的拡張性意識して設計されている。と言うのも、仮に他に追加された層で変換が不要となる場合でも、重み層の出力値を0にすれば、残差ブロックによる影響を防ぐことができるためだ。

機能的等価物の探索:ボトルネック残差ブロック

一方、MobileNetV2では、上述したボトルネックブロックの演算子$$\it{F}$$が、次のような三つの演算子によって記述されている。

$$\it{F}(x) = [A \circ \it{N} \circ B]x$$

ここで、Aは次のような線形変換を表す。

$$A : \it{R}^{s × s × k} \rightarrow \it{R}^{s × s × n}$$

一方、$$\it{N}$$はチャネルごとの非線形変換となる。

$$\it{N} : \it{R}^{s × s × n} \rightarrow \it{R}^{s’ × s’ × n}$$

そしてBは、サイド出力領域での線形変換となる。

$$B : \it{R}^{s’ × s’ × n} \rightarrow \it{R}^{s’ × s’ × k’}$$

このアルゴリズムは、内部のテンソルIがt個のテンソルの結合(concatenation)として表現可能であるという事実に基づいている。ここで各テンソルは$$\frac{n}{t}$$であるため、上記のボトルネックブロックの演算子は次のような累積合計で表現される。

$$\it{F}(x) = \sum_{t=1}^{t}(A_i \circ N \circ B_i)(x)$$

n = tを用いることで、全ての時点において、中間水準における単一チャネルのみで済ませることが可能になる。この技術(trick)を利用することを可能にしているのは、次の二つの条件である。

  • 内部の変換がチャネルごとに実行されているということ。それは非線形と深さ志向の計算を含意している。
  • 連続的でチャネルごとではない演算子が、入力データのサイズと出力データのサイズの比率を有意にしていること。

大多数の伝統的なニューラルネットワークでは、こうした技術(trick)が有意な改善を示すことは無い。

複合性の縮減とその保存

ボトルネックブロックは一見して残差ブロック類似している。双方は残差を参照する点で類似している。だがMobileNetV2では、単純に深層残差学習が採用されている訳ではない。より計算コストの低い方法として、反転残差構造が提唱されている。これは従来のResNetと比較するとわかり易い。

ResNetの深層残差学習では、「ボトルネック層(Bottleneck layer)」を設置することにより、特徴写像圧縮した上で畳み込みの計算を実行する部分を有していた。反転残差構造の「ボトルネック・ブロック」は、このボトルネックのアイディアを踏襲している。ただし、このボトルネック層には必要な全ての情報損失することなく含まれているという直観的な洞察から、MobileNetV2反転残差構造では、このボトルネック層からショートカットのリンクが結び付けられている。

このショートカットは、グラフィカルに考えれば、古典的な残差結合類似している。MoblieNetV2では、複数の層に渡って伝播する勾配の能力を改善することが目指されている。しかし反転残差モジュールの設計は、膨大なメモリを効率化する。

MobileNetV2では、反転残差モジュール取り除くこともできる。このアーキテクチャでは、畳み込みブロックを除去し、残りのネットワークを再構築することもできる。この再構築において、再訓練は必要とはならない。この機能的再利用可能性機能的拡張性が、能と精度のトレードオフの処理に貢献をもたらしている。

しかし古典的な残差結合との決定的に重要な差異となるのは、残差ネットワークでは、情報を損失することなく圧縮して保持していると仮定できるボトルネック層が、高次元の情報のテンソルに対する低次元の補完として扱われているということである。多様体が低次元であると仮定するなら、この線形のボトルネック層を畳み込みブロックに挿入することによって、これを捕捉することが可能になる。線形の層を利用することは、非線形があまりにも多くの情報を破壊するのを防止する上で重要となる。

問題解決策:許容力と表現力の区別

MobileNetV2アーキテクチャにおける一つの特徴となるのは、構築されたブロックすなわちボトルネック層における入力/出力の領域(domain)と、その層の変換(layer transformation)とを、自然区別することが可能になることにある。ここでいう層の変換とは、入力を出力へと変換する非線形関数意味する。

この区別を前提とすれば、前者は各層のネットワークにおける「許容力(capacity)」と見做すことができる一方で、後者はその「表現力(expressiveness)」と見做せる。この区別が導入されることで、MobileNetV2アーキテクチャは、既存の古典的な畳み込みブロックとの差異を確保している。従来の畳み込みブロックにおいて双方は、規則的かつ分離可能な概念として区別されていた。だがこれら双方の概念は、区別された上で絡み合っており、出力層の深さの関数となっていた。

一方、これに対してMobileNetV2の場合は、内部の層の深さが0である時、その畳み込みはショートカット結合に基づいた恒等関数となる。その拡張率が1よりも小さい場合、この関数は古典的な残差畳み込みブロックとなる。しかしながら、MobileNetV2の目的においては、拡張率は1よりも大きい場合に最も有用となる。この解釈によって、ネットワークの表現力は、その許容力から区別されるべきであることがわかる。許容力と表現力の区別の導入による探索は、ネットワークの質に関するより良き理解をもたらす。

参考文献

  • He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778).
  • Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., … & Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861.
  • Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L. C. (2018). Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation. arXiv preprint arXiv:1801.04381.