JP7298713B2 - パラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラム - Google Patents

パラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラム Download PDF

Info

Publication number
JP7298713B2
JP7298713B2 JP2021562433A JP2021562433A JP7298713B2 JP 7298713 B2 JP7298713 B2 JP 7298713B2 JP 2021562433 A JP2021562433 A JP 2021562433A JP 2021562433 A JP2021562433 A JP 2021562433A JP 7298713 B2 JP7298713 B2 JP 7298713B2
Authority
JP
Japan
Prior art keywords
stride
value
layer
dilation
processing
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
JP2021562433A
Other languages
English (en)
Other versions
JPWO2021111633A5 (ja
JPWO2021111633A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2021111633A1 publication Critical patent/JPWO2021111633A1/ja
Publication of JPWO2021111633A5 publication Critical patent/JPWO2021111633A5/ja
Application granted granted Critical
Publication of JP7298713B2 publication Critical patent/JP7298713B2/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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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/0985Hyperparameter optimisation; Meta-learning; Learning-to-learn

Landscapes

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

Description

本発明は、畳み込みニューラルネットワークの演算時に用いるパラメータを最適化するパラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラムに関する。
多層ニューラルネットワークによる画像認識等に関する技術開発が活発に行われている。このような技術は、深層学習(ディープラーニング)とも称される。とりわけ、画像認識等の技術分野において、畳み込みニューラルネットワーク(Convolutional Neural Network)が多く用いられる。畳み込みニューラルネットワークには、後述するように、畳み込み層、プーリング層、および全結合層等が含まれる。例えば、畳み込み層では、カーネルを画像全体に畳み込む処理が行われる。
画像全体にカーネルを畳み込む処理(画像にフィルタを適用する処理)により、画像に畳み込まれた特徴の集合が得られる。当該特徴の集合は、特徴マップとも称される。特徴マップは、畳み込まれた値に活性化関数を適用することで得られる。例えば、画像認識の分野では、ReLU(Rectified Linear Unit )が活性化関数として用いられる。
上述したように、畳み込み層では、画像(入力画像)にカーネル(重み、フィルタ)を畳み込む処理が行われる。その際、画像の各画素とカーネルの各重みとを乗算する処理が数多く行われる。
畳み込み層を表現するためのパラメータとしては、カーネルサイズ、入力幅、入力高さ、入力チャネル数、出力幅、出力高さ、出力チャネル数、パディング、ストライド(Stride)、およびディレーション(Dilation)等がある。
カーネルサイズは、畳み込み処理におけるフィルタが担うピクセル数を定義するパラメータである。例えば、カーネルサイズが3の場合、縦が3ピクセル×横が3ピクセルの3×3ピクセルのカーネルが畳み込みに用いられる。
入力幅W、入力高さH、入力チャネル数Ci、出力幅W’、出力高さH’、および出力チャネル数Coは、それぞれ画像のデータサイズを定義する値である。入力幅Wと入力高さHとの組を入力サイズとし、出力幅W’と出力高さH’との組を出力サイズとする。
また、入力サイズで規定される入力データの平面を画面、または入力画面とする。入力データは、入力チャネル数分の画面で構成される。出力データサイズのうち、出力チャネル数Coは明示的にパラメータとして与えられることが多い。また、出力幅W’および出力高さH’は、入力幅Wおよび入力高さHと、パディングおよびストライドとの組み合わせにより定義されることがある。
パディングは、カーネルサイズで定義される畳み込み処理範囲が入力幅Wおよび入力高さHを超える箇所でも畳み込み処理を実施するために定義されるパラメータである。例えば、画面端のピクセル位置を中心とした畳み込み処理において、必ず画面外のピクセルが参照される。そこで、例えば、パディングのサイズを1として、画面外のピクセルの値を特定の値(ゼロ等)に設定する。そのようにすることで、画面端のピクセル位置を中心とした畳み込み処理が可能になる(図16左図における太い実線枠の外側参照)。
例えば、パディングのサイズが0の場合、カーネルの要素に対応するピクセルが存在しないので、その場合には、画面端のピクセル位置を中心とした畳み込み処理ができない。そのため、出力幅W’または出力高さH’が、入力幅Wまたは入力高さHから減少する。すなわち、出力サイズが入力サイズよりも小さくなる。出力幅W’および出力高さH’を入力幅Wおよび入力高さHと同じに保つために、パディングのサイズを適切に設定する必要がある。
ストライドは、畳み込み処理においてカーネルが移動する間隔を定義するパラメータである。
図16は、ストライドを説明するための説明図である。図16(a)には、入力サイズが4×4の入力画像が、カーネルサイズが3のカーネルを用いて畳み込まれた結果が示されている。図16(b)には、入力サイズが5×5の入力画像が、カーネルサイズが3のカーネルを用いて畳み込まれた結果が示されている。なお、パディングサイズは1に設定され、入力画像の周囲にはゼロパディングの処理がされている。
ストライドの値が1の場合(図16(a))、畳み込み演算が行われるときに、点線で囲ったピクセルの次に、1ピクセル隣の破線で囲ったピクセルが参照される。すなわち、画面の全ピクセルが中心位置として用いられる。パディングのサイズが適切に設定されていれば、出力サイズは入力サイズと一致する。ストライドの値が2の場合(図16(b))、点線で囲ったピクセルの次に、2ピクセル隣の破線で囲われたピクセルが参照される。出力幅W’は入力幅Wの1/2となり、出力高さH’は入力高さHの1/2となる。すなわち、出力サイズは、入力サイズの1/4となる。
ディレーションは、畳み込み処理において参照されるピクセルの間隔を定義するパラメータである。
図17は、ディレーションを説明するための説明図である。図17(a)には、D=1の場合に参照されるピクセル(斜線部)が示されている。図17(b)には、D=2の場合に参照されるピクセルが示されている。図17(c)には、D=3の場合に参照されるピクセルが示されている。なお、Dはディレーションの値を示す。また、いずれの場合にも、カーネルサイズは、3である。
ディレーションの値が1の場合(図17(a))、中心位置のピクセルと、中心位置のピクセルから1ピクセル隣のピクセル、すなわち周囲8ピクセルが参照される。
ディレーションの値が2の場合(図17(b))、中心位置のピクセルから2ピクセル隣のピクセルが参照される。すなわち、参照されるピクセル間に隔たりが生じる。
ディレーションを用いることによって、畳み込み処理における演算量を増やすことなく、畳み込み処理範囲を拡大することができる。例えば、カーネルサイズが3、ディレーションの値が2の場合、畳み込み処理で参照される領域のおおまかな範囲は、カーネルサイズが5、ディレーションの値が1の場合の畳み込み処理と同等となる。また、ディレーションの値が3の場合(図17(c))、カーネルサイズが7、ディレーションの値が1の場合と同等となる。
特許文献1には、ニューラルネットワークのパラメータを変更する情報処理装置が記載されている。しかし、その情報処理装置は、パラメータとしてディレーションを扱っていない。
特許第6555411号公報
上述したように、深層学習、とりわけ、畳み込み層の演算では膨大な数の乗算処理が必要である。膨大な乗算処理は、大規模なハードウエアや、強力な演算処理能力を有するプロセッサを要求する。また、低速のデバイスであっても演算による負荷を低減することで高速に動作させる方法が求められている。
本発明は、畳み込みニューラルネットワークの演算時に畳み込み層における乗算回数を低減することができる畳み込みニューラルネットワークの演算時に用いるパラメータを最適化するパラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラムを提供することを目的とする。
本発明によるパラメータ最適化装置は、入力されたCNN構造情報を最適化して、出力するパラメータ最適化装置であって、CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出するストライドおよびディレーション使用層検出手段と、畳込み層のストライドおよびディレーションのパラメータ情報を変更するストライドおよびディレーション使用位置修正手段とを含む。
本発明によるパラメータ最適化方法は、入力されたCNN構造情報を最適化して、出力するパラメータ最適化方法であって、CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出し、畳込み層のストライドおよびディレーションのパラメータ情報を変更する。
本発明によるパラメータ最適化プログラムは、入力されたCNN構造情報を最適化して、出力するパラメータ最適化プログラムであって、コンピュータに、CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出する処理と、畳込み層のストライドおよびディレーションのパラメータ情報を変更する処理とを実行させる。
本発明によれば、畳み込みニューラルネットワークの演算時に畳み込み層における乗算回数を低減することができる。
第1の実施形態のパラメータ最適化装置の一例を示すブロック図である。 CPUを有するコンピュータの一例を示すブロック図である。 第1の実施形態のパラメータ値の最適化方法の一例を示す説明図である。 入力画像の一例を示す説明図である。 第1の実施形態のパラメータ値の最適化方法の一例を示す説明図である。 第1の実施形態のパラメータ最適化装置の動作の一例を示すフローチャートである。 第1の実施形態のパラメータ値の最適化方法の他の例を示す説明図である。 第1の実施形態のパラメータ値の最適化方法の他の例を示す説明図である。 第1の実施形態のパラメータ値の最適化方法の他の例を示す説明図である。 第1の実施形態のパラメータ最適化装置の動作の他の例を示すフローチャートである。 第2の実施形態のパラメータ最適化装置の一例を示すブロック図である。 第2の実施形態のパラメータ最適化装置が実行するショートカット処理の修正の動作を示すフローチャートである。 一般的なショートカット処理を説明する説明図である。 ショートカット対応処理を含むショートカット処理を説明する説明図である。 パラメータ最適化装置の主要部を示すブロック図である。 ストライドを説明するための説明図である。 ディレーションを説明するための説明図である。
初めに、実施形態の概要を説明する。なお、各図におけるブロック間の接続線は、双方向および単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。
実施形態1.
以下、本発明の第1の実施形態を、図面を参照して説明する。図1は、第1の実施形態のパラメータ最適化装置200の一例を示すブロック図である。第1の実施形態に係るパラメータ最適化装置200は、図1に記載の2つの処理ブロックを含む。すなわち、パラメータ最適化装置200は、ストライドおよびディレーション使用層検出部211およびストライドおよびディレーション使用位置修正部212を含む。
ストライドおよびディレーション使用層検出部211は、入力されたCNNモデル構造情報100から、ストライドおよびディレーションのパラメータ情報を抽出する。例えば、ストライドおよびディレーション使用層検出部211は、CNN構造情報100内に存在するパラメータの定義ファイルから各パラメータの値を取得する。
ストライドおよびディレーション使用位置修正部212は、ストライドおよびディレーション使用層検出部211により抽出されたストライドおよびディレーションのパラメータ情報をもとに、ストライドの値およびディレーションの値を後述する論理に従い修正し最適化する。ストライドおよびディレーション使用位置修正部212は、最適化したCNN構造情報300をパラメータ最適化装置200に接続されているCNNの実行環境に出力する。
図1に示されたパラメータ最適化装置200における各構成要素は、1つのハードウエア、または1つのソフトウエアで構成可能である。また、各構成要素は、複数のハードウエア、または、複数のソフトウエアでも構成可能である。また、各構成要素の一部をハードウエアで構成し、他部をソフトウエアで構成することもできる。
パラメータ最適化装置200における各構成要素が、CPU(Central Processing Unit )等のプロセッサやメモリ等を有するコンピュータで実現される場合には、例えば、図2に示すCPUを有するコンピュータで実現可能である。コンピュータは、CPU1000は、記憶装置1001に格納されたプログラムに従って処理(パラメータ最適化処理)を実行することによって、図1に示されたパラメータ最適化装置200における各機能を実現する。すなわち、コンピュータは、図1に示されたパラメータ最適化装置200におけるストライドおよびディレーション使用層検出部211およびストライドおよびディレーション使用位置修正部212の機能を実現する。
記憶装置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)がある。
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium )に格納されてもよい。一時的なコンピュータ可読媒体には、例えば、有線通信路または無線通信路を介して、すなわち、電気信号、光信号または電磁波を介して、プログラムが供給される。
メモリ1002は、例えばRAM(Random Access Memory)で実現され、CPU1000が処理を実行するときに一時的にデータを格納する記憶手段である。メモリ1002に、記憶装置1001または一時的なコンピュータ可読媒体が保持するプログラムが転送され、CPU1000がメモリ1002内のプログラムに基づいて処理を実行するような形態も想定しうる。
以下、図面を参照して、第1の実施形態における最適化の方法を説明する。
ストライドおよびディレーション使用層検出部211は、入力されたCNN構造情報100から、その層構造および各層が有するパラメータを解析する。
また、複数のConvolution 層が使用されている場合に、もし2つのConvolution 層の間で使用されるConvolution 層でない層の処理が、複数のピクセル(ニューロン)を使用せず、またピクセルの位置関係を変更しない場合には、ストライドおよびディレーション使用層検出部211は、その層の存在を無視する。すなわち、ストライドおよびディレーション使用層検出部211は、当該2つのConvolution 層は隣接すると判断する。例えば、ReLU等の活性化関数や、推論時のBatchNormalization、DropOut は、ピクセル単位、すなわちニューロン単位での乗加算処理である。よって、複数ピクセルは使用されず、かつ、ピクセル間の位置関係は変更されない。したがって、本最適化において、Convolution 層でない層を、無視することができる。一方、例えば、リニア層(=FullyConnected層)は、ピクセル間の位置関係を無視して全ピクセルの値を用いて乗加算を行うため、リニア層を無視することができない。また、プーリング層が存在している場合には、プーリング層を無視することはできない。
本実施形態の最適化は、上記の方法により取得された複数の隣接するConvolution 層に対して適用される。
ストライドおよびディレーション使用層検出部211は、隣接するConvolution 層のパラメータ情報を、図3に示されたように層番号(Layer )、ディレーション(Dilation)、ストライド(Stride)の3次元情報にまとめる。図4は、入力サイズが11×11の入力画像(太線の四角部)を示す説明図である。点線の枠で囲まれた領域は、初めに1つのカーネルで畳み込まれる範囲を示す。破線の枠で囲まれた領域は、次にカーネルで畳み込まれる範囲を示す。一点鎖線の枠で囲まれた領域は、その次にカーネルで畳み込まれる範囲を示す。点網が施された矩形は、説明のための注目ピクセルを示す。斜線が施された矩形(斜線部)は、畳み込み処理で参照されるピクセルを示す。なお、パディングのサイズは1である。また、Layer 層は、層自体を意味することがある。
図3上における上段に示された例では、Layer3において、ディレーションの値およびストライドの値が2である。このような場合、図4に示されるように、畳み込み処理で参照されるピクセルは、斜線部のピクセルのみである。白い箇所(斜線も網点も施されていないピクセル)は、存在するものの一度も使用されない。
つまり、Layer3の入力のうち、全体の3/4を占める白い箇所は、畳み込み処理で参照されず、不要である。すなわち、Layer2の出力のうち3/4は不要である。その不要箇所のための畳み込み処理は無駄である。
このようなネットワークにおいて、ストライドおよびディレーション使用位置修正部212は、Layer2のストライドの値を1から2に変更する。図4における下段に示されるような、Layer3における必要部分のみが計算されるように変更可能である。また、Layer3の畳み込み処理において参照されるピクセルは隣接するようになるため、ディレーションの値は1でよい。なお、図3において、ストライドおよびディレーション使用位置修正部212が修正した箇所の数字には下線を付与している。
要約すると、ストライドおよびディレーション使用位置修正部212は、Layer2のストライドの値を1から2に変更し、Layer3のディレーションの値を2から1に変更し、ストライドの値を2から1に変更する。そうすることで、Layer3の出力が維持されつつ、ディレーションの値が2である層を不要にし、ストライドを前層に移動することができる。結果として、Layer2のストライドの値が2になったことで、Layer2およびLayer3における計算量がそれぞれ1/4に削減される。
図5に示すように、この最適化処理では、可能な限り変更が前層に伝搬するように操作される。図5(a)では、まず、Layer3およびLayer6において、上述されたようにストライドを前層に移動することができる。Layer6からLayer5へのストライドの移動の結果、Layer5においてもディレーションの値およびストライドの値がともに2である状況が発生する。再度最適化の適用が可能になる(図5(b)参照)。その後、Layer4でも同様の最適化が適用可能になる(図5(c))。最終的に、ストライドの値の2はLayer3まで移動する(図5(d)参照)。
すなわち、本実施形態の最適化は、深い層から浅い層に向けて伝搬的に適用可能である。また、図6のフローチャートに示すように、全ての層を俯瞰し、ストライドの値およびディレーションの値がともに2である層が無くなるまで繰り返し適用することができる。
図6に示す例では、CNN構造100が、パラメータ最適化装置200に入力される(ステップS401)。ストライドおよびディレーション使用層検出部211は、入力されたCNNモデルの構造情報100から、ストライドのパラメータおよびディレーションのパラメータが用いられている層を抽出する(ステップS402)。
そして、ストライドおよびディレーション使用位置修正部212は、ストライドおよびディレーション使用層検出部211が抽出したストライドのパラメータおよびディレーションのパラメータの情報に基づいて、ストライドの値およびディレーションの値を上述した論理に従って変更する(ステップS403)。
2つのパラメータの最大公約数g( gcd(Stride,Dilation))が1より大である層が残っている場合、再度、ステップS402の処理およびステップS403の処理を実行する。
全ての層において、2つのパラメータの最大公約数g( gcd(Stride,Dilation))が1になったら、ステップS405において、パラメータ最適化装置200は、修正したCNN構造情報300を出力する。
さらに一般化すると、ストライドとディレーションとの関係は、ともに2である場合のみならず、2つのパラメータの最大公約数g( gcd(Stride,Dilation))が1より大である場合に、以下のようにストライドの値およびディレーションの値を変更することができる。
g= gcd(Stride,Dilation)
S’(L)=S(L)/g
S’(L-1)=S(L-1)×g
D’(L)=D(L)/g ・・・(1)
ここで、S(L)、D(L)は、それぞれ、層Lのストライドの値,ディレーションの値を示す。S(L-1)は、層(L-1)のストライドの値を示す。S’、D’は、それぞれ、変更後のストライドの値,ディレーションの値を示す。
例えば、図7に示す例では、CNNにおいて、Layer3においてストライドの値が2,ディレーションの値が4である。ストライドおよびディレーション使用位置修正部212は、g= gcd(2,4)=2を用いて、Layer2のストライドの値を1から2に変更し、Layer3のストライドの値を2から1に変更し、ディレーションの値を4から2に変更する。
図8に示す例では、ストライドの値が4、ディレーションの値が2である。すなわち、図7に示された例とは、ストライドの値およびディレーションの値が逆転している。ストライドおよびディレーション使用位置修正部212は、g= gcd(4,2)=2を用いて、Layer2のストライドの値を1から2に変更し、Layer3のストライドの値を4から2に変更し、ディレーションの値を2から1に変更する。
図9に示す例では、ストライドの値,ディレーションの値がともに4である。ストライドおよびディレーション使用位置修正部212は、g= gcd(4,4)=4を用いて、Layer2のストライドの値を1から4に変更し、Layer3のストライドの値を4から1に変更し、ディレーションの値を4から1に変更する。
上記のような考え方に基づいて、図10のフローチャートが示すように、本実施形態の最適化を実施することができる。すなわち、一番深い層から浅い層に向けて順番に各層一度ずつ最適化処理を適用することによって、全ての層について最適化を適用することができる。
図10に示す例では、CNN構造100が、パラメータ最適化装置200に入力される(ステップS501)。パラメータ最適化装置200は、処理対象層の層番号nを初期化する(ステップS502)。具体的には、全ての層の総数がNである場合、層番号nを(N-1)にする。
ステップS503の処理およびステップS504の処理については、前述したステップS402の処理およびステップS403の処理と同様である。ただし、ステップS502の処理とステップS503の処理とは、1つの層を対象として実行される。
全ての層についての処理が完了するまで、深い層から浅い層に向けて順番にステップS503およびステップS504の処理を繰り返す(ステップS505,S507)。
そして、全ての層について処理が完了したら、パラメータ最適化装置200は、修正したCNN構造情報300を出力する(ステップS506)。
なお、ストライドの値およびディレーションの値の想定される最大値(適用が意図される最大値)が所定値(例えば、6)以下であれば、上記の(1)式は、ある層においてストライドの値とディレーションの値との双方が2の倍数である場合に、ストライドの値とディレーションの値との双方を、2で除することを意味する。また、(1)式は、当該層に対して1つ浅い層のストライドの値を2倍することを意味する。
以上に説明したように、本実施形態のパラメータ最適化装置200は、畳み込みニューラルネットワークのある層において、畳み込みパラメータであるストライドとディレーションとの値が同時に1より大であるような場合に、ストライド処理を適用する層を、当該層の1段前の層に移動することができる。したがって、本実施形態のパラメータ最適化装置200は、当該層および当該層の1段前の層における処理量を削減することができる。
また、同時にディレーションを小さくすることにより、本実施形態のパラメータ最適化装置200は、1より大であるディレーションの処理を不得意とするようなデバイスや実行装置において性能が向上するという効果を得ることができる。
実施形態2.
CNNモデルにおいて、ResNet等が用いるショートカット構造が存在する場合に、上記の実施形態の最適化によるストライドの移動を適用したときに、その移動に対応してショートカット構造の処理を修正する必要がある場合がある。
以下、本発明の第2の実施形態を、図面を参照して説明する。図11は、第2の実施形態のパラメータ最適化装置201の一例を示すブロック図である。第2の実施形態のパラメータ最適化装置201は、図11に示されているように、4つの処理ブロックを含む。すなわち、パラメータ最適化装置201は、ストライドおよびディレーション使用層検出部211、ストライドおよびディレーション使用位置修正部212、ショートカット対応要否判定部213、およびショートカット対応処理導入部214を含む。なお、ショートカット対応要否判定部213およびショートカット対応処理導入部214以外の構成は、第1の実施形態のパラメータ最適化装置200の構成と同じである。
ショートカット対応要否判定部213は、ショートカット処理の有無を判定する。ショートカット対応要否判定部213は、ストライドおよびディレーション使用位置修正部212による変更が、新規なショートカット構造の導入を要するか否かを判定する。
ショートカット対応処理導入部214は、ストライドの値およびディレーションの値の変更の結果として必要となる新規なショートカット構造をCNNモデルに追加する。
パラメータ最適化装置201は、第1の実施形態のパラメータ最適化装置200の処理と同様の処理を行った後、図12のフローチャートに示す処理を実行する。
図12は、第2の実施形態のパラメータ最適化装置201が実行するショートカット処理を修正する処理を示すフローチャートである。
パラメータ変更後のCNN構造(第1実施形態における出力CNN構造に相当)がパラメータ最適化装置201に入力される(ステップS601)と、ショートカット対応要否判定部213は、ストライドおよびディレーション使用位置修正部212によるパラメータの変更が、新規なショートカット構造の導入を要するか否かを判定する。一例として、ショートカット対応要否判定部213は、3層を1組として、当該組の入力と当該組の前の組の出力との次元数が一致しているか否かを判定する(ステップS602)。次元数は、幅W、高さH、チャネル数C等である。
ステップS602において、次元数が異なる場合、ショートカット対応処理導入部214は、ストライドの値およびディレーションの値の変更の結果として必要となる新規なショートカット構造に対応する処理をCNNモデルに追加する(ステップS603)。そして、パラメータ最適化装置201は、ショートカット対応処理を含んだショートカット処理を実施する(ステップS604)。具体的な、導入方法は後述する。一方、次元数が一致する場合は、パラメータ最適化装置201は、通常のショートカット処理を実施する。
ショートカット処理が実施された後に、パラメータ最適化装置201は、CNN構造情報300を出力する(ステップS605)。
図13は、一般的なショートカット処理を説明する説明図である。図14は、ショートカット対応処理を含むショートカット処理を説明する説明図である。
図13に示されたネットワーク構造では、3層を1組とする。具体的には、Layer1,2,3を1組目、Layer4,5,6を2組目、Layer7,8,9を3組目とする。そして、前の組の出力結果を、当該組の出力に足し合わせる。これをショートカットという。
一般に、ショートカットでは、入力と出力の次元数(W,H,C)が同じ場合には、単に足し合わせる処理が実行される。次元数が異なる場合には、次元数の違いをなくすために新たな畳み込み処理が導入されることが多い。例えば、W,Hの違いをなくすためにストライドが用いられ、Cの違いをなくすために1×1畳み込みが用いられる。
図13に示された例では、1組目であるLayer1,2,3では、出力チャネル数は64であり、入力チャネル数は不明である。Layer1への入力が3チャネルの画像である場合、入力チャネル数が3で、出力チャネル数が64の1×1畳み込み処理がショートカットに導入される。
同様に、Layer7,8,9の3組目では、Layer7においてストライドが用いられているために組への入力サイズと出力サイズが異なる(サイズ比4:1)。また、入力チャネル数は64であり出力チャネル数は128で、それらは異なる。よって、ストライドの値が2、入力チャネル数が64、出力チャネル数が128である1×1畳み込み処理がショートカットに導入される。
一方、Layer4,5,6の2組目では、入力チャネル数と出力チャネル数とが64で一致している。また、Layer4,5,6のストライドの値が全て1であるためW,Hも変化しない。よって、1×1畳み込み処理等がショートカットに導入される必要はない(None)。
しかし、Layer7に注目すると、ストライドの値とディレーションの値とがともに2であり、最適化が可能である(図14(a)参照)。つまり、ストライドおよびディレーション使用位置修正部212は、Layer6のストライドの値を2に変更し、Layer7のストライドの値を1に変更し、ディレーションの値を2に変更し、それぞれ変更することができる(図14(b))。
各パラメータが変更された後に、Layer4,5,6の2組目に注目すると、入出力のW,Hの次元数が異なるようになってしまう。よって、図12のフローチャートにおけるステップS603の処理のような次元数を合わせるための処理の導入が必要となる。
なお、Layer4,5,6の場合、W,Hは異なっているがCは同一である。よって、導入されるべき処理は、ストライドの値が2に相当するピクセルの間引き処理である。
パラメータの変更に応じたショートカットの修正が実施できればどのように実装されてもよい。例えば、使用する深層学習用フレームワークが限られた処理しかサポートしない場合、一例として、ピクセルの間引きのみを実施するための層が定義(提供)されていない場合には、1×1畳み込み処理で代用することが考えられる。1×1畳み込みの重みの値は、(入力チャネル数×出力チャネル数)の次元数を持つ正方行列であるが、この場合には、入力値を変換しないようにするために、正方行列の値は、対角成分のみが1.0で他がすべて0でよい。すなわち、正方行列は、単位行列であることが好ましい。本実施形態の最適化において、入出力チャネル数を増減させることはない。
このように、ショートカット対応処理導入部214は、ショートカット対応処理導入前のショートカット処理(修正前のショートカット処理)が入力値(W,Hの値)を変換しない場合には、ストライドおよびディレーション使用位置修正部212による変更後のストライドの値と同値のストライドを持つ間引き処理、または、変更後のストライドの値と同値のストライドを持ち、重みが単位行列で表されるような1×1畳み込み処理を導入する。また、ショートカット対応処理導入部214は、対応処理導入前のショートカット処理が1×1畳み込み処理を含む場合には、当該1×1畳み込み処理のストライドを、ストライドおよびディレーション使用位置修正部212による変更後のストライドの値を乗じた値に更新する。
以上に説明したように、本実施形態のパラメータ最適化装置201は、入力CNNモデルにおいて、ResNet等が用いるショートカット構造が存在する場合に、ショートカット構造に対応した処理を導入し実施する。その結果、ショートカット構造を有している場合でも、CNNの処理量を削減することができる。
図15は、パラメータ最適化装置の主要部を示すブロック図である。パラメータ最適化装置800は、入力されたCNN構造情報を最適化して、出力するパラメータ最適化装置であって、CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出するストライドおよびディレーション使用層検出手段811(実施形態では、ストライドおよびディレーション使用層検出部211で実現される。)と、畳込み層のストライドおよびディレーションのパラメータ情報を変更するストライドおよびディレーション使用位置修正手段812(実施形態では、ストライドおよびディレーション使用位置修正部212で実現される。)とを含む。
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)
入力されたCNN構造情報を最適化して、出力するパラメータ最適化装置であって、
前記CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出するストライドおよびディレーション使用層検出手段と、
畳込み層のストライドおよびディレーションのパラメータ情報を変更するストライドおよびディレーション使用位置修正手段と
を備えるパラメータ最適化装置。
(付記2)
ストライドおよびディレーション使用層検出手段およびストライドおよびディレーション使用位置修正手段は、
前記CNN構造における全ての畳込み層において変更可能なストライドおよびディレーションパラメータの組が存在しなくなるまで、繰り返し、パラメータ情報を抽出する処理、およびパラメータ情報を変更する処理を実行する
付記1記載のパラメータ最適化装置。
(付記3)
ストライドおよびディレーション使用層検出手段およびストライドおよびディレーション使用位置修正手段は、
前記CNN構造における畳込み層における各層を対象としてパラメータ情報を抽出する処理、およびパラメータ情報を変更する処理を実行し、当該対象を深い層から浅い層に順に変える
付記1記載のパラメータ最適化装置。
(付記4)
ストライドおよびディレーション使用位置修正手段は、ある畳込み層のストライドの値とディレーションの値との最大公約数が1より大である場合に、当該層のストライド、ディレーション双方の値を前記最大公約数により割った値に変更し、当該層の1層浅い畳込み層のストライドの値を、前記最大公約数を乗じた値に変更する
付記1から付記3のうちのいずれか1項に記載のパラメータ最適化装置。
(付記5)
ストライドおよびディレーション使用位置修正手段は、ある畳込み層のストライドの値とディレーションの値との双方の値が2の倍数である場合に、当該層のストライドの値と、ディレーションの値の双方を2で割った値に変更し、当該層の1層浅い畳込み層のストライドの値を、2倍した値に変更する
付記1から付記3のうちのいずれか1項に記載のパラメータ最適化装置。
(付記6)
ショートカット処理を含むCNN構造において、ストライドおよびディレーションの変更の結果に応じたショートカット処理の修正要否を判定するショートカット対応要否判定手段と、
前記ショートカット対応要否判定手段が修正要と判定した場合に、前記ショートカット処理を修正するショートカット対応処理導入手段と、
を備える付記1から付記5のうちのいずれか1項に記載のパラメータ最適化装置。
(付記7)
ショートカット対応要否判定手段は、
ストライドおよびディレーション使用位置修正手段によるストライドの変更がショートカット処理における加算処理をはさんだ2つの畳込み層において発生しているときにショートカット処理の修正要と判定する
付記6記載のパラメータ最適化装置。
(付記8)
ショートカット対応処理導入手段が、
修正前のショートカット処理が入力値を変換しない場合には、ストライドおよびディレーション使用位置修正手段による変更後のストライドの値と同値のストライドを持つ間引き処理、または、変更後ストライドの値と同値のストライドを持ち、重みが単位行列であるような1×1畳込み処理を導入し、
修正前のショートカット処理が1×1畳込み処理を含む場合には、当該1×1畳込み処理のストライドを、ストライドおよびディレーション使用位置修正手段による変更後のストライドの値を乗じた値に更新する
付記6または付記7記載のパラメータ最適化装置。
(付記9)
入力されたCNN構造情報を最適化して、出力するパラメータ最適化方法であって、
前記CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出し、
畳込み層のストライドおよびディレーションのパラメータ情報を変更する
ことを特徴とするパラメータ最適化方法。
(付記10)
ショートカット処理を含むCNN構造において、ストライドおよびディレーションの変更の結果に応じたショートカット処理の修正要否を判定し、
修正要と判定した場合に、前記ショートカット処理を修正する
付記9記載のパラメータ最適化方法。
(付記11)
入力されたCNN構造情報を最適化して、出力するパラメータ最適化プログラムが格納されたコンピュータ読み取り可能な記録媒体であって、
前記パラメータ最適化プログラムは、
前記CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出する処理と、
畳込み層のストライドおよびディレーションのパラメータ情報を変更する処理と
をプロセッサに実行させることを特徴とする。
(付記12)
前記パラメータ最適化プログラムは、
ショートカット処理を含むCNN構造において、ストライドおよびディレーションの変更の結果に応じたショートカット処理の修正要否を判定する処理と、
修正要と判定した場合に、前記ショートカット処理を修正する処理と
をプロセッサに実行させる付記11記載の記録媒体。
(付記13)
入力されたCNN構造情報を最適化して、出力するためのプログラムであって、
コンピュータに、
前記CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出する処理と、
畳込み層のストライドおよびディレーションのパラメータ情報を変更する処理と
を実行させるためのパラメータ最適化プログラム。
(付記14)
コンピュータに、
ショートカット処理を含むCNN構造において、ストライドおよびディレーションの変更の結果に応じたショートカット処理の修正要否を判定する処理と、
修正要と判定した場合に、前記ショートカット処理を修正する処理と
を実行させる付記13のパラメータ最適化プログラム。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
100 入力CNN構造
200 パラメータ最適化装置
211 ストライドおよびディレーション使用層検出部
212 ストライドおよびディレーション使用位置修正部
213 ショートカット対応要否判定部
214 ショートカット対応処理導入部
300 出力CNN構造
800 パラメータ最適化装置
811 ストライドおよびディレーション使用層検出手段
812 ストライドおよびディレーション使用位置修正手段
1000 CPU
1001 記憶装置
1002 メモリ

