JP2020109647A - 多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体 - Google Patents

多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体 Download PDF

Info

Publication number
JP2020109647A
JP2020109647A JP2019229345A JP2019229345A JP2020109647A JP 2020109647 A JP2020109647 A JP 2020109647A JP 2019229345 A JP2019229345 A JP 2019229345A JP 2019229345 A JP2019229345 A JP 2019229345A JP 2020109647 A JP2020109647 A JP 2020109647A
Authority
JP
Japan
Prior art keywords
channels
filter
network model
input feature
channel
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.)
Granted
Application number
JP2019229345A
Other languages
English (en)
Other versions
JP6890653B2 (ja
Inventor
タオ ウェイ
Wei Tao
タオ ウェイ
ギャオ ホンイン
Hongxing Gao
ギャオ ホンイン
チン ソクイ
Tsewei Chen
チン ソクイ
ウェン ドンチヤオ
Dongchao Wen
ウェン ドンチヤオ
リウ ジュンジエ
Junjie Liu
リウ ジュンジエ
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of JP2020109647A publication Critical patent/JP2020109647A/ja
Application granted granted Critical
Publication of JP6890653B2 publication Critical patent/JP6890653B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

【課題】多層ニューラルネットワークモデルを単純化することと性能を維持することとの間のより良いバランスを達成する。【解決手段】多層ニューラルネットワークモデルは、畳み込み層について、畳み込み層のフィルタのチャネル数を拡張する工程と、順伝播中にアプリケーション要件に対応するデータに基づいてチャネル数を拡張した後のフィルタを用いて畳み込み層のデータ計算を行う工程と、順伝播を完了した後に適用結果を出力する工程と、を備える。【選択図】図7

Description

本開示は多層ニューラルネットワークのためのモデリング分野に関し、特に、多層ニューラルネットワークモデルを単純化し、その性能を従来の技術に匹敵させる方法に関する。
近年、モデル化に基づく多層ニューラルネットワークモデルは、画像分類、ターゲット検出、及び画像分割のようなコンピュータサービスにおいて広く使用されている。サービス精度を向上させるために、ネットワークモデルは、例えば、VGGNet、ResNet、及びXceptionのようなネットワークモデルのように、ますます深く(層がより多く)、並びにますます広く(各層の出力特徴マップがより多く)なるように設計されている。これらのネットワークモデルは、計算量が大きく及び処理速度が遅いという欠点を有するため、それらは、スマートフォン、ロボット機器等のような資源制約のある機器に適用することが困難である。現在、以下のようにネットワークモデルの構造を単純化し及びネットワークモデルの性能を保証するいくつかの方法がある。
1.ネットワークの枝刈り。この方法は、フィルタのパラメータの一部を0に設定することでフィルタの重みを疎にする、又はフィルタ数を減らすためにフィルタの一部を直接除去し、それによってネットワークモデルを単純化する目的を達成する。ネットワークの枝刈りは、ネットワークモデルを効果的に単純化することができるが、畳み込み層のどのフィルタが除去され得るかを決定するために正確なハイパーパラメータ設定を達成することは困難であり、これはネットワークの枝刈りの実際の適用を制限する。
2.パラメータ量子化。この方法は、フィルタのパラメータの表現精度を減らすことによって、ネットワークモデルの記憶領域を低減し、及び計算速度を向上させる。例えば、32ビットで表される最高精度は1ビットで表されるバイナリ精度に量子化される。この方法は、ネットワークモデルによって占有される記憶領域を低減することができるが、低減されたパラメータの表現精度は、ネットワークモデルの性能を低下させる。
3.低ランクでの近似。この方法は、スケールの大きい行列によって表されるフィルタパラメータをスケールの小さい行列によって表される複数の行列パラメータに分解し、それによってネットワークモデルをより小さくする。しかしながら、この方法の圧縮率は限られており、及び計算量の顕著な低減をもたらすものではない。
4.効率的なネットワーク設計。畳み込み計算子を最適化し、及びローカルバイナリ畳み込みニューラルネットワーク(LBCNN)モデル又はボトルネック設計のような特定の効率的なネットワークモデルを設計することによって、ネットワークモデルを単純化する目的が達成される。LBCNNモデルを例にとると、1つの従来の畳み込み処理は2つの畳み込み処理に分解され、そこで最初に、疎及び固定のバイナリ畳み込みフィルタが畳み込みに使用され、並びに2回目に、学習可能であり、及びパラメータスケールが小さい(1×1)フィルタが畳み込みに使用される。第1の畳み込み処理におけるバイナリ畳み込みフィルタにおけるパラメータは固定であり、ネットワークモデルの各層は1つのバイナリ畳み込みフィルタを共有することができ、第2の畳み込み処理におけるフィルタの行列スケールは小さいので、ネットワークモデルによって占有される記憶領域は全体としてより小さくなる。しかしながら、1つの従来の畳み込み処理が2つの畳み込み処理に分解されるので、代わりにLBCNNの深さが増加し、これはネットワークモデルの学習処理の収束に不利である。
5.3値化された重み。残差拡張技術によって、この方法は、より多くのフィルタを導入するために、畳み込み層及び完全接続層上で異なる閾値αを使用し、それがネットワークモデルの精度を効果的に向上させる。しかしながら、これは、ネットワークモデルにおいて、より多くの3値化された重みのフィルタを導入し、その結果、ネットワークモデルの大きさを著しく増大させる可能性がある。
上述の方法はそれ自体の欠点を有し、全てがネットワークモデルを単純化することと性能を維持することとの間のより良いバランスを達成することはできない。
本開示は、従来の多層ニューラルネットワークモデルを最適化するための解決策を提供することを目的とし、ニューラルネットワークモデルを単純化することと性能を維持することとの間のより良いバランスを達成することが期待される。
本開示の一態様によれば、多層ニューラルネットワークモデルの少なくとも1つの畳み込み層について、その畳み込み層のフィルタのチャネル数を拡張することと、順伝播中に、アプリケーション要件に対応するデータに基づいて、チャネル数拡張後のフィルタを用いて畳み込み層のデータ計算を行うことと、順伝播を完了した後に適用結果を出力することと、を備える、多層ニューラルネットワークモデルの適用方法が提供される。
本開示の別の態様によれば、学習される多層ニューラルネットワークモデルの少なくとも1つの畳み込み層について、その畳み込み層のフィルタのチャネル数を拡張することと、順伝播中に、学習用データに基づいてチャネル数拡張後のフィルタを用いて畳み込み層のデータ計算を行うことと、逆伝播中に、ネットワークモデルの学習を実現するために、チャネル数拡張後のチャネルの同一チャネル上の重みの勾配値に応じてチャネル数拡張前のチャネル上の重みの勾配値を更新することと、を備え、その同一チャネル上の重みが、その勾配値がチャネル数拡張前のチャネル上で更新される重みから導出される、更新することと、を備える、多層ニューラルネットワークモデルの学習方法が提供される。
本開示の別の態様によれば、順伝播中に、少なくとも1つの畳み込み層について、畳み込み層の複数の入力特徴マップを累算し、畳み込み層の累積された入力特徴マップ及びフィルタを使用することによって畳み込み層の畳み込み計算を行うことと、順伝播を完了した後に適用結果を出力することと、を備える、多層ニューラルネットワークの適用方法が提供される。
本開示の別の態様によれば、多層ニューラルネットワークの少なくとも1つの畳み込み層のフィルタのチャネル数を予め拡張する拡張部と、アプリケーション要件に対応するデータに基づいて、チャネル数拡張後のフィルタを用いて畳み込み層のデータ計算を行う順伝播部と、順伝播を完了した後に適用結果を出力する出力部と、を備える、多層ニューラルネットワークの適用装置が提供される。
本開示の別の態様によれば、学習される多層ニューラルネットワークモデルの少なくとも1つの畳み込み層のフィルタのチャネル数を予め拡張する拡張部と、学習用のデータに基づいて、チャネル数拡張後のフィルタを用いて畳み込み層のデータ計算を行う順伝播部と、ネットワークモデルの学習を実現するために、チャネル数拡張後のチャネルの同一チャネル上の重みの勾配値に応じて、チャネル数拡張前のチャネル上の重みの勾配値を更新する逆伝播部であって、その同一チャネル上の重みが、その勾配値がチャネル数拡張前のチャネル上で更新される重みから導出される、逆伝播部と、を備える、多層ニューラルネットワークにおける学習装置が提供される。
本開示の別の態様によれば、順伝播中に、少なくとも1つの畳み込み層について、その畳み込み層の複数の入力特徴マップを累算する累算部と、畳み込み層の累算された入力特徴マップ及びフィルタを使用することによって畳み込み層の畳み込み計算を行う計算部と、順伝播を完了した後に適用結果を出力する出力部と、を備える、多層ニューラルネットワークの適用装置が提供される。
本開示の別の態様によれば、コンピュータによって実行されたときに、上記の多層ニューラルネットワークモデルの適用方法をコンピュータに行わせる、プログラムが提供される。
本開示の別の態様によれば、コンピュータによって実行されたときに、上記の多層ニューラルネットワークモデルの学習方法をコンピュータに行わせる、プログラムが提供される。
本開示のさらなる特徴は、添付される図面を参照して、以下の例示的な実施形態の説明から明らかになるであろう。
本明細書に組み込まれその一部を構成する添付の図面は、本発明の実施形態を示し、並びに、実施形態の説明とともに、本開示の原理を説明する役割を果たす。
枝刈りネットワークモデルの枝刈り及び微調整処理を示す。
従来の畳み込みニューラルネットワークモデル及びLBCNNモデルの順伝播処理を示す。
それぞれ、量子化前及び後の3値化された重みとフィルタ行列パラメータとの最適化方法の順伝播処理を示す。
3値化された重みにおける順及び逆伝播におけるフィルタ構造を示す。 本開示の方法における順及び逆伝播におけるフィルタ構造を示す。
本開示のハードウェア環境を示す。
本開示におけるネットワークモデルの内部構造の概略図を示す。
本開示の第5の例示的な実施形態に係る学習方法の概略フローチャートを示す。
本開示の第1の例示的な実施形態のフィルタのチャネル数の拡張の概略図をそれぞれ示す。
チャネルを拡張した後にフィルタを使用して畳み込みを行う処理を示す。
本開示の第2の例示的な実施形態に係る適用方法の概略フローチャートである。
入力特徴マップの特徴分布の概略図を示す。
本開示の第3の例示的な実施形態に係る適用方法の概略フローチャートである。
入力特徴マップを累算する処理を示す。
本開示の第4の例示的な実施形態に係る学習装置の構造概略図である。
本開示の第5の例示的な実施形態に係る適用装置の構造概略図である。
本開示の第6の例示的な実施形態に係る適用装置の構造概略図である。
従来の多層ニューラルネットワークモデルの構造は大部分が複雑である。モデル構造を単純化するために、ネットワークの枝刈りは適用可能な方法である。図1は、順伝播処理における、オリジナルモデル(単純化されなかったモデル)、枝刈りモデル、及び枝刈りモデルを微調整する微調整モデルの処理を示す。
オリジナルモデルでは、i番目の層は3つのフィルタを備え、順伝播を行うために、i番目の層の入力特徴マップはその3つのフィルタを用いて別々に畳み込まれ、その後、この畳み込み計算結果が、(i+1)番目の層の入力特徴マップ(すなわち、i番目の層の出力特徴マップ)とされ、(i+1)番目の層のフィルタを用いて畳み込まれ続けるものとする。
枝刈りモデルでは、まず、ネットワークモデルの全体性能への寄与が小さいi番目の層のフィルタ(フィルタのi番目の層において点線で示される)が除去され、同時に、(i+1)番目の層にあるそのフィルタの対応する入力特徴マップ及びフィルタチャネル(入力特徴マップ及びフィルタの(i+1)番目の層において点線で示される)も一緒に除去される。畳み込み計算では、i番目の層の入力特徴マップがi番目の層の残りの2つのフィルタを用いて畳み込まれ、並びに、i番目の層の畳み込み計算結果がi+1番目の層の入力特徴マップとして使用され、i+1番目の層の畳み込み計算が継続されることにより、順伝播処理を行う。微調整モデルは枝刈りモデルの微調整であり、その結果、枝刈りモデルの性能は、そのオリジナルモデルの性能とほぼ等しい。
上記のネットワークの枝刈りに基づいて、ネットワークモデルは、重要でないフィルタを除去することによって効果的に単純化されることができるが、ネットワークモデルのどのフィルタが除去され得るかを決定することはネットワーク枝刈り方法の困難なところである。一例として、ネットワークモデルへの寄与度に応じて、層の特徴マップについてそれぞれの情報エントロピースコアが算出され、スコアが閾値<T>よりも低い特徴マップに対応するフィルタが除去され得るフィルタとされ、別の例として、算出された特徴マップの情報エントロピースコアが降順に配列され、同時に、固定圧縮率が用られ、前の閾値<K>特徴マップに対応するフィルタのみが保持され、除去され得るフィルタとして他のフィルタが使用される。しかしながら、実際の応用例では、閾値<T>及び閾値<K>は決定されることが困難であり、その結果、ネットワークの枝刈りの実際の適用が制限される。
一般的に使用される別の最適化モデルはLBCNNモデルである。図2は、従来の畳み込みニューラルネットワーク(CNN)モデル及びLBCNNモデルを例にとることによって、2つのネットワークモデルの順伝播処理を示す。
図2の上側は、従来の畳み込みニューラルネットワーク(CNN)モデルの順伝播処理である。i番目の層が3×3のスケールを有する3つのフィルタを備えていると仮定すると、i番目の層の入力特徴マップ(図2の左上側のX)は、応答マップを生成するために3つのフィルタを用いて畳み込まれ、応答マップの要素は、出力特徴マップ(図2の右上側のXi+1)を生成するために活性化計算の対象となり、出力特徴マップは、(i+1)番目の層に出力される。
図2の下側はLBCNNモデルの順伝播処理であり、バイナリ畳み込みフィルタのセットを含む。バイナリ畳み込みフィルタは、上側のCNNモデルのフィルタと比較してより疎な行列パラメータを有し、ネットワークモデル学習中に更新されない(パラメータは固定される)。LBCNNモデルはまた、非線形活性化関数及び学習可能フィルタのセットを含み、学習可能フィルタの行列パラメータは、小さいスケール、例えば1×1を有する。LBCNNモデルに基づく順伝播処理では、まず、i番目の層の入力特徴マップ(図2の左下側のX)がバイナリ畳み込みフィルタを用いて畳み込まれ、その計算結果が非線形活性化関数により活性化される。活性化されたビットマップは学習可能なフィルタを用いて畳み込まれ、並びに、i番目の層の出力特性マップ(図2の右下側のXi+1)が最終的に生成され、及び(i+1)番目の層に出力される。
従来のCNNモデルと比較して、LBCNNモデルにおけるバイナリ畳み込みフィルタは複数の層によって共有されることができ、重要なパラメータは、小さな行列パラメータスケールを有する学習可能なフィルタに格納される。このため、LBCNNモデルのサイズを効果的に減少させることができる。しかしながら、LBCNNモデルには2つの畳み込み処理があり、そのうちの1つは疎及び固定のバイナリ畳み込みフィルタについての畳み込み処理であり、並びに、その他は学習可能フィルタについての畳み込み処理である。したがって、LBCNNモデルの深さが増加し、ネットワークモデルの深さを増加させることはネットワークモデルの学習がより困難になることを意味する。
上述のLBCNN最適化モデルに加え、図3(a)は、3値化された重みを使用して最適化されたネットワークモデルを示す。図3(a)の上側は従来の多層畳み込みニューラルネットワークモデルであり、下側はより多くの導入されたフィルタを有するネットワークモデルである。畳み込み層1で畳み込み層1を増加させることを例にとると、まず、最高精度3×3フィルタを量子化することによって2つの2ビット精度フィルタが得られ、次に、それぞれ異なる閾値α及びαを採用することによって、3(b)に示されるようなフィルタ行列パラメータが得られる。
図3(a)及び図3(b)からわかるように、新しいフィルタの導入はニューラルネットワークモデルの精度を向上させることができるが、新しいフィルタはネットワークモデルのサイズを増加させ、これはネットワークモデルの単純化を達成不可能にする。
現在の多層ニューラルネットワークモデルの最適化処理では、ネットワークモデルのサイズを単純化するために、ネットワーク性能が低下すること、又は単純化が達成困難であることなどの問題が引き起こされることが多い。この場合に基づいて、本開示は、多層ニューラルネットワークモデルについての最適化処理を提供する。ネットワークモデルを学習及び適用する時、ネットワークモデルを単純化することに基づいてネットワーク性能が低下しないことを保証するように、少なくとも1つの畳み込み層のフィルタのチャネル数が拡張され、拡張されたチャネル数を有するフィルタを使用して畳み込み計算が行われ、チャネル数が拡張された後のフィルタ接続によってネットワークモデルの精度が保証される。多層ニューラルネットワークモデルにおける1つの畳み込み層を例にとると、図4(a)は、3値化された重みに基づいて順伝播及び逆伝播におけるフィルタの構造を説明し、並びに図4(b)は、本開示に基づいて順伝播及び逆伝播におけるフィルタの構造を説明する。図4(a)の順伝播では、ある畳み込み層の全てのフィルタ(WからWまで)がネットワークモデルを格納する記憶領域に格納され、次いで、αに基づく9つのフィルタ(WαからWαまで)とαに基づく9つのフィルタ(WαからWαまで)とが、上述の残差拡張方法及び量子化によって得られ、並びに、その18のフィルタを使用して畳み込み計算が行われる。図4(b)に示される順伝播では、各テンプレートフィルタにおける元のcチャネルが3倍に拡張され、拡張されたチャネル数を有する9個のフィルタ(W’からW’)が得られ、各フィルタのチャネル数が3cとなる。チャネル数が拡張されたテンプレートフィルタはターゲットフィルタと呼ばれ、ターゲットフィルタはこの層の畳み込み計算を行うために使用される。図4(b)は、9個のフィルタを例として説明される。説明を簡単にするために、図4(c)では、1つのフィルタのチャネル数が拡張される場合を示している。図4(c)の順伝播では、フィルタWが4倍に拡張されることになっており、したがって、Wのチャネル数は拡張前はc’/4となる。
図4(a)と図4(b)の比較から分かるように、本開示に係るネットワークモデルでは、ネットワークモデルの性能が3値化された重みのネットワークモデルに比べて低下しないように、フィルタのチャネル数を拡張することによって、畳み込みにおける重み接続が強化されている。さらに、ネットワークモデルにおいてチャネル数のより小さいフィルタが設計され得るので、ネットワークモデルの枠組みは単純化されることができる。
ここで説明されるテンプレートフィルタ及びターゲットフィルタは、多層ニューラルネットワークモデルにおける重みパラメータを特徴付けるためのフィルタであり、畳み込み計算におけるそれらの計算方法及び機能は、従来のフィルタのものと同様であることには留意されたい。ここで、テンプレートフィルタとターゲットフィルタは、チャネル数を拡張する前のフィルタを、チャネル数を拡張した後のフィルタと区別するために使用され、フィルタの機能及び構造は限定されない。
以下、本開示の様々な例示的な実施形態が、図面を参照して詳細に説明されるだろう。本開示が以下に記載される様々な例示的な実施形態に限定されないことは理解されるべきである。また、本開示の課題を解決するための解決策として、全ての例示的な実施形態で説明された特徴の全ての組み合わせを含む必要はない。
図5は多層ニューラルネットワークモデルを処理するためのハードウェア環境を示し、これは、プロセッサ部11、内部メモリ部12、ネットワークインタフェース部13、入力部14、外部メモリ15及びバス部16を含む。
プロセッサ部11は、CPU又はGPUであってもよい。メモリ部12は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)を含む。RAMは、プロセッサ部11のメインメモリ、作業領域等として使用されることができる。ROMはプロセッサ部11の制御プログラムを格納するために使用されることができるが、制御プログラムの動作時に使用されるファイル又は他のデータを格納するために使用されることもできる。ネットワークインタフェース部13は、ネットワークに接続され、ネットワーク通信を実装することができる。入力部14は、キーボード、マウス等のようなデバイスからの入力を制御する。外部メモリ15は、ブートプログラム、各種アプリケーション等を格納する。バス部16は、多層ニューラルネットワークモデルの最適化手段においてユニットを接続するために使用される。
図6は本開示に係るネットワークモデルの内部構造の概略図を示し、並びに、ネットワークモデルを学習及び適用する処理において、そのネットワークモデルは、図6に示される内部構造に基づいて動作することができる。この構成は、ネットワークモデル記憶部20と、特徴マップ記憶部21と、畳み込み部22と、プーリング部23と、活性化部24と、量子化部25と、制御部26と、を含む。以下、各部が説明される。
ネットワークモデル記憶部20は、ネットワーク構造情報、畳み込み計算に必要なフィルタ情報、及び他の層での計算を実行するために必要な情報を含むが、これらに限定されない、多層ニューラルネットワークモデルに関する情報を格納し、このネットワークモデル記憶部20は、フィルタのチャネル数がどの畳み込み層で拡張されるか、フィルタのチャネル数の拡張係数、拡張方法など、フィルタのチャネル数の拡張に関する情報をさらに含む可能性がある。特徴マップ記憶部21は、ネットワークモデルの計算を行う際に必要とされる特徴マップ情報を格納する。
畳み込み部22は、ネットワークモデル記憶部20によって入力されたフィルタ情報と、特徴マップ記憶部21によって入力された特徴マップ情報とに基づいて、畳み込み処理を行うために使用される。もちろん、フィルタのチャネル数を拡張する必要がある場合には、畳み込み部22は、ネットワークモデル記憶部20に格納されているフィルタのチャネル数の拡張に関する情報に基づく拡張を行うこともできる。
ここで、プーリング部23、活性化部24、及び量子化部25は、対応するプーリング処理、活性化処理、及び量子化処理を行うためのユニットであり、その機能は再度説明されない。図6はプーリング層及び量子化層が多層ニューラルネットワークモデルに含まれる例であり、本開示は他の場合に限定されないことには留意されたい。例えば、畳み込み層及び量子化層のみが多層ニューラルネットワークモデルに含まれている場合には、畳み込み部22の出力結果は、量子化部25へと直接渡されることができる。なお、プーリング部23、活性化部24、及び量子化部25は図6に示される構造に例示的に示されており、処理を行うことが可能なユニット、及びスケーリング処理が可能なユニットのような、含まれ得る他の構造は省略されている。それはここでは繰り返されない。
制御部26は図6の他のユニットに制御信号を出力することにより、ネットワークモデル記憶部20から量子化部25までの動作を制御する。
以下、本開示の様々な実施形態が、添付の図面を参照して詳細に説明されるであろう。
<第1の例示的な実施形態>
図7は、本開示の第1の例示的な実施形態の多層ニューラルネットワークモデルについての学習方法のステップの概略フローチャートを説明する。例示的な本実施形態では、図6に示される多層ニューラルネットワークモデルの学習フローは、RAMを作業領域として使用し、並びにROM及び/又は外部メモリ15に格納された(ニューラルネットワーク順/逆伝播アルゴリズム等のような)プログラムをGPU/CPU11に実行させることにより実現される。
ステップS101:学習される多層ニューラルネットワークモデルを決定する。そこで、ネットワークモデルの少なくとも1つの畳み込み層のフィルタのチャネル数が拡張されることになる。
本実施形態では、少なくとも1つのネットワークモデルの情報は図6に示されるネットワークモデル記憶部20に格納されてもよく、ネットワークモデルの動作時に使用される特徴マップ情報は特徴マップ記憶部21に格納される。学習がトリガされると(学習要求の受信、又は学習トリガ時間の到来等)、このステップS101が開始される。
ステップS102:拡張されたチャネル数を有するフィルタを得るために、学習される多層ニューラルネットワークモデルの少なくとも1つの畳み込み層について、層のフィルタのチャネル数を拡張する。
このステップS102では、チャネル数を拡張する前のフィルタはテンプレートフィルタと呼ばれてもよく、チャネル数を拡張した後のフィルタはターゲットフィルタと呼ばれてもよい。
このステップS102では、フィルタのチャネル数の拡張は、図6に示されるネットワークモデル記憶部20に格納されているフィルタのチャネル数の拡張に関する情報に基づいて行われることができる。ここで、フィルタのチャネル数の拡張とは、フィルタチャネルの何度もの複写を指す。換言すれば、1つのチャネルが複数のチャネルに拡張される時、拡張後の複数のチャネルは拡張前のチャネルと同じであり、すなわち、拡張前のチャネル上の重みは、拡張後のチャネル上の重みと同じである。例えば、チャネル数が拡張される以前は、フィルタWは、チャネルC1−1、チャネルC2−1、及びチャネルC3−1を有する。チャネル数が拡張される時、新しいチャネルC1−2及びチャネルC1−3、チャネルC2−2及びチャネルC2−3、並びにチャネルC3−2及びチャネルC3−3を得るために、3つのチャネルがそれぞれ2回複製される。チャネル数が拡張された後、チャネルC1−1からC1−3は同一チャネルであり、チャネル上の重みは拡張前のチャネルC1−1の重みから導出され、同様に、チャネルC2−1からC2−3は同一チャネルであり、チャネル上の重みは拡張前のチャネルC2−1の重みから導出され、C3−1からC3−3は同一チャネルであり、チャネル上の重みは拡張前のチャネルC3−1の重みから導出される。フィルタのチャネル数を拡張する具体的な処理は後述されるであろうし、ここでは説明されないであろう。
上記のステップS101からS102は、本実施形態においてネットワークモデルの学習を行うために実行される前処理であり、それによって、後続の順伝播及び逆伝播において、拡張されたチャネル数のフィルタを使用することにより畳み込み計算が行われることができるように、ネットワークモデルの少なくとも1つの層のフィルタのチャネル数が拡張される。
ステップS103:学習される多層ニューラルネットワークモデルに学習用データを入力する。そこで、ネットワークモデルにおいて順伝播が行われる。
このステップS103では、多層ニューラルネットワークにおいて、学習用データは、層毎に対応する計算又は処理の対象となる。フィルタのチャネル数が拡張された畳み込み層では、畳み込み層の入力特徴マップは、拡張されたチャネルを有するフィルタを用いて畳み込まれる。
ここで、学習用データは、例えば、ピクチャ及び対応する記述データのセット、又は音声及び対応する記述データのセットなどであってもよく、並びに、本実施形態はデータの種類を限定するものではない。多層ニューラルネットワークモデルにおいて画像処理や音声処理の処理を行う際に使用されるデータは、第1の実施形態の学習方法に適用されることができる。
ステップS104:逆伝播において、フィルタのチャネル数が拡張される畳み込み層について、チャネル数が拡張された後の各チャネル上の重みの勾配値を決定する。
ステップS105:ネットワークモデル上の学習を実施するため、ステップS104で決定された同一チャネル上の重みの勾配値に従って、チャネル数を拡張する前のチャネル上の重みの勾配値を更新する。
ここで、同一チャネルとは、拡張前に同じチャネルから拡張されたチャネルを指す。例えば、ステップS102では、9つのチャネルC1−1からC3−3を得るため、フィルタWの3つのチャネルC1−1からC3−1が拡張される。逆伝播では、まず、9つのチャネルC1−1からC3−3に対する重み要素の勾配値を別々に計算する。次いで、同一チャネル上の重みの勾配値を使用することにより、拡張前のチャネル上の重みの勾配値が更新される。
ここで、チャネル上の重みに対して上述する勾配値処理を行う理由は、順伝播では入力特徴マップが拡張されたチャネルを有するフィルタを用いて個別に畳み込まれ、そのため、逆伝播では、拡張されたチャネル上の重みの勾配値が既知の方式で直接計算される、すなわち、これらの重みが拡張前の同じ重みから導出される場合、これらの重みの勾配値が異なり、そのことがチャネル拡張の構造を破壊するからである。したがって、本実施形態のステップS105において拡張前のチャネルの重みの勾配値を更新する処理を行うことにより、このチャネル構造の破壊は回避されることができる。
もちろん、畳み込み層においてフィルタのチャネル数の拡張が行われない場合には、ステップS105の処理は行われる必要はなく、フィルタの各チャネルにおける重み要素の勾配値が公知の方式で算出された後に、フィルタの重みの更新が完了されてもよい(すなわち、ネットワークモデルの学習が達成される)。
本開示のネットワークモデルを学習する第1の実施形態の具体的な実装方式が、以下に詳細に説明される。
<フィルタのチャネル数の拡張>
ここでは、テンプレートフィルタのチャネルを複製することでチャネル数の拡張が達成される場合が例として説明される。ある畳み込み層が9つのテンプレートフィルタを備えており、その各々が高さ(行)h=3、幅(列)w=3、及びチャネル数c=16を有するとする。チャネル数は3倍に複製される必要があり、すなわち、複製後のフィルタのチャネル数はC=48であり、チャネル複製後のフィルタの高さ/幅は複製前のフィルタの高さ/幅と同じである。もちろん、テンプレートフィルタの高さ/幅は、複製前と複製後との間で異なっていてもよい。例えば、チャネルを複製するとき、チャネルの行はチャネル複製後のフィルタの高さが複製前のフィルタの高さよりも大きくなるように複製され、チャネルの列はチャネル複製後のフィルタの幅が複製前のフィルタの幅よりも大きくなるように複製される。なお、複製される複数のチャネルは、実際の要求又は実験効果に応じて予め設定されていてもよく、本発明はこれに限定されるものではない。
フィルタのチャネル数を16から48へと拡張するために、各フィルタのチャネルは全体が複製されることができる。図8を参照すると、例えば、テンプレートフィルタの行/列は変更されずに維持され、テンプレートフィルタの16チャネルは全体が2回複製され(すなわち、3倍の拡張)、48チャネルを含むターゲットフィルタが構築される。図8から分かるように、これはチャネルの全体的な複製であるので、最初の16チャネル、中間の16チャネル、及び最後の16チャネルは、複製後に得られた任意のターゲットフィルタについて同じである。
図8は、拡張後のチャネル数が拡張前のチャネル数の整数倍である場合を示す。拡張後のチャネル数が拡張前のチャネル数の整数倍でない場合、チャネル複製処理は、複製後のチャネル数が要件を満たすように、チャネル全体の複製とチャネル個別の複製とに分解されることができる。図9に示される場合を例にとって、図8に示されるように、畳み込み層に9個のテンプレートフィルタが提供されているとし、並びに、各テンプレートフィルタの高さ(行)h=3、幅(列)w=3、及びチャネル数c=16であり、並びに拡張後のチャネル数はC=42であるとする。このとき、拡張後のチャネル数は、拡張前のチャネル数の2倍よりも10多い。まず、テンプレートフィルタの16チャネルの全体が1倍だけ複製され、その後、テンプレートフィルタの16チャネルのうち最初の10チャネルが再び複製され、42チャネルのターゲットフィルタが構築される。ここで、ターゲットフィルタは、テンプレートフィルタの最初の10チャネル、又はテンプレートフィルタの最後の10チャネル、又は、本実施形態では限定されないが、各テンプレートフィルタが同じ複製原理を使用する限り、他の位置にある10チャネルを、複製することによって構成することができる。
<順伝播>
フィルタのチャネル数が上記の方法で拡張された後、畳み込み計算は、順伝播処理においてチャネルを拡張したフィルタにより行われる。図10に示される事例を例にとると、i番目の層の畳み込み層はそれぞれ16のチャネル数を有する2つのテンプレートフィルタW及びWを有するものとする。フィルタのチャネル数の拡張の前処理では、W及びWのチャネル数は図8に示される方式で2回複製され(3倍の拡張)、48チャネルを含む対象フィルタW’及びW’が生成される。W’のチャネルは、C1−1(複製前の元の16チャネルに対応する)、C1−2(第1の複製によって得られた16チャネルに対応する)、及びC1−3(第2の複製によって得られた16チャネルに対応する)によって別々に表される。同様に、W’のチャネルは、W2−1〜W2−3(図10には示されていない)で表される。i番目の層の48個の入力特徴マップは、2つの出力特徴マップを生成するために、ターゲットフィルタW’及びW’を用いて畳み込まれる。ここでの畳み込み計算は従来の畳み込み計算と同じであり、ここでは説明されないであろう。
<逆伝播>
第1の実施形態の解決策では、ネットワークモデルの少なくとも1つの畳み込み層のフィルタのチャネル数が拡張される。このため、逆伝播では、チャネル拡張の固有の構造を確保するために、拡張前のチャネルの各重みの勾配値を計算する必要がある。任意的な実施方式は、次の層から送信される出力特徴マップの勾配値に従って、現在の層のチャネル数が拡張された後のフィルタの重みの勾配値を決定することと、さらに、拡張前のチャネル上の対応する重みの勾配値として、同一のチャネル上の勾配値に対応する算術平均を重みごとに計算することと、である。前述のステップS105では、図10に示される事例を例にとることにより、拡張前のチャネル上の重みの勾配値を更新する処理が説明された。より具体的には、チャネルC1−1からチャネルC1−3を例にとると、チャネルC1−1からチャネルC1−3上の(0,0)位置における重みの勾配値が平均化され、その平均値は拡張前のチャネルC1−1上の(0,0)位置における重みの勾配値として用いられる。同様の方法で、チャネルC1−1上の全ての位置における重みの勾配値が更新されるまで、拡張前のチャネル上の重みの勾配値の更新を完了する。
具体的には、拡張前のチャネル上の重みの勾配値を算出する勾配値を平均化する上記の方法は、式(1)で表されることができる。
ここで、nはフィルタ数であり、cはテンプレートフィルタのチャネル数であり、h及びwはフィルタの重み要素の空間位置であり、c’は拡張後のフィルタのチャネル数であり、rは拡張後の同一チャネル数であり、Grad(n、c’、h、w)は同一チャネルの1つのチャネル上の(h、w)位置における重みの勾配値であり、AvgGrad(n、c、h、w)は拡張前の更新されたチャネル上の(h、w)位置における重みの要素勾配値である。
本開示の第1の例示的な実施形態で説明された学習方法を用いれば、より小さいチャネル数を有するフィルタが設計される場合であっても、チャネル数を拡張し、重み接続を強化することにより、ネットワークモデル結果を単純化しながらも、ネットワークモデルの性能が低下させられない。
第1の例示的な実施形態の学習方式では、フィルタを拡張する前のチャネル上の重みの勾配値、すなわち、拡張前のチャネルの重みが更新されることに留意されたい。拡張が完了される前にチャネル上の重みを学習した後、ネットワークモデルが常に単純化された状態に保たれるように、記憶領域を節約するために、一時記憶領域に格納された拡張された新しいチャネルのチャネル情報を解放することができる。第1の実施形態は、この学習処理の他の変形例に限定されない。例えば、逆伝播では、拡張後の同一チャネル上の重みの平均勾配値を計算した後、拡張前のチャネルの重みの勾配値は計算されない、すなわち、拡張後のチャネルの重みが学習される。将来のネットワークモデルアプリケーションでは、対応するアプリケーションサービスは、拡張後のチャネル上の学習された重みを直接使用することによって実行され得る。
<第2の例示的な実施形態>
第1の例示的な実施形態に基づいてネットワークモデルの学習を実装した後、第2の実施形態は、学習されたネットワークモデルを適用する方法を説明する。図11は、第2の例示的な実施形態に係る適用方法の概略フローチャートを説明する。第2の例示的な実施形態では、図11に示される多層ニューラルネットワークモデルの処理フローは、RAMを作業領域として使用し、並びにROM及び/又は外部メモリ15に格納された(アプリケーションアルゴリズム等のような)プログラムをGPU/CPU11に実行させることにより実装される。
ステップS201:アプリケーションサービスが動作する多層ニューラルネットワークモデルを決定する。そこで、ネットワークモデルの少なくとも1つの畳み込み層のフィルタのチャネル数が拡張される。
ステップS202:拡張されたチャネル数を有するフィルタを得るため、畳み込み層のフィルタのチャネル数を拡張する。
上記のステップS201及びS202は、第1の例示的な実施形態のものと同様の前処理ステップである。ここで、フィルタのチャネル数の拡張は、第1の例示的な実施形態のものと同じであり、詳細はここでは再び説明はされない。
ステップS203:アプリケーション要件に対応するデータを多層ニューラルネットワークモデルに入力する。
このステップS203では、顔検出サービスを例としてとると、ネットワークモデルにおいて顔検出サービスを実行するために、多層ニューラルネットワークモデルに顔画像が顔検出アプリケーションのデータとして入力される。
ステップS204:適用結果が出力されるまで、多層ニューラルネットワークモデルにおける上から下への計算を実行する。
上記のステップS201からS204の適用方法は、第1の例示的な実施形態における拡張前のチャネルを学習する場合に基づいている。第1の例示的な実施形態において拡張後のチャネルが学習される場合、第2の実施形態の適用方法では、ステップS201及びステップS202のフィルタのチャネル数拡張のための前処理は行われる必要はなく、並びに順伝播が直接行われる。
以下、ベースラインネットワークモデルを例として、ネットワークモデルの性能及びネットワークモデルのサイズは、従来のベースラインネットワークモデル(チャネル拡張なし)と、本開示の第1の例示的な実施形態に基づく4倍チャネル拡張及び8倍チャネル拡張と、の間で比較される。
表1はオブジェクト検出タスクを行うように設計されたベースラインネットワークモデルの例であり、表1に示されるネットワークモデルは、本開示の方法を使用しない従来のベースラインモデルである。理解を容易にするために、表1におけるネットワークモデルは畳み込み層1から畳み込み層8のみを示し、ネットワークモデル又は層に含まれ得る他の畳み込み層、又はプーリング層、量子化層、及び正規化層のような層は示されていない。しかしながら、これは、ベースラインネットワークモデルの理解に影響を及ぼさない。
本開示の第1の例示的な実施形態に係る4倍チャネル拡張の手法では、表2を参照すると、採用されるネットワークモデルの構造は、畳み込み層5から畳み込み層8のフィルタ(すなわち、本開示の第1の例示的な実施形態におけるテンプレートフィルタ)のチャネル数がそれぞれ32、64、128、及び256であることを除いて、表1に示されるものと同様である。同様に、8倍チャネル拡張の手法では、表3を参照すると、畳み込み層5から畳み込み層8のフィルタのチャネル数はそれぞれ16、32、64、及び128である。
上述される表1から3に示される3つのネットワークモデルを使用して顔検出の順伝播を行う時、表2に示されるネットワークモデルの畳み込み層5から畳み込み層8に対して4倍チャネル拡張を行い、表3に示されるネットワークモデルに対して8倍チャネル拡張を行う必要がある。表4は、表1に示されるベースラインネットワークモデルに基づくネットワークモデルの構造説明、並びに、表2に示されるネットワークモデルに基づく4倍チャネル拡張後のネットワークモデルの構造説明、及び表3に示されるネットワークモデルに基づく8倍チャネル拡張後のネットワークモデルの構造説明を示す。
表4に示される3つのネットワークモデルに基づいて、顔検出が行われた後、表5に示される顔検出率の比較結果、及び表6に示される記憶サイズの比較結果が得られる。
一方では、表6から分かるように、本開示の第1の例示的な実施形態の、チャネル拡張に基づくネットワークモデルでは、畳み込み層5から畳み込み層8までのチャネル数は従来のベースラインモデルのチャネルサイズと比較して著しく減少し、特にチャネル拡張の複数度がより高いほど、そのチャネル数はより少なくなる。他方では、表5から分かるように、本発明の第1の例示的な実施形態のチャネル拡張に基づくネットワークモデルを使用して顔検出が行われる時には、その検出性能は従来のベースラインモデルと実質的に同等である。
図12は、従来のネットワークモデル(チャネル拡張なし)、及び本開示の第1の例示的な実施形態のチャネル拡張ネットワークモデルにおける入力特徴マップの特徴分布の概略図を示す。図12からわかるように、畳み込み及び量子化の後、2つのネットワークモデルにおける入力特徴マップの分布は互いに近く、これは、本開示の第1の例示的な実施形態のネットワークモデルと従来のネットワークモデルとがサービス処理において同等の性能を有することを示す。
<第3の例示的な実施形態>
本開示の第3の例示的な実施形態は、畳み込み層の入力特徴マップを累算することによって実装される多層アプリケーションネットワークモデルの適用方法を説明しており、第3の実施形態の適用方法は、第1の実施形態の学習方法に基づく学習によって得られたネットワークモデルの学習方法であってもよいが、他の方法によって得られたネットワークモデルの適用を排除しない。図13は、第3の実施形態に係る適用方法のステップを示す概略フローチャートを示す。第3の例示的な実施形態では、図13に示される多層ニューラルネットワークモデルの処理フローは、RAMを作業領域として使用し、ROM及び/又は外部メモリ15に格納された(アプリケーションアルゴリズム等のような)プログラムをGPU/CPU11に実行させることにより実現される。
ステップS301:順伝播において、畳み込み層について、少なくとも1つの畳み込み層の複数の入力特徴マップを累算する。
ステップS302:畳み込み層の累算された入力特徴マップ及びフィルタを使用することにより、畳み込み層の畳み込み計算を実行する。
ステップS303:順伝播を行った後、適用結果を出力する。
第3の実施形態の解決策では、畳み込み層の入力特徴マップ数がフィルタのチャネル数より多い場合、実現し得る方式は、チャネル数が拡張されたフィルタを用いて入力特徴マップが畳み込まれるように、第2の実施形態の方式に従ってフィルタのチャネル数を拡張することであり、別の実現し得る方式は、累算後の入力特徴マップ数がフィルタのチャネル数と一致し、及び、累算された入力特徴マップとチャネル数が拡張されていないフィルタとを使用することによって畳み込み計算が実行されるように、第3の実施形態の方式に従ってより多数の入力特徴マップをより少数の入力特徴マップに累算することであり、第3の実現し得る方式は、一方ではフィルタのチャネル数を拡張し、もし拡張の倍数が小さく拡張されたチャネル数が依然として入力特徴マップ数未満であるならば、入力特徴マップが累算されることができ、そしてその累算された入力特徴マップと拡張されたチャネル数を有するフィルタとを使用することによって畳み込み計算が行われることである。
第3の実施形態の解決策では、入力特徴マップを累算する任意的な方式は以下の通りである。
ステップ1:畳み込み層の複数の入力特徴マップをグループ化する。
グループ化する時、入力特徴マップ数がフィルタのチャネル数の整数倍である場合には、グループ化後の各グループの入力特徴マップ数は、フィルタのチャネル数と等しい。入力特徴マップ数がフィルタのチャネル数の整数倍でない場合には、複数の入力特徴マップは2つの部分に分割される。その第1の部分の入力特徴マップ数はフィルタのチャネル数の整数倍であり、その第1の部分の入力特徴マップはグループ化され、各グループに対する入力特徴マップ数はフィルタのチャネル数と等しい。その第2の部分の入力特徴マップ数はフィルタのチャネル数よりも少なく、その第2の部分の入力特徴マップは1つのグループとして使用される。入力特徴マップ数(例えば、48)がフィルタのチャネル数(例えば、16)の整数倍である状態を例としてとると、入力特徴マップは位置順に3つのグループに分割され、各グループに16個の入力特徴マップが存在する。また、入力特徴マップ数(例えば、42)がフィルタのチャネル数(例えば、16)の整数倍でない状態を例としてとると、入力特徴マップは位置順に3つのグループに分割され、第1のグループ及び第2のグループには16個の入力特徴マップがあり、並びに、第3のグループには10個の入力特徴マップがある。
ステップ2:その数がフィルタのチャネル数のものと等しい累算された入力特徴マップを得るため、各グループの入力特徴マップを累算する。
さらに入力特徴マップ数(例えば、48)がフィルタのチャネル数(例えば、16)の整数倍である状態を例としてとると、入力特徴マップは各グループにおいて16個の入力特徴マップを有する3つのグループに分割される。各グループから1つの入力特徴マップが読み出され、各グループから読み出された1つの入力特徴マップ(合計で3つの入力特徴マップ)は、要素毎に1つの入力特徴マップ要素に累算される。類似の方法で、図14に示されるように、各グループの16個の入力特徴マップが全て累算されるまでに、累算された16個の入力特徴マップが得られる。ここで、要素毎の累算とは、3つの入力特徴マップにおいて同じ位置の要素を累算することを指す。例えば、入力特徴マップの(h1,w2)位置における累算要素を得るために、第1のグループでの入力特徴マップ1の(h1,w2)位置における要素と、第2のグループでの入力特徴マップ17の(h1,w2)位置における要素と、第3のグループでの入力特徴マップ33の(h1,w2)位置における要素と、が累算される。なお、入力特徴マップ数(例えば、42)がフィルタのチャネル数(例えば、16)の整数倍でない状態を例にとると、入力特徴マップは3つのグループに分割され、第1のグループ及び第2のグループにはそれぞれ16個の入力特徴マップがある。第3のグループには10個の入力特徴マップがある。各グループから1つの入力特徴マップが読み出され、読み出された3つの入力特徴マップは、要素毎に1つの入力特徴マップに累算される。10個の累算された入力特徴マップが得られる(すなわち、累算処理が10回行われる)時には、第3のグループの入力特徴マップは全て累算されており、その後、入力特徴マップは第3のグループからはもう読み出されない。第1のグループ及び第2のグループの累算されていない入力特徴マップは、16個の入力特徴マップが得られるまで、読み取られ並びに累算される。
第1の実施形態におけるフィルタチャネル数を拡張することにより多層ニューラルネットワークモデルを学習する学習方法に基づいて本実施形態の適用方法が実装される場合、第3の実施形態における累算処理は、累算された入力特徴マップの位置が学習方法における拡張後の同一チャネルを用いて計算される入力特徴マップの位置と同一であるという条件を満たしてもよい。ここで、同一チャネルの意味は第1の実施形態におけるものと同じであり、拡張前に同じチャネルを拡張することで得られたチャネルを指す。
例えば、第1の実施形態の学習方法において、ある畳み込み層の入力特徴マップ数が42であり、フィルタのチャネル数が16であり、第1の実施形態の方式を採用することにより、42個のチャネルを含む複製フィルタを得るために、図9に示される方式でフィルタチャネル数が複製されるものとする。チャネルC1−1は、複製後に3つの同一チャネルC1−1からC1−3を得るものとする。42個の入力特徴マップはチャネル拡張フィルタを用いて畳み込まれる。このとき、位置1、位置17、及び位置33の入力特徴マップは、同一のチャネルC1−1からC1−3に対応しているものと仮定する。第3の実施形態の適用方法では、学習方法における入力特徴マップのものと同じ数及び形状を有するが要素値が異なる42個の入力特徴マップは、位置順序に従って3つのグループに分割され、第1のグループ及び第2のグループには16個の入力特徴マップがあり、第3のグループには10個の入力特徴マップがあり、並びに、フィルタのチャネル数は16である。入力特徴マップが累算される際、学習方法において同一チャネルC1−1からC1−3を用いて計算された3つの入力特徴マップの位置がそれぞれ位置1、位置17、及び位置33となるため、フィルタのチャネルC1−1を用いる計算が行われる累算された入力特徴マップを得るために、3つのグループからそれぞれ選択される位置1、位置17、及び位置33に配置された3つの入力特徴マップが累算される。
一方では、第3の実施形態に示される適用方法によれば、入力特徴マップが累算され、累算後の入力特徴マップの要素のビット数がより多い(累算前の入力特徴マップのビット数よりも)ため、累算された入力特徴マップは、累算前の入力特徴マップの有用な情報を、情報損失の量が大きいことによる精度低下の問題なく積極的に保持することができ、他方では、第2の実装例の図10に示される畳み込み処理と比較すると、第3の実施形態に示される畳み込み処理は、計算量を効果的に減らし、及び計算速度を向上させることができる。
<第4の例示的な実施形態>
本開示の第4の例示的な実施形態は、多層ニューラルネットワークモデルの学習装置を説明し、それは本開示の第1の例示的な実施形態における学習方法と同じ発明概念を有する装置である。図15に示されるように、この学習装置は、拡張部31と、順伝播部32と、逆伝播部33とを備える。具体的には、拡張部31は、学習される多層ニューラルネットワークモデルにおける少なくとも1つの畳み込み層のフィルタチャネル数を予め拡張するために使用され、順伝播部32は、学習用データに基づいてチャネル数拡張フィルタを使用することにより畳み込み層のデータ計算を行うために使用され、逆伝播部33は、チャネル数を拡張した後のチャネルにおける同一チャネル上の重みの勾配値に従って、チャネル数を拡張する前のチャネル上の重みの勾配値を更新するために使用される。ネットワークモデルの学習が実装され、ここで、同一チャネルは、拡張前の同じチャネルを拡張することによって得られる。
好ましくは、拡張部31は、フィルタのチャネルを複製することによってフィルタのチャネル数を拡張する。
好ましくは、逆伝播部33は、同一チャネル上の各重みの勾配値を決定し、同一チャネル上の同じ位置における重みの勾配値を平均し、勾配値が更新されることになる数拡張前のチャネル上の重みの位置における勾配値として勾配平均値を用いる。
<第5の例示的な実施形態>
本開示の第5の例示的な実施形態は、多層ニューラルネットワークモデルの適用装置を説明し、それは本開示の第2の例示的な実施形態における適用方法と同じ発明概念を有する装置である。図16に示されるように、この適用装置は、拡張部41と、順伝播部42と、出力部43とを有する。具体的には、拡張部41は、多層ニューラルネットワークモデルにおける少なくとも1つの畳み込み層のフィルタチャネル数を予め拡張し、順伝播部42は、タスク要求に対応するデータに基づいてチャネル数拡張フィルタを使用することにより畳み込み層のデータ計算を行い、出力部43は順伝播を行った後に適用結果を出力する。
好ましくは、拡張部41は、フィルタのチャネルを複製することによりフィルタのチャネル数を拡張する。
<第6の例示的な実施形態>
本開示の第6の例示的な実施形態は、本開示の第3の例示的な実施形態における適用方法と同じ発明概念を有する装置である多層ニューラルネットワークモデルの適用装置を説明する。図17に示されるように、適用装置は、累算部51と、計算部52と、出力部53とを備えている。具体的には、累算部51は、順伝播中に少なくとも1つの畳み込み層について畳み込み層の複数の入力特徴マップを累算するために使用され、計算部52は、畳み込み層の累算された入力特徴マップ及びフィルタを使用することにより畳み込み層の畳み込み計算を行い、出力部53は、順伝播を完了した後に適用結果を出力する。
好ましくは、グループの入力特徴マップ数が畳み込み層のフィルタのチャネル数に等しく、多くとも1つのグループの入力特徴マップ数がフィルタのチャネル数よりも小さくなるように、複数の入力特徴マップをグループ化するために、並びに、フィルタのチャネル数と数が等しい累算された入力特徴マップを得るために各グループの入力特徴マップを累算するために、累算部51が使用される。
好ましくは、本方法を適用する前の多層ニューラルネットワークモデルの学習方法において、フィルタのチャネル数を拡張することによって、拡張されたチャネル数を有するフィルタと入力特徴マップとを用いた計算を行う場合に、累算部51は、以下の条件を満たす各グループにおける入力特徴マップを累算するために使用される。すなわち、以下の条件とは、複数の入力特徴マップにおいて累算された入力特徴マップの位置が、この学習方法において拡張された同一チャネルを用いた計算が行われる入力特徴マップの位置と同じであり、同一チャネルが拡張前の同じチャネルを拡張することによって得られることである。
他の実施形態
本発明の実施形態は1つ又は複数の上述の実施形態の機能を実行するために、記憶媒体に記録されたコンピュータ実行可能命令を読み出し、実行するシステム又は装置のコンピュータ(これはより完全に非一時的コンピュータ可読記憶媒体とも呼ばれる)によって実現され、かつ/又は1つ又は複数の上述の実施形態の機能を実行するために使用される1つ又は複数の回路(特定用途向け集積回路(ASIC)など)を含み、かつ/又は例えば、1つ又は複数の上述の実施形態の機能を実行するために記憶媒体からコンピュータ実行可能命令を読み出し、実行し、かつ/又は1つ又は複数の上述の実施形態の機能を実行するために1つ又は複数の回路を制御することによって、システム又は装置のコンピュータによって実行される方法によって実現されることも可能である。このコンピュータは、コンピュータ実行可能命令を読み出し及び実行するために、中央処理装置(CPU)、マイクロ処理装置(MPU)のような1つ以上のプロセッサを備えていてもよく、別個のコンピュータ又は別個のプロセッサのネットワークを含んでいてもよい。コンピュータ実行可能命令は、例えば、ネットワーク又は記憶媒体からコンピュータに提供されてもよい。この記憶媒体は、例えば、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、分散計算システムのストレージ、光ディスク(コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、又はブルーレイディスク(BD)(商標)のような)、フラッシュメモリデバイス、メモリカードなどのうちの1つ以上を含んでいてもよい。また、本発明の実施形態は、上述の実施形態の機能を実行するソフトウェア(プログラム)を、ネットワーク若しくは各種記憶媒体を介してシステム又は装置に提供し、並びに、そのシステム若しくは装置のコンピュータ又は中央処理装置(CPU)及びマイクロ処理部(MPU)によって、そのプログラムを読み出し及び実行することによっても実装され得る。本発明は例示的な実施形態を参照して説明されてきたが、本発明は開示された例示的な実施形態に限定されないことを理解されたい。以下の特許請求の範囲は、そのようなすべての修正及び同等の構造及び機能を包含するように、最も広い解釈を与えられるべきである。

