【文献】
LIU Wenran et al.,TRANSFER KNOWLEDGE FOR HIGH SPARSITY IN DEEP NEURAL NETWORKS,Proceedings of 2017 IEEE Global Conference on Signal and Information Processing,IEEE,2017年11月14日,pp.1354-1358
(58)【調査した分野】(Int.Cl.,DB名)
入力データの部分集合に関して(i)第1のニューラルネットワークにより生成された出力と、(ii)第2のニューラルネットワークにより生成された出力と、の第2の差異は、カルバックライブラー(KL)情報量関数により推定される、請求項1に記載の方法。
最終的な損失関数は、訓練され、圧縮され、かつスパース性の高いニューラルネットワークを得るように最適化され、当該ニューラルネットワークは、第2のニューラルネットワークにおける複数の重み未満の、1つまたは複数の決定された重みを有し、第1のニューラルネットワークの選択は、ニューラルネットワークにおける1つまたは複数の層のパラメータ数に基づく、請求項1に記載の方法。
入力データの部分集合に関して(i)第1のニューラルネットワークにより生成された出力と、(ii)第2のニューラルネットワークにより生成された出力と、の第2の差異は、カルバックライブラー(KL)情報量関数により推定される、請求項7に記載のシステム。
最終的な損失関数は、圧縮され、かつスパース性の高い訓練済みニューラルネットワークを得るように最適化され、当該ニューラルネットワークは、第2のニューラルネットワークにおける複数の重み未満の、1つまたは複数の決定された重みを有し、第1のニューラルネットワークの選択は、ニューラルネットワークにおける1つまたは複数の層のパラメータ数に基づく、請求項7に記載のシステム。
【発明を実施するための形態】
【0024】
例示的な実施形態が、添付の図面を参照して説明される。図面において、参照符号の最も左の数字は、当該参照符号が最初に現れる図面を特定する。利便性がある場合には、図面を通して同一または類似の部分を示すために同一の参照符号が用いられる。開示された原理の例及び特徴が本明細において説明されるが、開示された実施形態の範囲を逸脱することなく、修正、適用、及び他の実施が可能である。以下の詳細な説明は、単に例示としてのみ考慮されるべきであり、真の範囲は続く特許請求の範囲によって示されることが意図される。
【0025】
深層ニューラルネットワークにおいて、研究は、モデル精度の妥協を最小限にしながら、メモリ及び計算効率が良い、組み込みプラットフォームにおけるネットワークモデルを志向している。この目的のために、本開示は「変分生徒」(“Variational Student”)と称するアプローチを実施する。当該アプローチにおいて、知識の蒸留(KD)フレームワークの圧縮性による利点、及び変分推論(VI)技術のスパース性をもたらす性能が議論される。
【0026】
過去にモデル圧縮のためのいくつかのアプローチが実施されてきた。当該アプローチは、例えばパラメータの枝刈り及び共有、低ランク分解、コンパクトな畳み込みフィルタ、並びに知識の蒸留(KD)である。本開示は、KDに注目する。KDに関連したシステムは、大きく複雑なニューラルネットワーク(例えば、場合により事前訓練済みの教師モデル)から、別のニューラルネットワーク(例えば、小さな生徒ネットワーク)に、生徒ネットワークを訓練するために教師ネットワークのクラス分布を用いて知識を蒸留する手法を実施する。KDに基づくアプローチは、教師に関して再訓練の労力を省くだけでなく、より小さな圧縮された生徒を得られるため魅力的である。KDは、最初は浅いモデルのために提案され、後に深層モデルに拡張された。例えば、顔認識タスクにおけるモデル圧縮に対する、幅が広く層が深いネットワークの圧縮のためのFitNets等のように、モデル圧縮の改善を達成するようなKDアプローチの派生がいくつか提案されてきた。
【0027】
並行して、DNNにおけるスパース性を達成するためのアプローチは、ベイジアンの途を辿ってきた。ベイジアンニューラルネットワーク(BNN)は、過学習に頑健であり、小規模なデータセットから学習し、重みあたりの確率分布のパラメータを通して不確実性の推定を提供する。さらに変分推論の定式化は、予測精度とモデルの複雑性との分離を明確にすることができ、DNNの分析と最適化の両方に役立つことから、説明可能なAI手法に寄与する。ニューラルネットワークのためのベイズ推論の文脈における最も初期の貢献の一つは、ネットワークの重みの事後確率を推論するために、これらの重みをドロップアウト率と結合的に学習することを目的として提案された変分ドロップアウト(VD)技術である。他には、VDの目的関数においてKL情報量の項の近似を提供するスパース変分ドロップアウト(SVD)技術が提案され、これは全結合及び畳み込み層においてスパースな重み行列を実現することが示されている。別のアプローチは、重みの事前分布に加えて、事前分布のパラメータ上で超事前分布(hyperprior)が仮定される変分ベイジアンドロップアウト(VBD)技術を含む。さらに他のアプローチは、固定小数点精度に基づく重みの符号化を用い、構造化されたスパース性を利用するためにニューラルネットワークの計算構造を考慮して、スパース性を超えた圧縮を達成する技術を含む。
【0028】
本開示の実施形態は、原型のKDフレームワークにおいて、二値化ニューラルネットワーク(BNN)に基づく生徒を考える。そのようなアプローチの利点は、2つの要素から成る。第1のニューラルネットワーク(例えば、生徒ネットワーク)は、KDにより第2のニューラルネットワーク(例えば、教師ネットワーク)と比べてコンパクトであることに加えて、生徒のベイズ的性質により、SVDまたはVBDといったスパース性を利用するいくつかの技術を用いることができ、したがってスパースな生徒を得られる。特に、教師ネットワークからのヒント(または生成された出力)は、教師によって達成された精度と同程度の精度を保ちながら、コンパクトかつスパースな生徒ネットワークを得ることに役立つ。しかしながら、依然として1つの疑問が残る。すなわち、生徒におけるスパース性をより大きくするために、教師ネットワークからの情報を利用することができるか、ということである。本開示は、教師ネットワークの重みに対して、生徒ネットワークの重みにブロックスパース正則化(BSR)の制約を用いることにより、この技術的問題に対処する。
【0029】
ブロックスパース制約は、スパースなニューラルネットワークを実現するために利用されてきた。例えば、BSRに基づくグループラッソ(Group−Lasso)正則化が、CNN及びRNNにおいて性能を向上するようなスパースな構造を学習するために利用された。マルチタスク学習(MTL)の文脈においては、既存のアプローチは、異なるタスクのための共有されたパラメータ集合を学習するために、グループラッソ、l
1/l
q形式の混合ノルムの一種を用いたスパース性を導入した。さらに、BSRは、関連したタスクがMTLフレームワークで学習される必要があるとき、スパースな重みをもたらす。同様の方針で、生徒及び教師ネットワークが関連したタスクに用いられることから、本開示は、BSRがKDフレームワークにおいて、教師ネットワークの重みを使って生徒ネットワークの重みをスパースにする能力を調査する。すなわち、本開示におけるシステム及び手法は、KDの観点またはベイジアンのフレームワークにおいて、スパース性を導くためにBSRを用いるように実施される。
【0030】
以下、図面、具体的には
図1から
図7を参照する。図面において類似の参照符号は、図面を通して対応する特徴を示す。好適な実施形態が提示され、これらの実施形態は、例示的なシステム及び/または手法という観点において説明される。
【0031】
図1は、本開示の実施形態に従って、圧縮され、スパース性が高い訓練済みネットワークを得るように、深層ニューラルネットワークを訓練するためのシステムの例示的なブロック図を示す。システム100は、「訓練システム」とも称され、以降交換可能に使用される。一実施形態において、システム100は、1つまたは複数のハードウェアプロセッサ104、通信インタフェース装置または入力/出力(I/O)インタフェース106(インタフェースとも称される)、及び1つまたは複数のハードウェアプロセッサ104に動作的に結合された1つまたは複数のデータ記憶装置またはメモリ102を含む。1つまたは複数のプロセッサ104は、1つまたは複数のソフトウェア処理コンポーネント及び/またはハードウェアプロセッサでもよい。一実施形態において、ハードウェアプロセッサは、1つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号処理装置、中央処理装置、状態機械、ロジック回路、及び/または操作命令に基づき信号を操作する任意の装置として実装可能である。プロセッサは、各種機能の中でも特に、メモリに記憶されたコンピュータ可読命令を取得して実行するように構成される。一実施形態において、装置100は、ラップトップコンピュータ、ノートブック、携帯端末、ワークステーション、メインフレームコンピュータ、サーバ、ネットワーククラウド等の種々の計算機システムとして実装される。
【0032】
I/Oインタフェース装置106は、種々のソフトウェアおよびハードウェアインタフェースを含み、例えば、ウェブインタフェース、グラフィカルユーザインタフェース等であり、例えばLANケーブル等の有線ネットワーク及びWLAN、セルラ、衛星等の無線ネットワークを含む多様なネットワークN/W及びプロトコルタイプ内で多重通信を容易化できる。一実施形態において、I/Oインタフェース装置は、いくつかのデバイスを相互に、または別のサーバに接続するための1つまたは複数のポートを含む。
【0033】
メモリ102は、当業者に知られた任意のコンピュータ可読媒体、例えばスタティックRAM(SRAM)及びダイナミックRAM(DRAM)のような揮発性メモリ、並びに/または読み出し専用メモリ(ROM)、消去可能プログラマブルROM、フラッシュメモリ、ハードディスク、光学ディスク、及び磁気テープのような不揮発性メモリを含む。一実施形態において、データベース108がメモリ102に格納され、データベース108は、情報を含む。当該情報は、ドメイン情報、特定のドメインに関する入力データ、正解情報、ニューラルネットワーク(例えば、生徒ネットワークのような第1の(深層)ニューラルネットワーク、教師ネットワークのような第2の(深層)ネットワーク)における層に関する重み、重み更新情報、スパース性制約、変分ドロップアウトパラメータ、交差エントロピー損失関数、予め定義された閾値等である。一実施形態において、メモリ102は、1つまたは複数の技術(例えば、変分推論、ブロックスパース正則化技術等)その他同種のものを格納する。上述の技術は、1つまたは複数のハードウェアプロセッサ104によって実行されると、本明細書において説明される手法を実行する。メモリ102はさらに、本開示のシステムと方法によって実行される各ステップの入力/出力に関する情報を含む。より具体的には、重み更新に関する情報、生徒及び教師ネットワークの出力、入力データからのサンプルの各部分集合に対するネットワークの出力の差異、入力データからのサンプルの各部分集合に対する生徒ネットワークの出力と正解情報との差異などがメモリ102に記憶される。すなわち、各ステップで与えられる入力と、生成される出力がメモリ102に含まれ、さらなる処理と分析に利用される。
【0034】
図2は、
図1に関連して、本開示のネットワーク構造に係る実施形態に従って、コンパクトかつスパースなネットワークを学習するための訓練手順を図示する例示的なブロック図を示す。
図3は、
図1−
図2と関連して、本開示のネットワーク構造に係る実施形態に従って、コンパクトかつスパースなネットワークを学習するための方法を示す例示的なフロー図である。一実施形態において、システム100は、1つまたは複数のデータ記憶装置またはメモリ102を備える。データ記憶装置またはメモリ102は、1つまたは複数のハードウェアプロセッサ104に動作的に結合され、1つまたは複数のプロセッサ104により当該方法の各ステップを実行するための命令を格納する。本開示に係る方法のステップは、
図1のシステム100の構成要素、
図2の例示的な訓練手順、及び
図3に示されたフロー図を参照して以下に説明される。本開示の一実施形態において、ステップ202では、1つまたは複数のハードウェアプロセッサ104は、複数の重みを備える第1のニューラルネットワークを初期化する。一実施形態において、第1のニューラルネットワークは、深層ニューラルネットワークである。別の実施形態においては、第1のニューラルネットワークは、生徒ネットワークである。
【0035】
ハードウェアプロセッサ104は、さらに、下記のステップを繰り返し実行することにより、第1のニューラルネットワークを訓練する。ステップ202において、1つまたは複数のハードウェアプロセッサ104は、第1のニューラルネットワークに、(i)特定のドメインに応じて受け取った入力データの部分集合、及び(ii)当該入力データの部分集合に応じた正解情報を渡す。同様に、「教師ネットワーク」と称される第2のニューラルネットワークも、ドメイン特有の入力データが渡され、初期化される。本明細書において、「第2のニューラルネットワーク」、「第2の深層ニューラルネットワーク」及び「教師ネットワーク」という表現は、交換可能に使用される。同様に、本明細書において、「第1のニューラルネットワーク」、「第1の深層ニューラルネットワーク」及び「生徒ネットワーク」という表現は、交換可能に使用される。本開示の一実施形態において、教師ネットワークは、事前訓練済みニューラルネットワークである。
【0036】
本開示は、スパースなネットワークを学習するため、または生徒ネットワークを訓練するために使用される知識の蒸留フレームワーク及び変分推論技術を説明する。以降、まず、N個のサンプルからなるデータセット
【数1】
において、任意のニューラルネットワークモデルが訓練される。
【0037】
知識の蒸留:
上記のように、知識の蒸留(KD)フレームワークにおいて、関連のある情報が、教師ネットワークと称される複雑で層がより深いネットワークまたはネットワークのアンサンブルから、よりシンプルで層が浅い生徒ネットワークと称されるネットワークに転移される。従って推論の間に、精度での妥協を最小にしながら、より少数のパラメータを有する圧縮されたネットワークが得られる。KDフレームワークにおいて生徒MLPを訓練するために用いられる損失関数L
KDは、次式となる。
【数2】
ここで、x=[x
1,...,x
N]及びy=[y
1,...,y
N]は、それぞれ入力及び対応するラベルであり、λ
Tはラグランジュ乗数である。さらに、
【数3】
においてLs及びLtは、それぞれ生徒及び教師ネットワークにおける層の数を表し、
【数4】
は、それぞれ生徒及び教師ネットワークの重みテンソルである。関数fs(.,.;.)及びft(.,.;.)は、各々のロジット
【数5】
及び
【数6】
を生成する生徒及び教師モデルを表す。さらに、項Ls(.,.)は生徒に関する損失関数を表し、L
H(.,.)は、教師から得られるヒントを表す。一実施形態において、本明細書でのヒントは、教師ネットワークにより生成される出力を意味する。特に、項L
H(.,.)は、両ネットワークの出力における差を最小化し、生徒が教師ネットワークを模倣することに寄与する。
【0038】
この解析は、MLPネットワークにおいて行われたが、生徒及び教師ネットワークの重みが4次元テンソル、すなわち
【数7】
及び
【数8】
である場合において、容易にCNNに拡張可能である。
【0039】
ステップ206において、1つまたは複数のハードウェアプロセッサ104は、入力データの部分集合に関する第1のニューラルネットワークにより生成される出力と、対応する正解情報との差に基づき、第1のニューラルネットワークの複数の重みを動的に更新する。例えば、第1のニューラルネットワークの出力は、長さ「n」のベクトル(例えば、nはクラス数)であり、各要素は、(全要素の和は1であるため)入力がnクラスの1つに所属する確率を表す。予測の正解は、長さ「n」の別のベクトルであり、入力に関して真のクラスが1で、残り全てが0であることに対応するインデックスを有する。
【0040】
ステップ208において、1つまたは複数のハードウェアプロセッサ104は、当該部分集合に対する(i)第1のニューラルネットワーク及び(ii)第2のニューラルネットワークにより生成された出力における第2の差(例えば、別の差)に基づき、第1のニューラルネットワークの複数の重みを動的に更新する。例えば、第1のニューラルネットワークの出力(例えば、生徒ネットワークの出力)及び第2のニューラルネットワークの出力(例えば、教師ネットワークの出力)の両出力は、長さ「n」のベクトル(例えば、nはクラス数)であり、各要素は、(全要素の和は1であるため)入力がnクラスの1つに所属する確率を表す。ステップ206及び208によると、各々のニューラルネットワークにより出力が生成される。解くべき手元のタスクが分類問題であると仮定すると、本明細書において生徒及び教師の両ニューラルネットワークにより生成される出力は、ベクトルとみなされる。当該ベクトル中の値は、特定のクラスに入力が所属する確率を表し、クラスは、当該ベクトルにおけるその番号によって示される。重みは、確率分布(例えば、本開示と、その関連システム及び方法で利用される一様分布)からのサンプリングによって初期化される。その後、重みは、確率的勾配降下法及び/またはAdam最適化手法(例えば、https://ruder.io/optimizing-gradient-descent/index.html#adamを参照)を用いて更新される。
【0041】
図2のように、第1のニューラルネットワーク(生徒ネットワーク)の訓練手順の概要が図示される。KDフレームワークにおいて用いられる訓練手法に従って、教師ネットワークがまず訓練され、その重みが保存される。これらの重みは、生徒ネットワークの訓練中に必要なヒントを生成するために用いられる。生徒ネットワークは、上記の式(1)において、
【数9】
である損失関数を用いて訓練される。
【0042】
上式において、
【数10】
は、正解クラスのワンホット表現であり、
【数11】
及び
【数12】
は、式(1)に与えられるように、それぞれ生徒及び教師ネットワークからの出力ロジットである。ここで、Lsは、N個のデータサンプルに渡る交差エントロピー損失であり、D
KLは、KL情報量を表し、σ´(.)は、ソフトマックス関数を表す。さらに、Tは、温度パラメータと呼ばれ、当技術分野において知られるように、クラスに渡る確率分布の「柔らかさ」を制御する。
【0043】
ステップ210において、1つまたは複数のハードウェアプロセッサ104は、1つまたは複数のスパース性制約(例えば、本開示において、及び本開示により用いられるブロックスパース正則化及び変分ドロップアウトのようなスパース性制約)を、第1のニューラルネットワークの複数の重みに適用する。当該適用は、ブロックスパース正則及び変分ドロップアウト技術の利用により、第2のニューラルネットワークの重みの集合に関して、第1のニューラルネットワークの複数の重みから、または重みにおいて、1つまたは複数の重みを無効化するか、または維持するかを決定するように行う。
【0044】
変分推論を通したスパース性:
重みW、及び重みに関する事前分布p(W)を有するBNNを考える。BNNの訓練は、次式で与えられる変分下限の最適化を含むことが示されている。
【数13】
ここで、
【数14】
は、ネットワークの重みに関する真の事後分布の近似であり、
【数15】
は、事後分布とパラメータ分布のKL情報量である。期待対数尤度(expected log-likelihood)
【数16】
は、次式で与えられる。
【数17】
【0045】
すなわち、入力データの部分集合についての出力と、対応する正解情報との差が、上記の尤度損失関数を用いて推定される。上記の尤度損失関数は、「交差エントロピー損失関数」とも称され、本明細書において交換可能に使用される。
【0046】
上記から、事前分布p(W)と、近似分布
【数18】
における異なる仮定に基づき、異なる変分ベイズ的定式化が得られることは明らかである。そのような定式化の中で、スパース性を促進するベイズ推論手法が、当技術分野において知られるスパース変分ドロップアウト(SVD)技術である。SVDは、重み行列
【数19】
の要素に対数スケールの変則一様事前分布を仮定し、
【数20】
は連続ガウス分布であるように導かれる。SVDは、VD技術に基づくため、対応するBNNの訓練は、重みあたりの変分ドロップアウトパラメータα
k,h、及び重みw
k,hの分布を表現するパラメータθ
k,hの学習を含む。すなわち変分パラメータは、
【数21】
である。さらに、VBDは、SVD技術の拡張であるため、重み行列Wの要素に関して対数スケールの一様事前分布を維持する。加えて、VBDは、
【数22】
の最適化と一致する重み分布のパラメータに関する階層的な事前分布を用いる。本開示では、生徒BNNはSVD及びVBD技術を用いて訓練され、当該技術の相対的な長所及び短所が説明される。
【0047】
生徒ネットワークにおいてスパース性を適用するため、本開示は、損失関数における変分正則化(VR)として、SVD及びVBDの両定式化を用いる。これらの定式化における主な違いは、式(4)において用いられるKL情報量の近似に起因する。SVDのために提案されたKL情報量の項の近似は、次式となる。
【数23】
ここで、k
1=0.63576,k
2=1.87320,及びk
3=1.48695である。さらに、σ(.)はシグモイド関数を表し、θ
k,hはw
k,hの確率分布をパラメータ化する。すなわち、(i)第1のニューラルネットワーク及び(ii)第2のニューラルネットワークにより生成される出力における別の差が、上式に表される上記のカルバック−ライブラー(KL)情報量関数を用いて推定される。
事前分布の階層的な設計に起因して、VBDでは、式(2)における変分下限のKL情報量項が
【数24】
に帰着する。
VRを通してスパース性制約を導入すると、損失関数は次式のように得られる。
【数25】
ここで、λvは、KL情報量項の正則化定数であり、L
KLは、使用される変分ドロップアウトの種類に応じて
【数26】
または
【数27】
となる。
【0048】
ブロックスパース正則化を通したスパース性の導入:
本開示の修正されたKDフレームワークにおいてBSRの制約を利用する背景にある意図を、以下に説明する。
【0049】
T個の別のタスクを解くためにT個のモデルが使用される状況を想定する。i番目のモデルT
iは、学習可能なパラメータベクトルP
iと関連付けられ、全体のパラメータ行列Pは、P=[P
1,...P
T]、すなわち、タスクごとのパラメータベクトルp
iを連結することにより形成される。したがって、典型的なMTLの状況では、このようなパラメータ行列Pを同時学習する(jointly learn)ことが目的となる。いくつかの従来手法では、タスクが関連すると考え、全モデルがパラメータの小さな集合を共有すると仮定する。単一タスクの学習設定ではp
iに関するl
1ノルムが用いられる一方、マルチタスクの設定ではBSRを用いる必要がある。さらに既存の従来アプローチは、関連するタスクが学習されるとき、BSRによりスパースなパラメータ行列Pに帰着すること、すなわち関連するタスクは、関連しないタスクに比べ活発な(fever)特徴量を学習しやすいことを示してきた。
【0050】
マルチタスク学習(MTL)の文脈におけるBSRの有効性は明白であるが、本開示は、本開示に係るシステム及び方法により、本明細書において議論されるような状況にBSRのアイデアを如何に適用するかを説明する。本開示により実施されるような設定において、教師ネットワーク及び生徒ネットワークの重みは、行列Pと類似してテンソルとして積み重ねられる。W
T:Sは、W
TとW
Sとの層の次元に沿った連結として定義される。BSR(1つまたは複数の制約)がW
T:Sに適用され、教師及び生徒モデルによって実行されるタスクは同一であることから、統合されたテンソルにおいてスパース性を促進する。教師の重みが固定されるため、W
T:Sにおける生徒のある重みは、訓練に伴ってよりスパースとなるように変化する。
【数28】
【数29】
として、ここで、b(.)及びh(.)は、1≦l≦max(Lt,Ls)であってi∈{s,t}であるような重み行列、すなわち
【数30】
の幅及び高さを返す。BSRは、W
T:Sの関数として、次式のようにRg(.)として定義される。
【数31】
この表記は、l
1/l
q形式の混合ノルムの一般形である。特に、l
1/l
∞ノルム正則化項は、下記の形式となる。
【数32】
同様に、CNNの場合、
【数33】
は、5次元テンソルであり、M,N,K,H,Lが各々の次元における最大サイズをとる。したがって、この場合Rg(W
T:S)は、
【数34】
となる。本開示は、式(8)に正則化項としてRg(W
T:S)を導入し、最終的な損失関数(「最適化関数」とも称される)は、次式として与えられる。
【数35】
ここで、λgは、式(8)と比較して追加の正則化定数である。上式(12)は、本開示と本明細書で説明される方法において生徒ネットワークの訓練に使用される最終的な損失関数を示す。最終的な損失関数は、訓練済みの、圧縮され、かつスパース性が高いニューラルネットワークを得るように最適化される。当該訓練済みニューラルネットワークは、第2のニューラルネットワークにおける複数の重みより少ない1つまたは複数の決定された重みを有する。一実施形態において、第1のニューラルネットワークは、ニューラルネットワークにおける1つまたは複数の層でのパラメータ数に基づいて選択される。さらに、第1のニューラルネットワークの選択は、圧縮及び精度に寄与する。ニューラルネットワークが深層になるほど、圧縮の難易度は増す。ニューラルネットワークの1つまたは複数の層におけるパラメータは、例えば、関数の勾配、数学関数等であるが、これに限られない。
【0051】
本明細書において、l
1/l
∞及びl
1/l
2(group−lasso)正則化を用いて訓練された生徒ネットワークのスパース性及び精度が比較される。式(12)から、本開示は、VR及びBSRを独立に利用し、生徒ネットワークの重みにスパース性をもたらすことは明白である。これにより、直観的に、以下の2つの場合が起こり得る。
1.VRが枝刈りを促進し、BSRが枝刈りを抑える:このような場合には、BSRは特定の重みw
k,hを非ゼロに維持する。しかしながら推論時に、これらの重みは、VRを通して学習されたドロップアウトパラメータα
k,hを通じてフィルタされる。したがって、重みは非ゼロであるにも関わらず枝刈りされる。
2.VRが枝刈りを抑え、BSRが枝刈りを促進する:ドロップアウトパラメータはα
k,hを通して重みw
k,hを活性化させる。しかしながら、BSRは重みがゼロになるように制限し、結果的に枝刈りが生じる。
【0052】
ステップ204から210は、式12に示された最終的な損失関数が、予め定義された閾値に収束するまで繰り返し実行される。当該閾値は、訓練済みの、圧縮され、かつスパース性が高いニューラルネットワーク(スパース性が高く訓練済みの圧縮されたニューラルネットワークとも称され、本明細書において同義に使用される)を得るように設定される。事前定義の閾値が、早期終了と呼ばれる技術により検証損失を用いて推定され、設定される。閾値の値は、検証損失が増加し始める時点の訓練損失である。当技術分野において既知の早期終了技術は、https://machinelearningmastery.com/early-stopping-to-avoid-overtraining-neuralnetwork-models/から参照可能である。
【0053】
さらに、データセットからの異なる入力サンプルに対応して、教師ネットワークから出力される特徴量は、予め計算され、再利用のために記憶される。したがって、本開示は、システム100がバッチサイズを大きくすることができ、これにより訓練時間が減少する。
【0054】
実験及び結果:
実験設定、評価基準、並びにネットワーク及びデータセットの異なるクラスにおいて実行された種々の実験が、本明細書において説明される。
【0055】
実験設定及び用語:
本開示は、8コアのIntel(登録商標) Core(TM) i7−7820HK CPU、32GBメモリ、及びNvidia(登録商標)GeForce GTX 1080 GPUを搭載する計算機を実験に用いた。モデルは、PyTorch v0.4.1を用いて訓練される。MLP及びCNNの訓練及び評価には、既知のデータセット、すなわちMNIST及びCIFAR−10データセットが使用された。訓練データと評価データは、MNIST及びCIFAR−10において、それぞれ1:6及び1:5の比率で分割された。MLPでの全実験について、MNISTデータセットにおいて、Adam最適化手法が学習率10
−3で100−150エポックに対して用いられた。CNNでの全実験について、CIFARデータセットにおいて、Adam最適化手法が学習率10
−4で100−150エポックに対して用いられた。早期枝刈りの問題に対処するため、当技術分野において知られるウォームアップ技術が本開示及び先行技術アプローチによって利用され、λvの値が設定された。全実験において、λ
T=2及びλg=0.01が用いられた。本開示を通して、ネットワーク構造の表記a−b−cは、ネットワークの異なる層のノード数を示す。MLPに基づく実験において、構造1200−1200を有する教師T1、及び構造500−50を有する生徒S1が利用された。さらに、CNNに基づく実験において、教師TC1は、VGG−19ネットワークが用いられた。CNNの教師に対する生徒は、LeNet−5−Caffeの構造を有するLe−Cである。Simpleは、独立に訓練されたネットワークを示し、Dは、二値ドロップアウト率0.4で訓練されたネットワークを示し、KDは、教師からのヒントを用いて訓練され、STは、KDフレームワークにおいてBSRを用いて訓練されたネットワークを示す。
【0056】
評価基準:
モデル圧縮性能が評価され、ネットワークが以下の基準、すなわち、圧縮率、層ごとのスパース性、及びメモリフットプリント圧縮(RAMにおいて占有されたスペース)を用いて比較される。圧縮率Rcは、Rc=p
b/p
acとして定義され、p
b及びp
acは、それぞれ圧縮前及び圧縮後の訓練され得るパラメータ数である。本開示は、また、スパース性がもたらす圧縮率Rsを報告する。Rsは、Rs=|W|/|W≠0|として定義され、|W|及び|W≠0|は、それぞれDNNの重みの数、及び非ゼロの重みの数を示す。さらに、本開示は、種々のモデルのメモリフットプリントの圧縮を報告する。また、本開示はNNを分類タスクに用いるので、DNNモデルのトップ1エラー率(推論時)での分類性能も評価された。計算性能を評価するため、種々のモデルの推論時間が計測された。
【0057】
ネットワーク圧縮及びスパース化:
上述のニューラルネットワークモデル及びデータセットに関する、ネットワーク圧縮及びスパース化の結果を以下に示す。
【0058】
MNISTにおけるMulti−Layer Perceptron:MLPはMNISTデータセットにおいて、本開示の技術/方法を用いて訓練された。これらのネットワークは、特にデータ拡張を用いず、ランダム初期化を用いて訓練された。スパース性を利用する性能を比較するため、本開示に係る方法は、既知の従来手法であるVD[Molchanov et al., 2017]及びVBD[Liu et al., 2018]が、KDフレームワークと併せて使用される場合において比較された。以下の表1は、KDフレーワークにおける他の変種(variants)と比べて、本開示の方法により達成される圧縮及びスパース性の比較を示す。
【表1】
【0059】
本開示の方法、すなわちST及びSTBは、スパース性及び精度の両方の観点において、VD、VBD及びKDの変種を上回ることがわかる。これは、VRに加えて、BSRにより引き起こされるスパース性のためである。VBDの変種は、全ての場合において、スパース性の観点ではSVDの変種を上回っている。これは、VBDの階層的な事前分布が、SVDにおいて用いられSVDの正則化性能を制限している[Liu et al., 2018]対数スケール一様事前分布に対して、効果的なためである。さらに、
図5A−
図5Bは、
図1から
図4Bと関連して、本開示の一実施形態に応じた種々の生徒モデルのメモリフットプリントを図示するグラフィカル表現を示す。ST及びSTBの変種は、BSRにより引き起こされる高いスパース性のために、圧縮の観点において他を上回る。
【0060】
CIFAR10における教師としてのVGG19(CNN):
下記の表2は、CIFARデータセットにおけるCNNの評価を示す。生徒ネットワークのLe−C類は、657,080個のパラメータを有し、212.47倍の圧縮をもたらす。表中の*は、VGG19の全層の代表値である。
【表2】
【0061】
表2から、スパース性圧縮は、CNNにおいて僅かに増加しているが、パラメータ数は、上記のように212.47倍に削減されている。したがってメモリフットプリントにおける利得もまた大きい。VGG19である教師は、メモリのスペースの532.52MBを占有し、圧縮された生徒は2.50MBのみを占有するため、約213倍の圧縮を達成している。このことは、本開示のシステム及び方法により説明された圧縮戦略の有効性を示す。教師のヒントがあるため、よりスパースな生徒の変種は、Simpleの生徒と比べて性能が良い。さらに、よりスパースな生徒の変種は、VR及びBSR両方の正則化の効力により、KD−Simple及びKD−Dの両変種を上回る。
【0062】
変分推論の効果
図4Aから
図4B、及び表1は、
図1から
図3と関連して、KDフレームワークに変分法を導入することにより、8倍から17倍のスパース性を誘起することを示す。より具体的には、
図4Aから
図4Bは、
図1から
図3と関連して、本開示の例示的な実施形態に従い、生徒の重み分布にスパース性を引き起こす変分推論を図示するグラフィカル表現を示す。
図4A−
図4Bは、種々のネットワークの重み分布(y軸は対数スケール)を表す。
図4Aの(a),(b)は、教師及び生徒ネットワークが独立に訓練された場合の各々の重みを示し、
図4Aの(c)は、教師ネットワークのヒントを用いて訓練された生徒ネットワークを示し、
図4Bの(d)及び(e)は、SVD、VBDがそれぞれ生徒ネットワークに適用され、KDフレームワークにおいて訓練された場合の変分生徒を示す。
【0063】
重みが0付近に集中していることに注目されたい。教師及び生徒ネットワークが独立に訓練されると、それらはスパースではない重みを学習することがわかる。生徒ネットワークが教師ネットワークからのヒントを用いて訓練されると、生徒ネットワークは、スパース性が僅かに増した重みを学習する。予期されたように、スパース性の劇的な増加は、SVD及びVBDが生徒ネットワークに適用された場合に得られる。
【0064】
ブロックスパース正則化の効果
表1は、BSRの適用が、変分手法によりスパース性を増加させることを示す。しかしながら、このスパース性が、単に生徒ネットワークの重みに関する変分正則化により生じるのか、または教師ネットワークからのスパース性転移の効果によるのかは、明確ではない。
図6から、教師ネットワークの重みがBSRを介して考慮されると、0付近の重みの密度が減少することがわかる。このことは、教師の重みが考慮されると、スパース性が生じることを正当化する。より具体的には、
図6は、
図1から
図5Bまでと関連して、本開示の例示的な実施形態に従い、生徒の重み分布におけるブロックスパース正則化(BSR)技術により引き起こされるスパース性を図示したグラフィカル表現を示す。
図6は、(a)生徒及び教師の両ネットワークからの重みからなる連結テンソルにBSRが適用された場合(
図6(a)参照)、(b)生徒ネットワークの重みのみにBSRが適用された場合(
図6(b)参照)に、結果として得られた生徒MLPの重み分布(y軸は対数スケール)を示す。重みが0付近に集中することに注目されたい。
【0065】
実行時間分析
教師MLPの推論時間は、0.29ミリ秒であり、生徒の変種の推論時間は、0.257−0.470ミリ秒の範囲であった。MLPにおいては、変分生徒及びBSRの変種は、類似する推論時間を有することが観察された。両変種は、訓練時には異なる計算処理を有するが、類似した生徒の構造であるため推論時には同じ操作を有する。さらに、simpleの変種は、αに対する閾値処理、及び結果として得られるマスクに重みを乗じる処理を含む追加の計算処理が必要な他の変種に比べて推論時間が短い。
図7から明らかであるように、CNNにおいても同様の傾向がみられる。特に、
図7は、
図1から
図6と関連して、本開示の例示的な実施形態に従った畳み込みニューラルネットワーク(CNN)の種々の変種に関して、速度の向上を図示するグラフィカル表現を示す。
【0066】
本開示は、KDフレームワークにおける変分推論とブロックスパース正則化の組み合わせを通してニューラルネットワークをスパース化する、変分生徒を導入した。本開示はまた、テストエラーの増加を最小限に抑えながら、MLP及びCNNのメモリフットプリントを64倍及び213倍に圧縮することを示した。実験結果及び評価に基づき、本開示は、変分ベイジアンドロップアウト及びスパース変分ドロップアウト技術のようなベイズ的手法が、KDフレームワークにおける生徒の構造に利用されると、圧縮とそれによる速度向上に寄与することを述べた。さらに、本開示は、KD及びVI技術を併せて用いることにより、モデル精度を最小限の悪化に、または全く悪化しないようにしながら、KDフレームワークから圧縮の特性を受け継ぎ、かつVIアプローチによりスパース性の度合いを引き上げることを示した。MLPとCNNにおける実験結果が上記の表(表1と表2)、及び
図4Aから
図7に図示されたグラフィカル表現に示された。実験結果はメモリフットプリントに関して、教師ネットワークの再訓練を要することなくMLPとCNNにおいて各々約64倍と約213倍の削減を示す。本開示により実施される技術または方法は、例えば多層パーセプトロン及び畳み込みニューラルネットワークのような順伝搬型ニューラルネットワークに適用可能である。一般的には、既存の従来システム及び方法において、ニューラルネットワークの完全にベイズ的な訓練手順としてSVDとVBDが提案されている。本開示の実施形態を通じて、本開示に係る方法は、ニューラルネットワークの訓練の準ベイズ的な技術の実施が可能である。
【0067】
本明細書は、当業者が本実施形態を作成して使用できるように、本明細書における主題を記載する。主題の実施形態の範囲は、特許請求の範囲により定められ、当業者が想到する他の修正を含んでもよい。そのような他の修正は、当該修正が特許請求の範囲の文言と異ならない類似の要素を有する場合、または特許請求の範囲の文言と実質的な違いが無い均等の要素を含む場合には、特許請求の範囲に含まれることが意図される。
【0068】
保護の範囲は、下記のような内部にメッセージを有するプログラム及びコンピュータ可読手段に拡張されると解される。そのようなコンピュータ可読記憶手段は、当該プログラムがサーバ若しくはモバイル機器または任意の適したプログラム可能機器において実行されると本方法の1つまたは複数のステップを実施するための、プログラムコード手段を含む。ハードウェア機器は、例えば、サーバまたはパーソナルコンピュータ等、或いはそれらの組み合わせのような任意の種類のコンピュータを含む、任意の種類のプログラム可能な機器であってもよい。当該機器は、例えば特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、或いは、例えばASICとFPGA、またはソフトウェア処理コンポーネントを内部に有する少なくとも1つのマイクロプロセッサ及び少なくとも1つのメモリといった、ハードウェア及びソフトウェア手段の組み合わせ等の手段を含んでもよい。したがって、当該手段は、ハードウェア手段とソフトウェア手段の両方を含む。本明細書に記載された方法の実施形態は、ハードウェア及びソフトウェアにおいて実施可能である。機器は、ソフトウェア手段を含んでもよい。代替的に、当該実施形態は、例えば複数のCPUを使用するような種々のハードウェア機器において実施されてもよい。
【0069】
本明細書の実施形態は、ハードウェア及びソフトウェア要素を備える。ソフトウェアにおいて実施される実施形態は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これらに限らない。本明細書に記載された各種構成要素により実行される機能は、他の構成要素またはそれらの組み合わせにおいて実施されてもよい。本明細書の目的のために、コンピュータ利用可能またはコンピュータ可読媒体は、指示実行システム、装置または機器により、或いは関連して使用するためのプログラムを含み、記憶し、通信し、伝搬し、または
転送することができる任意の装置であってもよい。
【0070】
例示されたステップは、例示的な実施形態を説明するように提示され、特定の機能が実行される態様は進行中の技術的発展により変化すると予期される。これらの例は、本明細書において例示の目的のために示され、制限の目的はない。さらに、機能的構成ブロックの境界は、本明細書において、説明の利便性のために任意に定められたものである。特定の機能及びそれらの関係を適切に実行する限り、代替的な境界が定義可能である。代替案(本明細書の記載の均等物、拡張、変形、派生等を含む)は、本明細書に含まれる教示に基づき、関連した技術に熟練した者にとって明白である。そのような代替案は、開示された実施形態の範囲に含まれる。また、「備える」、「有する」、「含有する」、「含む」及び他の類似した形態の用語は、均等の意味が意図され、これらの用語のいずれかに続く項目は、これらの項目の網羅的列挙を意味しない、または列挙される項目のみに限定されることを意味しない点において、非限定的であることが意図される。本明細書及び添付の特許請求の範囲において使用されるように、単数形が記載されていても、前後関係から明らかでない限り、複数の場合も含めて意味する。
【0071】
さらに、1つまたは複数のコンピュータ可読記憶媒体が、本開示と一致する実施形態を実施する際において利用される。コンピュータ可読記憶媒体は、プロセッサにより可読な情報またはデータが記憶される任意の種類の物理メモリを示す。したがって、コンピュータ可読記憶媒体は、1つまたは複数のプロセッサにより実行される命令を記憶することができる。当該命令は、本明細書における実施形態と一致するステップまたはステージを、プロセッサに実行させるための命令を含む。用語「コンピュータ可読媒体」は、有形物を含み、搬送波及び過渡信号を除く、すなわち非一時的であると解される。例として、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、揮発性メモリ、不揮発性メモリ、ハードドライブ、CDROM、フラッシュドライブ、ディスク、及び他の既知の物理記憶媒体が含まれる。
【0072】
本開示及び例は、例示としてのみ考慮されるべきであり、開示された実施形態の真の範囲は、以下の特許請求の範囲によって示される。