JP6950756B2 - ニューラルネットワークのランク最適化装置および最適化方法 - Google Patents
ニューラルネットワークのランク最適化装置および最適化方法 Download PDFInfo
- Publication number
- JP6950756B2 JP6950756B2 JP2019567853A JP2019567853A JP6950756B2 JP 6950756 B2 JP6950756 B2 JP 6950756B2 JP 2019567853 A JP2019567853 A JP 2019567853A JP 2019567853 A JP2019567853 A JP 2019567853A JP 6950756 B2 JP6950756 B2 JP 6950756B2
- Authority
- JP
- Japan
- Prior art keywords
- rank
- neural network
- tensor decomposition
- tensor
- threshold value
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Operations Research (AREA)
- Complex Calculations (AREA)
Description
本発明は、多層ニューラルネットワークの処理を高速化するためのランク最適化装置および最適化方法に関する。
深層学習が、画像認識を始めとする種々の情報処理分野で活用されている。深層学習では、多層ニューラルネットワークが使用される。ニューラルネットワークは、人間の脳内にある神経細胞(ニューロン)の繋がりである神経回路網を模した数学モデルである。多層ニューラルネットワークは、入力層、出力層、および1層以上の隠れ層で構成される。多層ニューラルネットワークは、高い情報処理精度を呈する。
畳み込みニューラルネットワークは、隠れ層として、畳み込み層を有する。畳み込み層は、入力データに対してフィルタ(畳み込みフィルタ)を適用することによって、特徴マップを得る。なお、多くの畳み込みニューラルネットワークは、畳み込み層に加えてプーリング層を有する。プーリング層は、畳込み層から出力された特徴マップのうちのある領域の代表値を抽出する。
図12は、畳み込みニューラルネットワークの一例であるVGG−16の構造を示す説明図である。VGG−16は、13層の畳み込み層および3層の全結合層を含む。畳み込み層で、または畳み込み層とプーリング層とで抽出された特徴は、全結合層で分類される。なお、図12において、畳み込み層の欄外の数は、畳み込みフィルタの数を示す。
畳み込みニューラルネットワークの処理時間の大半は、畳み込み演算の計算時間である。すなわち、多層畳み込みニューラルネットワークは、精度が高い処理を行えるが、処理演算量が多いので、処理速度が遅い。そのために、畳み込み演算の計算時間を短縮するための多数の手法(処理を高速化する手法)が提案されている。処理を高速化する手法の一つに、畳み込みフィルタのテンソルを低ランク近似する方法がある。低ランク近似は、テンソルを、より低いランクのテンソルの積に分解して、元のテンソルを近似する方法である。低ランク近似には幾つかの手法がある。
低ランク近似として、例えば、タッカー分解が用いられる。畳み込みニューラルネットワークにおける畳み込みフィルタは、一般に4階のテンソルで表現される。4階のテンソルwijklに対する1次のタッカー分解は、例えば、(1)式のように表現される。
(1)式において、Rは近似ランクである。以下、近似ランクをランクと呼ぶ。(1)式において、wijklにおけるi,j,k,lは、テンソルの成分を特定するための添字であり、添字の数はテンソルの階数である。w1 ijkrは4階のテンソルである。w2 rlは2階のテンソルである。
近似を評価するために、例えば、(2)式に示されるような再構築誤差Erecが用いられる。
(2)式において、||・||F は、テンソルのフロベニウスノルムを表す。Wは、テンソル分解(例えば、タッカー分解)される前のテンソルを示す。波線記号付きのWは、テンソル分解後のテンソルを示す。
畳み込みフィルタに対する低ランク近似を用いる場合、ランクを小さくすると、演算量が減少して処理を高速化することができる。しかし、ランクを小さくしすぎると、元の畳み込みフィルタを再現できなくなって近似誤差が増加する。また、ランクを小さくしすぎると、元の畳み込み処理を精度よく再現できなくなる。したがって、処理の精度を保ったまま処理を高速化するために、適切なランクを選択することが要請される。
非特許文献1に、低ランク近似を多層畳み込みニューラルネットワークに適用する方法が開示されている。具体的には、テンソル分解の形式と再構築誤差に基づくテンソル分解方法とが提案されている。非特許文献1では、手法の検証として、4層の畳み込み層を含むニューラルネットワークに対して、2層の畳み込み層に関して低ランク近似を行った実験の結果が示されている。その実験で、処理の精度を保ったままで処理が高速化されることが示されている。
M. Jaderberg et al., "Speeding up convolutional neural networks with low rank expansions", British Machine Vision Conference, 2014
上述したように、畳み込みニューラルネットワークの処理を高速化するために、低ランク近似(タッカー分解等のテンソル分解)は有用である。そして、テンソル分解が実行されるときに、ランクは重要な要素である。
しかし、畳み込みフィルタのような高階のテンソルが用いられる場合、ランクと近似誤差との関係は定かではない。換言すれば、近似誤差を許容範囲に押さえつつ演算量を減らせるようなランク(最適ランク)の決定方法が望まれている。
また、図12に例示されたような、畳み込み層の数が10層を越える多層畳み込みニューラルネットワークが使用されることも多い。多層畳み込みニューラルネットワークでは、高い高速化率を達成するために、同時に、全ての畳み込み層を対象として低ランク近似がなされることが望ましい。その理由は、以下の通りである。
複数の畳み込み層は、それぞれ、入力データに対して連続して処理を行う。また、各層の畳み込みフィルタ間に、出力データの相関が存在する。同様に、低ランク近似における再構築誤差にも、各層間で相関が存在する。よって、多層畳み込みニューラルネットワークにおいて低ランク近似が実施される場合に、各層の近似ランクは同時に最適化されることが望ましい。
しかし、最適化の検索空間(各層のランクの組み合わせ数)は、近似ランクの対象の畳み込み層の数に対して指数関数的に増加する。その結果、10層を越えるような多層畳み込みニューラルネットワークに対して、全ての畳み込み層を対象として一時に低ランク近似を適用するために長時間を要するという課題がある。
本発明は、多層ニューラルネットワークに対して、短時間で、全ての畳み込み層に対する最適なランクを得ることができるランク最適化装置および最適化方法を提供することを目的とする。
本発明によるニューラルネットワークのランク最適化装置は、ニューラルネットワークが有する畳み込みフィルタを低ランク近似のためにテンソル分解するテンソル分解処理を実行するテンソル分解手段と、テンソル分解手段で使用されるランクを最適化するランク最適化手段とを含み、ランク最適化手段は、低ランク近似の程度を表す評価量を計算する評価量計算手段と、あらかじめ定められたしきい値未満の評価量に対応するランクを所望のランクとするランク決定手段とを含むことを特徴とする。
本発明によるニューラルネットワークのランク最適化方法は、ニューラルネットワークが有する畳み込みフィルタを低ランク近似のためにテンソル分解するテンソル分解処理を実行し、テンソル分解処理で使用されるランクを最適化するランク最適化処理を実行し、ランク最適化処理で、低ランク近似の程度を表す評価量を計算し、あらかじめ定められたしきい値未満の評価量に対応するランクを所望のランクとすることを特徴とする。
本発明によるニューラルネットワークのランク最適化プログラムは、コンピュータに、ニューラルネットワークが有する畳み込みフィルタを低ランク近似のためにテンソル分解するテンソル分解処理と、テンソル分解処理で使用されるランクを最適化するランク最適化処理とを実行させ、ランク最適化処理で、低ランク近似の程度を表す評価量を計算する処理と、あらかじめ定められたしきい値未満の評価量に対応するランクを所望のランクとする処理とを実行させることを特徴とする。
本発明によれば、短時間で、多層ニューラルネットワークにおける全ての畳み込み層に対する最適なランクを得ることができる。
以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、ニューラルネットワークのランク最適化装置の第1の実施形態の構成例を示すブロック図である。第1の実施形態のランク最適化装置10は、入力手段11、テンソル分解手段12、ランク最適化手段13、および出力手段14を含む。
図1は、ニューラルネットワークのランク最適化装置の第1の実施形態の構成例を示すブロック図である。第1の実施形態のランク最適化装置10は、入力手段11、テンソル分解手段12、ランク最適化手段13、および出力手段14を含む。
入力手段11は、ニューラルネットワークの畳み込みフィルタ(具体的には、畳み込みフィルタを表すデータ)を入力する。
テンソル分解手段12は、入力手段11から畳み込みフィルタを入力する。また、テンソル分解手段12は、ランク最適化手段13からランクを入力し、入力したランクに基づいて、畳み込みフィルタに対してテンソル分解の処理を施す。
図2は、ランク最適化手段13の構成例を示すブロック図である。図2に示されるランク最適化手段13は、再構築誤差計算手段131、しきい値記憶部132、再構築誤差比較手段133、およびランク更新手段134を含む。
再構築誤差計算手段131は、テンソル分解手段12からテンソル分解前後の畳み込みフィルタを入力し、再構築誤差率を計算する。
再構築誤差計算手段131は、テンソル分解前後の畳み込みフィルタの差の大きさを定量評価するためのテンソルのノルム(大きさ)を計算する。再構築誤差計算手段131は、例えば、テンソルのノルムとしてフロベニウスノルムを用いる。しかし、再構築誤差計算手段131は、フロベニウスノルム以外のノルムを用いてもよい。
しきい値記憶部132は、再構築誤差に関するしきい値を記憶する。再構築誤差比較手段133は、しきい値記憶部132からしきい値を読み出す。しきい値記憶部132に記憶されるしきい値は、あらかじめ、ユーザによって登録される。なお、しきい値の大きさは、例えば、数値計算の誤差程度の微少量である。
再構築誤差比較手段133は、再構築誤差計算手段131から再構築誤差を入力する。また、再構築誤差比較手段133は、しきい値記憶部132からしきい値を入力する。再構築誤差比較手段133は、再構築誤差としきい値とを比較する。
ランク更新手段134は、ランクの集合(畳み込みフィルタの次元数以下の正の整数の集合)からランクを選択し、選択したランクをテンソル分解手段12に出力する。ランク更新手段134は、例えば、初期値としてランク1を出力する。その後、ランク更新手段134は、ランクの出力タイミングにおいて、直前に出力したランクに1を加算した値を、更新されたランクとして出力する。なお、ランク更新手段134は、値が1ずつ増えるランクを順に出力してもよいが、ニュートン法や二分法などの最適化方法で、出力するランクを決定してもよい。
図2に例示されたような構成のランク最適化手段13は、ランクとしきい値との比較と、ランクの更新とを繰り返し実行することによって、系統的にランクを検索することができる。その結果、ランク最適化手段13は、最適なランクを出力することができる。
出力手段14は、テンソル分解した畳み込みフィルタ(具体的には、畳み込みフィルタを表すデータ)を出力する。
次に、ランク最適化装置10の動作を説明する。図3は、第1の実施形態のランク最適化装置10の動作を示すフローチャートである。
なお、図3には、1つの畳み込みフィルタについての処理が示されているが、実際には、ランク最適化装置10には、全ての層における全ての畳み込みフィルタが入力される。そして、ランク最適化手段13は、全ての畳み込みフィルタに対して、図3に例示された最適化方法を実行する。
ランク最適化装置10は、入力手段11に1つの畳み込みフィルタが入力される度にステップS12〜S16の処理を実行してもよいが、入力手段11に全ての畳み込みフィルタが入力されると、各々の畳み込みフィルタについてステップS12〜S16の処理を実行してもよい。その場合には、入力手段11は、入力された畳み込みフィルタを一時記憶する。
入力手段11に、ニューラルネットワークの畳み込みフィルタが入力されると(ステップS11)、テンソル分解手段12は、ランク更新手段134からランクの初期値を入力する(ステップS12)。
テンソル分解手段12は、その時点の処理対象のランクに基づいて、畳み込みフィルタに対してテンソル分解処理を施す(ステップS13)。そして、テンソル分解手段12は、分解前後の畳み込みフィルタを再構築誤差計算手段131に出力する。
再構築誤差計算手段131は、テンソル分解手段12から入力した分解前後の畳み込みフィルタに基づいて再構築誤差の計算を行う(ステップS14)。そして、再構築誤差計算手段131は、算出した再構築誤差を再構築誤差比較手段133に出力する。
再構築誤差比較手段133は、再構築誤差手段131から入力された再構築誤差としきい値記憶部132から読み出したしきい値との大小関係を比較する。具体的には、再構築誤差比較手段133は、再構築誤差がしきい値を下回っているかどうかを判定する(ステップS15)。
再構築誤差がしきい値を下回っている場合には、再構築誤差比較手段133は、分解後の畳み込みフィルタを出力手段14に出力する(ステップS16)。
なお、ステップS16の処理で出力される分解後の畳み込みフィルタには、ステップS15の判定処理(比較処理)で判定の対象とされたランクが反映されている。したがって、再構築誤差比較手段133は、実質的に、決定した最適ランクを出力するといえる。
再構築誤差がしきい値以上である場合には、ランク更新手段134は、ランクの更新を行う(ステップS17)。そして、ランク更新手段134は、更新されたランクをテンソル分解手段12に出力する。その後、再び、ステップS13以降の処理が実行される。
本実施形態のランク最適化装置10において、ランク最適化手段13が判定(ステップS15参照)と更新(ステップS17参照)とを繰り返すことによって、再構築誤差が無視できるようなランクを、自動的に、かつ、各層独立に決定するように構築されているので、畳み込み層の層数が多くても低コスト(短時間)でランクを最適化することができる。
実施形態2.
図4は、ニューラルネットワークのランク最適化装置の第2の実施形態の構成例を示すブロック図である。第2の実施形態のランク最適化装置20は、入力手段11、テンソル分解手段12、ランク最適化手段23、および出力手段14を含む。
図4は、ニューラルネットワークのランク最適化装置の第2の実施形態の構成例を示すブロック図である。第2の実施形態のランク最適化装置20は、入力手段11、テンソル分解手段12、ランク最適化手段23、および出力手段14を含む。
入力手段11、テンソル分解手段12、および出力手段14は、第1の実施形態におけるそれらと同じ手段である。
図5は、ランク最適化手段23の構成例を示すブロック図である。図5に示されるランク最適化手段23は、再構築誤差計算手段131、しきい値記憶部232、再構築誤差正規化手段231、再構築誤差比較手段133、およびランク更新手段134を含む。
再構築誤差正規化手段231は、再構築誤差計算手段131から再構築誤差を入力し、再構築誤差の上限が各層で一定になるように正規化処理を行う。
具体的には、再構築誤差正規化手段231は、分解前の畳み込みフィルタのテンソルのノルムを正規化変数として計算し、再構築誤差を正規化変数で除算する。テンソルのノルムの形式は、例えば、再構築誤差計算手段131が用いた形式と同一である。正規化処理によって、任意の畳み込み層において、再構築誤差の上限が1(ランク0のときの再構築誤差の値)になる。
しきい値記憶部232は、再構築誤差に関するしきい値を記憶する。再構築誤差比較手段133は、しきい値記憶部232からしきい値を読み出す。しきい値記憶部232に記憶されるしきい値は、あらかじめ、ユーザによって登録される。なお、本実施形態では、しきい値記憶部232は、0以上1以下の実数であるしきい値を記憶する。
再構築誤差計算手段131、再構築誤差比較手段133、およびランク更新手段134は、第1の実施形態におけるそれらと同じ手段である。ただし、ランク更新手段134は、第1の実施形態の場合とは異なり、正規化された再構築誤差を入力する。
次に、ランク最適化装置20の動作を説明する。図6は、第2の実施形態のランク最適化装置20の動作を示すフローチャートである。
なお、図6には、1つの畳み込みフィルタについての処理が示されているが、実際には、ランク最適化装置20には、全ての層における全ての畳み込みフィルタが入力される。そして、ランク最適化手段23は、全ての畳み込みフィルタに対して、図6に例示された最適化方法を実行する。
ステップS11〜S14の処理は、第1の実施形態における処理と同じである。ただし、再構築誤差計算手段131は、算出した再構築誤差を再構築誤差正規化手段231に出力する。
再構築誤差正規化手段231は、再構築誤差計算手段131から入力された再構築誤差を正規化する(ステップS21)。再構築誤差正規化手段231は、正規化された再構築誤差を再構築誤差比較手段234に出力する。
再構築誤差比較手段133は、再構築誤差正規化手段231から入力された正規化された再構築誤差としきい値記憶部132から読み出したしきい値との大小関係を比較する。具体的には、再構築誤差比較手段133は、再構築誤差がしきい値を下回っているかどうかを判定する(ステップS15)。
第1の実施形態の場合と同様に、再構築誤差がしきい値を下回っている場合には、再構築誤差比較手段133は、分解後の畳み込みフィルタを出力手段14に出力する(ステップS16)。
再構築誤差がしきい値以上である場合には、ランク更新手段134は、ランクの更新を行う(ステップS17)。そして、ランク更新手段134は、更新されたランクをテンソル分解手段12に出力する。その後、再び、ステップS13以降の処理が実行される。
上述したように、再構築誤差を許容範囲に押さえつつ畳み込み演算の演算量を減らせるようなランクを決定することが望ましい。畳み込み層における低ランク近似において、畳み込み演算の処理速度と再構築誤差とはトレードオフの関係にある。処理速度を優先して多少の再構築誤差を許容する場合、許容量に対応する再構築誤差のしきい値の設定は重要である。特に、多層畳み込みニューラルネットワークの場合、各層の再構築誤差は互いに相関しているので、各層について適切なしきい値を設定することは容易ではない。つまり、各層について適切なしきい値を設定するのに長時間を要する。
しかし、本実施形態では、ランク最適化手段23における再構築誤差正規化手段231によって、畳み込みフィルタの値やフィルタサイズ(畳み込みフィルタをテンソルとみなしたときの次元に対応する。)に依らない近似誤差の指標を得ることができる。その結果、多数の畳み込み層を持つニューラルネットワークに対して、単一のしきい値の調整を行うだけで、各層のランクを最適化することできる。畳み込み層の層数が多くても低コスト(短時間)でランクを最適化することができる。
さらに、再構築誤差正規化手段231によって、低ランク近似の精度が悪い場合(完全に元の情報が失われた状態である分解後の畳み込みフィルタである場合)でも、テンソル分解の形式に関わらず、また、ランクの大きさに関わらず再構築誤差の上限が1になるので、全ての畳み込み層に対して同じしきい値で近似の程度を評価することができる。よって、検索すべきパラメータがしきい値のみに限定される。したがって、畳み込み層の層数が多くても低コスト(短時間)でランクを最適化することができる。
なお、第1の実施形態および第2の実施形態では、ランク最適化の判定基準として再構築誤差のみが用いられた。しかし、処理演算量による判定基準が併用されてもよい。各畳み込み層の低ランク近似後の処理演算量は、畳み込み演算の定義により、低ランク近似のランクに依存する形で一意的に算出可能である。したがって、ランク最適化手段13,23は、例えば、再構築誤差としきい値との比較による判定基準を満たすランクを蓄積し、その中から処理演算量が最小になるランクを最適なランクとして出力してもよい。
その場合には、再構築誤差比較手段133は、ステップS15の判定でしきい値を下回る(しきい値未満である)と判定された再構築誤差に対応するランクを一時記憶する。そして、ステップS15の判定結果が「Yes」でも、ステップS17に移行する。そして、更新されたランクの値が所定値に達したときに、再構築誤差比較手段133は、一時記憶されているランクの中から、処理演算量を最小にするランクを検索する。そして、見つかった処理演算量を最小にするランクを最適ランクとして出力する。なお、ランクを出力するのではなく、ランクに対応する低ランク近似された畳み込みフィルタを出力してもよい。
演算量による判定基準が併用される場合には、多層畳み込みニューラルネットワークにおける各層の演算量が最小化されるので、ニューラルネットワークの処理速度をより高速化することができるという効果も得られる。
また、上記の各実施形態は、多層畳み込みニューラルネットワークの畳み込み層を対象にしたが、上記の各実施形態のランク最適化方法は、畳み込み層以外のテンソルを演算に用いる層にも適用可能である。例えば、行列ベクトル積の演算を実行する全結合層を対象にする場合、行列重みに対して低ランク近似が行われるようにし、かつ、上記の各実施形態のランク最適化方法を適用すればよい。この場合、テンソル分解手段12は、ニューラルネットワークにおける全結合層における行列重みを入力する。
以下、ランク最適化装置およびランク最適化方法の具体例を、図4、図5および図7を参照して説明する。
図7は、ランク最適化方法の具体例を示すフローチャートである。なお、図7に示す処理は、第2の実施形態のランク最適化方法に対応する。
本実施例では、テンソル分解として(1)式で定義される1次のタッカー分解を例にする。
入力手段11には、多層畳み込みニューラルネットワークにおける各々の畳み込みフィルタWが入力される(ステップS101)。テンソル分解手段12は、ランク更新手段134から、低ランク近似のランクRの初期値を入力する(ステップS102)。
テンソル分解手段12は、入力されたランクRに基づいて、畳み込みフィルタに対して、反復法などの数値アルゴリズムを用いてテンソル分解処理を行う(ステップS103)。なお、テンソル分解手段12は、反復法以外の方法でテンソル分解を行ってもよい。そして、テンソル分解手段12は、分解前後の畳み込みフィルタを再構築誤差計算手段131に出力する。
再構築誤差計算手段131は、テンソル分解手段12から入力した分解前後の畳み込みフィルタに基づいて再構築誤差の計算を行う(ステップS104)。
再構築誤差は、テンソルの大きさを量的に表すことができるテンソルのノルムによって定義される。具体的には、再構築誤差は、分解前後の畳み込みフィルタの差に対するテンソルのノルムによって定義される。本実施例では、テンソルのノルムとして、(3)式で定義されるフロベニウスノルムが使用される。なお、フロベニウスノルムは例示であって、他のノルムが使用されてもよい。
そして、再構築誤差計算手段131は、算出した再構築誤差を再構築誤差正規化手段231に出力する。
再構築誤差正規化手段231は、再構築誤差計算手段131から再構築誤差を入力すると、再構築誤差に対して正規化処理を行う(ステップS121)。そして、再構築誤差正規化手段231は、正規化された再構築誤差を再構築誤差比較手段133に出力する。
正規化された再構築誤差(^付きのErec)は、テンソル分解前の畳み込みフィルタのテンソルのノルムN(W)を正規化変数として、(4)式を用いて算出される。
テンソルのノルムN(W)の形式は、再構築誤差計算手段131が用いた形式と同一である。再構築誤差計算手段131はフロベニウスノルムを使用するので、テンソルのノルムN(W)は、(5)式のように表される。
再構築誤差比較手段133は、再構築誤差正規化手段231から入力された正規化された再構築誤差がしきい値記憶部232から読み出したしきい値を下回っているかどうかを判定する(ステップS105)。
正規化された再構築誤差がしきい値を下回っている場合には、再構築誤差比較手段133は、分解後の畳み込みフィルタを出力手段14に出力する(ステップS106)。すなわち、再構築誤差比較手段133から、しきい値を下回った再構築誤差に対応するランクにおけるテンソル分解された畳み込みフィルタが出力される。
再構築誤差がしきい値以上である場合には、ランク更新手段134は、次の試行(ステップS103,S104,S121,S105の処理)のためにランクの更新を行う(ステップS107)。そして、ランク更新手段134は、更新されたランクをテンソル分解手段12に出力する。その後、再び、ステップS103以降の処理が実行される。
なお、ランク更新手段134は、ステップS107で実行されるランク更新処理において、反復法に基づく方法を使用する。すなわち、ランク更新手段134は、ランク1を初期値として、その後、ランクを、更新の度に1ずつ加算された値に更新する。しかし、ランク更新手段134は、しきい値を満たすランクを漏れなく検索できる方法であれば、どのような方法を用いてもよい。例えば、ニュートン法などの他の反復法や二分法を使用してもよい。
また、本実施例では、テンソル分解として、1次のタッカー分解が用いられる。しかし、テンソル分解として、他の形式の分解が用いられてもよい。例えば、2次のタッカー分解が用いられる場合には、テンソル分解後の畳み込みフィルタを(6)式のように表現すればよい。CP(Canonical Polyadic )分解が用いられる場合には、テンソル分解後の畳み込みフィルタを(7)式のように表現すればよい。
なお、2次のタッカー分解では、最適されるランクは、R3,R4である。CP分解では、最適されるランクは、Rである。
上記の各実施形態における各構成要素は、1つのハードウェアで構成可能であるが、1つのソフトウェアでも構成可能である。また、各構成要素は、複数のハードウェアでも構成可能であり、複数のソフトウェアでも構成可能である。また、各構成要素のうちの一部をハードウェアで構成し、他部をソフトウェアで構成することもできる。
上記の各実施形態における各機能(各処理)を、CPU(Central Processing Unit )等のプロセッサやメモリ等を有するコンピュータで実現可能である。例えば、記憶装置(記憶媒体)に上記の実施形態における方法(処理)を実施するためのプログラムを格納し、各機能を、記憶装置に格納されたプログラムをCPUで実行することによって実現してもよい。
図8は、CPUを有するコンピュータの一例を示すブロック図である。コンピュータは、ランク最適化装置に実装される。なお、コンピュータは、一例として、パーソナルコンピュータである。なお、CPUに代えてGPU(Graphics Processing Unit)が実装されてもよいし、CPUとGPUとがともに実装されてもよい。
CPU1000は、記憶装置1001に格納されたプログラムに従って処理を実行することによって、上記の実施形態における各機能を実現する。すなわち、CPU1000は、図1および図4に示された、ランク最適化装置10,20におけるテンソル分解手段12およびランク最適化手段13,23、ならびに、図2および図4に示された、再構築誤差計算手段131、再構築誤差比較手段133、ランク更新手段134および再構築誤差正規化手段231の機能を実現する。
記憶装置1001は、例えば、非一時的なコンピュータ可読媒体(non-transitory computer readable medium )である。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium )を含む。非一時的なコンピュータ可読媒体の具体例として、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Compact Disc-Read Only Memory )、CD−R(Compact Disc-Recordable )、CD−R/W(Compact Disc-ReWritable )、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM )、フラッシュROM)がある。
記憶装置1001は、しきい値記憶部132,232を実現する。
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium )に格納されてもよい。一時的なコンピュータ可読媒体には、例えば、有線通信路または無線通信路を介して、すなわち、電気信号、光信号または電磁波を介して、プログラムが供給される。
メモリ1002は、例えばRAM(Random Access Memory)で実現され、CPU1000が処理を実行するときに一時的にデータを格納する記憶手段である。メモリ1002に、記憶装置1001または一時的なコンピュータ可読媒体が保持するプログラムが転送され、CPU1000がメモリ1002内のプログラムに基づいて処理を実行するような形態も想定しうる。
図9は、ランク最適化装置の主要部を示すブロック図である。図9に示すランク最適化装置は、ニューラルネットワークが有する畳み込みフィルタを低ランク近似のためにテンソル分解するテンソル分解処理を実行するテンソル分解手段1(実施形態におけるテンソル分解手段12に相当)と、テンソル分解手段1で使用されるランクを最適化するランク最適化手段2A(実施形態におけるランク最適化手段13,23に相当)とを含み、ランク最適化手段2Aは、低ランク近似の程度を表す評価量(実施形態では、再構築誤差)を計算する評価量計算手段3(実施形態では、再構築誤差計算手段131で実現される。)と、あらかじめ定められたしきい値未満の評価量に対応するランクを所望のランクとするランク決定手段4(実施形態では、しきい値記憶部132,232および再構築誤差比較手段133で実現される。)とを含む。
図10は、他の態様のランク最適化装置の主要部を示すブロック図である。図10に示すランク最適化装置は、ランク最適化手段2Bが、ランクを更新するランク更新処理を実行するランク更新手段5(実施形態におけるランク更新手段134に相当)を含み、テンソル分解手段1が、ランク更新手段5が出力するランクに基づいてテンソル分解処理を実行し、ランク決定手段4が、評価量計算手段3が計算した評価量としきい値とを比較する機能を有し、評価量がしきい値を下回るとランク決定手段4が判定するまで、ランク更新処理とテンソル分解処理とを繰り返すように構成されている。
図11は、さらに他の態様のランク最適化装置の主要部を示すブロック図である。図11に示すランク最適化装置は、ランク最適化手段2Cにおいて、ランク決定手段4が、畳み込み演算の演算量を計算する演算量計算手段41と、しきい値未満の評価量に対応するランクの中から、最小の演算量に対応するランクを検索するランク検索手段42とを含むように構成されている。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2018年1月29日に出願された日本特許出願2018−012449を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 テンソル分解手段
2A,2B,2C ランク最適化手段
3 評価量計算手段
4 ランク決定手段
5 ランク更新手段
10,20 ランク最適化装置
11 入力手段
12 テンソル分解手段
13,23 ランク最適化手段
14 出力手段
41 演算量計算手段
42 ランク検索手段
131 再構築誤差計算手段
132 しきい値記憶部
133 再構築誤差比較手段
134 ランク更新手段
231 再構築誤差正規化手段
1000 CPU
1001 記憶装置
1002 メモリ
2A,2B,2C ランク最適化手段
3 評価量計算手段
4 ランク決定手段
5 ランク更新手段
10,20 ランク最適化装置
11 入力手段
12 テンソル分解手段
13,23 ランク最適化手段
14 出力手段
41 演算量計算手段
42 ランク検索手段
131 再構築誤差計算手段
132 しきい値記憶部
133 再構築誤差比較手段
134 ランク更新手段
231 再構築誤差正規化手段
1000 CPU
1001 記憶装置
1002 メモリ
Claims (10)
- ニューラルネットワークが有する畳み込みフィルタを低ランク近似のためにテンソル分解するテンソル分解処理を実行するテンソル分解手段と、
前記テンソル分解手段で使用されるランクを最適化するランク最適化手段とを備え、
前記ランク最適化手段は、
前記低ランク近似の程度を表す評価量を計算する評価量計算手段と、
あらかじめ定められたしきい値未満の前記評価量に対応するランクを所望のランクとするランク決定手段とを含む
ニューラルネットワークのランク最適化装置。 - 前記ランク最適化手段は、ランクを更新するランク更新処理を実行するランク更新手段を含み、
前記テンソル分解手段は、前記ランク更新手段が出力するランクに基づいてテンソル分解処理を実行し、
前記ランク決定手段は、前記評価量計算手段が計算した評価量と前記しきい値とを比較する機能を有し、
前記評価量が前記しきい値を下回ると前記ランク決定手段が判定するまで、前記ランク更新処理と前記テンソル分解処理とを繰り返す
請求項1記載のニューラルネットワークのランク最適化装置。 - 前記ランク更新手段は、ランクの初期値として1を出力し、更新の度にランクの値を1ずつ増やす
請求項2記載のニューラルネットワークのランク最適化装置。 - 前記ランク決定手段が用いる評価量は、テンソル分解前の畳み込みフィルタのテンソルのノルムで正規化された再構築誤差である
請求項1から請求項3のうちのいずれか1項に記載のニューラルネットワークのランク最適化装置。 - 前記ランク決定手段は、
畳み込み演算の演算量を計算する演算量計算手段と、
前記しきい値未満の評価量に対応するランクの中から、最小の演算量に対応するランクを検索するランク検索手段とを含む
請求項1から請求項4のうちのいずれか1項に記載のニューラルネットワークのランク最適化装置。 - 前記テンソル分解手段は、ニューラルネットワークにおける全結合層における行列重みを入力する
請求項1から請求項5のうちのいずれか1項に記載のニューラルネットワークのランク最適化装置。 - ニューラルネットワークが有する畳み込みフィルタを低ランク近似のためにテンソル分解するテンソル分解処理を実行し、
前記テンソル分解処理で使用されるランクを最適化するランク最適化処理を実行し、
前記ランク最適化処理で、
前記低ランク近似の程度を表す評価量を計算し、
あらかじめ定められたしきい値未満の前記評価量に対応するランクを所望のランクとする
ニューラルネットワークのランク最適化方法。 - ランクを更新するランク更新処理を実行し、
前記ランク更新処理で更新されたランクに基づいて前記テンソル分解処理を実行し、
算出された評価量と前記しきい値とを比較し、
前記評価量が前記しきい値を下回るまで、前記ランク更新処理と前記テンソル分解処理とを繰り返す
請求項7記載のニューラルネットワークのランク最適化方法。 - しきい値との比較対象の評価量は、テンソル分解前の畳み込みフィルタのテンソルのノルムで正規化された再構築誤差である
請求項7または請求項8記載のニューラルネットワークのランク最適化方法。 - コンピュータに、
ニューラルネットワークが有する畳み込みフィルタを低ランク近似のためにテンソル分解するテンソル分解処理と、
前記テンソル分解処理で使用されるランクを最適化するランク最適化処理とを実行させ、
前記ランク最適化処理で、
前記低ランク近似の程度を表す評価量を計算する処理と、
あらかじめ定められたしきい値未満の前記評価量に対応するランクを所望のランクとする処理と
を実行させるためのニューラルネットワークのランク最適化プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018012449 | 2018-01-29 | ||
JP2018012449 | 2018-01-29 | ||
PCT/JP2018/039428 WO2019146189A1 (ja) | 2018-01-29 | 2018-10-24 | ニューラルネットワークのランク最適化装置および最適化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019146189A1 JPWO2019146189A1 (ja) | 2020-12-17 |
JP6950756B2 true JP6950756B2 (ja) | 2021-10-13 |
Family
ID=67394555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019567853A Active JP6950756B2 (ja) | 2018-01-29 | 2018-10-24 | ニューラルネットワークのランク最適化装置および最適化方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210073633A1 (ja) |
JP (1) | JP6950756B2 (ja) |
WO (1) | WO2019146189A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449739B2 (en) * | 2019-08-22 | 2022-09-20 | Google Llc | General padding support for convolution on systolic arrays |
CN110852424B (zh) * | 2019-11-15 | 2023-07-25 | 广东工业大学 | 一种对抗生成网络的处理方法和装置 |
CN112926168B (zh) * | 2019-12-05 | 2023-05-09 | 杭州海康威视数字技术股份有限公司 | 确定最优计算模板的方法和装置 |
CN111505706B (zh) * | 2020-04-28 | 2023-04-18 | 长江大学 | 基于深度T-Net网络的微地震P波初至拾取方法及装置 |
KR102427737B1 (ko) | 2020-09-18 | 2022-08-01 | 네이버 주식회사 | 표현적 병목 현상이 최소화된 인공 신경망을 기반으로 하는 전자 장치 및 그의 동작 방법 |
JP2023039558A (ja) | 2021-09-09 | 2023-03-22 | 富士通株式会社 | 演算プログラム、演算方法および演算装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862662B2 (en) * | 2012-10-29 | 2014-10-14 | The Boeing Company | Determination of latent interactions in social networks |
US20160013773A1 (en) * | 2012-11-06 | 2016-01-14 | Pavel Dourbal | Method and apparatus for fast digital filtering and signal processing |
US9730643B2 (en) * | 2013-10-17 | 2017-08-15 | Siemens Healthcare Gmbh | Method and system for anatomical object detection using marginal space deep neural networks |
US10360497B2 (en) * | 2014-07-16 | 2019-07-23 | Qualcomm Incorporated | Decomposing convolution operation in neural networks |
US10824693B2 (en) * | 2015-12-10 | 2020-11-03 | Reservoir Labs, Inc. | Systems and methods for selective expansive recursive tensor analysis |
US10775464B2 (en) * | 2017-01-31 | 2020-09-15 | Regents Of The University Of Minnesota | System and method for dynamic, cardiac phase-resolved quantitative longitudinal relaxation parameter mapping |
US11586924B2 (en) * | 2018-01-23 | 2023-02-21 | Qualcomm Incorporated | Determining layer ranks for compression of deep networks |
-
2018
- 2018-10-24 JP JP2019567853A patent/JP6950756B2/ja active Active
- 2018-10-24 US US16/963,377 patent/US20210073633A1/en active Pending
- 2018-10-24 WO PCT/JP2018/039428 patent/WO2019146189A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPWO2019146189A1 (ja) | 2020-12-17 |
WO2019146189A1 (ja) | 2019-08-01 |
US20210073633A1 (en) | 2021-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6950756B2 (ja) | ニューラルネットワークのランク最適化装置および最適化方法 | |
CN110880036B (zh) | 神经网络压缩方法、装置、计算机设备及存储介质 | |
WO2019018375A1 (en) | NEURONAL ARCHITECTURE RESEARCH FOR CONVOLUTION NEURAL NETWORKS | |
JP7225395B2 (ja) | 動的再構成訓練コンピュータアーキテクチャ | |
CN111079899A (zh) | 神经网络模型压缩方法、***、设备及介质 | |
CN108229667A (zh) | 基于人工神经网络类别的修剪 | |
JP2023523029A (ja) | 画像認識モデル生成方法、装置、コンピュータ機器及び記憶媒体 | |
CN111382833A (zh) | 多层神经网络模型的训练和应用方法、装置及存储介质 | |
JP7287397B2 (ja) | 情報処理方法、情報処理装置及び情報処理プログラム | |
CN110930996B (zh) | 模型训练方法、语音识别方法、装置、存储介质及设备 | |
CN109975250B (zh) | 一种叶面积指数反演方法及装置 | |
KR20200089588A (ko) | 전자 장치 및 이의 제어 방법 | |
CN112906889A (zh) | 一种用于压缩深度神经网络模型的方法和*** | |
Kemal et al. | Performance analysis of optimization algorithms on stacked autoencoder | |
CN114282666A (zh) | 基于局部稀疏约束的结构化剪枝方法和装置 | |
CN112101547A (zh) | 一种对网络模型的剪枝方法、装置、电子设备及存储介质 | |
CN114072809A (zh) | 经由神经架构搜索的小且快速的视频处理网络 | |
CN116188878A (zh) | 基于神经网络结构微调的图像分类方法、装置和存储介质 | |
CN112966818A (zh) | 一种定向引导模型剪枝方法、***、设备及存储介质 | |
JP7150651B2 (ja) | ニューラルネットワークのモデル縮約装置 | |
CN109783769B (zh) | 一种基于用户项目评分的矩阵分解方法和装置 | |
CN110874635A (zh) | 一种深度神经网络模型压缩方法及装置 | |
CN107203916B (zh) | 一种用户信用模型建立方法及装置 | |
US11875263B2 (en) | Method and apparatus for energy-aware deep neural network compression | |
CN115222012A (zh) | 用于压缩神经网络的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200701 |
|
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: 20210824 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210906 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6950756 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |