(57)【特許請求の範囲】
【請求項１】
プロセッサにより実施される方法であって、
１つまたは複数のハードウェアプロセッサにより、複数の重みを有する第１のニューラルネットワークを初期化するステップ（２０２）と、
１つまたは複数のハードウェアプロセッサにより、第１のニューラルネットワークを訓練するステップと、を備え、
当該訓練するステップは、
第１のニューラルネットワークに、（ｉ）特定のドメインに対応して受け取った入力データの部分集合と（ｉｉ）当該入力データの部分集合に対応する正解情報とを渡すステップ（２０４）、
当該入力データの部分集合に関して、第１のニューラルネットワークにより生成された出力と、対応する正解情報と、の第１の差異に基づき、１つまたは複数のハードウェアプロセッサにより、第１のニューラルネットワークの複数の重みを動的に更新するステップ（２０６）、
当該部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と、（ｉｉ）第２のニューラルネットワークにより生成された出力と、の第２の差異に基づき、１つまたは複数のハードウェアプロセッサにより、第１のニューラルネットワークの複数の重みを動的に更新するステップ（２０８）、及び
ブロックスパース正則化と変分ドロップアウト技術を利用することで、１つまたは複数のハードウェアプロセッサにより、第２のニューラルネットワークの重みの集合に関して、第１のニューラルネットワークの複数の重みにおいて１つまたは複数の重みを無効化する、または維持することを決定するように、第１のニューラルネットワークの複数の重みに１つまたは複数のスパース性制約を適用するステップ（２１０）
を、訓練され、圧縮され、かつスパース性が高いニューラルネットワークを得るように、最終的な損失関数が予め定義された閾値に収束するまで、繰り返し実行することにより訓練を行う、方法。
【請求項２】
入力データの部分集合に関する出力と、対応する正解情報と、の第１の差異は、交差エントロピー損失関数を用いて推定される、請求項１に記載の方法。
【請求項３】
入力データの部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と、（ｉｉ）第２のニューラルネットワークにより生成された出力と、の第２の差異は、カルバックライブラー（ＫＬ）情報量関数により推定される、請求項１に記載の方法。
【請求項４】
１つまたは複数の重みが無効化されるか、または維持されるかは、最終的な損失関数を解くことにより決定される、請求項１に記載の方法。
【請求項５】
最終的な損失関数は、訓練され、圧縮され、かつスパース性の高いニューラルネットワークを得るように最適化され、当該ニューラルネットワークは、第２のニューラルネットワークにおける複数の重み未満の、１つまたは複数の決定された重みを有し、第１のニューラルネットワークの選択は、ニューラルネットワークにおける１つまたは複数の層のパラメータ数に基づく、請求項１に記載の方法。
【請求項６】
第２のニューラルネットワークは、事前訓練済みのニューラルネットワークである、請求項１に記載の方法。
【請求項７】
命令を記憶するメモリ（１０２）と、
１つまたは複数の通信インタフェース（１０６）と、
メモリ（１０２）に、１つまたは複数の通信インタフェース（１０６）を介して連結された、１つまたは複数のハードウェアプロセッサ（１０４）と、を備えるシステム（１００）であって、
１つまたは複数のハードウェアプロセッサ（１０４）は、当該命令により、
メモリに含まれて１つまたは複数のハードウェアプロセッサ（１０４）により実行される、複数の重みを有する第１のニューラルネットワークを初期化するステップと、
第１のニューラルネットワークを訓練するステップと、
を実行するように構成され、
当該訓練するステップは、
第１のニューラルネットワークに、（ｉ）特定のドメインに対応して受け取った入力データの部分集合と（ｉｉ）当該入力データの部分集合に対応する正解情報とを渡すステップ、
当該入力データの部分集合に関して第１のニューラルネットワークにより生成された出力と、対応する正解情報と、の第１の差異に基づき、第１のニューラルネットワークの複数の重みを動的に更新するステップ、
当該部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と、（ｉｉ）メモリに含まれて１つまたは複数のハードウェアプロセッサにより実行される第２のニューラルネットワークにより生成された出力と、の第２の差異に基づき、第１のニューラルネットワークの複数の重みを動的に更新するステップ、及び
ブロックスパース正則化と変分ドロップアウト技術を利用することで、１つまたは複数のハードウェアプロセッサにより、第２のニューラルネットワークの重みの集合に関して、第１のニューラルネットワークの複数の重みにおいて１つまたは複数の重みを無効化する、または維持することを決定するように、第１のニューラルネットワークの複数の重みに１つまたは複数のスパース性制約を適用するステップ
を、訓練され、圧縮され、かつスパース性が高いニューラルネットワークを得るように、最終的な損失関数が予め定義された閾値に収束するまで、繰り返し実行することにより訓練を行う、システム（１００）。
【請求項８】
入力データの部分集合に関する出力と、対応する正解情報と、の第１の差異は、交差エントロピー損失関数を用いて推定される、請求項７に記載のシステム。
【請求項９】
入力データの部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と、（ｉｉ）第２のニューラルネットワークにより生成された出力と、の第２の差異は、カルバックライブラー（ＫＬ）情報量関数により推定される、請求項７に記載のシステム。
【請求項１０】
１つまたは複数の重みが無効化されるか、または維持されるかは、最終的な損失関数を解くことにより決定される、請求項７に記載のシステム。
【請求項１１】
最終的な損失関数は、圧縮され、かつスパース性の高い訓練済みニューラルネットワークを得るように最適化され、当該ニューラルネットワークは、第２のニューラルネットワークにおける複数の重み未満の、１つまたは複数の決定された重みを有し、第１のニューラルネットワークの選択は、ニューラルネットワークにおける１つまたは複数の層のパラメータ数に基づく、請求項７に記載のシステム。
【請求項１２】
第２のニューラルネットワークは、事前訓練済みのニューラルネットワークである、請求項７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してニューラルネットワークに関し、特に、よりスパースかつ圧縮されたニューラルネットワークに係るスパース性の制約と知識の蒸留に基づく学習に関する。
【背景技術】
【０００２】
過去１０年にわたる機械学習のカンブリア爆発は、音声、視覚及びテキストの領域において、劇的な性能改善に寄与している深層ニューラルネットワーク（ＤＮＮ）によるところが大きい。深層学習における活発な関心にも関わらず、デバイス（スマートフォン、ドローン、ヘッドマウント等）の小型化と拡張／仮想現実デバイスの著しい進歩は、ＣＰＵ／ＧＰＵ、メモリ及びバッテリ寿命に制約をもたらし、リソースが制限されたポータブルデバイスにこれらの深層学習モデルを展開することを困難にしている。こうした要請に応えるため、ＤＮＮを圧縮すること、及び前述のような制限された環境においてＤＮＮの性能を強化することは、受け入れられる基準に必須であると考えられる。
【発明の概要】
【０００３】
本開示の実施形態は、従来のシステムにおいて発明者らが認識した上記の技術的課題の１つまたは複数に対する解決手段として、技術的改善を開示する。例えば、１つの観点において、よりスパースかつ圧縮された訓練済みニューラルネットワークを学習するための、スパース性の制約と知識の蒸留を利用する、プロセッサにより実施される方法が提供される。当該方法は、１つまたは複数のハードウェアプロセッサにより複数の重みを有するニューラルネットワークを初期化するステップと、１つまたは複数のハードウェアプロセッサにより、第１のニューラルネットワークを訓練するステップとを備える。当該訓練するステップは、第１のニューラルネットワークに（ｉ）特定のドメインに対応して受け取った入力データの部分集合と（ｉｉ）当該入力データの部分集合に対応する正解情報とを渡すステップ、当該入力データの部分集合に関して、第１のニューラルネットワークにより生成された出力と、対応する正解情報との第１の差異に基づき、１つまたは複数のハードウェアプロセッサにより第１のニューラルネットワークの複数の重みを動的に更新するステップ、当該部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と（ｉｉ）第２のニューラルネットワークにより生成された出力との第２の差異（例えば、別の差異）に基づき、１つまたは複数のハードウェアプロセッサにより第１のニューラルネットワークの複数の重みを動的に更新するステップ、及びブロックスパース正則化と変分ドロップアウト技術を利用することにより、第２のニューラルネットワークの重みの集合に関して、第１のニューラルネットワークの複数の重みにおいて１つまたは複数の重みを無効化する、または維持することを決定するように、第１のニューラルネットワークの複数の重みに１つまたは複数のスパース性制約を適用するステップを、訓練され、圧縮され、かつスパース性が高いニューラルネットワークを得るように、最終的な損失関数が予め定義された閾値に収束するまで繰り返し実行することにより訓練を行う。
【０００４】
一実施形態において、入力データの部分集合に関する出力と、対応する正解情報との第１の差異は、交差エントロピー損失関数を用いて推定される。
【０００５】
一実施形態において、入力データの部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と（ｉｉ）第２のニューラルネットワークにより生成された出力との第２の差異は、カルバックライブラー（ＫＬ）情報量関数により推定される。
【０００６】
一実施形態において、１つまたは複数の重みが無効化されるか、または維持されるかは、最終的な損失関数を解くことにより決定される。
【０００７】
一実施形態において、最終的な損失関数は、訓練され、圧縮され、スパース性の高いニューラルネットワークを得るように最適化され、当該ニューラルネットワークは、第２のニューラルネットワークにおける複数の重み未満の、１つまたは複数の決定された重みを有し、第１のニューラルネットワークの選択は、ニューラルネットワークにおける１つまたは複数の層のパラメータ数に基づく。
【０００８】
一実施形態において、第２のニューラルネットワークは、事前訓練済みのニューラルネットワークである。
【０００９】
１つの観点において、よりスパースかつ圧縮された訓練済みニューラルネットワークを学習するためにスパース性の制約と知識の蒸留を利用する、プロセッサにより実施されるシステムが提供される。当該システムは、命令を記憶するメモリと、１つまたは複数の通信インタフェースと、メモリに１つまたは複数の通信インタフェースを介して連結された１つまたは複数のハードウェアプロセッサと、を備える。１つまたは複数のハードウェアプロセッサは、複数の重みを有する第１のニューラルネットワークを初期化するステップと、第１のニューラルネットワークを訓練するステップとを実行するための命令により構成される。第１のニューラルネットワークは、メモリに含まれ、１つまたは複数のハードウェアプロセッサにより実行される。訓練するステップは、第１のニューラルネットワークに（ｉ）特定のドメインに対応して受け取った入力データの部分集合と（ｉｉ）当該入力データの部分集合に対応する正解情報とを渡すステップ、当該入力データの部分集合に関して第１のニューラルネットワークにより生成された出力と、対応する正解情報との第１の差異に基づき、第１のニューラルネットワークの複数の重みを動的に更新するステップ、当該部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と（ｉｉ）メモリに含まれて１つまたは複数のハードウェアプロセッサにより実行される第２のニューラルネットワークにより生成された出力との第２の差異（例えば、別の差異）に基づき、第１のニューラルネットワークの複数の重みを動的に更新するステップ、及びブロックスパース正則化と変分ドロップアウト技術を利用することで、１つまたは複数のハードウェアプロセッサにより、第２のニューラルネットワークの重みの集合に関して第１のニューラルネットワークの複数の重みにおいて１つまたは複数の重みを無効化する、または維持することを決定するように、第１のニューラルネットワークの複数の重みに１つまたは複数のスパース性制約を適用するステップを、訓練され、圧縮され、かつスパース性が高いニューラルネットワークを得るように、最終的な損失関数が予め定義された閾値に収束するまで、繰り返し実行することにより訓練を行う。
【００１０】
一実施形態において、入力データの部分集合に関する出力と、対応する正解情報との第１の差異は、交差エントロピー損失関数を用いて推定される。
【００１１】
一実施形態において、入力データの部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と（ｉｉ）第２のニューラルネットワークにより生成された出力との第２の差異は、カルバックライブラー（ＫＬ）情報量関数により推定される。
【００１２】
一実施形態において、１つまたは複数の重みが無効化されるか、または維持されるかは、最終的な損失関数を解くことにより決定される。
【００１３】
一実施形態において、最終的な損失関数は、訓練され、圧縮され、スパース性の高いニューラルネットワークを得るように最適化され、当該ニューラルネットワークは、第２のニューラルネットワークにおける複数の重み未満の、１つまたは複数の決定された重みを有し、第１のニューラルネットワークの選択は、ニューラルネットワークにおける１つまたは複数の層のパラメータ数に基づく。
【００１４】
一実施形態において、第２のニューラルネットワークは、事前訓練済みのニューラルネットワークである。
【００１５】
また別の観点において、１つまたは複数の命令を備える、１つまたは複数の非一時的機械可読情報記憶媒体が提供される。当該命令は、１つまたは複数のハードウェアプロセッサにより実行されると、よりスパースかつ圧縮された訓練済みニューラルネットワークを学習するために、スパース性制約と知識の蒸留を利用する以下のステップを行う。当該ステップは、１つまたは複数のハードウェアプロセッサにより複数の重みを有するニューラルネットワークを初期化するステップと、１つまたは複数のハードウェアプロセッサにより第１のニューラルネットワークを訓練するステップとを含む。当該訓練するステップは、第１のニューラルネットワークに（ｉ）特定のドメインに対応して受け取った入力データの部分集合と（ｉｉ）当該入力データの部分集合に対応する正解情報とを渡すステップ、当該入力データの部分集合に関して、第１のニューラルネットワークにより生成された出力と、対応する正解情報との第１の差異に基づき、１つまたは複数のハードウェアプロセッサにより第１のニューラルネットワークの複数の重みを動的に更新するステップ、当該部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と（ｉｉ）第２のニューラルネットワークにより生成された出力との第２の差異（例えば、別の差異）に基づき、１つまたは複数のハードウェアプロセッサにより第１のニューラルネットワークの複数の重みを動的に更新するステップ、及びブロックスパース正則化と変分ドロップアウト技術を利用することにより、第２のニューラルネットワークの重みの集合に関して、第１のニューラルネットワークの複数の重みにおいて１つまたは複数の重みを無効化する、または維持することを決定するように、第１のニューラルネットワークの複数の重みに１つまたは複数のスパース性制約を適用するステップを、訓練され、圧縮され、かつスパース性が高いニューラルネットワークを得るように、最終的な損失関数が予め定義された閾値に収束するまで繰り返し実行することにより訓練を行う。
【００１６】
一実施形態において、入力データの部分集合に関する出力と、対応する正解情報との第１の差異は、交差エントロピー損失関数を用いて推定される。
【００１７】
一実施形態において、入力データの部分集合に関して（ｉ）第１のニューラルネットワークにより生成された出力と（ｉｉ）第２のニューラルネットワークにより生成された出力との第２の差異は、カルバックライブラー（ＫＬ）情報量関数により推定される。
【００１８】
一実施形態において、１つまたは複数の重みが無効化されるか、または維持されるかは、最終的な損失関数を解くことにより決定される。
【００１９】
一実施形態において、最終的な損失関数は、訓練され、圧縮され、スパース性の高いニューラルネットワークを得るように最適化され、当該ニューラルネットワークは、第２のニューラルネットワークにおける複数の重み未満の、１つまたは複数の決定された重みを有し、第１のニューラルネットワークの選択は、ニューラルネットワークにおける１つまたは複数の層のパラメータ数に基づく。
【００２０】
一実施形態において、第２のニューラルネットワークは、事前訓練済みのニューラルネットワークである。
【００２１】
前述の一般的記載、及び以下の詳細な記載は、ともに特許請求の範囲に記載された発明に関して、単に例示的、説明的なものであり、限定的なものではないと解されるべきである。
【図面の簡単な説明】
【００２２】
添付の図面は、本開示に含まれ、本開示の一部を構成するものであり、例示的な実施形態を示して明細書とともに本開示を説明するものである。
【００２３】
【図１】本開示の実施形態に従って、圧縮されスパースな訓練済みネットワークを得るように深層ニューラルネットワークを訓練するためのシステムに関する例示的なブロック図
【図２】本開示のネットワーク構造に係る実施形態に従って、コンパクトかつスパースなネットワークを学習するための訓練手順を示す例示的なブロック図
【図３】本開示のネットワーク構造に係る実施形態に従って、コンパクトかつスパースなネットワークを学習するための方法を示す例示的なフロー図
【図４Ａ】本開示の例示的実施形態に従って、生徒の重み分布にスパース性をもたらす変分推論を示すグラフィカル表現
【図４Ｂ】本開示の例示的実施形態に従って、生徒の重み分布にスパース性をもたらす変分推論を示すグラフィカル表現
【図５Ａ】本開示の実施形態に従って、種々の生徒モデルのメモリフットプリントを示すグラフィカル表現
【図５Ｂ】本開示の実施形態に従って、種々の生徒モデルのメモリフットプリントを示すグラフィカル表現
【図６】本開示の例示的実施形態に従って、ブロックスパース正則化（ＢＳＲ）技術により生徒の重み分布にもたらされるスパース性を示すグラフィカル表現
【図７】本開示の例示的実施形態に従って、畳み込みネットワーク（ＣＮＮ）の種々の変種に関する速度向上を示すグラフィカル表現
【発明を実施するための形態】
【００２４】
例示的な実施形態が、添付の図面を参照して説明される。図面において、参照符号の最も左の数字は、当該参照符号が最初に現れる図面を特定する。利便性がある場合には、図面を通して同一または類似の部分を示すために同一の参照符号が用いられる。開示された原理の例及び特徴が本明細において説明されるが、開示された実施形態の範囲を逸脱することなく、修正、適用、及び他の実施が可能である。以下の詳細な説明は、単に例示としてのみ考慮されるべきであり、真の範囲は続く特許請求の範囲によって示されることが意図される。
【００２５】
深層ニューラルネットワークにおいて、研究は、モデル精度の妥協を最小限にしながら、メモリ及び計算効率が良い、組み込みプラットフォームにおけるネットワークモデルを志向している。この目的のために、本開示は「変分生徒」（“Ｖａｒｉａｔｉｏｎａｌ  Ｓｔｕｄｅｎｔ”）と称するアプローチを実施する。当該アプローチにおいて、知識の蒸留（ＫＤ）フレームワークの圧縮性による利点、及び変分推論（ＶＩ）技術のスパース性をもたらす性能が議論される。
【００２６】
過去にモデル圧縮のためのいくつかのアプローチが実施されてきた。当該アプローチは、例えばパラメータの枝刈り及び共有、低ランク分解、コンパクトな畳み込みフィルタ、並びに知識の蒸留（ＫＤ）である。本開示は、ＫＤに注目する。ＫＤに関連したシステムは、大きく複雑なニューラルネットワーク（例えば、場合により事前訓練済みの教師モデル）から、別のニューラルネットワーク（例えば、小さな生徒ネットワーク）に、生徒ネットワークを訓練するために教師ネットワークのクラス分布を用いて知識を蒸留する手法を実施する。ＫＤに基づくアプローチは、教師に関して再訓練の労力を省くだけでなく、より小さな圧縮された生徒を得られるため魅力的である。ＫＤは、最初は浅いモデルのために提案され、後に深層モデルに拡張された。例えば、顔認識タスクにおけるモデル圧縮に対する、幅が広く層が深いネットワークの圧縮のためのＦｉｔＮｅｔｓ等のように、モデル圧縮の改善を達成するようなＫＤアプローチの派生がいくつか提案されてきた。
【００２７】
並行して、ＤＮＮにおけるスパース性を達成するためのアプローチは、ベイジアンの途を辿ってきた。ベイジアンニューラルネットワーク（ＢＮＮ）は、過学習に頑健であり、小規模なデータセットから学習し、重みあたりの確率分布のパラメータを通して不確実性の推定を提供する。さらに変分推論の定式化は、予測精度とモデルの複雑性との分離を明確にすることができ、ＤＮＮの分析と最適化の両方に役立つことから、説明可能なＡＩ手法に寄与する。ニューラルネットワークのためのベイズ推論の文脈における最も初期の貢献の一つは、ネットワークの重みの事後確率を推論するために、これらの重みをドロップアウト率と結合的に学習することを目的として提案された変分ドロップアウト（ＶＤ）技術である。他には、ＶＤの目的関数においてＫＬ情報量の項の近似を提供するスパース変分ドロップアウト（ＳＶＤ）技術が提案され、これは全結合及び畳み込み層においてスパースな重み行列を実現することが示されている。別のアプローチは、重みの事前分布に加えて、事前分布のパラメータ上で超事前分布（ｈｙｐｅｒｐｒｉｏｒ）が仮定される変分ベイジアンドロップアウト（ＶＢＤ）技術を含む。さらに他のアプローチは、固定小数点精度に基づく重みの符号化を用い、構造化されたスパース性を利用するためにニューラルネットワークの計算構造を考慮して、スパース性を超えた圧縮を達成する技術を含む。
【００２８】
本開示の実施形態は、原型のＫＤフレームワークにおいて、二値化ニューラルネットワーク（ＢＮＮ）に基づく生徒を考える。そのようなアプローチの利点は、２つの要素から成る。第１のニューラルネットワーク（例えば、生徒ネットワーク）は、ＫＤにより第２のニューラルネットワーク（例えば、教師ネットワーク）と比べてコンパクトであることに加えて、生徒のベイズ的性質により、ＳＶＤまたはＶＢＤといったスパース性を利用するいくつかの技術を用いることができ、したがってスパースな生徒を得られる。特に、教師ネットワークからのヒント（または生成された出力）は、教師によって達成された精度と同程度の精度を保ちながら、コンパクトかつスパースな生徒ネットワークを得ることに役立つ。しかしながら、依然として１つの疑問が残る。すなわち、生徒におけるスパース性をより大きくするために、教師ネットワークからの情報を利用することができるか、ということである。本開示は、教師ネットワークの重みに対して、生徒ネットワークの重みにブロックスパース正則化（ＢＳＲ）の制約を用いることにより、この技術的問題に対処する。
【００２９】
ブロックスパース制約は、スパースなニューラルネットワークを実現するために利用されてきた。例えば、ＢＳＲに基づくグループラッソ（Ｇｒｏｕｐ−Ｌａｓｓｏ）正則化が、ＣＮＮ及びＲＮＮにおいて性能を向上するようなスパースな構造を学習するために利用された。マルチタスク学習（ＭＴＬ）の文脈においては、既存のアプローチは、異なるタスクのための共有されたパラメータ集合を学習するために、グループラッソ、ｌ１／ｌｑ形式の混合ノルムの一種を用いたスパース性を導入した。さらに、ＢＳＲは、関連したタスクがＭＴＬフレームワークで学習される必要があるとき、スパースな重みをもたらす。同様の方針で、生徒及び教師ネットワークが関連したタスクに用いられることから、本開示は、ＢＳＲがＫＤフレームワークにおいて、教師ネットワークの重みを使って生徒ネットワークの重みをスパースにする能力を調査する。すなわち、本開示におけるシステム及び手法は、ＫＤの観点またはベイジアンのフレームワークにおいて、スパース性を導くためにＢＳＲを用いるように実施される。
【００３０】
以下、図面、具体的には図１から図７を参照する。図面において類似の参照符号は、図面を通して対応する特徴を示す。好適な実施形態が提示され、これらの実施形態は、例示的なシステム及び／または手法という観点において説明される。
【００３１】
図１は、本開示の実施形態に従って、圧縮され、スパース性が高い訓練済みネットワークを得るように、深層ニューラルネットワークを訓練するためのシステムの例示的なブロック図を示す。システム１００は、「訓練システム」とも称され、以降交換可能に使用される。一実施形態において、システム１００は、１つまたは複数のハードウェアプロセッサ１０４、通信インタフェース装置または入力／出力（Ｉ／Ｏ）インタフェース１０６（インタフェースとも称される）、及び１つまたは複数のハードウェアプロセッサ１０４に動作的に結合された１つまたは複数のデータ記憶装置またはメモリ１０２を含む。１つまたは複数のプロセッサ１０４は、１つまたは複数のソフトウェア処理コンポーネント及び／またはハードウェアプロセッサでもよい。一実施形態において、ハードウェアプロセッサは、１つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号処理装置、中央処理装置、状態機械、ロジック回路、及び／または操作命令に基づき信号を操作する任意の装置として実装可能である。プロセッサは、各種機能の中でも特に、メモリに記憶されたコンピュータ可読命令を取得して実行するように構成される。一実施形態において、装置１００は、ラップトップコンピュータ、ノートブック、携帯端末、ワークステーション、メインフレームコンピュータ、サーバ、ネットワーククラウド等の種々の計算機システムとして実装される。
【００３２】
Ｉ／Ｏインタフェース装置１０６は、種々のソフトウェアおよびハードウェアインタフェースを含み、例えば、ウェブインタフェース、グラフィカルユーザインタフェース等であり、例えばＬＡＮケーブル等の有線ネットワーク及びＷＬＡＮ、セルラ、衛星等の無線ネットワークを含む多様なネットワークＮ／Ｗ及びプロトコルタイプ内で多重通信を容易化できる。一実施形態において、Ｉ／Ｏインタフェース装置は、いくつかのデバイスを相互に、または別のサーバに接続するための１つまたは複数のポートを含む。
【００３３】
メモリ１０２は、当業者に知られた任意のコンピュータ可読媒体、例えばスタティックＲＡＭ（ＳＲＡＭ）及びダイナミックＲＡＭ（ＤＲＡＭ）のような揮発性メモリ、並びに／または読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ、フラッシュメモリ、ハードディスク、光学ディスク、及び磁気テープのような不揮発性メモリを含む。一実施形態において、データベース１０８がメモリ１０２に格納され、データベース１０８は、情報を含む。当該情報は、ドメイン情報、特定のドメインに関する入力データ、正解情報、ニューラルネットワーク（例えば、生徒ネットワークのような第１の（深層）ニューラルネットワーク、教師ネットワークのような第２の（深層）ネットワーク）における層に関する重み、重み更新情報、スパース性制約、変分ドロップアウトパラメータ、交差エントロピー損失関数、予め定義された閾値等である。一実施形態において、メモリ１０２は、１つまたは複数の技術（例えば、変分推論、ブロックスパース正則化技術等）その他同種のものを格納する。上述の技術は、１つまたは複数のハードウェアプロセッサ１０４によって実行されると、本明細書において説明される手法を実行する。メモリ１０２はさらに、本開示のシステムと方法によって実行される各ステップの入力／出力に関する情報を含む。より具体的には、重み更新に関する情報、生徒及び教師ネットワークの出力、入力データからのサンプルの各部分集合に対するネットワークの出力の差異、入力データからのサンプルの各部分集合に対する生徒ネットワークの出力と正解情報との差異などがメモリ１０２に記憶される。すなわち、各ステップで与えられる入力と、生成される出力がメモリ１０２に含まれ、さらなる処理と分析に利用される。
【００３４】
図２は、図１に関連して、本開示のネットワーク構造に係る実施形態に従って、コンパクトかつスパースなネットワークを学習するための訓練手順を図示する例示的なブロック図を示す。図３は、図１−図２と関連して、本開示のネットワーク構造に係る実施形態に従って、コンパクトかつスパースなネットワークを学習するための方法を示す例示的なフロー図である。一実施形態において、システム１００は、１つまたは複数のデータ記憶装置またはメモリ１０２を備える。データ記憶装置またはメモリ１０２は、１つまたは複数のハードウェアプロセッサ１０４に動作的に結合され、１つまたは複数のプロセッサ１０４により当該方法の各ステップを実行するための命令を格納する。本開示に係る方法のステップは、図１のシステム１００の構成要素、図２の例示的な訓練手順、及び図３に示されたフロー図を参照して以下に説明される。本開示の一実施形態において、ステップ２０２では、１つまたは複数のハードウェアプロセッサ１０４は、複数の重みを備える第１のニューラルネットワークを初期化する。一実施形態において、第１のニューラルネットワークは、深層ニューラルネットワークである。別の実施形態においては、第１のニューラルネットワークは、生徒ネットワークである。
【００３５】
ハードウェアプロセッサ１０４は、さらに、下記のステップを繰り返し実行することにより、第１のニューラルネットワークを訓練する。ステップ２０２において、１つまたは複数のハードウェアプロセッサ１０４は、第１のニューラルネットワークに、（ｉ）特定のドメインに応じて受け取った入力データの部分集合、及び（ｉｉ）当該入力データの部分集合に応じた正解情報を渡す。同様に、「教師ネットワーク」と称される第２のニューラルネットワークも、ドメイン特有の入力データが渡され、初期化される。本明細書において、「第２のニューラルネットワーク」、「第２の深層ニューラルネットワーク」及び「教師ネットワーク」という表現は、交換可能に使用される。同様に、本明細書において、「第１のニューラルネットワーク」、「第１の深層ニューラルネットワーク」及び「生徒ネットワーク」という表現は、交換可能に使用される。本開示の一実施形態において、教師ネットワークは、事前訓練済みニューラルネットワークである。
【００３６】
本開示は、スパースなネットワークを学習するため、または生徒ネットワークを訓練するために使用される知識の蒸留フレームワーク及び変分推論技術を説明する。以降、まず、Ｎ個のサンプルからなるデータセット
【数１】
0006959308.tif 000002
において、任意のニューラルネットワークモデルが訓練される。
【００３７】
知識の蒸留：
上記のように、知識の蒸留（ＫＤ）フレームワークにおいて、関連のある情報が、教師ネットワークと称される複雑で層がより深いネットワークまたはネットワークのアンサンブルから、よりシンプルで層が浅い生徒ネットワークと称されるネットワークに転移される。従って推論の間に、精度での妥協を最小にしながら、より少数のパラメータを有する圧縮されたネットワークが得られる。ＫＤフレームワークにおいて生徒ＭＬＰを訓練するために用いられる損失関数ＬＫＤは、次式となる。
【数２】
0006959308.tif 000003
ここで、ｘ＝［ｘ１，...，ｘＮ］及びｙ＝［ｙ１，...，ｙＮ］は、それぞれ入力及び対応するラベルであり、λTはラグランジュ乗数である。さらに、
【数３】
0006959308.tif 000004
においてＬｓ及びＬｔは、それぞれ生徒及び教師ネットワークにおける層の数を表し、
【数４】
0006959308.tif 000005
は、それぞれ生徒及び教師ネットワークの重みテンソルである。関数ｆｓ（．，．；．）及びｆｔ（．，．；．）は、各々のロジット
【数５】
0006959308.tif 000006
及び
【数６】
0006959308.tif 000007
を生成する生徒及び教師モデルを表す。さらに、項Ｌｓ（．，．）は生徒に関する損失関数を表し、ＬＨ（．，．）は、教師から得られるヒントを表す。一実施形態において、本明細書でのヒントは、教師ネットワークにより生成される出力を意味する。特に、項ＬＨ（．，．）は、両ネットワークの出力における差を最小化し、生徒が教師ネットワークを模倣することに寄与する。
【００３８】
この解析は、ＭＬＰネットワークにおいて行われたが、生徒及び教師ネットワークの重みが４次元テンソル、すなわち
【数７】
0006959308.tif 000008
及び
【数８】
0006959308.tif 000009
である場合において、容易にＣＮＮに拡張可能である。
【００３９】
ステップ２０６において、１つまたは複数のハードウェアプロセッサ１０４は、入力データの部分集合に関する第１のニューラルネットワークにより生成される出力と、対応する正解情報との差に基づき、第１のニューラルネットワークの複数の重みを動的に更新する。例えば、第１のニューラルネットワークの出力は、長さ「ｎ」のベクトル（例えば、ｎはクラス数）であり、各要素は、（全要素の和は１であるため）入力がｎクラスの１つに所属する確率を表す。予測の正解は、長さ「ｎ」の別のベクトルであり、入力に関して真のクラスが１で、残り全てが０であることに対応するインデックスを有する。
【００４０】
ステップ２０８において、１つまたは複数のハードウェアプロセッサ１０４は、当該部分集合に対する（ｉ）第１のニューラルネットワーク及び（ｉｉ）第２のニューラルネットワークにより生成された出力における第２の差（例えば、別の差）に基づき、第１のニューラルネットワークの複数の重みを動的に更新する。例えば、第１のニューラルネットワークの出力（例えば、生徒ネットワークの出力）及び第２のニューラルネットワークの出力（例えば、教師ネットワークの出力）の両出力は、長さ「ｎ」のベクトル（例えば、ｎはクラス数）であり、各要素は、（全要素の和は１であるため）入力がｎクラスの１つに所属する確率を表す。ステップ２０６及び２０８によると、各々のニューラルネットワークにより出力が生成される。解くべき手元のタスクが分類問題であると仮定すると、本明細書において生徒及び教師の両ニューラルネットワークにより生成される出力は、ベクトルとみなされる。当該ベクトル中の値は、特定のクラスに入力が所属する確率を表し、クラスは、当該ベクトルにおけるその番号によって示される。重みは、確率分布（例えば、本開示と、その関連システム及び方法で利用される一様分布）からのサンプリングによって初期化される。その後、重みは、確率的勾配降下法及び／またはＡｄａｍ最適化手法（例えば、https://ruder.io/optimizing-gradient-descent/index.html#adamを参照）を用いて更新される。
【００４１】
図２のように、第１のニューラルネットワーク（生徒ネットワーク）の訓練手順の概要が図示される。ＫＤフレームワークにおいて用いられる訓練手法に従って、教師ネットワークがまず訓練され、その重みが保存される。これらの重みは、生徒ネットワークの訓練中に必要なヒントを生成するために用いられる。生徒ネットワークは、上記の式（１）において、
【数９】
0006959308.tif 000010
である損失関数を用いて訓練される。
【００４２】
上式において、
【数１０】
0006959308.tif 000011
は、正解クラスのワンホット表現であり、
【数１１】
0006959308.tif 000012
及び
【数１２】
0006959308.tif 000013
は、式（１）に与えられるように、それぞれ生徒及び教師ネットワークからの出力ロジットである。ここで、Ｌｓは、Ｎ個のデータサンプルに渡る交差エントロピー損失であり、ＤＫＬは、ＫＬ情報量を表し、σ´（．）は、ソフトマックス関数を表す。さらに、Ｔは、温度パラメータと呼ばれ、当技術分野において知られるように、クラスに渡る確率分布の「柔らかさ」を制御する。
【００４３】
ステップ２１０において、１つまたは複数のハードウェアプロセッサ１０４は、１つまたは複数のスパース性制約（例えば、本開示において、及び本開示により用いられるブロックスパース正則化及び変分ドロップアウトのようなスパース性制約）を、第１のニューラルネットワークの複数の重みに適用する。当該適用は、ブロックスパース正則及び変分ドロップアウト技術の利用により、第２のニューラルネットワークの重みの集合に関して、第１のニューラルネットワークの複数の重みから、または重みにおいて、１つまたは複数の重みを無効化するか、または維持するかを決定するように行う。
【００４４】
変分推論を通したスパース性：
重みＷ、及び重みに関する事前分布ｐ（Ｗ）を有するＢＮＮを考える。ＢＮＮの訓練は、次式で与えられる変分下限の最適化を含むことが示されている。
【数１３】
0006959308.tif 000014
ここで、
【数１４】
0006959308.tif 000015
は、ネットワークの重みに関する真の事後分布の近似であり、
【数１５】
0006959308.tif 000016
は、事後分布とパラメータ分布のＫＬ情報量である。期待対数尤度（expected log-likelihood）
【数１６】
0006959308.tif 000017
は、次式で与えられる。
【数１７】
0006959308.tif 000018
【００４５】
すなわち、入力データの部分集合についての出力と、対応する正解情報との差が、上記の尤度損失関数を用いて推定される。上記の尤度損失関数は、「交差エントロピー損失関数」とも称され、本明細書において交換可能に使用される。
【００４６】
上記から、事前分布ｐ（Ｗ）と、近似分布
【数１８】
0006959308.tif 000019
における異なる仮定に基づき、異なる変分ベイズ的定式化が得られることは明らかである。そのような定式化の中で、スパース性を促進するベイズ推論手法が、当技術分野において知られるスパース変分ドロップアウト（ＳＶＤ）技術である。ＳＶＤは、重み行列
【数１９】
0006959308.tif 000020
の要素に対数スケールの変則一様事前分布を仮定し、
【数２０】
0006959308.tif 000021
は連続ガウス分布であるように導かれる。ＳＶＤは、ＶＤ技術に基づくため、対応するＢＮＮの訓練は、重みあたりの変分ドロップアウトパラメータαｋ，ｈ、及び重みｗｋ，ｈの分布を表現するパラメータθｋ，ｈの学習を含む。すなわち変分パラメータは、
【数２１】
0006959308.tif 000022
である。さらに、ＶＢＤは、ＳＶＤ技術の拡張であるため、重み行列Ｗの要素に関して対数スケールの一様事前分布を維持する。加えて、ＶＢＤは、
【数２２】
0006959308.tif 000023
の最適化と一致する重み分布のパラメータに関する階層的な事前分布を用いる。本開示では、生徒ＢＮＮはＳＶＤ及びＶＢＤ技術を用いて訓練され、当該技術の相対的な長所及び短所が説明される。
【００４７】
生徒ネットワークにおいてスパース性を適用するため、本開示は、損失関数における変分正則化（ＶＲ）として、ＳＶＤ及びＶＢＤの両定式化を用いる。これらの定式化における主な違いは、式（４）において用いられるＫＬ情報量の近似に起因する。ＳＶＤのために提案されたＫＬ情報量の項の近似は、次式となる。
【数２３】
0006959308.tif 000024
ここで、ｋ１＝０．６３５７６，ｋ２＝１．８７３２０，及びｋ３＝１．４８６９５である。さらに、σ（．）はシグモイド関数を表し、θｋ，ｈはｗｋ，ｈの確率分布をパラメータ化する。すなわち、（ｉ）第１のニューラルネットワーク及び（ｉｉ）第２のニューラルネットワークにより生成される出力における別の差が、上式に表される上記のカルバック−ライブラー（ＫＬ）情報量関数を用いて推定される。
事前分布の階層的な設計に起因して、ＶＢＤでは、式（２）における変分下限のＫＬ情報量項が
【数２４】
0006959308.tif 000025
に帰着する。
ＶＲを通してスパース性制約を導入すると、損失関数は次式のように得られる。
【数２５】
0006959308.tif 000026
ここで、λｖは、ＫＬ情報量項の正則化定数であり、ＬＫＬは、使用される変分ドロップアウトの種類に応じて
【数２６】
0006959308.tif 000027
または
【数２７】
0006959308.tif 000028
となる。
【００４８】
ブロックスパース正則化を通したスパース性の導入：
本開示の修正されたＫＤフレームワークにおいてＢＳＲの制約を利用する背景にある意図を、以下に説明する。
【００４９】
Ｔ個の別のタスクを解くためにＴ個のモデルが使用される状況を想定する。ｉ番目のモデルＴｉは、学習可能なパラメータベクトルＰｉと関連付けられ、全体のパラメータ行列Ｐは、Ｐ＝［Ｐ１，．．．ＰＴ］、すなわち、タスクごとのパラメータベクトルｐｉを連結することにより形成される。したがって、典型的なＭＴＬの状況では、このようなパラメータ行列Ｐを同時学習する（jointly learn）ことが目的となる。いくつかの従来手法では、タスクが関連すると考え、全モデルがパラメータの小さな集合を共有すると仮定する。単一タスクの学習設定ではｐｉに関するｌ１ノルムが用いられる一方、マルチタスクの設定ではＢＳＲを用いる必要がある。さらに既存の従来アプローチは、関連するタスクが学習されるとき、ＢＳＲによりスパースなパラメータ行列Ｐに帰着すること、すなわち関連するタスクは、関連しないタスクに比べ活発な（fever）特徴量を学習しやすいことを示してきた。
【００５０】
マルチタスク学習（ＭＴＬ）の文脈におけるＢＳＲの有効性は明白であるが、本開示は、本開示に係るシステム及び方法により、本明細書において議論されるような状況にＢＳＲのアイデアを如何に適用するかを説明する。本開示により実施されるような設定において、教師ネットワーク及び生徒ネットワークの重みは、行列Ｐと類似してテンソルとして積み重ねられる。ＷＴ：Ｓは、ＷＴとＷＳとの層の次元に沿った連結として定義される。ＢＳＲ（１つまたは複数の制約）がＷＴ：Ｓに適用され、教師及び生徒モデルによって実行されるタスクは同一であることから、統合されたテンソルにおいてスパース性を促進する。教師の重みが固定されるため、ＷＴ：Ｓにおける生徒のある重みは、訓練に伴ってよりスパースとなるように変化する。
【数２８】
0006959308.tif 000029
【数２９】
0006959308.tif 000030
として、ここで、ｂ（．）及びｈ（．）は、１≦ｌ≦ｍａｘ（Ｌｔ，Ｌｓ）であってｉ∈｛ｓ，ｔ｝であるような重み行列、すなわち
【数３０】
0006959308.tif 000031
の幅及び高さを返す。ＢＳＲは、ＷＴ：Ｓの関数として、次式のようにＲｇ（．）として定義される。
【数３１】
0006959308.tif 000032
この表記は、ｌ１／ｌｑ形式の混合ノルムの一般形である。特に、ｌ１／ｌ∞ノルム正則化項は、下記の形式となる。
【数３２】
0006959308.tif 000033
同様に、ＣＮＮの場合、
【数３３】
0006959308.tif 000034
は、５次元テンソルであり、Ｍ，Ｎ，Ｋ，Ｈ，Ｌが各々の次元における最大サイズをとる。したがって、この場合Ｒｇ（ＷＴ：Ｓ）は、
【数３４】
0006959308.tif 000035
となる。本開示は、式（８）に正則化項としてＲｇ（ＷＴ：Ｓ）を導入し、最終的な損失関数（「最適化関数」とも称される）は、次式として与えられる。
【数３５】
0006959308.tif 000036
ここで、λｇは、式（８）と比較して追加の正則化定数である。上式（１２）は、本開示と本明細書で説明される方法において生徒ネットワークの訓練に使用される最終的な損失関数を示す。最終的な損失関数は、訓練済みの、圧縮され、かつスパース性が高いニューラルネットワークを得るように最適化される。当該訓練済みニューラルネットワークは、第２のニューラルネットワークにおける複数の重みより少ない１つまたは複数の決定された重みを有する。一実施形態において、第１のニューラルネットワークは、ニューラルネットワークにおける１つまたは複数の層でのパラメータ数に基づいて選択される。さらに、第１のニューラルネットワークの選択は、圧縮及び精度に寄与する。ニューラルネットワークが深層になるほど、圧縮の難易度は増す。ニューラルネットワークの１つまたは複数の層におけるパラメータは、例えば、関数の勾配、数学関数等であるが、これに限られない。
【００５１】
本明細書において、ｌ１／ｌ∞及びｌ１／ｌ２（ｇｒｏｕｐ−ｌａｓｓｏ）正則化を用いて訓練された生徒ネットワークのスパース性及び精度が比較される。式（１２）から、本開示は、ＶＲ及びＢＳＲを独立に利用し、生徒ネットワークの重みにスパース性をもたらすことは明白である。これにより、直観的に、以下の２つの場合が起こり得る。
１．ＶＲが枝刈りを促進し、ＢＳＲが枝刈りを抑える：このような場合には、ＢＳＲは特定の重みｗｋ，ｈを非ゼロに維持する。しかしながら推論時に、これらの重みは、ＶＲを通して学習されたドロップアウトパラメータαｋ，ｈを通じてフィルタされる。したがって、重みは非ゼロであるにも関わらず枝刈りされる。
２．ＶＲが枝刈りを抑え、ＢＳＲが枝刈りを促進する：ドロップアウトパラメータはαｋ，ｈを通して重みｗｋ，ｈを活性化させる。しかしながら、ＢＳＲは重みがゼロになるように制限し、結果的に枝刈りが生じる。
【００５２】
ステップ２０４から２１０は、式１２に示された最終的な損失関数が、予め定義された閾値に収束するまで繰り返し実行される。当該閾値は、訓練済みの、圧縮され、かつスパース性が高いニューラルネットワーク（スパース性が高く訓練済みの圧縮されたニューラルネットワークとも称され、本明細書において同義に使用される）を得るように設定される。事前定義の閾値が、早期終了と呼ばれる技術により検証損失を用いて推定され、設定される。閾値の値は、検証損失が増加し始める時点の訓練損失である。当技術分野において既知の早期終了技術は、https://machinelearningmastery.com/early-stopping-to-avoid-overtraining-neuralnetwork-models/から参照可能である。
【００５３】
さらに、データセットからの異なる入力サンプルに対応して、教師ネットワークから出力される特徴量は、予め計算され、再利用のために記憶される。したがって、本開示は、システム１００がバッチサイズを大きくすることができ、これにより訓練時間が減少する。
【００５４】
実験及び結果：
実験設定、評価基準、並びにネットワーク及びデータセットの異なるクラスにおいて実行された種々の実験が、本明細書において説明される。
【００５５】
実験設定及び用語：
本開示は、８コアのＩｎｔｅｌ（登録商標）  Ｃｏｒｅ（ＴＭ）  ｉ７−７８２０ＨＫ  ＣＰＵ、３２ＧＢメモリ、及びＮｖｉｄｉａ（登録商標）ＧｅＦｏｒｃｅ  ＧＴＸ  １０８０  ＧＰＵを搭載する計算機を実験に用いた。モデルは、ＰｙＴｏｒｃｈ  ｖ０．４．１を用いて訓練される。ＭＬＰ及びＣＮＮの訓練及び評価には、既知のデータセット、すなわちＭＮＩＳＴ及びＣＩＦＡＲ−１０データセットが使用された。訓練データと評価データは、ＭＮＩＳＴ及びＣＩＦＡＲ−１０において、それぞれ１：６及び１：５の比率で分割された。ＭＬＰでの全実験について、ＭＮＩＳＴデータセットにおいて、Ａｄａｍ最適化手法が学習率１０−３で１００−１５０エポックに対して用いられた。ＣＮＮでの全実験について、ＣＩＦＡＲデータセットにおいて、Ａｄａｍ最適化手法が学習率１０−４で１００−１５０エポックに対して用いられた。早期枝刈りの問題に対処するため、当技術分野において知られるウォームアップ技術が本開示及び先行技術アプローチによって利用され、λｖの値が設定された。全実験において、λＴ＝２及びλｇ＝０．０１が用いられた。本開示を通して、ネットワーク構造の表記ａ−ｂ−ｃは、ネットワークの異なる層のノード数を示す。ＭＬＰに基づく実験において、構造１２００−１２００を有する教師Ｔ１、及び構造５００−５０を有する生徒Ｓ１が利用された。さらに、ＣＮＮに基づく実験において、教師ＴＣ１は、ＶＧＧ−１９ネットワークが用いられた。ＣＮＮの教師に対する生徒は、ＬｅＮｅｔ−５−Ｃａｆｆｅの構造を有するＬｅ−Ｃである。Ｓｉｍｐｌｅは、独立に訓練されたネットワークを示し、Ｄは、二値ドロップアウト率０．４で訓練されたネットワークを示し、ＫＤは、教師からのヒントを用いて訓練され、ＳＴは、ＫＤフレームワークにおいてＢＳＲを用いて訓練されたネットワークを示す。
【００５６】
評価基準：
モデル圧縮性能が評価され、ネットワークが以下の基準、すなわち、圧縮率、層ごとのスパース性、及びメモリフットプリント圧縮（ＲＡＭにおいて占有されたスペース）を用いて比較される。圧縮率Ｒｃは、Ｒｃ＝ｐｂ／ｐａｃとして定義され、ｐｂ及びｐａｃは、それぞれ圧縮前及び圧縮後の訓練され得るパラメータ数である。本開示は、また、スパース性がもたらす圧縮率Ｒｓを報告する。Ｒｓは、Ｒｓ＝｜Ｗ｜／｜Ｗ≠０｜として定義され、｜Ｗ｜及び｜Ｗ≠０｜は、それぞれＤＮＮの重みの数、及び非ゼロの重みの数を示す。さらに、本開示は、種々のモデルのメモリフットプリントの圧縮を報告する。また、本開示はＮＮを分類タスクに用いるので、ＤＮＮモデルのトップ１エラー率（推論時）での分類性能も評価された。計算性能を評価するため、種々のモデルの推論時間が計測された。
【００５７】
ネットワーク圧縮及びスパース化：
上述のニューラルネットワークモデル及びデータセットに関する、ネットワーク圧縮及びスパース化の結果を以下に示す。
【００５８】
ＭＮＩＳＴにおけるＭｕｌｔｉ−Ｌａｙｅｒ  Ｐｅｒｃｅｐｔｒｏｎ：ＭＬＰはＭＮＩＳＴデータセットにおいて、本開示の技術／方法を用いて訓練された。これらのネットワークは、特にデータ拡張を用いず、ランダム初期化を用いて訓練された。スパース性を利用する性能を比較するため、本開示に係る方法は、既知の従来手法であるＶＤ［Molchanov et al., 2017］及びＶＢＤ［Liu et al., 2018］が、ＫＤフレームワークと併せて使用される場合において比較された。以下の表１は、ＫＤフレーワークにおける他の変種（ｖａｒｉａｎｔｓ）と比べて、本開示の方法により達成される圧縮及びスパース性の比較を示す。
【表１】
0006959308.tif 000037
【００５９】
本開示の方法、すなわちＳＴ及びＳＴＢは、スパース性及び精度の両方の観点において、ＶＤ、ＶＢＤ及びＫＤの変種を上回ることがわかる。これは、ＶＲに加えて、ＢＳＲにより引き起こされるスパース性のためである。ＶＢＤの変種は、全ての場合において、スパース性の観点ではＳＶＤの変種を上回っている。これは、ＶＢＤの階層的な事前分布が、ＳＶＤにおいて用いられＳＶＤの正則化性能を制限している［Liu et al., 2018］対数スケール一様事前分布に対して、効果的なためである。さらに、図５Ａ−図５Ｂは、図１から図４Ｂと関連して、本開示の一実施形態に応じた種々の生徒モデルのメモリフットプリントを図示するグラフィカル表現を示す。ＳＴ及びＳＴＢの変種は、ＢＳＲにより引き起こされる高いスパース性のために、圧縮の観点において他を上回る。
【００６０】
ＣＩＦＡＲ１０における教師としてのＶＧＧ１９（ＣＮＮ）：
下記の表２は、ＣＩＦＡＲデータセットにおけるＣＮＮの評価を示す。生徒ネットワークのＬｅ−Ｃ類は、６５７，０８０個のパラメータを有し、２１２．４７倍の圧縮をもたらす。表中の＊は、ＶＧＧ１９の全層の代表値である。
【表２】
0006959308.tif 000038
【００６１】
表２から、スパース性圧縮は、ＣＮＮにおいて僅かに増加しているが、パラメータ数は、上記のように２１２．４７倍に削減されている。したがってメモリフットプリントにおける利得もまた大きい。ＶＧＧ１９である教師は、メモリのスペースの５３２．５２ＭＢを占有し、圧縮された生徒は２．５０ＭＢのみを占有するため、約２１３倍の圧縮を達成している。このことは、本開示のシステム及び方法により説明された圧縮戦略の有効性を示す。教師のヒントがあるため、よりスパースな生徒の変種は、Ｓｉｍｐｌｅの生徒と比べて性能が良い。さらに、よりスパースな生徒の変種は、ＶＲ及びＢＳＲ両方の正則化の効力により、ＫＤ−Ｓｉｍｐｌｅ及びＫＤ−Ｄの両変種を上回る。
【００６２】
変分推論の効果
図４Ａから図４Ｂ、及び表１は、図１から図３と関連して、ＫＤフレームワークに変分法を導入することにより、８倍から１７倍のスパース性を誘起することを示す。より具体的には、図４Ａから図４Ｂは、図１から図３と関連して、本開示の例示的な実施形態に従い、生徒の重み分布にスパース性を引き起こす変分推論を図示するグラフィカル表現を示す。図４Ａ−図４Ｂは、種々のネットワークの重み分布（ｙ軸は対数スケール）を表す。図４Ａの（ａ），（ｂ）は、教師及び生徒ネットワークが独立に訓練された場合の各々の重みを示し、図４Ａの（ｃ）は、教師ネットワークのヒントを用いて訓練された生徒ネットワークを示し、図４Ｂの（ｄ）及び（ｅ）は、ＳＶＤ、ＶＢＤがそれぞれ生徒ネットワークに適用され、ＫＤフレームワークにおいて訓練された場合の変分生徒を示す。
【００６３】
重みが０付近に集中していることに注目されたい。教師及び生徒ネットワークが独立に訓練されると、それらはスパースではない重みを学習することがわかる。生徒ネットワークが教師ネットワークからのヒントを用いて訓練されると、生徒ネットワークは、スパース性が僅かに増した重みを学習する。予期されたように、スパース性の劇的な増加は、ＳＶＤ及びＶＢＤが生徒ネットワークに適用された場合に得られる。
【００６４】
ブロックスパース正則化の効果
表１は、ＢＳＲの適用が、変分手法によりスパース性を増加させることを示す。しかしながら、このスパース性が、単に生徒ネットワークの重みに関する変分正則化により生じるのか、または教師ネットワークからのスパース性転移の効果によるのかは、明確ではない。図６から、教師ネットワークの重みがＢＳＲを介して考慮されると、０付近の重みの密度が減少することがわかる。このことは、教師の重みが考慮されると、スパース性が生じることを正当化する。より具体的には、図６は、図１から図５Ｂまでと関連して、本開示の例示的な実施形態に従い、生徒の重み分布におけるブロックスパース正則化（ＢＳＲ）技術により引き起こされるスパース性を図示したグラフィカル表現を示す。図６は、（ａ）生徒及び教師の両ネットワークからの重みからなる連結テンソルにＢＳＲが適用された場合（図６（ａ）参照）、（ｂ）生徒ネットワークの重みのみにＢＳＲが適用された場合（図６（ｂ）参照）に、結果として得られた生徒ＭＬＰの重み分布（ｙ軸は対数スケール）を示す。重みが０付近に集中することに注目されたい。
【００６５】
実行時間分析
教師ＭＬＰの推論時間は、０．２９ミリ秒であり、生徒の変種の推論時間は、０．２５７−０．４７０ミリ秒の範囲であった。ＭＬＰにおいては、変分生徒及びＢＳＲの変種は、類似する推論時間を有することが観察された。両変種は、訓練時には異なる計算処理を有するが、類似した生徒の構造であるため推論時には同じ操作を有する。さらに、ｓｉｍｐｌｅの変種は、αに対する閾値処理、及び結果として得られるマスクに重みを乗じる処理を含む追加の計算処理が必要な他の変種に比べて推論時間が短い。図７から明らかであるように、ＣＮＮにおいても同様の傾向がみられる。特に、図７は、図１から図６と関連して、本開示の例示的な実施形態に従った畳み込みニューラルネットワーク（ＣＮＮ）の種々の変種に関して、速度の向上を図示するグラフィカル表現を示す。
【００６６】
本開示は、ＫＤフレームワークにおける変分推論とブロックスパース正則化の組み合わせを通してニューラルネットワークをスパース化する、変分生徒を導入した。本開示はまた、テストエラーの増加を最小限に抑えながら、ＭＬＰ及びＣＮＮのメモリフットプリントを６４倍及び２１３倍に圧縮することを示した。実験結果及び評価に基づき、本開示は、変分ベイジアンドロップアウト及びスパース変分ドロップアウト技術のようなベイズ的手法が、ＫＤフレームワークにおける生徒の構造に利用されると、圧縮とそれによる速度向上に寄与することを述べた。さらに、本開示は、ＫＤ及びＶＩ技術を併せて用いることにより、モデル精度を最小限の悪化に、または全く悪化しないようにしながら、ＫＤフレームワークから圧縮の特性を受け継ぎ、かつＶＩアプローチによりスパース性の度合いを引き上げることを示した。ＭＬＰとＣＮＮにおける実験結果が上記の表（表1と表２）、及び図４Ａから図７に図示されたグラフィカル表現に示された。実験結果はメモリフットプリントに関して、教師ネットワークの再訓練を要することなくＭＬＰとＣＮＮにおいて各々約６４倍と約２１３倍の削減を示す。本開示により実施される技術または方法は、例えば多層パーセプトロン及び畳み込みニューラルネットワークのような順伝搬型ニューラルネットワークに適用可能である。一般的には、既存の従来システム及び方法において、ニューラルネットワークの完全にベイズ的な訓練手順としてＳＶＤとＶＢＤが提案されている。本開示の実施形態を通じて、本開示に係る方法は、ニューラルネットワークの訓練の準ベイズ的な技術の実施が可能である。
【００６７】
本明細書は、当業者が本実施形態を作成して使用できるように、本明細書における主題を記載する。主題の実施形態の範囲は、特許請求の範囲により定められ、当業者が想到する他の修正を含んでもよい。そのような他の修正は、当該修正が特許請求の範囲の文言と異ならない類似の要素を有する場合、または特許請求の範囲の文言と実質的な違いが無い均等の要素を含む場合には、特許請求の範囲に含まれることが意図される。
【００６８】
保護の範囲は、下記のような内部にメッセージを有するプログラム及びコンピュータ可読手段に拡張されると解される。そのようなコンピュータ可読記憶手段は、当該プログラムがサーバ若しくはモバイル機器または任意の適したプログラム可能機器において実行されると本方法の１つまたは複数のステップを実施するための、プログラムコード手段を含む。ハードウェア機器は、例えば、サーバまたはパーソナルコンピュータ等、或いはそれらの組み合わせのような任意の種類のコンピュータを含む、任意の種類のプログラム可能な機器であってもよい。当該機器は、例えば特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、或いは、例えばＡＳＩＣとＦＰＧＡ、またはソフトウェア処理コンポーネントを内部に有する少なくとも１つのマイクロプロセッサ及び少なくとも１つのメモリといった、ハードウェア及びソフトウェア手段の組み合わせ等の手段を含んでもよい。したがって、当該手段は、ハードウェア手段とソフトウェア手段の両方を含む。本明細書に記載された方法の実施形態は、ハードウェア及びソフトウェアにおいて実施可能である。機器は、ソフトウェア手段を含んでもよい。代替的に、当該実施形態は、例えば複数のＣＰＵを使用するような種々のハードウェア機器において実施されてもよい。
【００６９】
本明細書の実施形態は、ハードウェア及びソフトウェア要素を備える。ソフトウェアにおいて実施される実施形態は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これらに限らない。本明細書に記載された各種構成要素により実行される機能は、他の構成要素またはそれらの組み合わせにおいて実施されてもよい。本明細書の目的のために、コンピュータ利用可能またはコンピュータ可読媒体は、指示実行システム、装置または機器により、或いは関連して使用するためのプログラムを含み、記憶し、通信し、伝搬し、または
転送することができる任意の装置であってもよい。
【００７０】
例示されたステップは、例示的な実施形態を説明するように提示され、特定の機能が実行される態様は進行中の技術的発展により変化すると予期される。これらの例は、本明細書において例示の目的のために示され、制限の目的はない。さらに、機能的構成ブロックの境界は、本明細書において、説明の利便性のために任意に定められたものである。特定の機能及びそれらの関係を適切に実行する限り、代替的な境界が定義可能である。代替案（本明細書の記載の均等物、拡張、変形、派生等を含む）は、本明細書に含まれる教示に基づき、関連した技術に熟練した者にとって明白である。そのような代替案は、開示された実施形態の範囲に含まれる。また、「備える」、「有する」、「含有する」、「含む」及び他の類似した形態の用語は、均等の意味が意図され、これらの用語のいずれかに続く項目は、これらの項目の網羅的列挙を意味しない、または列挙される項目のみに限定されることを意味しない点において、非限定的であることが意図される。本明細書及び添付の特許請求の範囲において使用されるように、単数形が記載されていても、前後関係から明らかでない限り、複数の場合も含めて意味する。
【００７１】
さらに、１つまたは複数のコンピュータ可読記憶媒体が、本開示と一致する実施形態を実施する際において利用される。コンピュータ可読記憶媒体は、プロセッサにより可読な情報またはデータが記憶される任意の種類の物理メモリを示す。したがって、コンピュータ可読記憶媒体は、１つまたは複数のプロセッサにより実行される命令を記憶することができる。当該命令は、本明細書における実施形態と一致するステップまたはステージを、プロセッサに実行させるための命令を含む。用語「コンピュータ可読媒体」は、有形物を含み、搬送波及び過渡信号を除く、すなわち非一時的であると解される。例として、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、揮発性メモリ、不揮発性メモリ、ハードドライブ、ＣＤＲＯＭ、フラッシュドライブ、ディスク、及び他の既知の物理記憶媒体が含まれる。
【００７２】
本開示及び例は、例示としてのみ考慮されるべきであり、開示された実施形態の真の範囲は、以下の特許請求の範囲によって示される。
【図１】
0006959308.tif 000039
【図２】
0006959308.tif 000040
【図３】
0006959308.tif 000041
【図４Ａ】
0006959308.tif 000042
【図４Ｂ】
0006959308.tif 000043
【図５Ａ】
0006959308.tif 000044
【図５Ｂ】
0006959308.tif 000045
【図６】
0006959308.tif 000046
【図７】
0006959308.tif 000047