Claims (21)

  1. 多層ニューラルネットワークモデルの少なくとも1つの畳み込み層について、前記畳み込み層のフィルタのチャネル数を拡張する工程と、
    順伝播中に、アプリケーション要件に対応するデータに基づいて、前記チャネル数を拡張した後の前記フィルタを用いて前記畳み込み層のデータ計算を行う工程と、
    前記順伝播を完了した後に適用結果を出力する工程と、
    を備える、多層ニューラルネットワークモデルの適用方法。
  2. 前記フィルタの前記チャネル数は、前記フィルタの前記チャネルを複製することによって拡張される、請求項1に記載の適用方法。
  3. 前記チャネル数を拡張した後の前記フィルタの高さは、前記チャネル数を拡張する前の前記フィルタの高さ以上であり、
    前記チャネル数を拡張した後の前記フィルタの幅は、前記チャネル数を拡張する前の前記フィルタの幅以上である、請求項1に記載の適用方法。
  4. 学習される多層ニューラルネットワークモデルの少なくとも1つの畳み込み層について、前記畳み込み層のフィルタのチャネル数を拡張する工程と、
    順伝播中に、学習用データに基づいて、前記チャネル数を拡張した後のフィルタを用いて前記畳み込み層のデータ計算を行う工程と、
    逆伝播中に、前記ネットワークモデルの学習を実現するために、前記チャネル数を拡張した後、前記チャネルの同一チャネル上の重みの勾配値に応じてチャネル数拡張前のチャネル上の重みの勾配値を更新する工程と、を備え、
    前記同一のチャネルは、拡張前の同じチャネルを拡張することによって得られる、多層ニューラルネットワークモデルにおける学習方法。
  5. 前記フィルタの前記チャネル数は、前記フィルタの前記チャネルを複製することによって拡張される、請求項4に記載の学習方法。
  6. 前記チャネル数を拡張した後の前記フィルタの高さは、前記チャネル数を拡張する前の前記フィルタの高さ以上であり、及び、
    前記チャネル数を拡張した後の前記フィルタの幅は、前記チャネル数を拡張する前の前記フィルタの幅以上である、請求項4に記載の学習方法。
  7. 前記チャネル数を拡張する前に、前記チャネル上の前記重みの前記勾配値を更新する工程は、
    前記同一チャネル上の各重みの勾配値を決定する工程と、
    前記同一チャネル上の同じ位置における重みの勾配値を平均し、前記勾配値が更新される、前記チャネル数を拡張する前の前記チャネル上の重みの前記位置における勾配値として、勾配平均値をとる工程と、
    を備える、請求項4に記載の学習方法。
  8. 順伝播中に、少なくとも1つの畳み込み層について、前記畳み込み層の複数の入力特徴マップを累算し、前記畳み込み層の前記累算された入力特徴マップ及びフィルタを使用することによって前記畳み込み層の畳み込み計算を行う工程と、
    前記順伝播を完了した後に適用結果を出力する工程と、
    を備える、多層ニューラルネットワークモデルの適用方法。
  9. 前記複数の入力特徴マップを累算する工程は、
    グループの入力特徴マップ数が前記畳み込み層のフィルタのチャネル数に等しくなり、多くとも1つのグループの入力特徴マップ数が前記フィルタの前記チャネル数よりも少なくなるように、前記複数の入力特徴マップをグループ化する工程と、
    前記フィルタの前記チャネル数に等しい数の累算された入力特徴マップを得るために、各グループの前記入力特徴マップを累算する工程と、
    を備える、請求項8に記載の適用方法。
  10. 前記適用方法の前の前記多層ニューラルネットワークモデルの学習方法において、前記フィルタの前記チャネル数を拡張することによって前記チャネル数拡張後のフィルタ及び前記入力特徴マップを使用して計算を実行する場合、各グループの前記入力特徴マップを累算する工程は、
    前記複数の入力特徴マップにおける累算する前記入力特徴マップの位置が、前記学習方法において前記拡張された同一チャネルを用いて計算する入力特徴マップの位置と同じであり、前記同一チャネルが同じ拡張前のチャネルを拡張することによって得られている、という条件を満たす、各グループの入力特徴マップを累算する工程を備える、請求項9に記載の適用方法。
  11. 多層ニューラルネットワークモデルの少なくとも1つの畳み込み層のフィルタのチャネル数を予め拡張する拡張手段と、
    アプリケーション要件に対応するデータに基づいて、前記チャネル数を拡張した後の前記フィルタを用いて畳み込み層のデータ計算を行う順伝播手段と、
    順伝播を完了した後に適用結果を出力する出力手段と、
    を備える、多層ニューラルネットワークモデルの適用装置。
  12. 前記拡張手段は、前記フィルタの前記チャネルを複製することによって前記フィルタの前記チャネル数を拡張する、請求項11に記載の適用装置。
  13. 学習される多層ニューラルネットワークモデルの少なくとも1つの畳み込み層のフィルタのチャネル数を予め拡張する拡張手段と、
    学習用データに基づいて、前記チャネル数を拡張した後の前記フィルタを用いて前記畳み込み層のデータ計算を行う順伝播手段と、
    前記ネットワークモデルの学習を実現するために、前記チャネル数を拡張した後、前記チャネルの同一チャネル上の重みの勾配値に応じて前記チャネル数を拡張する前のチャネル上の重みの勾配値を更新する逆伝播手段とを備え、
    前記同一チャネルは、拡張前の同じチャネルを拡張することによって得られる、
    多層ニューラルネットワークモデルにおける学習装置。
  14. 前記拡張手段は、前記フィルタの前記チャネルを複製することによって前記フィルタの前記チャネル数を拡張する、請求項13に記載の学習装置。
  15. 前記逆伝播手段は、前記同一チャネル上の各重みの勾配値を決定し、前記同一チャネル上の同じ位置における重みの勾配値を平均し、前記勾配値が更新される、前記チャネル数を拡張する前の前記チャネル上の重みの前記位置における勾配値として、勾配平均値をとる、請求項13に記載の学習装置。
  16. 順伝播中に、少なくとも1つの畳み込み層について、前記畳み込み層の複数の入力特徴マップを累算する累算手段と、
    前記畳み込み層の前記累算された入力特徴マップ及びフィルタを使用することによって前記畳み込み層の畳み込み計算を行う計算手段と、
    前記順伝播を完了した後に適用結果を出力する出力手段と、
    を備える、多層ニューラルネットワークモデルの適用装置。
  17. 前記累算部が、
    グループの入力特徴マップ数が前記畳み込み層の前記フィルタの前記チャネル数に等しくなり、多くとも1つのグループの入力特徴マップ数が前記フィルタの前記チャネル数よりも少なくなるように、前記複数の入力特徴マップをグループ化するために、並びに、
    前記フィルタの前記チャネル数に等しい数の累算された入力特徴マップを得るために、各グループの前記入力特徴マップを累算するために、
    使用される、請求項16に記載の適用装置。
  18. 前記適用方法の前の前記多層ニューラルネットワークモデルの学習方法において、前記フィルタの前記チャネル数を拡張することによって前記チャネル数拡張後のフィルタ及び前記入力特徴マップを使用して計算を実行する場合に、前記累算手段は、前記複数の入力特徴マップにおける累算する前記入力特徴マップの位置が、前記学習方法において前記拡張された同一チャネルを用いて計算する入力特徴マップの位置と同じであり、前記同一チャネルが同じ拡張前のチャネルを拡張することによって得られている、という条件とを満たす、各グループの入力特徴マップを累算するために使用される、請求項17に記載の適用装置。
  19. コンピュータによって実行されたときに、請求項1に記載の多層ニューラルネットワークモデルの適用方法を前記コンピュータに行わせる、プログラム。
  20. コンピュータによって実行されたときに、請求項4に記載の多層ニューラルネットワークモデルの学習方法を前記コンピュータに行わせる、プログラム。
  21. コンピュータによって実行されたときに、請求項8に記載の多層ニューラルネットワークモデルの適用方法を前記コンピュータに行わせる、プログラム。
