(57)【要約】【課題】ニューラルネットワークの処理速度を向上させるための装置及び方法、並びにそのニューラルネットワークにおける応用を提供する。【解決手段】該装置は処理装置を含み、該処理装置は、所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける１つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行い、ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいてニューラルネットワークを訓練し直して１つ又は複数の次元削減後のパラメータ行列を取得する。本発明の実施例によれば、ニューラルネットワークの性能が所定要求を満たすことを確保すると共に、ニューラルネットワークの処理速度を大幅に向上できる。【選択図】図２
2018109947.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークの処理速度を向上させるための装置であって、該装置は処理装置を含み、前記処理装置は、
所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける１つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、
各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行い、
前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、１つ又は複数の次元削減後のパラメータ行列を取得する、装置。
【請求項２】
前記次元削減量は、各パラメータ行列の列次元の削減量を示し、
前記処理装置は、各パラメータ行列について、
該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出し、
該パラメータ行列の前記列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定することで、前記前処理を行う、請求項１に記載の装置。
【請求項３】
前記処理装置は、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の前記列スコアとして算出する、請求項２に記載の装置。
【請求項４】
前記処理装置は、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出する、請求項２に記載の装置。
【請求項５】
前記処理装置は、
前記１つ又は複数のパラメータ行列のうち各パラメータ行列の全てのパラメータ及び前記損失重みを正規化し、
各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を前記列スコアとして算出する、請求項４に記載の装置。
【請求項６】
前記処理装置は、対応する列がゼロに設定された前記１つ又は複数のパラメータ行列に基づいて、前記ニューラルネットワークを訓練し直して、前記１つ又は複数の次元削減後のパラメータ行列を取得する、請求項２に記載の装置。
【請求項７】
前記処理装置は、
各パラメータ行列のゼロに設定された列に基づいて、各パラメータ行列に対応する入力行列の対応する行における要素をゼロに設定し、
対応する列がゼロに設定された１つ又は複数のパラメータ行列及び対応する行がゼロに設定された１つ又は複数の入力行列に基づいて前記ニューラルネットワークを訓練し直して、前記１つ又は複数の次元削減後のパラメータ行列を取得する、請求項２に記載の装置。
【請求項８】
前記処理装置は、
もう１つの所定の処理速度向上目標に基づいて、訓練し直された前記１つ又は複数の次元削減後のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、
決定された各パラメータ行列の次元削減量に基づいて前処理を再度行い、
前記ニューラルネットワークの性能が前記所定要求を満たすことを確保するように、再度の前処理後の結果に基づいて前記ニューラルネットワークを訓練し直して、１つ又は複数の次元再度削減後のパラメータ行列を取得し、
最終的な処理速度向上目標を満たしている１つ又は複数の次元削減後のパラメータ行列を取得するまで、該決定、該再度の前処理及び該訓練し直しを繰り返して実行する、請求項１乃至７の何れかに記載の装置。
【請求項９】
ニューラルネットワークの処理速度を向上させるための方法であって、
所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける１つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定するステップと、
各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行うステップと、
前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、１つ又は複数の次元削減後のパラメータ行列を取得するステップと、を含む、方法。
【請求項１０】
ニューラルネットワークにおける推論処理を実行するための装置であって、該装置は処理装置を含み、前記処理装置は、
請求項９に記載の方法を実行することで、現在のパラメータ行列を次元削減後のパラメータ行列に変換し、
次元削減後のパラメータ行列に基づいて、前記現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換し、
次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、出力行列を取得する、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、深層学習（ｄｅｅｐ  ｌｅａｒｎｉｎｇ）分野に関し、具体的には、ニューラルネットワークの処理速度を向上させるための装置及び方法、並びに該装置及び方法のニューラルネットワークにおける応用に関する。
【背景技術】
【０００２】
近年、ニューラルネットワーク（例えば畳み込みニューラルネットワーク（ＣＮＮ）、再帰型ニューラルネットワーク（ＲＮＮ）、長期／短期記憶ネットワーク（ＬＳＴＭ）等）に基づく方法は多くの応用において非常に良好な性能を達成している。これらの方法の重要な技術は、限られたサンプルを有するデータセットについての大きくて深いニューラルネットワークのモデルの有効的な訓練方法である。このような大きくて深いニューラルネットワークのモデルは強い表現力を有するため、複雑なデータに対してモデリングすることができる。しかし、このような大きくて深いネットワークの構造は、より良い性能を達成するために、常に大きな推論時間が必要となる。
【０００３】
従来のニューラルネットワークの処理速度を向上させる（即ち推論処理を加速させる）ための技術は、主に再帰的展開、畳み込みニューラルネットワークの畳み込み層の低ランク拡張、及び並列加速などの技術に集中し、例えば基本線形代数サブルーチン（ＢＬＡＳ）実装、単一命令複数データ（ＳＩＭＤ）等がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下は、本発明の態様を基本的に理解させるために、本発明の簡単な概要を説明する。なお、この簡単な概要は、本発明を網羅的な概要ではなく、本発明のポイント又は重要な部分を意図的に特定するものではなく、本発明の範囲を意図的に限定するものではなく、後述するより詳細的な説明の前文として、単なる概念を簡単な形で説明することを目的とする。
【０００５】
ニューラルネットワークの推論処理は、一般的に行列乗算の演算が必要となり、ニューラルネットワークのサイズ及び深さの増大に伴い、行列のサイズも大きくなるため、推論処理に係る行列乗算の演算量が指数的に増加し、ニューラルネットワークの処理速度が大幅に低下してしまう。畳み込みニューラルネットワーク（ＣＮＮ）の例では、畳み込みニューラルネットワークの処理時間の約９９％が畳み込み層及び全結合層でかかり、これらの層は主に行列乗算の演算により実現される。従って、行列乗算の計算量を低減できれば、ニューラルネットワークの推論処理を大幅に加速させることができるため、ニューラルネットワークの処理速度を著しく向上できる。
【０００６】
本発明は、ニューラルネットワークの性能が所定要求を満たすことを確保すると共に、行列の次元を削減することで行列乗算の計算量を低減でき、ニューラルネットワークの処理速度を向上できる、ニューラルネットワークの処理速度を向上させるための装置及び方法、並びに該装置及び方法のニューラルネットワークにおける応用を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の１つの態様では、ニューラルネットワークの処理速度を向上させるための装置であって、該装置は処理装置を含み、前記処理装置は、所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける１つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行い、前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、１つ又は複数の次元削減後のパラメータ行列を取得する、装置を提供する。
【０００８】
本発明のもう１つの態様では、前記次元削減量は、各パラメータ行列の列次元の削減量を示し、前記処理装置は、各パラメータ行列について、該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出し、該パラメータ行列の前記列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定することで、前記前処理を行う。
【０００９】
本発明のもう１つの態様では、前記処理装置は、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の前記列スコアとして算出する。
【００１０】
本発明のもう１つの態様では、前記処理装置は、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出する。
【００１１】
本発明のもう１つの態様では、前記処理装置は、前記１つ又は複数のパラメータ行列のうち各パラメータ行列の全てのパラメータ及び前記損失重みを正規化し、各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を前記列スコアとして算出する。
【００１２】
本発明のもう１つの態様では、前記処理装置は、対応する列がゼロに設定された前記１つ又は複数のパラメータ行列に基づいて、前記ニューラルネットワークを訓練し直して、前記１つ又は複数の次元削減後のパラメータ行列を取得する。
【００１３】
本発明のもう１つの態様では、前記処理装置は、各パラメータ行列のゼロに設定された列に基づいて、各パラメータ行列に対応する入力行列の対応する行における要素をゼロに設定し、対応する列がゼロに設定された１つ又は複数のパラメータ行列及び対応する行がゼロに設定された１つ又は複数の入力行列に基づいて前記ニューラルネットワークを訓練し直して、前記１つ又は複数の次元削減後のパラメータ行列を取得する。
【００１４】
本発明のもう１つの態様では、前記処理装置は、もう１つの所定の処理速度向上目標に基づいて、訓練し直された前記１つ又は複数の次元削減後のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、決定された各パラメータ行列の次元削減量に基づいて前処理を再度行い、前記ニューラルネットワークの性能が前記所定要求を満たすことを確保するように、再度の前処理後の結果に基づいて前記ニューラルネットワークを訓練し直して、１つ又は複数の次元再度削減後のパラメータ行列を取得し、最終的な処理速度向上目標を満たしている１つ又は複数の次元削減後のパラメータ行列を取得するまで、該決定、該再度の前処理及び該訓練し直しを繰り返して実行する。
【００１５】
本発明のもう１つの態様では、ニューラルネットワークの処理速度を向上させるための方法であって、所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける１つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定するステップと、各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行うステップと、前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、１つ又は複数の次元削減後のパラメータ行列を取得するステップと、を含む、方法を提供する。
【００１６】
本発明のもう１つの態様では、ニューラルネットワークにおける推論処理を実行するための装置であって、該装置は処理装置を含み、前記処理装置は、上記のニューラルネットワークの処理速度を向上させるための方法を実行することで、現在のパラメータ行列を次元削減後のパラメータ行列に変換し、次元削減後のパラメータ行列に基づいて、前記現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換し、次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、出力行列を取得する、装置を提供する。
【００１７】
本発明のもう１つの態様では、ニューラルネットワークの推論エンジンにおいて実行される方法であって、上記のニューラルネットワークの処理速度を向上させるための方法を実行することで、現在のパラメータ行列を次元削減後のパラメータ行列に変換し、次元削減後のパラメータ行列に基づいて、前記現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換し、次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、出力行列を取得する、方法を提供する。
【００１８】
本発明のもう１つの態様では、上記本発明の態様の方法を実現するためのコンピュータプログラムコード及びコンピュータプログラムプロダクト、並びに上記本発明の態様の方法を実現するためのコンピュータプログラムコードを記録したコンピュータ読み取り可能な記憶媒体をさらに提供する。
【００１９】
本発明の実施例は、ニューラルネットワークにおけるパラメータ行列に対して次元削減処理（好ましくは、列の次元削減処理）を行い、好適には、パラメータ行列に対応する入力行列に対して次元削減処理（好ましくは、行の次元削減処理）を行うことで、行列乗算の計算量を大幅に低減でき、ニューラルネットワークの処理速度を著しく向上できる。
【００２０】
以下の発明の詳細な説明で本発明の実施例の他の態様を説明する。なお、詳細な説明は本発明の実施例の好ましい実施例を十分に公開するためのものであり、本発明の実施例を限定するものではない。
【図面の簡単な説明】
【００２１】
本発明の上記及び他の利点及び特徴を説明するために、以下は、図面を参照しながら本発明の具体的な実施形態をさらに詳細に説明する。該図面及び下記の詳細な説明は本明細書に含まれ、本明細書の一部を形成するものである。同一の機能及び構成を有するユニットは、同一の符号で示されている。なお、これらの図面は、本発明の典型的な例を説明するためのものであり、本発明の範囲を限定するものではない。
【図１】ニューラルネットワークの一般的な構造を示す図である。
【図２】本発明の実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。
【図３】図２示す装置における前処理部の機能的構成を示すブロック図である。
【図４】図２示す装置における前処理部のもう１つの機能的構成を示すブロック図である。
【図５】本発明のもう１つの実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。
【図６】本発明のもう１つの実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。
【図７】本発明の実施例に係るニューラルネットワークの処理速度を向上させるための方法を示すフローチャートである。
【図８】本発明の実施例に係るニューラルネットワークにおける推論処理を実行するための装置の機能的構成を示すブロック図である。
【図９】本発明の実施例に係るニューラルネットワークの推論エンジンにおいて実行される方法を示すフローチャートである。
【図１０】本発明の実施例を実施するための汎用パーソナルコンピュータの例示的な構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照しながら本発明の例示的な実施例を詳細に説明する。説明の便宜上、明細書には実際の実施形態の全ての特徴が示されていない。なお、実際に実施する際に、開発者の具体的な目標を実現するために、特定の実施形態を変更してもよい、例えばシステム及び業務に関する制限条件に応じて実施形態を変更してもよい。また、開発作業が非常に複雑であり、且つ時間がかかるが、本公開の当業者にとって、この開発作業は単なる例の作業である。
【００２３】
なお、本発明を明確にするために、図面には本発明に密に関連する装置の構成要件及び／又は処理のステップのみが示され、本発明と関係のない細部が省略される。
【００２４】
以下は図１乃至図１０を参照しながら本発明の実施例を詳細に説明する。
【００２５】
まず、図１を参照しながらニューラルネットワークの一般的な構造を説明する。図１はニューラルネットワークの一般的な構造を示す図である。
【００２６】
図１に示すように、ニューラルネットワークは、ディープニューラルネットワークとも称され、一般的に入力層、１つ又は複数の隠れ層、及び出力層を含み、ニューラルネットワークの深さは隠れ層の数の増加に伴って増加し、その性能も向上する。畳み込みニューラルネットワークのでは、隠れ層は一般的に１つ又は複数の畳み込み層（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｌａｙｅｒ）、全結合層（ｆｕｌｌｙ  ｃｏｎｎｅｃｔｉｏｎ  ｌａｙｅｒ）、ドロップアウト層（ｄｒｏｐｏｕｔ  ｌａｙｅｒ）、補正線形ユニット層（ＲｅＬＵ  ｌａｙｅｒ）及びプーリング層（Ｐｏｏｌｉｎｇ  ｌａｙｅｒ）等を含む。
【００２７】
上述したように、ニューラルネットワークの深さ及びサイズの増大に伴い、計算複雑さも大幅に増大するため、ニューラルネットワークの実行効率が低下してしまう。畳み込みニューラルネットワークの処理時間の約９９％が畳み込み層及び全結合層の行列乗算の演算でかかっているため、畳み込み層及び全結合層の行列乗算の計算量を低減できれば、ニューラルネットワークの全体的な処理速度を著しく向上できる。
【００２８】
本発明はこのような概念に基づいてなされたものである。なお、以下の詳細な説明では、畳み込みニューラルネットワーク（ＣＮＮ）における畳み込み層及び／又は全結合層を一例にして本発明の実施例のニューラルネットワークの処理速度を向上させるための装置及び方法を説明するが、本発明はこれに限定されず、ニューラルネットワークに適用される任意の行列乗算に関する処理であってもよい。また、本発明の技術は他の分野における類似の行列乗算に適用されてもよい。
【００２９】
図２は本発明の実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。
【００３０】
図２に示すように、本実施例の装置２００は次元削減量決定部２１０、前処理部２２及び訓練部２３０を含む。以下は、各構成部の機能的構成を詳細に説明する。
【００３１】
次元削減量決定部２１０は、所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける１つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定してもよい。
【００３２】
好ましくは、所定の処理速度向上目標は、ニューラルネットワークの性能への影響が許容範囲内になるように決定されてもよい。ここで、処理速度の向上は、ニューラルネットワークの性能への影響が許容範囲内になることを確保しなければならない。そうでなければ、処理速度を大幅に向上しても、ニューラルネットワークの出力精度が大幅に低下し、これはユーザにとって好ましくない。
【００３３】
好ましくは、該次元削減量は列の次元削減量であってもよい。訓練により得られた畳み込みニューラルネットワークの任意の畳み込み層又は全結合層のパラメータ行列（重み行列とも称される）Ａをｍ×ｋ次元とすると、Ａは以下の式（１）のように表してもよい。
【数１】
2018109947.tif 000003
【００３４】
通常、ｋ＞＞ｍ、例えばｋはｍの４．５倍であってもよい。このため、列の次元ｋを削減することで行列乗算の計算量をより多く低減でき、ニューラルネットワークの処理速度をより効果的に向上できる。さらに、何れの層のパラメータ行列の行の次元が一般的に該層の特徴図の数に関連し、列の次元が一般的に該層の隠れニューロンの数に関連するため、処理速度を向上するための列次元削減のニューラルネットワークの出力性能（例えば出力精度）への影響が比較的に小さい。なお、行次元の削減が処理速度の向上に繋がり、且つ／又はシステム性能への影響が小さい場合は、本発明の技術は行次元の削減、及び／又は行次元及び列次元両方の削減に適用されてもよい。
【００３５】
好ましくは、次元削減量決定部２１０は、１つ又は複数のパラメータ行列のうち入力層に近いパラメータ行列の列次元の削減量が小さく、且つ全てのパラメータ行列の列次元の削減量の和が所定の処理速度向上目標を満たすように、各パラメータ行列の列次元の削減量を決定してもよい。これは、入力層に近い隠れ層（ここで、畳み込み層及び／又は全結合層を意味する）のパラメータ行列のニューラルネットワークの出力精度への影響が大きいからである。このため、好ましくは、ニューラルネットワークの出力精度への影響を回避するために、入力層に近い隠れ層の列次元の削減量を小さくする。層数の増加に伴い、各層のパラメータ行列の列次元の削減量が増大してもよい。
【００３６】
具体的には、畳み込みニューラルネットワークに含まれる畳み込み層及び全結合層の数をＬとし、即ちＬ個のパラメータ行列が存在し、且つ所定の処理速度向上目標に基づいて決定された全体的な列次元の削減量（例えば削減比率）をαとすると、各層の列次元の削減量がα１≦α２≦α３…≦αＬを満たし、且つ
【数２】
2018109947.tif 000004
【００３７】
となるように決定される。ここで、１〜Ｌの順序は、入力層に最も近い隠れ層から層の番号が徐々に増大する順序を表す。
【００３８】
本発明の実施例では、各層の次元削減量の具体的な計算方法が限定されず、上記制約条件を満たし、且つニューラルネットワークの出力性能への影響が所定の許容範囲内になることを確保できれば良い。
【００３９】
前処理部２２０は、各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行う。
【００４０】
具体的には、１番目のパラメータ行列の列次元の削減量をαｌとし、その元の列次元がｋｌとすると、該パラメータ行列に対して前処理を行って、列次元が
【数３】
2018109947.tif 000005
記号
（外１）
2018109947.tif 000006
は切り捨てて整数部分を求める処理を表し、即ちｋ’ｌ整数である）のパラメータ行列に変換する。
【００４１】
以下は、図３及び図４を参照しながら前処理部２２０の具体的な構成の例を詳細に説明する。図３は図２示す装置における前処理部の機能的構成を示すブロック図である。
【００４２】
図３に示すように、前処理部２２０は列スコア算出モジュール２２０１及びゼロ設定モジュール２２０２を含んでもよい。以下は各モジュールの機能的構成の例を詳細に説明する。
【００４３】
列スコア算出モジュール２２０１は、各パラメータ行列について、該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出してもよい。
【００４４】
具体的には、列スコア算出モジュール２２０１は、例えば各列のパラメータの絶対値の和を該列の列スコアとして算出してもよい。該計算処理は
【数４】
2018109947.tif 000007
【００４５】
で表されてもよい（１≦ｊ≦ｋ）。
【００４６】
ゼロ設定モジュール２２０２は、各パラメータ行列について、決定された列次元の削減量及び算出された各列の列スコアに基づいて、所定条件を満たしている列のパラメータをゼロに設定してもよい。
【００４７】
１つの態様では、例えば、ゼロ設定モジュール２２０２は、ｌ番目のパラメータ行列について、算出された該パラメータ行列の各列の列スコアＳｊを値の小さい順又は大きい順に並び替え、上位又は下位（即ち列スコアが低い）所定数（例えば、該数はαｌ×ｋｌの整数部分であってもよい）の列のパラメータをゼロに設定してもよい。
【００４８】
もう１つの態様では、例えば、ゼロ設定モジュール２２０２は、算出された各列の列スコア及び該パラメータ行列の列次元の削減量に基づいて列スコアの閾値を決定し、列スコアが該閾値よりも小さい列のパラメータをゼロに設定してもよい。具体的な計算処理は、当業者が本発明の原理及び把握している数学知識に基づいて実際の需要に応じて設定してもよく、具体的に限定されない。
【００４９】
好ましくは、各パラメータ行列の列次元削減のニューラルネットワークの性能への影響をできるだけ小さくするために、各列の列スコアを算出する際に、パラメータ行列の各パラメータに関連する損失重み（ｌｏｓｓ  ｗｅｉｇｈｔ）をさらに考慮してもよい。該損失重みもニューラルネットワークを訓練して得られたものであり、パラメータ行列における各パラメータのニューラルネットワークの損失への寄与を表すことができるため、各パラメータのニューラルネットワークの性能に対する重用性をある程度反映できる。各パラメータｗに関連する損失重みは例えば以下の式（２）で表されてもよい。
【数５】
2018109947.tif 000008
【００５０】
ここで、
（外２）
2018109947.tif 000009
は、異なるサンプルを用いた逆伝搬勾配計算におけるパラメータｗの損失重みを表す。
【００５１】
ニューラルネットワークを訓練して対応するパラメータ行列及び関連する損失重みを取得する方法は、従来技術と同様であり、ここでその詳細な説明を省略する。
【００５２】
以下は、図４を参照しながら前処理部のもう１つの機能的構成を詳細に説明する。図４は図２示す装置における前処理部のもう１つの機能的構成を示すブロック図である。
【００５３】
図４に示すように、本実施例の前処理部２２０は、列スコア算出モジュール２２０３及びゼロ設定モジュール２２０４を含んでもよい。以下は、各モジュールの具体的な機能的構成を詳細に説明する。
【００５４】
列スコア算出モジュール２２０３は、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出してもよい。
【００５５】
具体的には、列スコア算出モジュール２２０３は、各パラメータ行列における全てのパラメータ及び関連する損失重みを正規化してもよい。例えば、正規化は、［０，１］の範囲内の値であってもよい。該正規化処理は例えば以下の式（３）及び式（４）で表されもよい。
【数６】
2018109947.tif 000010
【数７】
2018109947.tif 000011
【００５６】
ここで、ｗｉ及びｗｉ＊は正規化前のパラメータ値及び正規化後のパラメータ値をそれぞれ表し、Ｗｍｉｎは該パラメータ行列における絶対値が最小のパラメータ値の絶対値を表し、Ｗｍａｘは該パラメータ行列における絶対値が最大のパラメータ値の絶対値を表し、ｌｗｉ及びｌｗｉ＊は正規化前の損失重み及び正規化後の損失重みをそれぞれ表し、ＬＷｍｉｎは該パラメータ行列における絶対値が最小の損失重みの絶対値を表し、ＬＷｍａｘは該パラメータ行列における絶対値が最大の損失重みの絶対値を表す。
【００５７】
列スコア算出モジュール２２０３は、正規化されたパラメータ及び損失重みに基づいて各列の列スコアを算出してもよい。例えば、各列の正規化された各パラメータとその損失重みの加重和の和を該列の列スコアとして算出してもよい。該計算処理は例えば以下の式（５）で表されてもよい。
【数８】
2018109947.tif 000012
【００５８】
ここで、１≦ｊ≦ｋとなり、λは、パラメータ値と損失重みとのバランスパラメータであり、所定の経験値であってもよいし、実際の状況に応じて有限数の実験によって決定されてもよい。例えば、損失重みとパラメータ値との寄与を等しく考慮する場合、λは０．５に設定してもよい。
【００５９】
ゼロ設定モジュール２２０４は、各パラメータ行列について、決定された列次元の削減量及び算出された各列の列スコアに基づいて、所定条件を満たしている列のパラメータをゼロに設定してもよい。ゼロ設定モジュール２２０４によるゼロ設定処理は上記の図３に示す実施例におけるゼロ設定モジュール２２０２によるゼロ設定処理と基本的に同様であり、ここでその説明を省略する。
【００６０】
なお、上述した列スコアの算出方法及び対応するゼロ設定方法は単なる一例であり、本発明を限定するものではない。当業者が本発明の原理に基づいて変形を行ってもよく、ゼロに設定された列のニューラルネットワークの性能への影響をできるだけ小さくすれば良く、これらの変形も明らかに本発明の保護範囲内に入る。
【００６１】
次に、図２に戻り、訓練部２３０は、ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいてニューラルネットワークを訓練し直して、１つ又は複数の次元削減後のパラメータ行列を取得してもよい。
【００６２】
具体的には、仮に上記前処理を行って得られたパラメータ行列は以下の式（６）で表されてもよい。
【数９】
2018109947.tif 000013
【００６３】
そして、訓練部２３０は、訓練データを用いて、式（６）に示す対応する列がゼロに設定された１つ又は複数のパラメータ行列に基づいてニューラルネットワークを訓練し直して、残り列の最適化後のパラメータ値を取得して、ニューラルネットワークの性能が所定要求を満たすことを確保する。例えば、訓練し直されたパラメータ行列の列次元をｋ’とすると、訓練し直されたパラメータ行列は例えば以下の式（７）で表されてもよい。
【数１０】
2018109947.tif 000014
【００６４】
以上から分かるように、本発明の実施例によれば、パラメータ行列の列次元はｋ列からｋ’列に削減され、その行次元は変更されないままである。
【００６５】
なお、パラメータ行列の行次元の削減のシステム性能への影響が許容範囲内にある場合は、上記処理と同様に、パラメータ行列の行次元の削減を実行してもよいし、行次元と列次元両方を削減してもよい。具体的な処理及び原理は上記処理と基本的に同様であり、当業者は上記本発明の原理に基づいて適切に変形して対応する削減処理を行ってもよいが、ここで詳細な説明を省略する。
【００６６】
好ましくは、所定の処理速度向上目標を実現するためのパラメータ行列の削減の上記処理は反復的に行ってもよい。例えば、所定の処理速度向上目標に基づいて決定された次元削減量が５０％である場合、上記の次元削減処理を実行し、まず列次元をｋ列から０．７５ｋ列に削減し、そして類似の次元削減処理を繰り返して列次元を０．７５ｋ列から０．５ｋ列にさらに削減してもよい。このような反復的処理により処理速度向上目標に徐々に近くすることで、上記次元削減処理のニューラルネットワークの性能への影響を低減でき、ニューラルネットワークの出力精度を確保できる。以下は、図５を参照しながら該態様の実施例を説明する。
【００６７】
図５は本発明のもう１つの実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。
【００６８】
図５に示すように、該実施例の装置５００は、次元削減量決定部５１０、前処理部５２０、訓練部５３０及び制御部５４０を含んでもよい。ここで、次元削減量決定部５１０、前処理部５２０及び訓練部５３０は図２に示す次元削減量決定部２１０、前処理部２２０及び訓練部２３０の機能的構成と基本的に同様であるため、ここで詳細に説明されていない内容は上記対応する構成部の説明を参照してもよく、ここでその説明を省略する。以下は、制御部５４０のみの機能的構成を具体的に説明する。
【００６９】
制御部５４０は、最終的な処理速度向上目標を満たしている１つ又は複数の次元削減後のパラメータ行列を取得するまで、もう１つの所定の処理速度向上目標に基づいて、次元削減量決定部５１０、前処理部５２０及び訓練部５３０がそれぞれの処理を繰り返すように制御してもよい。
【００７０】
具体的には、次元削減量決定部５１０は、もう１つの所定の処理速度向上目標に基づいて、訓練し直された１つ又は複数の次元削減後のパラメータ行列のうち各パラメータ行列の次元削減量を決定してもよい。前処理部５２０は、決定された各パラメータ行列の次元削減量に基づいて前処理を再度行ってもよい。訓練部５３０は、ニューラルネットワークの性能が所定要求を満たすことを確保するように、再度の前処理後の結果に基づいてニューラルネットワークを訓練し直して、１つ又は複数の次元再度削減後のパラメータ行列を取得してもよい。最終的な処理速度向上目標を満たしている１つ又は複数の次元削減後のパラメータ行列を取得するまで、該決定、該再度の前処理及び該訓練し直しを繰り返してもよい。
【００７１】
図６は本発明のもう１つの実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。
【００７２】
図６に示すように、該実施例の装置６００は、次元削減量決定部６１０、第１ゼロ設定部６２０、第１ゼロ設定部６３０及び訓練部６４０を含んでもよい。ここで、次元削減量決定部６１０及び第１ゼロ設定部６２０は図２に示す次元削減量決定部２１０及び前処理部２２０の機能的構成と基本的に同様であるため、ここで詳細に説明されていない内容は上記対応する構成部の説明を参照してもよく、ここでその説明を省略する。以下は、第２ゼロ設定部６３０及び訓練部６４０のみの機能的構成を具体的に説明する。
【００７３】
第２ゼロ設定部６３０は、第１ゼロ設定部６２０により決定された各パラメータ行列のゼロに設定された列に基づいて、各パラメータ行列に対応する入力行列の対応する行における行をゼロに設定してもよい。第１ゼロ設定部６２０によるパラメータ行列の対応する列のゼロ設定処理は、図２乃至図４の説明を参照してもよく、ここでその説明を省略する。
【００７４】
具体的には、ニューラルネットワークの任意の畳み込み層又は全結合層の行列乗算では、該層の出力行列Ｃはパラメータ行列ＡＷと入力行列Ｂとの畳み込みに等しく、すなわちＣ＝ＡＷ×Ｂであり、ここで、入力行列Ｂはｋ行ｎ列の行列であり、出力行列Ｃはｍ行ｎ列の行列である。行列乗算の一般的な原理によると、行列Ｂの行次元は行列ＡＷの列次元に等しい必要があるため、パラメータ行列ＡＷの列次元が削減された場合は、入力行列Ｂの行次元も同様に削減される必要がある。例えば、パラメータ行列の第２列と第４列の要素をゼロに設定すると、行列乗算の原理により、入力行列の第２行と第４行の要素の具体値に関わらず、二者の乗算結果は全て０となる。従って、計算処理を簡略化するために、入力行列の第２行及び第４行の要素をそれに応じてゼロに設定してもよい。
【００７５】
訓練部６４０は、対応する列がゼロに設定された１つ又は複数のパラメータ行列及び対応する行がゼロに設定された１つ又は複数の入力行列に基づいて、ニューラルネットワークを訓練し直して、１つ又は複数の次元削減後のパラメータ行列を取得してもよい。
【００７６】
なお、上述したように、パラメータ行列の列がゼロに設定された場合は、入力行列の対応する行の要素の具体値に関わらず、両者の乗算結果は全て０となる。このため、第２ゼロ設定部６３０は任意のものであり、入力行列に対して何れの処理をせずに、図２に示すように、対応する列がゼロに設定されたパラメータ行列にのみ基づいてニューラルネットワークを訓練し直してもよい。
【００７７】
なお、図２乃至図６に示す各部及び／又は各モジュールは単なる具体的な機能を実現するために分割された機能的モジュールであり、具体的な態様を限定するものではない。実際に実施する際に、上記各機能的構成部は独立的な物理的エンティティとして実現されてもよし、単一のエンティティ（例えば処理装置（ＣＰＵ又はＤＳＰ等）、集積回路、プログラマブル論理デバイス）により実現されてもよい。
【００７８】
上記装置の実施例に対応して、本発明は以下の方法の実施例をさらに提供する。
【００７９】
図７は本発明の実施例に係るニューラルネットワークの処理速度を向上させるための方法を示すフローチャートである。該方法は以下のステップを含む。
【００８０】
図７に示すように、ステップＳ７１０において、所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける１つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定する。
【００８１】
そして、ステップＳ７２０において、各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行う。
【００８２】
好ましくは、次元削減量は、各パラメータ行列の列次元の削減量を示してもよい。ステップＳ７２０は、各パラメータ行列について、該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出するステップと、各パラメータ行列について、決定された該パラメータ行列の列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定するステップと、を含んでもよい。
【００８３】
好ましくは、列スコアを算出するステップは、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の列スコアとして算出するステップを含んでもよい。
【００８４】
好ましくは、列スコアを算出するステップは、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて列スコアを算出するステップを含んでもよい。
【００８５】
好ましくは、列スコアを算出するステップは、各パラメータ行列の全てのパラメータ及び損失重みを正規化するステップと、各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を列スコアとして算出するステップと、を含んでもよい。
【００８６】
具体的な前処理は上記の図３及び図４の説明を参照してもよく、ここでその説明を省略する。
【００８７】
そして、ステップＳ７３０において、ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいてニューラルネットワークを訓練し直して、１つ又は複数の次元削減後のパラメータ行列を取得する。
【００８８】
なお、ここの方法の実施例は上記図２乃至図６に示す装置の実施例に対応するものであるため、ここで詳細に説明されていない内容は上記の装置の実施例の対応する説明を参照してもよく、ここでその詳細な説明を省略する。
【００８９】
次に、図８及び図９を参照しながら、本発明の実施例のニューラルネットワークの処理速度を向上させるための装置又は方法のニューラルネットワークにおける応用を説明する。
【００９０】
図８は本発明の実施例に係るニューラルネットワークにおける推論処理を実行するための装置の機能的構成を示すブロック図である。
【００９１】
図８に示すように、該実施例の装置８００は、第１処理部８１０、第２処理部８２０及び乗算部８３０を含んでもよい。以下は、各部の機能的構成を詳細に説明する。
【００９２】
第１処理部８１０は、上記ニューラルネットワークの処理速度を向上させるための方法を実行することで、処理すべき対象である目標層の現在のパラメータ行列を次元削減後のパラメータ行列に変換してもよい。好ましくは、第１処理部８１０は現在のパラメータ行列を列次元削減後のパラメータ行列に変換してもよい。
【００９３】
具体的には、第１処理部８１０は、上記ニューラルネットワークの処理速度を向上させるための方法を実行することで、目標層（例えば畳み込み層又は全結合層）のパラメータ行列を次元削減後のパラメータ行列に変換してもよい。例えば、ｍ×ｋ次元のパラメータ行列をｍ×ｋ’次元のパラメータ行列に変換してもよく、ここで、ｋ’＜ｋ。
【００９４】
第２処理部８２０は、次元削減後のパラメータ行列に基づいて、現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換してもよい。
【００９５】
具体的には、パラメータ行列の次元削減処理において該パラメータ行列のゼロに設定された列に基づいて、入力行列の対応する行の要素を除去してもよい。例えば、パラメータ行列の第２列及び第４列がゼロに設定された場合、入力行列の第２行及び第４行の要素を直接除去することで、入力行列をｋ×ｎ次元からｋ’×ｎ次元に変換する。
【００９６】
乗算部８３０は、次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、目標層の出力行列を取得してもよい。
【００９７】
以上から分かるように、本発明の技術によれば、パラメータ行列及び入力行列に対して次元削減処理を行うことで、推論エンジンにおける計算量を大幅に低減でき、推論時間を大幅に短縮でき、ニューラルネットワークの処理速度を向上できる。また、出力行列の次元が変更されず（ｍ×ｎ次元のままである）、ニューラルネットワークの性能が所定の性能要求を満たすことを確保できる。
【００９８】
なお、図８に示す各部は単なる具体的な機能を実現するために分割された機能的モジュールであり、具体的な態様を限定するものではない。実際に実施する際に、上記各機能的構成部は独立的な物理的エンティティとして実現されてもよし、単一のエンティティ（例えば処理装置（ＣＰＵ又はＤＳＰ等）、集積回路、プログラマブル論理デバイス）により実現されてもよい。
【００９９】
上記本発明の装置の実施例に対応して、本発明は以下の方法の実施例をさらに提供する。
【０１００】
図９は本発明の実施例に係るニューラルネットワークの推論エンジンにおいて実行される方法を示すフローチャートである。図９に示すように、該方法は以下のステップを含む。
【０１０１】
ステップＳ９１０において、上記ニューラルネットワークの処理速度を向上させるための方法を実行することで、処理すべき対象である目標層の現在のパラメータ行列を次元削減後のパラメータ行列に変換する。好ましくは、現在のパラメータ行列を、列次元が削減されたパラメータ行列に変換してもよい。
【０１０２】
そして、ステップＳ９２０において、次元削減後のパラメータ行列に基づいて、現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換する。具体的には、パラメータ行列の次元削減処理において該パラメータ行列のゼロに設定された列に基づいて、入力行列の対応する行の要素を除去する。
【０１０３】
そして、ステップＳ９３０において、次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、目標層の出力行列を取得する。
【０１０４】
なお、ここの方法の実施例は上記の図８に示す装置の実施例に対応するものであるため、詳細に説明されていない内容は上記装置の実施例の対応部分の説明を参照してもよく、ここでその説明を省略する。
【０１０５】
なお、本発明の実施例の記憶媒体及びプログラムプロダクトの機器において実行される指令は、上記装置の実施例に対応する方法を実行するように構成されてもよいため、ここで詳細に説明されていない内容は上記の対応部分の説明を参照してもよく、ここでその説明を省略する。
【０１０６】
それに応じて、本発明は、機器読み取り可能な指令コードを記憶するプログラムのプロダクトが記録されている記憶媒体をさらに含む。該記憶媒体は、フロッピーディスク、光ディスク、光磁気ディスク、メモリカード、メモリスティックを含むが、これらに限定されない。
【０１０７】
なお、上記処理及び装置はソフトウェア及び／又はにより実現されてもよい。ソフトウェア又はファームウェアにより実施されている場合、記録媒体又はネットワークから専用のハードウェア構成を有するコンピュータ、例えば図１０示されている汎用パーソナルコンピュータ１０００に上記方法を実施するためのソフトウェアを構成するプログラムをインストールしてもよく、該コンピュータは各種のプログラムがインストールされている場合は各種の機能などを実行できる。図１０は本発明の実施例を実施するための汎用パーソナルコンピュータの例示的な構成を示すブロック図である。
【０１０８】
図１０において、中央処理部（即ちＣＰＵ）１００１は、読み出し専用メモリ（ＲＯＭ）１００２に記憶されているプログラム、又は記憶部１００８からランダムアクセスメモリ（ＲＡＭ）１００３にロードされたプログラムにより各種の処理を実行する。ＲＡＭ１００３には、必要に応じて、ＣＰＵ１００１が各種の処理を実行するに必要なデータが記憶されている。
【０１０９】
ＣＰＵ１００１、ＲＯＭ１００２及びＲＡＭ１００３は、バス１００４を介して互いに接続されている。入力／出力インターフェース１００５もバス１００４に接続されている。
【０１１０】
入力部１００６（キーボード、マウスなどを含む）、出力部１００７（ディスプレイ、例えばブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など、及びスピーカなどを含む）、記憶部１００８（例えばハードディスクなどを含む）、通信部１００９（例えばネットワークのインタフェースカード、例えばＬＡＮカード、モデムなどを含む）は、入力／出力インターフェース１００５に接続されている。通信部１００９は、ネットワーク、例えばインターネットを介して通信処理を実行する。
【０１１１】
必要に応じて、ドライブ部１０１０は、入力／出力インターフェース１００５に接続されてもよい。取り外し可能な媒体１０１１は、例えば磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどであり、必要に応じてドライブ部１０１０にセットアップされて、その中から読みだされたコンピュータプログラムは必要に応じて記憶部１００８にインストールされている。
【０１１２】
ソフトウェアにより上記処理を実施する場合、ネットワーク、例えばインターネット、又は記憶媒体、例えば取り外し可能な媒体１０１１を介してソフトウェアを構成するプログラムをインストールする。
【０１１３】
これらの記憶媒体は、図１０に示されている、プログラムを記憶し、機器と分離してユーザへプログラムを提供する取り外し可能な媒体１０１１に限定されない。取り外し可能な媒体１０１１は、例えば磁気ディスク（フロッピーディスク（登録商標）を含む）、光ディスク（光ディスク−読み出し専用メモリ（ＣＤ−ＲＯＭ）、及びデジタル多目的ディスク（ＤＶＤ）を含む）、光磁気ディスク（ミニディスク（ＭＤ）（登録商標））及び半導体メモリを含む。或いは、記憶媒体は、ＲＯＭ１００２、記憶部１００８に含まれるハードディスクなどであってもよく、プログラムを記憶し、それらを含む機器と共にユーザへ提供される。
【０１１４】
以上は本発明の具体的な実施例の説明を通じて本発明を開示するが、上記の全ての実施例及び例は例示的なものであり、制限的なものではない。当業者は、特許請求の範囲の主旨及び範囲内で本発明に対して各種の修正、改良、均等的なものに変更してもよい。これらの修正、改良又は均等的なものに変更することは本発明の保護範囲に含まれるものである。
【０１１５】
例えば、上記の実施例の１つのユニットに含まれる複数の機能はそれぞれの装置により実現されてもよい。又は、上記の実施例の複数のユニットに含まれる複数の機能はそれぞれの装置によりそれぞれ実現されてもよい。また、上記の機能の１つは複数のユニットにより実現されてもよい。なお、このような構成は本発明の技術的範囲内に含まれる。
【０１１６】
また、本発明の方法は、明細書に説明された時間的順序で実行するものに限定されず、他の時間的順序で順次、並行、又は独立して実行されてもよい。このため、本明細書に説明された方法の実行順序は、本発明の技術的な範囲を限定するものではない。
【０１１７】
なお、用語「包括／含む」は、本文に使用される際に、特徴、要素、ステップ又は構成要件の存在を意味し、一つ又は複数の他の特徴、要素、ステップ又は構成要件の存在又は追加を排除するものではない。なお、本発明の具体的な実施例の上記の説明では、１つの態様について説明及び／又は例示された特徴は同一又は類似の方式で１つ又は複数の他の態様に用いられてもよいし、他の態様における特徴と組み合わせてもよいし、他の態様における特徴の代わりに用いられてもよい。また、本発明の方法は、明細書に説明された時間的順序で実行するものに限定されず、他の時間的順序で順次、並行、又は独立して実行されてもよい。このため、本明細書に説明された方法の実行順序は、本発明の技術的な範囲を限定するものではない。
【０１１８】
また、上述の各実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
ニューラルネットワークの処理速度を向上させるための装置であって、該装置は処理装置を含み、前記処理装置は、
所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける１つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、
各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行い、
前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、１つ又は複数の次元削減後のパラメータ行列を取得する、装置。
（付記２）
前記次元削減量は、各パラメータ行列の列次元の削減量を示し、
前記処理装置は、各パラメータ行列について、
該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出し、
該パラメータ行列の前記列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定することで、前記前処理を行う、付記１に記載の装置。
（付記３）
前記処理装置は、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の前記列スコアとして算出する、付記２に記載の装置。
（付記４）
前記処理装置は、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出する、付記２に記載の装置。
（付記５）
前記処理装置は、
前記１つ又は複数のパラメータ行列のうち各パラメータ行列の全てのパラメータ及び前記損失重みを正規化し、
各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を前記列スコアとして算出する、付記４に記載の装置。
（付記６）
前記処理装置は、ゼロ設定を実行するステップにおいて、
各パラメータ行列について、決定された列次元の削減量及び算出された各列の列スコアに基づいて閾値を決定し、
各パラメータ行列における列スコアが前記閾値よりも小さい列のパラメータをゼロに設定する、付記２に記載の装置。
（付記７）
前記処理装置は、ゼロ設定を実行するステップにおいて、
各パラメータ行列について、算出された各列の列スコアをその大きさに従って並び替え、
決定された列次元の削減量に基づいて、各パラメータ行列における列スコアが上位又は下位の所定数の列のパラメータをゼロに設定する、付記２に記載の装置。
（付記８）
前記処理装置は、対応する列がゼロに設定された前記１つ又は複数のパラメータ行列に基づいて、前記ニューラルネットワークを訓練し直して、前記１つ又は複数の次元削減後のパラメータ行列を取得する、付記２に記載の装置。
（付記９）
前記処理装置は、前記１つ又は複数のパラメータ行列のうち入力層に近いパラメータ行列の列次元の削減量が小さく、且つ全てのパラメータ行列の列次元の削減量の和が前記所定の処理速度向上目標を満たすように、各パラメータ行列の列次元の削減量を決定する、付記２に記載の装置。
（付記１０）
前記処理装置は、
各パラメータ行列のゼロに設定された列に基づいて、各パラメータ行列に対応する入力行列の対応する行における要素をゼロに設定し、
対応する列がゼロに設定された１つ又は複数のパラメータ行列及び対応する行がゼロに設定された１つ又は複数の入力行列に基づいて前記ニューラルネットワークを訓練し直して、前記１つ又は複数の次元削減後のパラメータ行列を取得する、付記２に記載の装置。
（付記１１）
前記処理装置は、
もう１つの所定の処理速度向上目標に基づいて、訓練し直された前記１つ又は複数の次元削減後のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、
決定された各パラメータ行列の次元削減量に基づいて前処理を再度行い、
前記ニューラルネットワークの性能が前記所定要求を満たすことを確保するように、再度の前処理後の結果に基づいて前記ニューラルネットワークを訓練し直して、１つ又は複数の次元再度削減後のパラメータ行列を取得し、
最終的な処理速度向上目標を満たしている１つ又は複数の次元削減後のパラメータ行列を取得するまで、該決定、該再度の前処理及び該訓練し直しを繰り返して実行する、付記１乃至１０の何れかに記載の装置。
（付記１２）
前記所定の処理速度向上目標は、前記ニューラルネットワークの性能への影響が許容範囲内になるように決定される、付記１乃至１０の何れかに記載の装置。
（付記１３）
前記ニューラルネットワークは畳み込みニューラルネットワーク（ＣＮＮ）を含む、付記１乃至１０の何れかに記載の装置。
（付記１４）
前記ニューラルネットワークが畳み込みニューラルネットワーク（ＣＮＮ）である場合、前記１つ又は複数のパラメータ行列は１つ又は複数の畳み込み層及び／又は全結合層のパラメータ行列を表す、付記１乃至１０の何れかに記載の装置。
（付記１５）
ニューラルネットワークの処理速度を向上させるための方法であって、
所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける１つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定するステップと、
各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行うステップと、
前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、１つ又は複数の次元削減後のパラメータ行列を取得するステップと、を含む、方法。
（付記１６）
前記次元削減量は、各パラメータ行列の列次元の削減量を示し、
前記前処理は、
各パラメータ行列について、該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出するステップと、
各パラメータ行列について、該パラメータ行列の前記列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定するステップと、を含む、付記１５に記載の方法。
（付記１７）
前記列スコアを算出するステップは、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の前記列スコアとして算出するステップを含む、付記１６に記載の方法。
（付記１８）
前記列スコアを算出ステップは、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出するステップを含む、付記１６に記載の方法。
（付記１９）
前記列スコアを算出するステップは、
前記１つ又は複数のパラメータ行列のうち各パラメータ行列の全てのパラメータ及び前記損失重みを正規化ステップと、
各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を前記列スコアとして算出するステップと、を含む、付記１８に記載の方法。
（付記２０）
ニューラルネットワークにおける推論処理を実行するための装置であって、該装置は処理装置を含み、前記処理装置は、
付記１５乃至１９の何れかに記載の方法を実行することで、現在のパラメータ行列を次元削減後のパラメータ行列に変換し、
次元削減後のパラメータ行列に基づいて、前記現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換し、
次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、出力行列を取得する、装置。
【図１】
2018109947.tif 000015
【図２】
2018109947.tif 000016
【図３】
2018109947.tif 000017
【図４】
2018109947.tif 000018
【図５】
2018109947.tif 000019
【図６】
2018109947.tif 000020
【図７】
2018109947.tif 000021
【図８】
2018109947.tif 000022
【図９】
2018109947.tif 000023
【図１０】
2018109947.tif 000024