JP6965690B2 - ニューラルネットワークの処理速度を向上させるための装置及び方法、並びにその応用 - Google Patents

ニューラルネットワークの処理速度を向上させるための装置及び方法、並びにその応用 Download PDF

Info

Publication number
JP6965690B2
JP6965690B2 JP2017207910A JP2017207910A JP6965690B2 JP 6965690 B2 JP6965690 B2 JP 6965690B2 JP 2017207910 A JP2017207910 A JP 2017207910A JP 2017207910 A JP2017207910 A JP 2017207910A JP 6965690 B2 JP6965690 B2 JP 6965690B2
Authority
JP
Japan
Prior art keywords
parameter
parameter matrix
column
matrix
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017207910A
Other languages
English (en)
Other versions
JP2018109947A (ja
Inventor
留安 汪
ファヌ・ウエイ
俊 孫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2018109947A publication Critical patent/JP2018109947A/ja
Application granted granted Critical
Publication of JP6965690B2 publication Critical patent/JP6965690B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Description

本発明は、深層学習(deep learning)分野に関し、具体的には、ニューラルネットワークの処理速度を向上させるための装置及び方法、並びに該装置及び方法のニューラルネットワークにおける応用に関する。
近年、ニューラルネットワーク(例えば畳み込みニューラルネットワーク(CNN)、再帰型ニューラルネットワーク(RNN)、長期/短期記憶ネットワーク(LSTM)等)に基づく方法は多くの応用において非常に良好な性能を達成している。これらの方法の重要な技術は、限られたサンプルを有するデータセットについての大きくて深いニューラルネットワークのモデルの有効的な訓練方法である。このような大きくて深いニューラルネットワークのモデルは強い表現力を有するため、複雑なデータに対してモデリングすることができる。しかし、このような大きくて深いネットワークの構造は、より良い性能を達成するために、常に大きな推論時間が必要となる。
従来のニューラルネットワークの処理速度を向上させる(即ち推論処理を加速させる)ための技術は、主に再帰的展開、畳み込みニューラルネットワークの畳み込み層の低ランク拡張、及び並列加速などの技術に集中し、例えば基本線形代数サブルーチン(BLAS)実装、単一命令複数データ(SIMD)等がある。
以下は、本発明の態様を基本的に理解させるために、本発明の簡単な概要を説明する。なお、この簡単な概要は、本発明を網羅的な概要ではなく、本発明のポイント又は重要な部分を意図的に特定するものではなく、本発明の範囲を意図的に限定するものではなく、後述するより詳細的な説明の前文として、単なる概念を簡単な形で説明することを目的とする。
ニューラルネットワークの推論処理は、一般的に行列乗算の演算が必要となり、ニューラルネットワークのサイズ及び深さの増大に伴い、行列のサイズも大きくなるため、推論処理に係る行列乗算の演算量が指数的に増加し、ニューラルネットワークの処理速度が大幅に低下してしまう。畳み込みニューラルネットワーク(CNN)の例では、畳み込みニューラルネットワークの処理時間の約99%が畳み込み層及び全結合層でかかり、これらの層は主に行列乗算の演算により実現される。従って、行列乗算の計算量を低減できれば、ニューラルネットワークの推論処理を大幅に加速させることができるため、ニューラルネットワークの処理速度を著しく向上できる。
本発明は、ニューラルネットワークの性能が所定要求を満たすことを確保すると共に、行列の次元を削減することで行列乗算の計算量を低減でき、ニューラルネットワークの処理速度を向上できる、ニューラルネットワークの処理速度を向上させるための装置及び方法、並びに該装置及び方法のニューラルネットワークにおける応用を提供することを目的とする。
本発明の1つの態様では、ニューラルネットワークの処理速度を向上させるための装置であって、該装置は処理装置を含み、前記処理装置は、所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける1つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行い、前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、1つ又は複数の次元削減後のパラメータ行列を取得する、装置を提供する。
本発明のもう1つの態様では、前記次元削減量は、各パラメータ行列の列次元の削減量を示し、前記処理装置は、各パラメータ行列について、該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出し、該パラメータ行列の前記列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定することで、前記前処理を行う。
本発明のもう1つの態様では、前記処理装置は、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の前記列スコアとして算出する。
本発明のもう1つの態様では、前記処理装置は、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出する。
本発明のもう1つの態様では、前記処理装置は、前記1つ又は複数のパラメータ行列のうち各パラメータ行列の全てのパラメータ及び前記損失重みを正規化し、各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を前記列スコアとして算出する。
本発明のもう1つの態様では、前記処理装置は、対応する列がゼロに設定された前記1つ又は複数のパラメータ行列に基づいて、前記ニューラルネットワークを訓練し直して、前記1つ又は複数の次元削減後のパラメータ行列を取得する。
本発明のもう1つの態様では、前記処理装置は、各パラメータ行列のゼロに設定された列に基づいて、各パラメータ行列に対応する入力行列の対応する行における要素をゼロに設定し、対応する列がゼロに設定された1つ又は複数のパラメータ行列及び対応する行がゼロに設定された1つ又は複数の入力行列に基づいて前記ニューラルネットワークを訓練し直して、前記1つ又は複数の次元削減後のパラメータ行列を取得する。
本発明のもう1つの態様では、前記処理装置は、もう1つの所定の処理速度向上目標に基づいて、訓練し直された前記1つ又は複数の次元削減後のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、決定された各パラメータ行列の次元削減量に基づいて前処理を再度行い、前記ニューラルネットワークの性能が前記所定要求を満たすことを確保するように、再度の前処理後の結果に基づいて前記ニューラルネットワークを訓練し直して、1つ又は複数の次元再度削減後のパラメータ行列を取得し、最終的な処理速度向上目標を満たしている1つ又は複数の次元削減後のパラメータ行列を取得するまで、該決定、該再度の前処理及び該訓練し直しを繰り返して実行する。
本発明のもう1つの態様では、ニューラルネットワークの処理速度を向上させるための方法であって、所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける1つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定するステップと、各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行うステップと、前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、1つ又は複数の次元削減後のパラメータ行列を取得するステップと、を含む、方法を提供する。
本発明のもう1つの態様では、ニューラルネットワークにおける推論処理を実行するための装置であって、該装置は処理装置を含み、前記処理装置は、上記のニューラルネットワークの処理速度を向上させるための方法を実行することで、現在のパラメータ行列を次元削減後のパラメータ行列に変換し、次元削減後のパラメータ行列に基づいて、前記現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換し、次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、出力行列を取得する、装置を提供する。
本発明のもう1つの態様では、ニューラルネットワークの推論エンジンにおいて実行される方法であって、上記のニューラルネットワークの処理速度を向上させるための方法を実行することで、現在のパラメータ行列を次元削減後のパラメータ行列に変換し、次元削減後のパラメータ行列に基づいて、前記現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換し、次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、出力行列を取得する、方法を提供する。
本発明のもう1つの態様では、上記本発明の態様の方法を実現するためのコンピュータプログラムコード及びコンピュータプログラムプロダクト、並びに上記本発明の態様の方法を実現するためのコンピュータプログラムコードを記録したコンピュータ読み取り可能な記憶媒体をさらに提供する。
本発明の実施例は、ニューラルネットワークにおけるパラメータ行列に対して次元削減処理(好ましくは、列の次元削減処理)を行い、好適には、パラメータ行列に対応する入力行列に対して次元削減処理(好ましくは、行の次元削減処理)を行うことで、行列乗算の計算量を大幅に低減でき、ニューラルネットワークの処理速度を著しく向上できる。
以下の発明の詳細な説明で本発明の実施例の他の態様を説明する。なお、詳細な説明は本発明の実施例の好ましい実施例を十分に公開するためのものであり、本発明の実施例を限定するものではない。
本発明の上記及び他の利点及び特徴を説明するために、以下は、図面を参照しながら本発明の具体的な実施形態をさらに詳細に説明する。該図面及び下記の詳細な説明は本明細書に含まれ、本明細書の一部を形成するものである。同一の機能及び構成を有するユニットは、同一の符号で示されている。なお、これらの図面は、本発明の典型的な例を説明するためのものであり、本発明の範囲を限定するものではない。
ニューラルネットワークの一般的な構造を示す図である。 本発明の実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。 図2示す装置における前処理部の機能的構成を示すブロック図である。 図2示す装置における前処理部のもう1つの機能的構成を示すブロック図である。 本発明のもう1つの実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。 本発明のもう1つの実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。 本発明の実施例に係るニューラルネットワークの処理速度を向上させるための方法を示すフローチャートである。 本発明の実施例に係るニューラルネットワークにおける推論処理を実行するための装置の機能的構成を示すブロック図である。 本発明の実施例に係るニューラルネットワークの推論エンジンにおいて実行される方法を示すフローチャートである。 本発明の実施例を実施するための汎用パーソナルコンピュータの例示的な構成を示すブロック図である。
以下、図面を参照しながら本発明の例示的な実施例を詳細に説明する。説明の便宜上、明細書には実際の実施形態の全ての特徴が示されていない。なお、実際に実施する際に、開発者の具体的な目標を実現するために、特定の実施形態を変更してもよい、例えばシステム及び業務に関する制限条件に応じて実施形態を変更してもよい。また、開発作業が非常に複雑であり、且つ時間がかかるが、本公開の当業者にとって、この開発作業は単なる例の作業である。
なお、本発明を明確にするために、図面には本発明に密に関連する装置の構成要件及び/又は処理のステップのみが示され、本発明と関係のない細部が省略される。
以下は図1乃至図10を参照しながら本発明の実施例を詳細に説明する。
まず、図1を参照しながらニューラルネットワークの一般的な構造を説明する。図1はニューラルネットワークの一般的な構造を示す図である。
図1に示すように、ニューラルネットワークは、ディープニューラルネットワークとも称され、一般的に入力層、1つ又は複数の隠れ層、及び出力層を含み、ニューラルネットワークの深さは隠れ層の数の増加に伴って増加し、その性能も向上する。畳み込みニューラルネットワークのでは、隠れ層は一般的に1つ又は複数の畳み込み層(convolutional layer)、全結合層(fully connection layer)、ドロップアウト層(dropout layer)、補正線形ユニット層(ReLU layer)及びプーリング層(Pooling layer)等を含む。
上述したように、ニューラルネットワークの深さ及びサイズの増大に伴い、計算複雑さも大幅に増大するため、ニューラルネットワークの実行効率が低下してしまう。畳み込みニューラルネットワークの処理時間の約99%が畳み込み層及び全結合層の行列乗算の演算でかかっているため、畳み込み層及び全結合層の行列乗算の計算量を低減できれば、ニューラルネットワークの全体的な処理速度を著しく向上できる。
本発明はこのような概念に基づいてなされたものである。なお、以下の詳細な説明では、畳み込みニューラルネットワーク(CNN)における畳み込み層及び/又は全結合層を一例にして本発明の実施例のニューラルネットワークの処理速度を向上させるための装置及び方法を説明するが、本発明はこれに限定されず、ニューラルネットワークに適用される任意の行列乗算に関する処理であってもよい。また、本発明の技術は他の分野における類似の行列乗算に適用されてもよい。
図2は本発明の実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。
図2に示すように、本実施例の装置200は次元削減量決定部210、前処理部22及び訓練部230を含む。以下は、各構成部の機能的構成を詳細に説明する。
次元削減量決定部210は、所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける1つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定してもよい。
好ましくは、所定の処理速度向上目標は、ニューラルネットワークの性能への影響が許容範囲内になるように決定されてもよい。ここで、処理速度の向上は、ニューラルネットワークの性能への影響が許容範囲内になることを確保しなければならない。そうでなければ、処理速度を大幅に向上しても、ニューラルネットワークの出力精度が大幅に低下し、これはユーザにとって好ましくない。
好ましくは、該次元削減量は列の次元削減量であってもよい。訓練により得られた畳み込みニューラルネットワークの任意の畳み込み層又は全結合層のパラメータ行列(重み行列とも称される)Aをm×k次元とすると、Aは以下の式(1)のように表してもよい。
Figure 0006965690
通常、k>>m、例えばkはmの4.5倍であってもよい。このため、列の次元kを削減することで行列乗算の計算量をより多く低減でき、ニューラルネットワークの処理速度をより効果的に向上できる。さらに、何れの層のパラメータ行列の行の次元が一般的に該層の特徴図の数に関連し、列の次元が一般的に該層の隠れニューロンの数に関連するため、処理速度を向上するための列次元削減のニューラルネットワークの出力性能(例えば出力精度)への影響が比較的に小さい。なお、行次元の削減が処理速度の向上に繋がり、且つ/又はシステム性能への影響が小さい場合は、本発明の技術は行次元の削減、及び/又は行次元及び列次元両方の削減に適用されてもよい。
好ましくは、次元削減量決定部210は、1つ又は複数のパラメータ行列のうち入力層に近いパラメータ行列の列次元の削減量が小さく、且つ全てのパラメータ行列の列次元の削減量の和が所定の処理速度向上目標を満たすように、各パラメータ行列の列次元の削減量を決定してもよい。これは、入力層に近い隠れ層(ここで、畳み込み層及び/又は全結合層を意味する)のパラメータ行列のニューラルネットワークの出力精度への影響が大きいからである。このため、好ましくは、ニューラルネットワークの出力精度への影響を回避するために、入力層に近い隠れ層の列次元の削減量を小さくする。層数の増加に伴い、各層のパラメータ行列の列次元の削減量が増大してもよい。
具体的には、畳み込みニューラルネットワークに含まれる畳み込み層及び全結合層の数をLとし、即ちL個のパラメータ行列が存在し、且つ所定の処理速度向上目標に基づいて決定された全体的な列次元の削減量(例えば削減比率)をαとすると、各層の列次元の削減量がα≦α≦α…≦αを満たし、且つ
Figure 0006965690
となるように決定される。ここで、1〜Lの順序は、入力層に最も近い隠れ層から層の番号が徐々に増大する順序を表す。
本発明の実施例では、各層の次元削減量の具体的な計算方法が限定されず、上記制約条件を満たし、且つニューラルネットワークの出力性能への影響が所定の許容範囲内になることを確保できれば良い。
前処理部220は、各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行う。
具体的には、1番目のパラメータ行列の列次元の削減量をαとし、その元の列次元がkとすると、該パラメータ行列に対して前処理を行って、列次元が
Figure 0006965690
記号
(外1)
Figure 0006965690
は切り捨てて整数部分を求める処理を表し、即ちk’整数である)のパラメータ行列に変換する。
以下は、図3及び図4を参照しながら前処理部220の具体的な構成の例を詳細に説明する。図3は図2示す装置における前処理部の機能的構成を示すブロック図である。
図3に示すように、前処理部220は列スコア算出モジュール2201及びゼロ設定モジュール2202を含んでもよい。以下は各モジュールの機能的構成の例を詳細に説明する。
列スコア算出モジュール2201は、各パラメータ行列について、該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出してもよい。
具体的には、列スコア算出モジュール2201は、例えば各列のパラメータの絶対値の和を該列の列スコアとして算出してもよい。該計算処理は
Figure 0006965690
で表されてもよい(1≦j≦k)。
ゼロ設定モジュール2202は、各パラメータ行列について、決定された列次元の削減量及び算出された各列の列スコアに基づいて、所定条件を満たしている列のパラメータをゼロに設定してもよい。
1つの態様では、例えば、ゼロ設定モジュール2202は、l番目のパラメータ行列について、算出された該パラメータ行列の各列の列スコアSjを値の小さい順又は大きい順に並び替え、上位又は下位(即ち列スコアが低い)所定数(例えば、該数はα×kの整数部分であってもよい)の列のパラメータをゼロに設定してもよい。
もう1つの態様では、例えば、ゼロ設定モジュール2202は、算出された各列の列スコア及び該パラメータ行列の列次元の削減量に基づいて列スコアの閾値を決定し、列スコアが該閾値よりも小さい列のパラメータをゼロに設定してもよい。具体的な計算処理は、当業者が本発明の原理及び把握している数学知識に基づいて実際の需要に応じて設定してもよく、具体的に限定されない。
好ましくは、各パラメータ行列の列次元削減のニューラルネットワークの性能への影響をできるだけ小さくするために、各列の列スコアを算出する際に、パラメータ行列の各パラメータに関連する損失重み(loss weight)をさらに考慮してもよい。該損失重みもニューラルネットワークを訓練して得られたものであり、パラメータ行列における各パラメータのニューラルネットワークの損失への寄与を表すことができるため、各パラメータのニューラルネットワークの性能に対する重用性をある程度反映できる。各パラメータwに関連する損失重みは例えば以下の式(2)で表されてもよい。
Figure 0006965690
ここで、
(外2)
Figure 0006965690
は、異なるサンプルを用いた逆伝搬勾配計算におけるパラメータwの損失重みを表す。
ニューラルネットワークを訓練して対応するパラメータ行列及び関連する損失重みを取得する方法は、従来技術と同様であり、ここでその詳細な説明を省略する。
以下は、図4を参照しながら前処理部のもう1つの機能的構成を詳細に説明する。図4は図2示す装置における前処理部のもう1つの機能的構成を示すブロック図である。
図4に示すように、本実施例の前処理部220は、列スコア算出モジュール2203及びゼロ設定モジュール2204を含んでもよい。以下は、各モジュールの具体的な機能的構成を詳細に説明する。
列スコア算出モジュール2203は、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出してもよい。
具体的には、列スコア算出モジュール2203は、各パラメータ行列における全てのパラメータ及び関連する損失重みを正規化してもよい。例えば、正規化は、[0,1]の範囲内の値であってもよい。該正規化処理は例えば以下の式(3)及び式(4)で表されもよい。
Figure 0006965690
Figure 0006965690
ここで、w及びw は正規化前のパラメータ値及び正規化後のパラメータ値をそれぞれ表し、Wminは該パラメータ行列における絶対値が最小のパラメータ値の絶対値を表し、Wmaxは該パラメータ行列における絶対値が最大のパラメータ値の絶対値を表し、lw及びlw は正規化前の損失重み及び正規化後の損失重みをそれぞれ表し、LWminは該パラメータ行列における絶対値が最小の損失重みの絶対値を表し、LWmaxは該パラメータ行列における絶対値が最大の損失重みの絶対値を表す。
列スコア算出モジュール2203は、正規化されたパラメータ及び損失重みに基づいて各列の列スコアを算出してもよい。例えば、各列の正規化された各パラメータとその損失重みの加重和の和を該列の列スコアとして算出してもよい。該計算処理は例えば以下の式(5)で表されてもよい。
Figure 0006965690
ここで、1≦j≦kとなり、λは、パラメータ値と損失重みとのバランスパラメータであり、所定の経験値であってもよいし、実際の状況に応じて有限数の実験によって決定されてもよい。例えば、損失重みとパラメータ値との寄与を等しく考慮する場合、λは0.5に設定してもよい。
ゼロ設定モジュール2204は、各パラメータ行列について、決定された列次元の削減量及び算出された各列の列スコアに基づいて、所定条件を満たしている列のパラメータをゼロに設定してもよい。ゼロ設定モジュール2204によるゼロ設定処理は上記の図3に示す実施例におけるゼロ設定モジュール2202によるゼロ設定処理と基本的に同様であり、ここでその説明を省略する。
なお、上述した列スコアの算出方法及び対応するゼロ設定方法は単なる一例であり、本発明を限定するものではない。当業者が本発明の原理に基づいて変形を行ってもよく、ゼロに設定された列のニューラルネットワークの性能への影響をできるだけ小さくすれば良く、これらの変形も明らかに本発明の保護範囲内に入る。
次に、図2に戻り、訓練部230は、ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいてニューラルネットワークを訓練し直して、1つ又は複数の次元削減後のパラメータ行列を取得してもよい。
具体的には、仮に上記前処理を行って得られたパラメータ行列は以下の式(6)で表されてもよい。
Figure 0006965690
そして、訓練部230は、訓練データを用いて、式(6)に示す対応する列がゼロに設定された1つ又は複数のパラメータ行列に基づいてニューラルネットワークを訓練し直して、残り列の最適化後のパラメータ値を取得して、ニューラルネットワークの性能が所定要求を満たすことを確保する。例えば、訓練し直されたパラメータ行列の列次元をk’とすると、訓練し直されたパラメータ行列は例えば以下の式(7)で表されてもよい。
Figure 0006965690
以上から分かるように、本発明の実施例によれば、パラメータ行列の列次元はk列からk’列に削減され、その行次元は変更されないままである。
なお、パラメータ行列の行次元の削減のシステム性能への影響が許容範囲内にある場合は、上記処理と同様に、パラメータ行列の行次元の削減を実行してもよいし、行次元と列次元両方を削減してもよい。具体的な処理及び原理は上記処理と基本的に同様であり、当業者は上記本発明の原理に基づいて適切に変形して対応する削減処理を行ってもよいが、ここで詳細な説明を省略する。
好ましくは、所定の処理速度向上目標を実現するためのパラメータ行列の削減の上記処理は反復的に行ってもよい。例えば、所定の処理速度向上目標に基づいて決定された次元削減量が50%である場合、上記の次元削減処理を実行し、まず列次元をk列から0.75k列に削減し、そして類似の次元削減処理を繰り返して列次元を0.75k列から0.5k列にさらに削減してもよい。このような反復的処理により処理速度向上目標に徐々に近くすることで、上記次元削減処理のニューラルネットワークの性能への影響を低減でき、ニューラルネットワークの出力精度を確保できる。以下は、図5を参照しながら該態様の実施例を説明する。
図5は本発明のもう1つの実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。
図5に示すように、該実施例の装置500は、次元削減量決定部510、前処理部520、訓練部530及び制御部540を含んでもよい。ここで、次元削減量決定部510、前処理部520及び訓練部530は図2に示す次元削減量決定部210、前処理部220及び訓練部230の機能的構成と基本的に同様であるため、ここで詳細に説明されていない内容は上記対応する構成部の説明を参照してもよく、ここでその説明を省略する。以下は、制御部540のみの機能的構成を具体的に説明する。
制御部540は、最終的な処理速度向上目標を満たしている1つ又は複数の次元削減後のパラメータ行列を取得するまで、もう1つの所定の処理速度向上目標に基づいて、次元削減量決定部510、前処理部520及び訓練部530がそれぞれの処理を繰り返すように制御してもよい。
具体的には、次元削減量決定部510は、もう1つの所定の処理速度向上目標に基づいて、訓練し直された1つ又は複数の次元削減後のパラメータ行列のうち各パラメータ行列の次元削減量を決定してもよい。前処理部520は、決定された各パラメータ行列の次元削減量に基づいて前処理を再度行ってもよい。訓練部530は、ニューラルネットワークの性能が所定要求を満たすことを確保するように、再度の前処理後の結果に基づいてニューラルネットワークを訓練し直して、1つ又は複数の次元再度削減後のパラメータ行列を取得してもよい。最終的な処理速度向上目標を満たしている1つ又は複数の次元削減後のパラメータ行列を取得するまで、該決定、該再度の前処理及び該訓練し直しを繰り返してもよい。
図6は本発明のもう1つの実施例に係るニューラルネットワークの処理速度を向上させるための装置の機能的構成を示すブロック図である。
図6に示すように、該実施例の装置600は、次元削減量決定部610、第1ゼロ設定部620、第1ゼロ設定部630及び訓練部640を含んでもよい。ここで、次元削減量決定部610及び第1ゼロ設定部620は図2に示す次元削減量決定部210及び前処理部220の機能的構成と基本的に同様であるため、ここで詳細に説明されていない内容は上記対応する構成部の説明を参照してもよく、ここでその説明を省略する。以下は、第2ゼロ設定部630及び訓練部640のみの機能的構成を具体的に説明する。
第2ゼロ設定部630は、第1ゼロ設定部620により決定された各パラメータ行列のゼロに設定された列に基づいて、各パラメータ行列に対応する入力行列の対応する行における行をゼロに設定してもよい。第1ゼロ設定部620によるパラメータ行列の対応する列のゼロ設定処理は、図2乃至図4の説明を参照してもよく、ここでその説明を省略する。
具体的には、ニューラルネットワークの任意の畳み込み層又は全結合層の行列乗算では、該層の出力行列Cはパラメータ行列Aと入力行列Bとの畳み込みに等しく、すなわちC=A×Bであり、ここで、入力行列Bはk行n列の行列であり、出力行列Cはm行n列の行列である。行列乗算の一般的な原理によると、行列Bの行次元は行列AWの列次元に等しい必要があるため、パラメータ行列Aの列次元が削減された場合は、入力行列Bの行次元も同様に削減される必要がある。例えば、パラメータ行列の第2列と第4列の要素をゼロに設定すると、行列乗算の原理により、入力行列の第2行と第4行の要素の具体値に関わらず、二者の乗算結果は全て0となる。従って、計算処理を簡略化するために、入力行列の第2行及び第4行の要素をそれに応じてゼロに設定してもよい。
訓練部640は、対応する列がゼロに設定された1つ又は複数のパラメータ行列及び対応する行がゼロに設定された1つ又は複数の入力行列に基づいて、ニューラルネットワークを訓練し直して、1つ又は複数の次元削減後のパラメータ行列を取得してもよい。
なお、上述したように、パラメータ行列の列がゼロに設定された場合は、入力行列の対応する行の要素の具体値に関わらず、両者の乗算結果は全て0となる。このため、第2ゼロ設定部630は任意のものであり、入力行列に対して何れの処理をせずに、図2に示すように、対応する列がゼロに設定されたパラメータ行列にのみ基づいてニューラルネットワークを訓練し直してもよい。
なお、図2乃至図6に示す各部及び/又は各モジュールは単なる具体的な機能を実現するために分割された機能的モジュールであり、具体的な態様を限定するものではない。実際に実施する際に、上記各機能的構成部は独立的な物理的エンティティとして実現されてもよし、単一のエンティティ(例えば処理装置(CPU又はDSP等)、集積回路、プログラマブル論理デバイス)により実現されてもよい。
上記装置の実施例に対応して、本発明は以下の方法の実施例をさらに提供する。
図7は本発明の実施例に係るニューラルネットワークの処理速度を向上させるための方法を示すフローチャートである。該方法は以下のステップを含む。
図7に示すように、ステップS710において、所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける1つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定する。
そして、ステップS720において、各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行う。
好ましくは、次元削減量は、各パラメータ行列の列次元の削減量を示してもよい。ステップS720は、各パラメータ行列について、該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出するステップと、各パラメータ行列について、決定された該パラメータ行列の列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定するステップと、を含んでもよい。
好ましくは、列スコアを算出するステップは、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の列スコアとして算出するステップを含んでもよい。
好ましくは、列スコアを算出するステップは、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて列スコアを算出するステップを含んでもよい。
好ましくは、列スコアを算出するステップは、各パラメータ行列の全てのパラメータ及び損失重みを正規化するステップと、各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を列スコアとして算出するステップと、を含んでもよい。
具体的な前処理は上記の図3及び図4の説明を参照してもよく、ここでその説明を省略する。
そして、ステップS730において、ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいてニューラルネットワークを訓練し直して、1つ又は複数の次元削減後のパラメータ行列を取得する。
なお、ここの方法の実施例は上記図2乃至図6に示す装置の実施例に対応するものであるため、ここで詳細に説明されていない内容は上記の装置の実施例の対応する説明を参照してもよく、ここでその詳細な説明を省略する。
次に、図8及び図9を参照しながら、本発明の実施例のニューラルネットワークの処理速度を向上させるための装置又は方法のニューラルネットワークにおける応用を説明する。
図8は本発明の実施例に係るニューラルネットワークにおける推論処理を実行するための装置の機能的構成を示すブロック図である。
図8に示すように、該実施例の装置800は、第1処理部810、第2処理部820及び乗算部830を含んでもよい。以下は、各部の機能的構成を詳細に説明する。
第1処理部810は、上記ニューラルネットワークの処理速度を向上させるための方法を実行することで、処理すべき対象である目標層の現在のパラメータ行列を次元削減後のパラメータ行列に変換してもよい。好ましくは、第1処理部810は現在のパラメータ行列を列次元削減後のパラメータ行列に変換してもよい。
具体的には、第1処理部810は、上記ニューラルネットワークの処理速度を向上させるための方法を実行することで、目標層(例えば畳み込み層又は全結合層)のパラメータ行列を次元削減後のパラメータ行列に変換してもよい。例えば、m×k次元のパラメータ行列をm×k’次元のパラメータ行列に変換してもよく、ここで、k’<k。
第2処理部820は、次元削減後のパラメータ行列に基づいて、現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換してもよい。
具体的には、パラメータ行列の次元削減処理において該パラメータ行列のゼロに設定された列に基づいて、入力行列の対応する行の要素を除去してもよい。例えば、パラメータ行列の第2列及び第4列がゼロに設定された場合、入力行列の第2行及び第4行の要素を直接除去することで、入力行列をk×n次元からk’×n次元に変換する。
乗算部830は、次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、目標層の出力行列を取得してもよい。
以上から分かるように、本発明の技術によれば、パラメータ行列及び入力行列に対して次元削減処理を行うことで、推論エンジンにおける計算量を大幅に低減でき、推論時間を大幅に短縮でき、ニューラルネットワークの処理速度を向上できる。また、出力行列の次元が変更されず(m×n次元のままである)、ニューラルネットワークの性能が所定の性能要求を満たすことを確保できる。
なお、図8に示す各部は単なる具体的な機能を実現するために分割された機能的モジュールであり、具体的な態様を限定するものではない。実際に実施する際に、上記各機能的構成部は独立的な物理的エンティティとして実現されてもよし、単一のエンティティ(例えば処理装置(CPU又はDSP等)、集積回路、プログラマブル論理デバイス)により実現されてもよい。
上記本発明の装置の実施例に対応して、本発明は以下の方法の実施例をさらに提供する。
図9は本発明の実施例に係るニューラルネットワークの推論エンジンにおいて実行される方法を示すフローチャートである。図9に示すように、該方法は以下のステップを含む。
ステップS910において、上記ニューラルネットワークの処理速度を向上させるための方法を実行することで、処理すべき対象である目標層の現在のパラメータ行列を次元削減後のパラメータ行列に変換する。好ましくは、現在のパラメータ行列を、列次元が削減されたパラメータ行列に変換してもよい。
そして、ステップS920において、次元削減後のパラメータ行列に基づいて、現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換する。具体的には、パラメータ行列の次元削減処理において該パラメータ行列のゼロに設定された列に基づいて、入力行列の対応する行の要素を除去する。
そして、ステップS930において、次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、目標層の出力行列を取得する。
なお、ここの方法の実施例は上記の図8に示す装置の実施例に対応するものであるため、詳細に説明されていない内容は上記装置の実施例の対応部分の説明を参照してもよく、ここでその説明を省略する。
なお、本発明の実施例の記憶媒体及びプログラムプロダクトの機器において実行される指令は、上記装置の実施例に対応する方法を実行するように構成されてもよいため、ここで詳細に説明されていない内容は上記の対応部分の説明を参照してもよく、ここでその説明を省略する。
それに応じて、本発明は、機器読み取り可能な指令コードを記憶するプログラムのプロダクトが記録されている記憶媒体をさらに含む。該記憶媒体は、フロッピーディスク、光ディスク、光磁気ディスク、メモリカード、メモリスティックを含むが、これらに限定されない。
なお、上記処理及び装置はソフトウェア及び/又はにより実現されてもよい。ソフトウェア又はファームウェアにより実施されている場合、記録媒体又はネットワークから専用のハードウェア構成を有するコンピュータ、例えば図10示されている汎用パーソナルコンピュータ1000に上記方法を実施するためのソフトウェアを構成するプログラムをインストールしてもよく、該コンピュータは各種のプログラムがインストールされている場合は各種の機能などを実行できる。図10は本発明の実施例を実施するための汎用パーソナルコンピュータの例示的な構成を示すブロック図である。
図10において、中央処理部(即ちCPU)1001は、読み出し専用メモリ(ROM)1002に記憶されているプログラム、又は記憶部1008からランダムアクセスメモリ(RAM)1003にロードされたプログラムにより各種の処理を実行する。RAM1003には、必要に応じて、CPU1001が各種の処理を実行するに必要なデータが記憶されている。
CPU1001、ROM1002及びRAM1003は、バス1004を介して互いに接続されている。入力/出力インターフェース1005もバス1004に接続されている。
入力部1006(キーボード、マウスなどを含む)、出力部1007(ディスプレイ、例えばブラウン管(CRT)、液晶ディスプレイ(LCD)など、及びスピーカなどを含む)、記憶部1008(例えばハードディスクなどを含む)、通信部1009(例えばネットワークのインタフェースカード、例えばLANカード、モデムなどを含む)は、入力/出力インターフェース1005に接続されている。通信部1009は、ネットワーク、例えばインターネットを介して通信処理を実行する。
必要に応じて、ドライブ部1010は、入力/出力インターフェース1005に接続されてもよい。取り外し可能な媒体1011は、例えば磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどであり、必要に応じてドライブ部1010にセットアップされて、その中から読みだされたコンピュータプログラムは必要に応じて記憶部1008にインストールされている。
ソフトウェアにより上記処理を実施する場合、ネットワーク、例えばインターネット、又は記憶媒体、例えば取り外し可能な媒体1011を介してソフトウェアを構成するプログラムをインストールする。
これらの記憶媒体は、図10に示されている、プログラムを記憶し、機器と分離してユーザへプログラムを提供する取り外し可能な媒体1011に限定されない。取り外し可能な媒体1011は、例えば磁気ディスク(フロッピーディスク(登録商標)を含む)、光ディスク(光ディスク−読み出し専用メモリ(CD−ROM)、及びデジタル多目的ディスク(DVD)を含む)、光磁気ディスク(ミニディスク(MD)(登録商標))及び半導体メモリを含む。或いは、記憶媒体は、ROM1002、記憶部1008に含まれるハードディスクなどであってもよく、プログラムを記憶し、それらを含む機器と共にユーザへ提供される。
以上は本発明の具体的な実施例の説明を通じて本発明を開示するが、上記の全ての実施例及び例は例示的なものであり、制限的なものではない。当業者は、特許請求の範囲の主旨及び範囲内で本発明に対して各種の修正、改良、均等的なものに変更してもよい。これらの修正、改良又は均等的なものに変更することは本発明の保護範囲に含まれるものである。
例えば、上記の実施例の1つのユニットに含まれる複数の機能はそれぞれの装置により実現されてもよい。又は、上記の実施例の複数のユニットに含まれる複数の機能はそれぞれの装置によりそれぞれ実現されてもよい。また、上記の機能の1つは複数のユニットにより実現されてもよい。なお、このような構成は本発明の技術的範囲内に含まれる。
また、本発明の方法は、明細書に説明された時間的順序で実行するものに限定されず、他の時間的順序で順次、並行、又は独立して実行されてもよい。このため、本明細書に説明された方法の実行順序は、本発明の技術的な範囲を限定するものではない。
なお、用語「包括/含む」は、本文に使用される際に、特徴、要素、ステップ又は構成要件の存在を意味し、一つ又は複数の他の特徴、要素、ステップ又は構成要件の存在又は追加を排除するものではない。なお、本発明の具体的な実施例の上記の説明では、1つの態様について説明及び/又は例示された特徴は同一又は類似の方式で1つ又は複数の他の態様に用いられてもよいし、他の態様における特徴と組み合わせてもよいし、他の態様における特徴の代わりに用いられてもよい。また、本発明の方法は、明細書に説明された時間的順序で実行するものに限定されず、他の時間的順序で順次、並行、又は独立して実行されてもよい。このため、本明細書に説明された方法の実行順序は、本発明の技術的な範囲を限定するものではない。
また、上述の各実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
ニューラルネットワークの処理速度を向上させるための装置であって、該装置は処理装置を含み、前記処理装置は、
所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける1つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、
各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行い、
前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、1つ又は複数の次元削減後のパラメータ行列を取得する、装置。
(付記2)
前記次元削減量は、各パラメータ行列の列次元の削減量を示し、
前記処理装置は、各パラメータ行列について、
該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出し、
該パラメータ行列の前記列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定することで、前記前処理を行う、付記1に記載の装置。
(付記3)
前記処理装置は、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の前記列スコアとして算出する、付記2に記載の装置。
(付記4)
前記処理装置は、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出する、付記2に記載の装置。
(付記5)
前記処理装置は、
前記1つ又は複数のパラメータ行列のうち各パラメータ行列の全てのパラメータ及び前記損失重みを正規化し、
各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を前記列スコアとして算出する、付記4に記載の装置。
(付記6)
前記処理装置は、ゼロ設定を実行するステップにおいて、
各パラメータ行列について、決定された列次元の削減量及び算出された各列の列スコアに基づいて閾値を決定し、
各パラメータ行列における列スコアが前記閾値よりも小さい列のパラメータをゼロに設定する、付記2に記載の装置。
(付記7)
前記処理装置は、ゼロ設定を実行するステップにおいて、
各パラメータ行列について、算出された各列の列スコアをその大きさに従って並び替え、
決定された列次元の削減量に基づいて、各パラメータ行列における列スコアが上位又は下位の所定数の列のパラメータをゼロに設定する、付記2に記載の装置。
(付記8)
前記処理装置は、対応する列がゼロに設定された前記1つ又は複数のパラメータ行列に基づいて、前記ニューラルネットワークを訓練し直して、前記1つ又は複数の次元削減後のパラメータ行列を取得する、付記2に記載の装置。
(付記9)
前記処理装置は、前記1つ又は複数のパラメータ行列のうち入力層に近いパラメータ行列の列次元の削減量が小さく、且つ全てのパラメータ行列の列次元の削減量の和が前記所定の処理速度向上目標を満たすように、各パラメータ行列の列次元の削減量を決定する、付記2に記載の装置。
(付記10)
前記処理装置は、
各パラメータ行列のゼロに設定された列に基づいて、各パラメータ行列に対応する入力行列の対応する行における要素をゼロに設定し、
対応する列がゼロに設定された1つ又は複数のパラメータ行列及び対応する行がゼロに設定された1つ又は複数の入力行列に基づいて前記ニューラルネットワークを訓練し直して、前記1つ又は複数の次元削減後のパラメータ行列を取得する、付記2に記載の装置。
(付記11)
前記処理装置は、
もう1つの所定の処理速度向上目標に基づいて、訓練し直された前記1つ又は複数の次元削減後のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、
決定された各パラメータ行列の次元削減量に基づいて前処理を再度行い、
前記ニューラルネットワークの性能が前記所定要求を満たすことを確保するように、再度の前処理後の結果に基づいて前記ニューラルネットワークを訓練し直して、1つ又は複数の次元再度削減後のパラメータ行列を取得し、
最終的な処理速度向上目標を満たしている1つ又は複数の次元削減後のパラメータ行列を取得するまで、該決定、該再度の前処理及び該訓練し直しを繰り返して実行する、付記1乃至10の何れかに記載の装置。
(付記12)
前記所定の処理速度向上目標は、前記ニューラルネットワークの性能への影響が許容範囲内になるように決定される、付記1乃至10の何れかに記載の装置。
(付記13)
前記ニューラルネットワークは畳み込みニューラルネットワーク(CNN)を含む、付記1乃至10の何れかに記載の装置。
(付記14)
前記ニューラルネットワークが畳み込みニューラルネットワーク(CNN)である場合、前記1つ又は複数のパラメータ行列は1つ又は複数の畳み込み層及び/又は全結合層のパラメータ行列を表す、付記1乃至10の何れかに記載の装置。
(付記15)
ニューラルネットワークの処理速度を向上させるための方法であって、
所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける1つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定するステップと、
各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行うステップと、
前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、1つ又は複数の次元削減後のパラメータ行列を取得するステップと、を含む、方法。
(付記16)
前記次元削減量は、各パラメータ行列の列次元の削減量を示し、
前記前処理は、
各パラメータ行列について、該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出するステップと、
各パラメータ行列について、該パラメータ行列の前記列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定するステップと、を含む、付記15に記載の方法。
(付記17)
前記列スコアを算出するステップは、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の前記列スコアとして算出するステップを含む、付記16に記載の方法。
(付記18)
前記列スコアを算出ステップは、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出するステップを含む、付記16に記載の方法。
(付記19)
前記列スコアを算出するステップは、
前記1つ又は複数のパラメータ行列のうち各パラメータ行列の全てのパラメータ及び前記損失重みを正規化ステップと、
各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を前記列スコアとして算出するステップと、を含む、付記18に記載の方法。
(付記20)
ニューラルネットワークにおける推論処理を実行するための装置であって、該装置は処理装置を含み、前記処理装置は、
付記15乃至19の何れかに記載の方法を実行することで、現在のパラメータ行列を次元削減後のパラメータ行列に変換し、
次元削減後のパラメータ行列に基づいて、前記現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換し、
次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、出力行列を取得する、装置。