Claims (10)

  1. 入力されたCNN構造情報を最適化して、出力するパラメータ最適化装置であって、
    前記CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出するストライドおよびディレーション使用層検出手段と、
    畳込み層のストライドおよびディレーションのパラメータ情報を変更するストライドおよびディレーション使用位置修正手段と
    を備えるパラメータ最適化装置。
  2. ストライドおよびディレーション使用層検出手段およびストライドおよびディレーション使用位置修正手段は、
    前記CNN構造における全ての畳込み層において変更可能なストライドおよびディレーションパラメータの組が存在しなくなるまで、繰り返し、パラメータ情報を抽出する処理、およびパラメータ情報を変更する処理を実行する
    請求項1記載のパラメータ最適化装置。
  3. ストライドおよびディレーション使用層検出手段およびストライドおよびディレーション使用位置修正手段は、
    前記CNN構造における畳込み層における各層を対象としてパラメータ情報を抽出する処理、およびパラメータ情報を変更する処理を実行し、当該対象を深い層から浅い層に順に変える
    請求項1記載のパラメータ最適化装置。
  4. ストライドおよびディレーション使用位置修正手段は、ある畳込み層のストライドの値とディレーションの値との最大公約数が1より大である場合に、当該層のストライド、ディレーション双方の値を前記最大公約数により割った値に変更し、当該層の1層浅い畳込み層のストライドの値を、前記最大公約数を乗じた値に変更する
    請求項1から請求項3のうちのいずれか1項に記載のパラメータ最適化装置。
  5. ストライドおよびディレーション使用位置修正手段は、ある畳込み層のストライドの値とディレーションの値との双方の値が2の倍数である場合に、当該層のストライドの値と、ディレーションの値の双方を2で割った値に変更し、当該層の1層浅い畳込み層のストライドの値を、2倍した値に変更する
    請求項1から請求項3のうちのいずれか1項に記載のパラメータ最適化装置。
  6. ショートカット処理を含むCNN構造において、ストライドおよびディレーションの変更の結果に応じたショートカット処理の修正要否を判定するショートカット対応要否判定手段と、
    前記ショートカット対応要否判定手段が修正要と判定した場合に、前記ショートカット処理を修正するショートカット対応処理導入手段と、
    を備える請求項1から請求項5のうちのいずれか1項に記載のパラメータ最適化装置。
  7. ショートカット対応要否判定手段は、
    ストライドおよびディレーション使用位置修正手段によるストライドの変更がショートカット処理における加算処理をはさんだ2つの畳込み層において発生しているときにショートカット処理の修正要と判定する
    請求項6記載のパラメータ最適化装置。
  8. ショートカット対応処理導入手段が、
    修正前のショートカット処理が入力値を変換しない場合には、ストライドおよびディレーション使用位置修正手段による変更後のストライドの値と同値のストライドを持つ間引き処理、または、変更後ストライドの値と同値のストライドを持ち、重みが単位行列であるような1×1畳込み処理を導入し、
    修正前のショートカット処理が1×1畳込み処理を含む場合には、当該1×1畳込み処理のストライドを、ストライドおよびディレーション使用位置修正手段による変更後のストライドの値を乗じた値に更新する
    請求項6または請求項7記載のパラメータ最適化装置。
  9. 入力されたCNN構造情報を最適化して、出力するパラメータ最適化方法であって、
    前記CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出し、
    畳込み層のストライドおよびディレーションのパラメータ情報を変更する
    ことを特徴とするパラメータ最適化方法。
  10. 入力されたCNN構造情報を最適化して、出力するパラメータ最適化プログラムあって、
    コンピュータに
    前記CNN構造情報のうち、各畳込み層のストライドおよびディレーションのパラメータ情報を抽出する処理と、
    畳込み層のストライドおよびディレーションのパラメータ情報を変更する処理と
    を実行させるためのパラメータ最適化プログラム