JP2019229345A 2018-12-29 2019-12-19 多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体 Active JP6890653B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811633954.0 2018-12-29
CN201811633954.0A CN111382833A (zh) 2018-12-29 2018-12-29 多层神经网络模型的训练和应用方法、装置及存储介质

Publications (2)

Publication Number Publication Date
JP2020109647A true JP2020109647A (ja) 2020-07-16
JP6890653B2 JP6890653B2 (ja) 2021-06-18

Family

ID=71123080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019229345A Active JP6890653B2 (ja) 2018-12-29 2019-12-19 多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体

Country Status (3)

Country Link
US (1) US11847569B2 (ja)
JP (1) JP6890653B2 (ja)
CN (1) CN111382833A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023075372A1 (ko) * 2021-10-26 2023-05-04 삼성전자 주식회사 심층 신경망 연산을 수행하는 방법 및 전자 장치

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210076687A (ko) * 2019-12-16 2021-06-24 삼성전자주식회사 뉴럴 프로세싱 장치 및 뉴럴 프로세싱 장치에서 뉴럴 네트워크를 처리하는 방법
CN111241985B (zh) * 2020-01-08 2022-09-09 腾讯科技(深圳)有限公司 一种视频内容识别方法、装置、存储介质、以及电子设备
US11295430B2 (en) * 2020-05-20 2022-04-05 Bank Of America Corporation Image analysis architecture employing logical operations
CN112468203B (zh) * 2020-11-19 2022-07-26 杭州勒贝格智能系统股份有限公司 深度迭代神经网络用低秩csi反馈方法、存储介质及设备
CN112559870B (zh) * 2020-12-18 2023-10-31 北京百度网讯科技有限公司 多模型融合方法、装置、电子设备和存储介质
CN112867010B (zh) * 2021-01-14 2023-04-18 中国科学院国家空间科学中心 基于卷积神经网络的射频指纹嵌入式实时识别方法及系统
CN112785663B (zh) * 2021-03-17 2024-05-10 西北工业大学 一种基于任意形状卷积核的图像分类网络压缩方法
CN113792770A (zh) * 2021-08-31 2021-12-14 南京信息工程大学 一种基于属性描述的零样本滚动轴承故障诊断方法及系统
CN114995782B (zh) * 2022-08-03 2022-10-25 上海登临科技有限公司 数据处理方法、装置、设备和可读存储介质
CN116781484B (zh) * 2023-08-25 2023-11-07 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备及存储介质
CN117217318B (zh) * 2023-11-07 2024-01-26 瀚博半导体(上海)有限公司 基于Transformer网络模型的文本生成方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102276339B1 (ko) * 2014-12-09 2021-07-12 삼성전자주식회사 Cnn의 근사화를 위한 학습 장치 및 방법
US9633282B2 (en) * 2015-07-30 2017-04-25 Xerox Corporation Cross-trained convolutional neural networks using multimodal images
GB201709672D0 (en) * 2017-06-16 2017-08-02 Ucl Business Plc A system and computer-implemented method for segmenting an image
CN107909008A (zh) * 2017-10-29 2018-04-13 北京工业大学 基于多通道卷积神经网络和粒子滤波的视频目标跟踪方法
CN109754402B (zh) * 2018-03-15 2021-11-19 京东方科技集团股份有限公司 图像处理方法、图像处理装置以及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023075372A1 (ko) * 2021-10-26 2023-05-04 삼성전자 주식회사 심층 신경망 연산을 수행하는 방법 및 전자 장치