Claims (10)

  1. ニューラルネットワークの処理速度を向上させるための装置であって、該装置は処理装置を含み、前記処理装置は、
    所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける1つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、
    各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行い、
    前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、1つ又は複数の次元削減後のパラメータ行列を取得する、装置。
  2. 前記次元削減量は、各パラメータ行列の列次元の削減量を示し、
    前記処理装置は、各パラメータ行列について、
    該パラメータ行列の各列のパラメータ値に基づいて各列の列スコアを算出し、
    該パラメータ行列の前記列次元の削減量に基づいて、列スコアが所定条件を満たしている列のパラメータをゼロに設定することで、前記前処理を行う、請求項1に記載の装置。
  3. 前記処理装置は、各パラメータ行列について、該パラメータ行列の各列のパラメータの絶対値の和を該列の前記列スコアとして算出する、請求項2に記載の装置。
  4. 前記処理装置は、各パラメータ行列について、該パラメータ行列の各列の各パラメータに関連する損失重みに基づいて前記列スコアを算出する、請求項2に記載の装置。
  5. 前記処理装置は、
    前記1つ又は複数のパラメータ行列のうち各パラメータ行列の全てのパラメータ及び前記損失重みを正規化し、
    各パラメータ行列について、該パラメータ行列の各列の正規化された各パラメータとその損失重みの加重和の和を前記列スコアとして算出する、請求項4に記載の装置。
  6. 前記処理装置は、対応する列がゼロに設定された前記1つ又は複数のパラメータ行列に基づいて、前記ニューラルネットワークを訓練し直して、前記1つ又は複数の次元削減後のパラメータ行列を取得する、請求項2に記載の装置。
  7. 前記処理装置は、
    各パラメータ行列のゼロに設定された列に基づいて、各パラメータ行列に対応する入力行列の対応する行における要素をゼロに設定し、
    対応する列がゼロに設定された1つ又は複数のパラメータ行列及び対応する行がゼロに設定された1つ又は複数の入力行列に基づいて前記ニューラルネットワークを訓練し直して、前記1つ又は複数の次元削減後のパラメータ行列を取得する、請求項2に記載の装置。
  8. 前記処理装置は、
    もう1つの所定の処理速度向上目標に基づいて、訓練し直された前記1つ又は複数の次元削減後のパラメータ行列のうち各パラメータ行列の次元削減量を決定し、
    決定された各パラメータ行列の次元削減量に基づいて前処理を再度行い、
    前記ニューラルネットワークの性能が前記所定要求を満たすことを確保するように、再度の前処理後の結果に基づいて前記ニューラルネットワークを訓練し直して、1つ又は複数の次元再度削減後のパラメータ行列を取得し、
    最終的な処理速度向上目標を満たしている1つ又は複数の次元削減後のパラメータ行列を取得するまで、該決定、該再度の前処理及び該訓練し直しを繰り返して実行する、請求項1乃至7の何れかに記載の装置。
  9. ニューラルネットワークの処理速度を向上させるための装置により実行される、ニューラルネットワークの処理速度を向上させるための方法であって、
    所定の処理速度向上目標に基づいて、訓練されたニューラルネットワークにおける1つ又は複数のパラメータ行列のうち各パラメータ行列の次元削減量を決定するステップと、
    各パラメータ行列の次元削減量に基づいて各パラメータ行列に対して前処理を行うステップと、
    前記ニューラルネットワークの性能が所定要求を満たすことを確保するように、前処理の結果に基づいて前記ニューラルネットワークを訓練し直して、1つ又は複数の次元削減後のパラメータ行列を取得するステップと、を含む、方法。
  10. ニューラルネットワークにおける推論処理を実行するための装置であって、該装置は処理装置を含み、前記処理装置は、
    請求項9に記載の方法を実行することで、現在のパラメータ行列を次元削減後のパラメータ行列に変換し、
    次元削減後のパラメータ行列に基づいて、前記現在のパラメータ行列に対応する入力行列を次元削減後の入力行列に変換し、
    次元削減後のパラメータ行列と次元削減後の入力行列を乗算して、出力行列を取得する、装置。