JP2021562433A 2019-12-06 2019-12-06 パラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラム Active JP7298713B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/047947 WO2021111633A1 (ja) 2019-12-06 2019-12-06 パラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラム

Publications (3)

Publication Number Publication Date
JPWO2021111633A1 JPWO2021111633A1 (ja) 2021-06-10
JPWO2021111633A5 JPWO2021111633A5 (ja) 2022-07-27
JP7298713B2 true JP7298713B2 (ja) 2023-06-27

Family

ID=76221185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021562433A Active JP7298713B2 (ja) 2019-12-06 2019-12-06 パラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラム

Country Status (3)

Country Link
US (1) US20230004810A1 (ja)
JP (1) JP7298713B2 (ja)
WO (1) WO2021111633A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11983854B2 (en) * 2020-11-10 2024-05-14 Adobe Inc. Denoising images rendered using Monte Carlo renderings
EP4123526A1 (en) * 2021-07-19 2023-01-25 ALE International Method and system for calculating and sharing a user occupancy status relative to use of multimedia applications
CN113610223B (zh) * 2021-08-03 2023-12-26 安谋科技(中国)有限公司 乘法电路、卷积运算方法、介质、片上系统和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180225993A1 (en) 2017-01-24 2018-08-09 Tietronix Software, Inc. System and method for three-dimensional augmented reality guidance for use of medical equipment
JP2019175140A (ja) 2018-03-28 2019-10-10 株式会社パスコ 建築物抽出システム
JP2019537139A (ja) 2016-11-10 2019-12-19 グーグル エルエルシー ハードウェアにおけるカーネルストライドの実行

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019537139A (ja) 2016-11-10 2019-12-19 グーグル エルエルシー ハードウェアにおけるカーネルストライドの実行
US20180225993A1 (en) 2017-01-24 2018-08-09 Tietronix Software, Inc. System and method for three-dimensional augmented reality guidance for use of medical equipment
JP2019175140A (ja) 2018-03-28 2019-10-10 株式会社パスコ 建築物抽出システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG, Tianyang ほか,Dilated Deep Residual Network for Image Denoising,[オンライン],arXiv,2017年09月27日,<URL: https://arxiv.org/pdf/1708.05473.pdf>,[検索日 2020.01.22]