Also Published As

Publication number Publication date
US20200210843A1 (en) 2020-07-02
JP6890653B2 (ja) 2021-06-18
CN111382833A (zh) 2020-07-07
US11847569B2 (en) 2023-12-19

Similar Documents

Publication Publication Date Title
JP2020109647A (ja) 多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体
CN110555450B (zh) 人脸识别神经网络调整方法和装置
JP6990813B2 (ja) 多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体
JP6794593B2 (ja) 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体
CN110462639B (zh) 信息处理设备、信息处理方法及计算机可读存储介质
JP6998968B2 (ja) ディープニューラルネットワークの実行方法、実行装置、学習方法、学習装置及びプログラム
US20230351187A1 (en) Accelerating neural networks with one shot skip layer pruning
TW201835817A (zh) 設計超級解析度深度卷積神經網路的裝置及方法
CN110555508A (zh) 人工神经网络调整方法和装置
JP7345262B2 (ja) データ圧縮装置、データ処理装置、データ圧縮方法、プログラム、及び学習済みモデル
JP6950756B2 (ja) ニューラルネットワークのランク最適化装置および最適化方法
JP7438517B2 (ja) ニューラルネットワークの圧縮方法、ニューラルネットワーク圧縮装置、コンピュータプログラム、及び圧縮されたニューラルネットワークデータの製造方法
TWI700647B (zh) 電子裝置及類神經網路的壓縮方法
CN110991621A (zh) 一种基于通道数搜索卷积神经网络的方法
US11995533B1 (en) Executing replicated neural network layers on inference circuit
US20220405561A1 (en) Electronic device and controlling method of electronic device
CN113554104B (zh) 一种基于深度学习模型的图像分类方法
CN117337437A (zh) 减少用于训练神经网络的操作
WO2022150093A1 (en) Performing tensor operations using a programmable control engine
CN113177627A (zh) 优化系统、重新训练系统及其方法及处理器和可读介质
KR20210138382A (ko) 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치
KR20200023155A (ko) 뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템
JP7454888B1 (ja) ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置
KR102464508B1 (ko) 인공 신경망 모델을 경량화하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
US11886983B2 (en) Reducing hardware resource utilization for residual neural networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201223

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210416

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: 20210426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210525

R151 Written notification of patent or utility model registration

Ref document number: 6890653

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151