JP2017207910A 2016-12-30 2017-10-27 ニューラルネットワークの処理速度を向上させるための装置及び方法、並びにその応用 Active JP6965690B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611255449.8A CN108268947A (zh) 2016-12-30 2016-12-30 用于提高神经网络的处理速度的装置和方法及其应用
CN201611255449.8 2016-12-30

Publications (2)

Publication Number Publication Date
JP2018109947A JP2018109947A (ja) 2018-07-12
JP6965690B2 true JP6965690B2 (ja) 2021-11-10

Family

ID=62711867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017207910A Active JP6965690B2 (ja) 2016-12-30 2017-10-27 ニューラルネットワークの処理速度を向上させるための装置及び方法、並びにその応用

Country Status (3)

Country Link
US (1) US11227213B2 (ja)
JP (1) JP6965690B2 (ja)
CN (1) CN108268947A (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US11586924B2 (en) * 2018-01-23 2023-02-21 Qualcomm Incorporated Determining layer ranks for compression of deep networks
CN110751287B (zh) * 2018-07-23 2024-02-20 第四范式(北京)技术有限公司 神经网络模型的训练方法及系统以及预测方法及系统
US11544551B2 (en) * 2018-09-28 2023-01-03 Wipro Limited Method and system for improving performance of an artificial neural network
CN112219210B (zh) * 2018-09-30 2024-03-29 华为技术有限公司 信号处理装置和信号处理方法
WO2020089416A1 (en) 2018-11-01 2020-05-07 Koninklijke Philips N.V. Identifying an interventional device in medical images
JP7225876B2 (ja) 2019-02-08 2023-02-21 富士通株式会社 情報処理装置、演算処理装置および情報処理装置の制御方法
DE112019006560T5 (de) 2019-02-15 2021-10-21 Mitsubishi Electric Corporation Informationsverarbeitungsvorrichtung, informationsverarbeitungsverfahren und informationsverarbeitungsprogramm
CN111652664A (zh) * 2019-03-04 2020-09-11 富士通株式会社 训练混合元学习网络的装置和方法
CN113168557B (zh) * 2019-03-30 2024-04-30 华为技术有限公司 一种数据处理方法、服务器和可读介质
JP7322620B2 (ja) * 2019-09-13 2023-08-08 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP2021047711A (ja) 2019-09-19 2021-03-25 キオクシア株式会社 演算装置、演算方法、及び学習方法
CN111047017B (zh) * 2019-12-18 2023-06-23 北京安兔兔科技有限公司 一种神经网络算法的评估方法、装置及电子设备
WO2021156941A1 (ja) * 2020-02-04 2021-08-12 三菱電機株式会社 構造変換装置、構造変換方法及び構造変換プログラム
JP2022136575A (ja) * 2021-03-08 2022-09-21 オムロン株式会社 推論装置、モデル生成装置、推論方法、及び推論プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2533942B2 (ja) * 1989-03-13 1996-09-11 株式会社日立製作所 知識抽出方法およびプロセス運転支援システム
JP3114276B2 (ja) * 1991-10-04 2000-12-04 株式会社アドバンテスト 階層型ニューラルネットワークの学習方法
JPH0991264A (ja) * 1995-09-20 1997-04-04 Hitachi Medical Corp ニューラルネットワーク構造最適化装置ならびに方法
JP2001344590A (ja) * 2000-05-31 2001-12-14 Fuji Electric Co Ltd ニューラルネットワーク及びその学習方法、解析方法並びに異常判定方法
US7856370B2 (en) * 2007-06-15 2010-12-21 Saama Technologies, Inc. Method and system for displaying predictions on a spatial map
JP5451302B2 (ja) * 2009-10-19 2014-03-26 キヤノン株式会社 画像処理装置及び方法、プログラム及び記憶媒体
US8510234B2 (en) * 2010-01-05 2013-08-13 American Gnc Corporation Embedded health monitoring system based upon Optimized Neuro Genetic Fast Estimator (ONGFE)
US9730643B2 (en) * 2013-10-17 2017-08-15 Siemens Healthcare Gmbh Method and system for anatomical object detection using marginal space deep neural networks
JP6236296B2 (ja) * 2013-11-14 2017-11-22 株式会社デンソーアイティーラボラトリ 学習装置、学習プログラム、及び学習方法
CN105095964B (zh) * 2015-08-17 2017-10-20 杭州朗和科技有限公司 一种数据处理方法和装置
US10509996B2 (en) * 2016-05-17 2019-12-17 Huawei Technologies Co., Ltd. Reduction of parameters in fully connected layers of neural networks
US10762426B2 (en) * 2016-08-12 2020-09-01 Beijing Deephi Intelligent Technology Co., Ltd. Multi-iteration compression for deep neural networks
US20180046903A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
EP3340129B1 (en) * 2016-12-21 2019-01-30 Axis AB Artificial neural network class-based pruning

Also Published As

Publication number Publication date
US11227213B2 (en) 2022-01-18
CN108268947A (zh) 2018-07-10
JP2018109947A (ja) 2018-07-12
US20180189650A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
JP6965690B2 (ja) ニューラルネットワークの処理速度を向上させるための装置及び方法、並びにその応用
US11604956B2 (en) Sequence-to-sequence prediction using a neural network model
US10803591B2 (en) 3D segmentation with exponential logarithmic loss for highly unbalanced object sizes
JP6212217B2 (ja) 機械学習における重みの生成
US11475284B2 (en) Information processing apparatus, neural network program, and processing method for neural network
US20190244097A1 (en) Information processing apparatus and information processing method
JP7178513B2 (ja) ディープラーニングに基づく中国語単語分割方法、装置、記憶媒体及びコンピュータ機器
JP6521440B2 (ja) ニューラルネットワーク及びそのためのコンピュータプログラム
JP7070653B2 (ja) 学習装置、音声認識順位推定装置、それらの方法、およびプログラム
CN115129386A (zh) 用于神经网络部署和执行的有效优化
CN109472344A (zh) 类神经网络系统的设计方法
CN112651485A (zh) 识别图像的方法和设备以及训练神经网络的方法和设备
TW202303456A (zh) 最佳化神經網路模型的方法
CN115080139A (zh) 用于神经网络部署和执行的有效量化
CN114022192A (zh) 一种基于智能营销场景的数据建模方法及系统
CN113868187A (zh) 处理神经网络的方法和电子装置
US20230088669A1 (en) System and method for evaluating weight initialization for neural network models
CN115080138A (zh) 用于神经网络部署和执行的有效存储器使用优化
JP7211069B2 (ja) 情報処理装置、情報処理プログラムおよび情報処理方法
CN113821471A (zh) 神经网络的处理方法和电子装置
CN113869517A (zh) 一种基于深度学习模型的推理方法
JP7000586B2 (ja) データ処理システムおよびデータ処理方法
JP5418052B2 (ja) 遺伝的処理装置、遺伝的処理方法およびプログラム
CN117235286B (zh) 强化注意力的实体关系抽取模型及其构建方法、存储介质
JP7055211B2 (ja) データ処理システムおよびデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210921

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211004

R150 Certificate of patent or registration of utility model

Ref document number: 6965690

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150