Also Published As

Publication number Publication date
US20230004810A1 (en) 2023-01-05
JPWO2021111633A1 (ja) 2021-06-10
WO2021111633A1 (ja) 2021-06-10

Similar Documents

Publication Publication Date Title
JP7298713B2 (ja) パラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラム
US10394929B2 (en) Adaptive execution engine for convolution computing systems
CN110119809B (zh) 对神经网络中非对称量化数据执行mac运算的装置和方法
US20180217962A1 (en) Operation processing apparatus and operation processing method
JP7007488B2 (ja) ハードウェアベースのプーリングのシステムおよび方法
US20220383082A1 (en) Neural network processing method and apparatus, computer device and storage medium
US10642622B2 (en) Arithmetic processing device and control method of the arithmetic processing device
KR20180073118A (ko) 컨볼루션 신경망 처리 방법 및 장치
TW201942808A (zh) 深度學習加速器及加快深度學習操作的方法
JP6927320B2 (ja) 推論装置、畳み込み演算実行方法及びプログラム
WO2020199476A1 (zh) 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质
Nakandala et al. Incremental and approximate inference for faster occlusion-based deep cnn explanations
US20220058450A1 (en) Tabular convolution and acceleration
CN110633785B (zh) 一种卷积神经网络的计算方法及系统
WO2024027039A1 (zh) 数据处理方法、装置、设备和可读存储介质
KR102256289B1 (ko) 인공 신경망에서 학습을 통한 로드 밸런싱 방법 및 시스템
WO2021245942A1 (en) Information processing apparatus, information processing method, and computer readable medium
CN114008632A (zh) 可组合的神经网络内核
CN117313809A (zh) 用于在神经网络加速器上执行神经网络的方法和系统
US20210303987A1 (en) Power reduction for machine learning accelerator background
US20230196093A1 (en) Neural network processing
CN114065119A (zh) 数据处理方法及相关产品
US20230040673A1 (en) Optimised machine learning processing
JP7000586B2 (ja) データ処理システムおよびデータ処理方法
CN114662679B (zh) 一种基于神经网络的数据处理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220530

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220530

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230529

R151 Written notification of patent or utility model registration

Ref document number: 7298713

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151