JP2019087252A - ニューラルネットワークにおいてデコンボルーション演算を実行する装置及びその方法 - Google Patents

ニューラルネットワークにおいてデコンボルーション演算を実行する装置及びその方法 Download PDF

Info

Publication number
JP2019087252A
JP2019087252A JP2018208043A JP2018208043A JP2019087252A JP 2019087252 A JP2019087252 A JP 2019087252A JP 2018208043 A JP2018208043 A JP 2018208043A JP 2018208043 A JP2018208043 A JP 2018208043A JP 2019087252 A JP2019087252 A JP 2019087252A
Authority
JP
Japan
Prior art keywords
feature map
kernels
kernel
sub
convolution
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
JP2018208043A
Other languages
English (en)
Other versions
JP7132824B2 (ja
Inventor
準 鎬 宋
Joon Ho Song
準 鎬 宋
世 煥 李
Sehwan Lee
世 煥 李
準 祐 張
Junwoo Jang
準 祐 張
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019087252A publication Critical patent/JP2019087252A/ja
Application granted granted Critical
Publication of JP7132824B2 publication Critical patent/JP7132824B2/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
    • 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
    • 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/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • 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
    • G06N3/063Physical 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)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】ニューラルネットワークにおいてデコンボルーション演算を行う装置及びその方法を提供する。【解決手段】ニューラルネットワークにおいてデコンボルーション演算を行う装置において、少なくとも1つのプログラムが保存されたメモリ、及び少なくとも1つのプログラムを実行することにより、ニューラルネットワークにおける演算を実行するプロセッサを含む。該プロセッサは、ニューラルネットワークのデコンボルーションレイヤで処理される入力フィーチャマップ及び第1カーネルをメモリから獲得する。また、該プロセッサは、第1カーネルを処理してサブカーネルを生成し、コンボルーション演算器を利用し、入力フィーチャマップとサブカーネルとのコンボルーション演算を行う。また、該プロセッサは、コンボルーション演算の結果をマージすることにより、出力フィーチャマップを生成する。【選択図】 図5

Description

本発明は、ニューラルネットワークのデコンボルーション演算を行う装置及びその方法に関する。
ニューラルネットワーク(neural network)の原理は、生物学的な脳をモデリングしたコンピュータ科学的アーキテクチャ(computational architecture)を基礎としている。ニューラルネットワーク技術の発展により、多種の電子システムにおいて、ニューラルネットワークを活用し、入力データを分析し、有効な情報を抽出している。
最近では、深層神経網(DNN:deep neural network)を低電力で効率的に使用するためのハードウェア加速器に対する研究が活発に進められている。ニューラルネットワークを処理する装置は、複雑な入力データに係わる多量の演算を必要とする。
特に、低電力及び低性能で具現されるデバイスにおいて、ニューラルネットワークを利用し、大量の入力データをリアルタイムに分析し、所望の情報を抽出するためには、ニューラルネットワークに係わる演算を効率的に処理することができる技術が要求される。
米国特許出願公開第2017/0200094号明細書 米国特許第9547821号明細書
本発明が解決しようとする課題は、ニューラルネットワークのデコンボルーション演算を行う装置及びその方法を提供するところにある。また、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供するところにある。解決しようとする技術的課題は、前述のような技術的課題に限定されず、他の技術的課題が存在しうる。
前述の技術的課題を達成するための技術的手段として、本開示の第1側面は、少なくとも1つのプログラムが保存されたメモリと、前記少なくとも1つのプログラムを実行することにより、ニューラルネットワークを駆動するプロセッサと、を含み、前記プロセッサは、前記ニューラルネットワークのデコンボルーションレイヤで処理される、入力フィーチャマップ(feature map)及び第1カーネル(kernel)を前記メモリから獲得し、前記第1カーネルそれぞれを構成する行列成分の配置を調整して第2カーネルを算出し、前記第2カーネルそれぞれを分割してサブカーネルを生成し、コンボルーション演算器を利用し、前記入力フィーチャマップと前記サブカーネルとのコンボルーション演算を行い、前記コンボルーション演算の結果をマージすることによって出力フィーチャマップを生成する、デコンボルーション演算を行うニューラルネットワーク装置を提供することができる。
また、本開示の第2側面は、少なくとも1つのプログラムが保存されたメモリと、前記少なくとも1つのプログラムを実行することにより、ニューラルネットワークを駆動するプロセッサと、を含み、前記プロセッサは、前記ニューラルネットワークのデコンボルーションレイヤで処理される、入力フィーチャマップ及びサブカーネルを前記メモリから獲得し、コンボルーション演算器を利用し、前記入力フィーチャマップと前記サブカーネルとのコンボルーション演算を行い、前記コンボルーション演算の結果をマージすることによって出力フィーチャマップを生成し、前記メモリから獲得された前記サブカーネルは、初期カーネルそれぞれを構成する行列成分の配置が調整された後、前記調整された初期カーネルが分割されることによって生成されるものである、デコンボルーション演算を行うニューラルネットワーク装置を提供することができる。
また、本開示の第3側面は、ニューラルネットワークのデコンボルーションレイヤで処理される、入力フィーチャマップ及び第1カーネルを獲得する段階と、前記第1カーネルそれぞれを構成する行列成分の配置を調整して第2カーネルを算出する段階と、前記第2カーネルそれぞれを分割してサブカーネルを生成する段階と、コンボルーション演算器を利用し、前記入力フィーチャマップと前記サブカーネルとのコンボルーション演算を行う段階と、前記コンボルーション演算の結果をマージすることによって出力フィーチャマップを生成する段階と、を含む、ニューラルネットワーク装置でデコンボルーション演算を行う方法を提供することができる。
また、本開示の第4側面は、第3側面の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することができる。
一実施形態によるニューラルネットワークのアーキテクチャについて説明するための図面である。 一実施形態によるニューラルネットワークにおいて、入力フィーチャマップ及び出力フィーチャマップの関係について説明するための図面である。 一実施形態による、コンボルーションネットワーク及びデコンボルーションネットワークのアーキテクチャについて説明するための図面である。 一実施形態による、コンボルーション演算及びデコンボルーション演算について説明するための図面である。 一実施形態によるコンボルーション演算器を利用し、デコンボルーション演算を行う方式について説明するための図面である。 一実施形態による、デコンボルーションレイヤで行われるトランスポーズ演算及びスピリット演算の例示について説明するための図面である。 一実施形態による、デコンボルーションレイヤにおいて、コンボルーション演算を行う例示について説明するための図面である。 一実施形態による、デコンボルーションレイヤにおいて、サブカーネル別に並列にコンボルーション演算を行う例示について説明するための図面である。 一実施形態によるニューラルネットワーク装置のハードウェア構成を図示したブロック図である。 一実施形態による、ニューラルネットワーク装置において、デコンボルーション演算を行う方法のフローチャートである。
本明細書において、多様なところに登場する「一部実施形態において」または「一実施形態において」というような語句は、必ずしもいずれも同一実施形態を示すものではない。
本開示の一部実施形態は、機能的なブロック構成、及び多様な処理段階で示される。そのような機能ブロックの一部または全部は、特定機能を遂行する多様な個数のハードウェア構成及び/またはソフトウェア構成によっても具現される。例えば、本開示の機能ブロックは、1以上のマイクロプロセッサによっても具現されたり、所定機能のための回路構成によっても具現されたりもする。また、例えば、本開示の機能ブロックは、多様なプログラミング言語またはスクリプティング言語によっても具現される。該機能ブロックは、1以上のプロセッサで実行されるアルゴリズムによっても具現される。また、本開示は、電子的な環境設定、信号処理及び/またはデータ処理などのために、従来技術を採用することができる。「メカニズム」、「要素」、「手段」及び「構成」のような用語は、汎用され、機械的であって物理的な構成として限定されるものではない。
また、図面に図示された構成要素間の連結線または連結部材は、機能的な連結、及び/または物理的または回路的な連結を例示的に示しただけである。実際の装置においては、代替可能であったり追加されたりする多様な機能的な連結、物理的な連結、または回路連結によって構成要素間の連結が示される。
以下、添付された図面を参照し、本開示について詳細に説明する。
図1は、一実施形態によるニューラルネットワークのアーキテクチャについて説明するための図面である。図1を参照すれば、ニューラルネットワーク1は、ディープニューラルネットワーク(DNN:deep neural network)またはn階層ニューラルネットワーク(n-layers neural networks)のアーキテクチャでもある。DNNまたはn階層ニューラルネットワークは、コンボルーションニューラルネットワーク(CNN:convolutional neural networks)、リカレントニューラルネットワーク(RNN:recurrent neural networks)、Deep Belief Networks、Restricted Boltzman Machinesなどにも該当する。例えば、ニューラルネットワーク1は、コンボルーションニューラルネットワーク(CNN)によっても具現されるが、それに制限されるものではない。図1においては、ニューラルネットワーク1の例示に該当するコンボルーションニューラルネットワークにおいては、コンボルーションレイヤ以外にも、サブサンプリングレイヤ(subsampling layer(またはプーリングレイヤ(pooling layer))、フリーコネクティッド(fully connected)レイヤなどがさらに含まれてもよい。
ニューラルネットワーク1は、入力イメージ、フィーチャマップ(feature maps)及び出力を含む複数レイヤを有するアーキテクチャによっても具現される。ニューラルネットワーク1において、入力イメージは、カーネル(kernel)と呼ばれるフィルタとのコンボルーション演算が行われ、その結果、フィーチャマップが出力される。そのときに生成された出力フィーチャマップは、入力フィーチャマップとして、さらにカーネルとのコンボルーション演算が行われ、新たなフィーチャマップが出力される。そのようなコンボルーション演算が反復的に行われた結果、最終的には、ニューラルネットワーク1を介した入力イメージの特徴に係わる認識結果が出力される。
例えば、図1のニューラルネットワーク1に、24x24ピクセルサイズのイメージが入力された場合、該入力イメージは、カーネルとのコンボルーション演算を介して、20x20サイズを有する4チャネルのフィーチャマップとしても出力される。また、サブサンプリング過程を介して、20x20サイズを有する4チャネルのフィーチャマップのピクセル値のうち一部だけが利用され、10x10サイズを有する4チャネルのフィーチャマップが出力される。サブサンプリング方式としては、最大プーリング(max-pooling)、平均プーリング(average-pooling)などの方式などが適用される。
その後にも、10x10フィーチャマップは、カーネルとの反復的なコンボルーション演算及びサブサンプリング演算を介して大きさが小さくなりながら、最終的には、グローバル(global)な特徴が出力される。ニューラルネットワーク1は、多くのレイヤにおいて、コンボルーション演算及びサブサンプリング(または、プーリング)演算を反復的に行うことにより、入力イメージからイメージ全体を代表することができる強靭な特徴をフィルタリングして出力し、出力されたグローバルな特徴がフリーコネクティッドレイヤに入力されることにより、最終的に入力イメージに係わる認識結果を導出することができる。
図2は、一実施形態によるニューラルネットワークにおいて、入力フィーチャマップ及び出力フィーチャマップの関係について説明するための図面である。
図2を参照すれば、ニューラルネットワークの1レイヤ2において、第1フィーチャマップFM1は、入力フィーチャマップに該当し、第2フィーチャマップFM2は、出力フィーチャマップに該当する。該フィーチャマップは、入力データの多様な特徴が表現されたデータセットを意味する。フィーチャマップFM1,FM2は、二次元マトリックスのエレメントを有するか、あるいは三次元マトリックスのエレメントを有することができ、それぞれのエレメントには、ピクセル値が定義される。フィーチャマップFM1,FM2は、幅W(または、カラムともいう)、高さH(または、ロウという)及び深さDを有する。そのとき、深さDは、チャネルの個数に該当する。
第1フィーチャマップFM1及びカーネルに対するコンボルーション演算が行われ、その結果、第2フィーチャマップFM2が生成される。該カーネルは、各エレメントに定義されたウェートであり、第1フィーチャマップFM1とコンボルーション演算を行うことにより、第1フィーチャマップFM1の特徴をフィルタリングする。該カーネルは、第1フィーチャマップFM1をスライディングウィンドウ方式によってシフトしながら、第1フィーチャマップFM1のウィンドウ(または、タイルともいう)とコンボルーション演算を行う。各シフトの間、該カーネルに含まれたウェートそれぞれは、第1フィーチャマップFM1内の重畳されたウィンドウのピクセル値それぞれと乗じられて加えられる。第1フィーチャマップFM1とカーネルとがコンボルーションされることにより、第2フィーチャマップFM2の1つのチャネルが生成される。図1には、1つのカーネルが図示されているが、実際には、複数のカーネルが第1フィーチャマップFM1とそれぞれコンボルーションされ、複数チャネルの第2フィーチャマップFM2が生成される。
一方、第2フィーチャマップFM2は、次のレイヤの入力フィーチャマップに該当する。例えば、第2フィーチャマップFM2は、プーリング(または、サブサンプリング)レイヤの入力フィーチャマップにもなる。
図1及び図2においては、説明の便宜のために、ニューラルネットワーク1の概略的なアーキテクチャについてのみ図示されている。しかし、ニューラルネットワーク1は、図示されているところと異なり、さらに多かったり少なかったりする個数のレイヤ、フィーチャマップ、カーネルなどによっても具現され、その大きさも多様に変形されるということは、当該技術分野の当業者であるならば、理解することができるであろう。
図3は、一実施形態による、コンボルーションネットワーク及びデコンボルーションネットワークのアーキテクチャについて説明するための図面である。
映像中に含まれた制限された数の客体を分類(classification)したり、映像内の客体を認知し、客体を含む領域をバウンディングボックス(bounding box)で表示したりすることにより、客体を検出(detection)する技術とは異なり、セマンティックセグメンテーション(semantic segmentation(または、シーンセグメンテーション(scene segmentation))は、映像に含まれた特定客体の境界を正確に区別する技術である。すなわち、該セマンティックセグメンテーションは、映像に何(what)があるかということを確認する(semantic)だけではなく、どの位置(where)にあるか(location)まで正確に把握する技術である。
該コンボルーションネットワークにおいては、多くの段階のコンボルーションレイヤ、サブサンプリングレイヤ及びフリーコネクティッドレイヤで演算が行われることにより、フィーチャマップの大きさが徐々に小さくなる。それにより、コンボルーションネットワークで生成された出力フィーチャマップでは、入力イメージマップに含まれていた位置情報(または、空間情報)などが失われる。セマンティックセグメンテーションを遂行するために、コンボルーションネットワークで生成された出力フィーチャマップをデコンボルーションネットワークに入力し、フィーチャマップの大きさをさらに大きくすることにより、位置情報のようなディテール情報を再び生かすことができる。
図3を参照すれば、該ニューラルネットワークは、コンボルーションネットワーク31及びデコンボルーションネットワーク32で構成され、コンボルーションネットワーク31及びデコンボルーションネットワーク32を介して、セマンティックセグメンテーションが遂行される過程が図示される。
コンボルーションネットワーク31に、1216x352ピクセルサイズのイメージ30aが入力される。コンボルーションネットワーク31に入力された1216x352ピクセルサイズのイメージ30aは、さまざまな段階のコンボルーションレイヤ、プーリング(または、サブサンプリング)レイヤ及び/またはフリーコネクティッドレイヤを経て、32倍縮小された38x11ピクセルサイズのフィーチャマップとして出力される。コンボルーションネットワーク31で最終的に出力された38x11ピクセルサイズのフィーチャマップを利用し、入力イメージ30aの特徴が抽出される。しかし、入力イメージ30aに比べ、出力フィーチャマップの大きさが小さくなるようになり、入力イメージ30aのマップに含まれた位置情報などが、出力フィーチャマップにおいては、失われてしまう。
コンボルーションネットワーク31の38x11ピクセルサイズの出力フィーチャマップが、デコンボルーションネットワーク32に入力される。デコンボルーションネットワーク32に入力された38x11ピクセルサイズの入力フィーチャマップは、さまざまな段階のデコンボルーションレイヤ、アンプーリング(unpooling)レイヤなどを経て、32倍拡大された1216x352ピクセルサイズの出力フィーチャマップ30bとしても出力される。デコンボルーションネットワーク32において最終的に生成された出力フィーチャマップ30bは、入力イメージ30aとピクセルサイズが同じであり、出力フィーチャマップ30bには、入力イメージ30aの位置情報が含まれる。従って、出力フィーチャマップ30bを利用し、セマンティックセグメンテーションを遂行することができる。
図4は、一実施形態による、コンボルーション演算及びデコンボルーション演算について説明するための図面である。図4を参照すれば、コンボルーション演算は、次のように行われる。ウェート値を含む行列形態のカーネル(または、フィルタ)が、入力フィーチャマップをスライディングウィンドウ方式によってシフトしながら、入力フィーチャマップのウィンドウとコンボルーション演算が行われる。具体的には、コンボルーション演算過程において、入力フィーチャマップとカーネルとの要素別乗算(element-wise multiplication)演算が行われた後、要素別乗算結果の加算演算が行われる。入力フィーチャマップとカーネルとのコンボルーション演算が行われた結果、出力フィーチャマップが生成される。
デコンボルーション演算過程においては、入力フィーチャマップとカーネルとのスカラー行列乗算(scalar-matrix multiplication)演算が行われた後、ストライド(stride)間隔ほどシフトされたスカラー行列乗算演算結果間の要素サイズ加算(element-size summation)演算が行われる。入力フィーチャマップとカーネルとのデコンボルーション演算が行われた結果、出力フィーチャマップが生成される。
一方、コンボルーションネットワーク及びデコンボルーションネットワークを含むニューラルネットワークで行われる演算では、乗算器及び加算器を利用したMAC(multiply-accumulate)演算が大部分を占め、MAC演算遂行に最大の費用(expense)が消耗される。コンボルーションネットワークにおいては、コンボルーション演算器を利用し、MAC演算の一種であるコンボルーション演算を行う。しかし、コンボルーション演算のパターンとデコンボルーション演算のパターンとが互いに異なるので、デコンボルーションネットワークにおいては、コンボルーション演算器を利用して演算を行うことができない。
コンボルーションネットワーク及びデコンボルーションネットワークを含むニューラルネットワークを利用し、セマンティックセグメンテーションを遂行する場合、全体MAC演算量の半分は、コンボルーションネットワークで発生し、残り半分は、デコンボルーションネットワークで発生する。従って、演算コストを減らすためには、コンボルーション演算器を利用することで、コンボルーション演算だけではなく、デコンボルーション演算をも行うことができる処理方式が要求される。
図5は、一実施形態による、コンボルーション演算器を利用し、デコンボルーション演算を行う方式について説明するための図面である。図5を参照すれば、ニューラルネットワーク装置は、ニューラルネットワークのデコンボルーションレイヤで処理される、入力フィーチャマップ510及び第1カーネル520(または、初期カーネル)を獲得することができる。例えば、入力フィーチャマップ510及び第1カーネル520は、4x4サイズを有する行列形態のデータでもある。
ニューラルネットワーク装置は、第1カーネル520を構成する行列成分の配置を調整し、第2カーネル530を算出することができる。該ニューラルネットワーク装置は、トランスポーズ(transpose)演算を行い、第1カーネル520を構成する行列成分の配置を調整することができる。一実施形態において、該ニューラルネットワーク装置は、トランスポーズ演算を行うことにより、第1カーネル520を時計回り方向に180°ほど回転させることにより、第2カーネル530を算出することができる。
該ニューラルネットワーク装置は、第2カーネル530を分割し、サブカーネル540を生成することができる。該ニューラルネットワーク装置は、スプリット(split)演算を行い、第2カーネル530を分割することができる。該ニューラルネットワーク装置は、ストライド値に基づいて、第2カーネル530を分割することにより、サブカーネル540を生成することができ、一実施形態において、第2カーネル530を、ストライド値(例えば、2)を二乗した個数のサブカーネル540に分割することができる。
該ニューラルネットワーク装置は、コンボルーション演算器を利用し、入力フィーチャマップ510とサブカーネル540とのコンボルーション演算を行うことができる。該ニューラルネットワーク装置は、コンボルーション演算器を利用し、コンボルーションレイヤ及びフリーコネクティッドレイヤのコンボルーション演算だけではなく、デコンボルーションレイヤでの演算も行うことができる。
該ニューラルネットワーク装置は、コンボルーション演算の結果をマージすることにより、出力フィーチャマップを生成することができる。デコンボルーションレイヤにおいて、図5に図示された方式によって生成された出力フィーチャマップは、図4のデコンボルーション演算方式によって生成された出力フィーチャマップと同一でもある。
一実施形態において、該ニューラルネットワーク装置は、カーネルの大きさ、ストライド値のようなネットワーク構成情報に基づいて、入力フィーチャマップ及び出力フィーチャマップに、パディング(padding)方式及び/またはクリッピング(clipping)方式を適用することができる。該パディングは、入出力フィーチャマップに、既設定のパラメータ値のダミーデータ(dummy data)を追加する方法であり、該ダミーデータとしては、「0(zero)」が利用されもする。また、該クリッピングは、パディングの逆過程であり、入出力フィーチャマップにおいて、一定領域を切り捨てる過程である。
一方、トランスポーズ演算及びスプリット演算は、コンパイル段階で行われ、該ニューラルネットワーク装置は、メモリからサブカーネルデータを獲得することができるが、そのとき、該サブカーネルは、初期カーネルそれぞれを構成する行列成分の配置が調整された後、調整された初期カーネルが分割されることによって生成されたものでもある。
図6は、一実施形態による、デコンボルーションレイヤで行われるトランスポーズ演算及びスピリット演算の例示について説明するための図面である。
図6を参照すれば、ニューラルネットワーク装置は、デコンボルーションレイヤで処理される第1カーネル610(または、初期カーネル)をメモリから獲得することができる。該ニューラルネットワーク装置は、コンボルーション演算器を利用し、デコンボルーション演算を行うために、第1カーネル610を処理することができる。該ニューラルネットワーク装置は、第1カーネル610を構成する行列成分の配置を調整し、第2カーネル620を算出することができる。一実施形態において、該ニューラルネットワーク装置は、第1カーネル610に対してトランスポーズ演算を行い、第2カーネル620を算出することができる。
例えば、第1カーネル610が、4x4サイズを有する[aa ab ac ad;ba bb bc bd;ca cb cc cd;da db dc dd]行列である場合、該ニューラルネットワークは、第1カーネル610に対してトランスポーズ演算を行うことにより、4x4サイズを有する第2カーネル620である[dd dc db da;cd cc cb ca;bd bc bb ba;ad ac ab aa]行列を算出することができる。すなわち、第2カーネル620は、第1カーネル610を、時計回り方向に180°回転させた行列でもある。しかし、第2カーネル620算出方式は、それに制限されるものではない。
また、該ニューラルネットワーク装置は、算出された第2カーネル620を分割し、サブカーネル631,632,633,634を生成することができる。一実施形態において、ニューラルネットワーク装置は、スプリット演算を行い、第2カーネル620を分割することにより、サブカーネル631,632,633,634を生成することができる。
例えば、ストライド値が2である場合、該ニューラルネットワーク装置は、第2カーネル620の(4,4)成分である「aa」を基準点にし、「aa」から横方向に2並び離れている(4,2)成分である「ac」をサブカーネル631の成分として選択することができる。同様な方式で、ニューラルネットワーク装置は、「aa」から縦方向及び対角線方向に2並び離れている(2,4)成分及び(2,2)成分である「ca」及び「cc」をサブカーネル631の成分として選択することができる。すなわち、サブカーネル631は、[cc ca;ac aa]行列になる。その後、順次に、第2カーネル620で選択されていない(4,3),(3,4)及び(3,3)成分である「ab」、「ba」及び「bb」それぞれを基準点にして、サブカーネル632,633,634を生成することができる。
一方、該ニューラルネットワーク装置は、カーネルの大きさと係わりなく、ストライド値に基づいて、第2カーネル620が、いくつのサブカーネルに分割されるかということを決定することができる。一実施形態において、該ニューラルネットワーク装置は、第2カーネル620を、ストライド値を二乗した個数のサブカーネルに分割することができる。例えば、図6でのように、ストライド値が2である場合、分割されたサブカーネル631,632,633,634の数は、4個(=2)になる。
他の実施形態において、ストライド値に基づいて、第2カーネル620をサブカーネルに分割する過程において、第2カーネル620成分の個数が十分ではないこともある。例えば、該ストライド値が3である場合、分割されたサブカーネルの数は、9個(=3)になり、9個のサブカーネルを生成するために必要な成分の個数は、36個(=4(行列成分数)x9(サブカーネル数))になる。第2カーネル620成分の個数は、16個であるので、9個のサブカーネルを生成するためには、20個の成分が不足する。一実施形態において、不足な20個の成分に所定値を充填することができ、例えば、不足する20個の成分に「0」を充填することにより、最終的に9個のサブカーネル(36個成分)を生成することができる。
図7は、一実施形態によるデコンボルーションレイヤにおいて、コンボルーション演算を行う例示について説明するための図面である。図7を参照すれば、該ニューラルネットワーク装置は、デコンボルーションレイヤで処理される第1カーネル及び入力フィーチャマップ710を、メモリから獲得することができる。コンボルーション演算のパターンと、デコンボルーション演算のパターンとが互いに異なるので、デコンボルーションレイヤにおいて、コンボルーション演算器を利用するためには、第1カーネルに対する処理が先行されなければならない。
ニューラルネットワーク装置は、第1カーネルに対してトランスポーズ演算を行い、第1カーネルを構成する行列成分の配置を調整することにより、第2カーネル720を算出することができる。また、該ニューラルネットワーク装置は、第2カーネル720に対してスプリット演算を行い、第2カーネル720をサブカーネル721,722,723,724に分割することができる。
該ニューラルネットワーク装置は、サブカーネルを、スライディングウィンドウ方式によってシフトしながら、入力フィーチャマップ710のウィンドウとコンボルーション演算を行う。該ニューラルネットワーク装置は、1つのウィンドウと、複数のサブカーネルとのコンボルーション演算を行い、次のウィンドウと、複数のカーネルとのコンボルーション演算を行う方式を利用することができる。しかし、コンボルーション演算を行う方式は、それに制限されるものではない。
一実施形態において、該ニューラルネットワーク装置は、入力フィーチャマップ710の第1ウィンドウ711と第1サブカーネル721とのコンボルーション演算を行うことができる。例えば、第1ウィンドウ711の成分は、[AA AB;BA BB]であり、第1サブカーネル721の成分は[cc ca;ac aa]である場合、第1ウィンドウ711と第1サブカーネル721とのコンボルーション演算を行った結果、「AAxcc+ABxca+BAxac+Bbxaa」という値が算出される。また、第1ウィンドウ711と第2サブカーネル722とのコンボルーション演算を行うことができ、第1ウィンドウ711と第2サブカーネル722とのコンボルーション演算を行った結果、「AAxcd+ABxcb+BAxad+BBxab」という値が算出される。該ニューラルネットワーク装置は、そのような方式で、残りサブカーネル723,724と第1ウィンドウ711とのコンボルーション演算を行うことができる。
第1ウィンドウ711に対してコンボルーション演算を行った後、該ニューラルネットワーク装置は、スライディングウィンドウ方式により、第2ウィンドウ712とサブカーネル721,722,723,724とのコンボルーション演算を行うことができる。例えば、第2ウィンドウ712と第1サブカーネル721とのコンボルーション演算を行った結果、「ABxcc+ACxca+BBxac+BCxaa」という値が算出される。
ニューラルネットワーク装置は、入力フィーチャマップ710のウィンドウとサブカーネル721,722,723,724とのコンボルーション演算を行った結果値をマージすることにより、出力フィーチャマップ730を生成することができる。
該ニューラルネットワーク装置は、1つのサブカーネルと、1つのウィンドウとのコンボルーション演算結果を、出力フィーチャマップ730の1つの行列成分に対応させることにより、コンボルーション結果をマージすることができる。
一実施形態において、第1サブカーネル721ないし第4サブカーネル724、及び1つのウィンドウに対するコンボルーション演算を行えば、4個の値が算出される。該ニューラルネットワーク装置は、算出された4個の値を利用し、2x2行列を形成した後、形成された2x2行列を、出力フィーチャマップ730の行列成分に対応させることができる。
例えば、出力フィーチャマップ730の(1,1),(1,2),(2,1)及び(2,2)成分は、それぞれ、第1ウィンドウ711と、第1サブカーネル721ないし第4サブカーネル724とのコンボルーション演算結果に対応する。また、出力フィーチャマップ730の(1,3),(1,4),(2,3)及び(2,4)成分は、それぞれ、第2ウィンドウ712と、第1サブカーネル721ないし第4サブカーネル724とのコンボルーション演算結果に対応し、出力フィーチャマップ730の(3,1),(3,2),(4,1)及び(4,2)成分は、それぞれ、第3ウィンドウ713と、第1サブカーネル721ないし第4サブカーネル724とのコンボルーション演算結果に対応する。しかし、コンボルーション結果をマージする方式は、それらに制限されるものではない。
一実施形態において、生成された出力フィーチャマップ730は、次のデコンボルーションレイヤで処理される入力フィーチャマップとして使用される。
図8は、一実施形態による、デコンボルーションレイヤにおいて、サブカーネル別に並列にコンボルーション演算を行う例示について説明するための図面である。図8を参照すれば、ニューラルネットワーク装置は、1つのウィンドウと、複数のサブカーネルとのコンボルーション演算を行う方式の代わりに、入力フィーチャマップ810の複数のウィンドウと、1つのサブカーネルとのコンボルーション演算を行う方式を利用することができる。すなわち、該ニューラルネットワーク装置は、サブカーネル別に、入力フィーチャマップ810に対してシフトし、入力フィーチャマップ810とコンボルーション演算を行うことにより、コンボルーション演算を並列に処理することができる。
一実施形態において、ニューラルネットワーク装置は、第1サブカーネル821を入力フィーチャマップ810に対してシフトし、入力フィーチャマップ810の複数のウィンドウとコンボルーション演算を行うことにより、第1中間フィーチャマップ831を生成することができる。同様な方式で、該ニューラルネットワーク装置は、入力フィーチャマップ810の複数のウィンドウと、第2サブカーネル822ないし第4サブカーネル824とのコンボルーション演算を行い、第2中間フィーチャマップ832ないし第4中間フィーチャマップ834を生成することができる。
例えば、入力フィーチャマップ810の第1ウィンドウ811と第1サブカーネル821とのコンボルーション演算を行った結果は、第1中間フィーチャマップ831の(1,1)成分に対応し、第2ウィンドウ812と第1サブカーネル821とのコンボルーション演算を行った結果は、第1中間フィーチャマップ831の(1,2)成分に対応する。
また、該ニューラルネットワーク装置は、サブカーネル別に、入力フィーチャマップとのコンボルーション演算を並列に遂行し、中間フィーチャマップ生成することができる。該ニューラルネットワーク装置は、生成された複数の中間フィーチャマップをマージすることにより、出力フィーチャマップ840を生成することができる。
一実施形態において、該ニューラルネットワーク装置は、入力フィーチャマップの行列サイズ、及び中間フィーチャマップの個数に基づいて、中間フィーチャマップをマージすることができる。例えば、該ニューラルネットワーク装置は、第1中間フィーチャマップ831の行列成分を、出力フィーチャマップ840の(2a−1,2b−1)成分値として適用することができ、第2中間フィーチャマップ832の行列成分を、出力フィーチャマップ840の(2a−1,2b)成分値として適用することができ、第3中間フィーチャマップ833の行列成分を、出力フィーチャマップ840の(2a,2b−1)成分値として適用することができ、第4中間フィーチャマップ834の行列成分を、出力フィーチャマップ840の(2a,2b)成分値として適用することができる(ここで、1≦a≦4(入力フィーチャマップの行数)、1≦b≦4(入力フィーチャマップの列数))。すなわち、第1フィーチャマップ831ないし第4中間フィーチャマップ834の(1,1)成分は、出力フィーチャマップ840の成分841に対応し、第1フィーチャマップ831ないし第4中間フィーチャマップ834の(1,2)成分は、出力フィーチャマップ840の成分842に対応する。
しかし、並列的コンボルーション演算の結果として生成された中間フィーチャマップをマージする方式は、それらに制限されるものではない。
図9は、一実施形態による、ニューラルネットワーク装置のハードウェア構成を図示したブロック図である。
ニューラルネットワーク装置90は、PC(personal computer)、サーバデバイス、モバイルデバイス、埋め込み(embedded)デバイスのような多種のデバイスによっても具現され、具体的な例として、ニューラルネットワークを利用した音声認識、映像認識、映像分類などを遂行するスマートフォン、タブレットデバイス、AR(augmented reality)デバイス、IoT(Internet of Things)デバイス、自律走行自動車、ロボティックス、医療機器などに該当するが、それらに制限されるものではない。さらに、ニューラルネットワーク装置90は、前述のようなデバイスに搭載される専用ハードウェア加速器(HW accelerator)に該当し、ニューラルネットワーク装置90は、ニューラルネットワーク駆動のための専用モジュールであるNPU(neural processing unit)、TPU(tensor processing unit)、Neural Engineのようなハードウェア加速器でもあるが、それらに制限されるものではない。
図9を参照すれば、ニューラルネットワーク装置90は、プロセッサ910及びメモリ920を含む。図9に図示されたニューラルネットワーク装置90には、本実施形態と係わる構成要素だけが図示されている。従って、ニューラルネットワーク装置90には、図9に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、当該技術分野の当業者に自明であろう。
プロセッサ910は、ニューラルネットワーク装置90を実行するための全般的な機能を制御する役割を行う。例えば、プロセッサ910は、ニューラルネットワーク装置90内のメモリ920に保存されたプログラムを実行することにより、ニューラルネットワーク装置90を全般的に制御する。プロセッサ910は、ニューラルネットワーク装置90内に具備されたCPU(central processing unit)、GPU(graphics processing unit)、AP(application processor)などによっても具現されるが、それらに制限されるものではない。
メモリ920は、ニューラルネットワーク装置90内で処理される各種データを保存するハードウェアであり、例えば、メモリ920は、ニューラルネットワーク装置90で処理されたデータ及び処理されるデータを保存することができる。また、メモリ920は、ニューラルネットワーク装置90によって駆動されるアプリケーション、ドライバなどを保存することができる。メモリ920は、DRAM(dynamic random access memory)・SRAM(static random access memory)のようなRAM(random access memory)、ROM(read-only memory)、EEPROM(electrically erasable programmable read-only memory)、CD−ROM(compact disc read only memory)、ブルーレイ(登録商標(Blu-ray))、または他の光学ディスクストレージ、HDD(hard disk drive)、SSD(solid-state drive)、またはフラッシュメモリを含んでもよい。
プロセッサ910は、メモリ920からニューラルネットワークデータ、例えば、イメージデータ、フィーチャマップデータ、カーネルデータなどをリード/ライト(read/write)し、リード/ライトされたデータを利用し、ニューラルネットワークを実行する。該ニューラルネットワークが実行されるとき、プロセッサ910は、出力フィーチャマップに係わるデータを生成するために、入力フィーチャマップとカーネルとのコンボルーション演算を反復的に遂行する。そのとき、入力フィーチャマップのチャネル数、カーネルのチャネル数、入力フィーチャマップの大きさ、カーネルの大きさ、値の精度(precision)などの多様なファクタに依存してコンボルーション演算の演算量が決定される。図1に図示されたニューラルネットワーク1と異なり、ニューラルネットワーク装置90で駆動される実際のニューラルネットワークは、さらに複雑なアーキテクチャによっても具現される。それにより、プロセッサ910は、数億から数百億に至るほどに非常に多くの演算量(operation count)のコンボルーション演算を行い、プロセッサ910がコンボルーション演算のために、メモリ920にアクセスする頻度が共に飛躍的に増加してしまう。そのような演算量負担により、比較的処理性能が低いスマートフォン・タブレット・ウェアラブルデバイスのようなモバイルデバイス、埋め込みデバイスなどでは、ニューラルネットワークの処理が円滑ではない。
一方、該ニューラルネットワークにおいてカーネルは、浮動小数点(floating point)タイプのウェート、または固定小数点(fixed point)タイプのウェートを有するか、あるいはバイナリー(binary)・ウェートカーネルまたはターナリー(ternary)・ウェートカーネルに該当する。すなわち、該ニューラルネットワークにおいてカーネルは、ニューラルネットワークの活用目的、デバイスの性能など多様な要因を考慮して多様に定義される。
プロセッサ910は、コンボルーションネットワーク及びデコンボルーションネットワークを駆動することができる。該コンボルーションネットワーク及び該デコンボルーションネットワークを含むニューラルネットワークを利用し、セマンティックセグメンテーションを遂行する場合、全体MAC演算量の半分は、コンボルーションネットワークで発生し、残り半分は、デコンボルーションネットワークで発生する。従って、演算コストを減らすためには、コンボルーション演算器を利用し、コンボルーション演算だけではなく、デコンボルーション演算を行うことができる処理方式が要求される。
プロセッサ910は、コンボルーションネットワークにおいて、コンボルーション演算器を利用し、コンボルーション演算(または、MAC演算)を行う。しかし、コンボルーション演算のパターンと、デコンボルーション演算のパターンとが互いに異なるので、デコンボルーションネットワークにおいて、コンボルーション演算器を利用して演算を行うためには、デコンボルーションネットワークで使用されるカーネルに対する処理が先行されなければならない。
プロセッサ910は、デコンボルーションレイヤで処理される、イメージデータ、フィーチャマップデータ及び第1カーネル(または、初期カーネル)データを、メモリ920から獲得することができる。
一実施形態において、コンボルーション演算器を利用して演算を行うために、プロセッサ910は、第1カーネルデータを処理することができる。プロセッサ910は、第1カーネルそれぞれを構成する行列成分の配置を調整し、第2カーネルを算出した後、第2カーネルそれぞれを分割してサブカーネルを生成することができる。その後、プロセッサ910は、コンボルーション演算器を利用し、フィーチャマップとサブカーネルとのコンボルーション演算を行うことができる。また、プロセッサ910は、コンボルーション演算の結果をマージすることにより、出力フィーチャマップを生成することができる。
他の実施形態において、カーネルに対する処理は、コンパイル段階で行われる。すなわち、プロセッサ910は、メモリ920からサブカーネルデータを獲得することができる。サブカーネルは、初期カーネルそれぞれを構成する行列成分の配置が調整された後、調整された初期カーネルが分割されることによって生成されたものでもある。
図10は、一実施形態によるニューラルネットワーク装置において、デコンボルーション演算を行う方法のフローチャートである。図10に図示された、ニューラルネットワーク装置においてデコンボルーション演算を行う方法は、前述の図面で説明された実施形態に係わるので、以下、省略された内容であるとしても、前述の図面で説明された内容は、図10の方法にも適用される。
図10を参照すれば、段階1010において、ニューラルネットワーク装置は、ニューラルネットワークのデコンボルーションレイヤで処理される、入力フィーチャマップ及び第1カーネルを獲得することができる。
段階1020において、該ニューラルネットワーク装置は、第1カーネルそれぞれを構成する行列成分の配置を調整し、第2カーネルを算出することができる。ニューラルネットワーク装置は、トランスポーズ演算を行い、第1カーネルそれぞれを構成する行列成分の配置を調整することができる。
段階1030において、該ニューラルネットワーク装置は、第2カーネルそれぞれを分割し、サブカーネルを生成することができる。該ニューラルネットワーク装置は、スプリット演算を行い、第2カーネルそれぞれを分割することができる。
該ニューラルネットワーク装置は、ストライド値に基づいて、第2カーネルそれぞれを分割することにより、サブカーネルを生成することができる。一実施形態において、ニューラルネットワーク装置は、第2カーネルそれぞれを、ストライド値を二乗した個数のサブカーネルに分割することができる。
段階1040において、該ニューラルネットワーク装置は、コンボルーション演算器を利用し、入力フィーチャマップとサブカーネルとのコンボルーション演算を行うことができる。該ニューラルネットワーク装置は、コンボルーション演算器を利用し、コンボルーションレイヤ、フリーコネクティッドレイヤ及びデコンボルーションレイヤにおいて、コンボルーション演算を行うことができる。
段階1050において、該ニューラルネットワーク装置は、コンボルーション演算の結果をマージすることにより、出力フィーチャマップを生成することができる。
一実施形態において、該ニューラルネットワーク装置は、1つのウィンドウと、複数のサブカーネルとのコンボルーション演算を行い、次のウィンドウと、複数のカーネルとのコンボルーション演算を行う方式で、コンボルーション演算を行うことができる。該ニューラルネットワーク装置は、入力フィーチャマップのウィンドウと、サブカーネルとのコンボルーション演算を行った結果値をマージすることにより、出力フィーチャマップを生成することができる。
他の実施形態において、該ニューラルネットワーク装置は、サブカーネルそれぞれを入力フィーチャマップに対してシフトし、入力フィーチャマップとコンボルーション演算を行うことにより、サブカーネルを並列に処理することができる。また、該ニューラルネットワーク装置は、並列に処理された結果をマージすることにより、出力フィーチャマップを生成することができる。
一方、段階1020及び段階1030は、コンパイル段階でも遂行される。該ニューラルネットワーク装置は、メモリからサブカーネルデータを獲得することができる。該サブカーネルは、初期カーネルそれぞれを構成する行列成分の配置が調整された後、調整された初期カーネルが分割されることによって生成されたものでもある。
本実施形態は、コンピュータによって実行されるプログラムモジュールのようなコンピュータによって実行可能な命令語を含む記録媒体の形態によっても具現される。コンピュータで読み取り可能な可能媒体は、コンピュータによってアクセスされる任意の可用媒体でもあり、揮発性及び不揮発性の媒体、分離型及び非分離型の媒体をいずれも含む。また、該コンピュータで読み取り可能な媒体は、コンピュータ記録媒体及びコンピュータ通信媒体をいずれも含んでもよい。該コンピュータ記録媒体は、コンピュータで読み取り可能な命令語、データ構造、プログラムモジュール、またはその他データのような情報の保存のための任意の方法または技術によって具現された揮発性及び不揮発性、分離型及び非分離型の媒体をいずれも含む。該通信媒体は、典型的に、コンピュータで読み取り可能な可能命令語、データ構造、プログラムモジュールのような変調されたデータ信号のその他データ、またはその他伝送メカニズムを含み、任意の情報伝達媒体を含む。
また、本明細書において、「部」は、プロセッサまたは回路のようなハードウェア構成(hardware component)、及び/またはプロセッサのようなハードウェア構成によって実行されるソフトウェア構成(software component)でもある。
前述の本明細書の説明は、例示のためのものであり、本明細書の内容が属する技術分野の当業者であるならば、本発明の技術的思想や、必須な特徴を変更せずとも、他の具体的な形態で容易に変形が可能であるということを理解することができるであろう。従って、以上で記述した実施形態は、全ての面において例示的なものであり、限定的ではないと理解しなければならない。例えば、単一型と説明されている各構成要素は、分散されて実施されもし、同様に、分散されていると説明されている構成要素も、結合された形態で実施されもする。
本実施形態の範囲は、前述の詳細な説明よりは、特許請求の範囲によって示され、特許請求の範囲の意味及び範囲、並びにその均等概念から導き出される全ての変更、または変形された形態が含まれると解釈されなければならない。
本発明の、ニューラルネットワークのデコンボルーション演算を行う装置及びその方法は、例えば、情報分析関連の技術分野に効果的に適用可能である。
1 ニューラルネットワーク
2 ニューラルネットワークのレイヤ
30a 入力イメージ
30b,730,840 出力フィーチャマップ
31 コンボリューションネットワーク
32 デコンボリューションネットワーク
510,710,810 入力フィーチャマップ
520,610 第1カーネル
530,620,720 第2カーネル
540,631,632,633,634 サブカーネル
721,821 第1サブカーネル
722,822 第2サブカーネル
723,823 第3サブカーネル
724,824 第4サブカーネル
831 第1中間フィーチャマップ
832 第2中間フィーチャマップ
833 第3中間フィーチャマップ
834 第4中間フィーチャマップ
90 ニューラルネットワーク装置
910 プロセッサ
920 メモリ

Claims (19)

  1. ニューラルネットワークにおいてデコンボルーション演算を実行する装置において、
    少なくとも1つのプログラムが保存されたメモリと、
    前記少なくとも1つのプログラムを実行することにより、演算を実行するプロセッサと、を含み、
    前記プロセッサは、
    前記ニューラルネットワークのデコンボルーションレイヤで処理される入力フィーチャマップ及び第1カーネルを前記メモリから獲得し、
    前記第1カーネルそれぞれを構成する行列成分の配置を調整し、第2カーネルを算出し、
    前記第2カーネルそれぞれを分割してサブカーネルを生成し、
    コンボルーション演算器を利用し、前記入力フィーチャマップ及び前記サブカーネルのコンボルーション演算を行い、
    前記コンボルーション演算の結果をマージすることによって出力フィーチャマップを生成する装置。
  2. 前記プロセッサは、
    ストライド値を前記メモリから獲得し、
    前記ストライド値に基づいて、前記第2カーネルそれぞれを分割することにより、前記サブカーネルを生成することを特徴とする請求項1に記載の装置。
  3. 前記プロセッサは、
    前記第2カーネルそれぞれを、前記ストライド値を二乗した個数のサブカーネルに分割することを特徴とする請求項2に記載の装置。
  4. 前記プロセッサは、
    トランスポーズ演算を行い、前記第1カーネルそれぞれを構成する行列成分の配置を調整し、
    スプリット演算を行い、前記第2カーネルそれぞれを分割することを特徴とする請求項1ないし3のうちの何れか一項に記載の装置。
  5. 前記プロセッサは、
    前記コンボルーション演算器を利用し、コンボルーションレイヤ及びフリーコネクティッドレイヤにおいて、コンボルーション演算を行うことを特徴とする請求項1ないし4のうちの何れか一項に記載の装置。
  6. 前記プロセッサは、
    前記サブカーネルそれぞれを、前記入力フィーチャマップに対してシフトし、前記入力フィーチャマップとコンボルーション演算を行うことにより、前記サブカーネルを並列に処理し、
    前記並列に処理された結果をマージすることにより、出力フィーチャマップを生成することを特徴とする請求項1ないし5のうちの何れか一項に記載の装置。
  7. ニューラルネットワークにおいてデコンボルーション演算を実行する装置において、
    少なくとも1つのプログラムが保存されたメモリと、
    前記少なくとも1つのプログラムを実行することにより、演算を実行するプロセッサと、を含み、
    前記プロセッサは、
    前記ニューラルネットワークのデコンボルーションレイヤで処理される入力フィーチャマップ及びサブカーネルを前記メモリから獲得し、
    コンボルーション演算器を利用し、前記入力フィーチャマップと前記サブカーネルとのコンボルーション演算を行い、
    前記コンボルーション演算の結果をマージすることにより、出力フィーチャマップを生成し、
    前記メモリから獲得された前記サブカーネルは、初期カーネルそれぞれを構成する行列成分の配置が調整された後、前記調整された初期カーネルが分割されることによって生成されるものである、装置。
  8. 前記初期カーネルそれぞれに対して分割された前記サブカーネルの個数は、前記メモリに保存されたストライド値に基づいて決定されることを特徴とする請求項7に記載の装置。
  9. 前記サブカーネルの個数は、前記ストライド値を二乗した数であることを特徴とする請求項8に記載の装置。
  10. 前記サブカーネルは、
    トランスポーズ演算が行われ、前記初期カーネルそれぞれを構成する行列成分の配置が調整された後、スプリット演算が行われ、前記調整された初期カーネルが分割されることによって生成されることを特徴とする請求項7ないし9のうちの何れか一項に記載の装置。
  11. 前記プロセッサは、
    前記コンボルーション演算器を利用し、コンボルーションレイヤ及びフリーコネクティッドレイヤにおいて、コンボルーション演算を行うことを特徴とする請求項7ないし10のうちの何れか一項に記載の装置。
  12. 前記プロセッサは、
    前記サブカーネルそれぞれを、前記入力フィーチャマップに対してシフトし、前記入力フィーチャマップとコンボルーション演算を行うことにより、前記サブカーネルを並列に処理し、
    前記並列に処理された結果をマージすることにより、出力フィーチャマップを求めることを特徴とする請求項7ないし11のうちの何れか一項に記載の装置。
  13. ニューラルネットワーク装置でデコンボルーション演算を行う方法において、
    ニューラルネットワークのデコンボルーションレイヤで処理される入力フィーチャマップ及び第1カーネルを獲得する段階と、
    前記第1カーネルそれぞれを構成する行列成分の配置を調整し、第2カーネルを算出する段階と、
    前記第2カーネルそれぞれを分割してサブカーネルを生成する段階と、
    コンボルーション演算器を利用し、前記入力フィーチャマップと前記サブカーネルとのコンボルーション演算を行う段階と、
    前記コンボルーション演算の結果をマージすることによって出力フィーチャマップを生成する段階と、を含む方法。
  14. 前記サブカーネルを生成する段階は、
    ストライド値に基づいて、前記第2カーネルそれぞれを分割することにより、前記サブカーネルを生成する段階を含むことを特徴とする請求項13に記載の方法。
  15. 前記第2カーネルそれぞれを、前記ストライド値を二乗した個数のサブカーネルに分割することを特徴とする請求項14に記載の方法。
  16. 前記第2カーネルを算出する段階は、
    トランスポーズ演算を行い、前記第1カーネルそれぞれを構成する行列成分の配置を調整する段階を含み、
    前記サブカーネルを生成する段階は、
    スプリット演算を行い、前記第2カーネルそれぞれを分割する段階を含むことを特徴とする請求項13ないし15のうちの何れか一項に記載の方法。
  17. 前記方法は、
    前記コンボルーション演算器を利用し、コンボルーションレイヤ及びフリーコネクティッドレイヤにおいて、コンボルーション演算を行う段階をさらに含むことを特徴とする請求項13ないし16のうちの何れか一項に記載の方法。
  18. 前記出力フィーチャマップを生成する段階は、
    前記サブカーネルそれぞれを、前記入力フィーチャマップに対してシフトし、前記入力フィーチャマップとコンボルーション演算を行うことにより、前記サブカーネルを並列に処理する段階と、
    前記並列に処理された結果をマージすることにより、出力フィーチャマップを生成する段階と、を含むことを特徴とする請求項13ないし17のうちの何れか一項に記載の方法。
  19. 請求項13ないし18のうちいずれか一項に記載の方法をコンピュータに実行させるコンピュータプログラム。
JP2018208043A 2017-11-07 2018-11-05 ニューラルネットワークにおいてデコンボルーション演算を実行する装置及びその方法 Active JP7132824B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170147617A KR20190051697A (ko) 2017-11-07 2017-11-07 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법
KR10-2017-0147617 2017-11-07

Publications (2)

Publication Number Publication Date
JP2019087252A true JP2019087252A (ja) 2019-06-06
JP7132824B2 JP7132824B2 (ja) 2022-09-07

Family

ID=64051355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018208043A Active JP7132824B2 (ja) 2017-11-07 2018-11-05 ニューラルネットワークにおいてデコンボルーション演算を実行する装置及びその方法

Country Status (5)

Country Link
US (3) US10885433B2 (ja)
EP (1) EP3480740A1 (ja)
JP (1) JP7132824B2 (ja)
KR (1) KR20190051697A (ja)
CN (1) CN109754064B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021034039A (ja) * 2019-08-13 2021-03-01 三星電子株式会社Samsung Electronics Co.,Ltd. ニューラルネットワーク方法及び装置
JP7461081B2 (ja) 2021-03-18 2024-04-03 北京地平▲線▼机器人技▲術▼研▲発▼有限公司 畳み込みハードウェアによる特徴データに対する逆畳み込み処理方法及び装置

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687762B2 (en) 2018-02-27 2023-06-27 Stmicroelectronics S.R.L. Acceleration unit for a deep learning engine
US11586907B2 (en) 2018-02-27 2023-02-21 Stmicroelectronics S.R.L. Arithmetic unit for deep learning acceleration
US10977854B2 (en) 2018-02-27 2021-04-13 Stmicroelectronics International N.V. Data volume sculptor for deep learning acceleration
US11049000B2 (en) * 2018-03-27 2021-06-29 International Business Machines Corporation Distributed state via cascades of tensor decompositions and neuron activation binding on neuromorphic hardware
US11025907B2 (en) * 2019-02-28 2021-06-01 Google Llc Receptive-field-conforming convolution models for video coding
KR20200066952A (ko) 2018-12-03 2020-06-11 삼성전자주식회사 확장 컨벌루션 연산을 수행하는 장치 및 방법
GB2582352B (en) * 2019-03-20 2021-12-15 Imagination Tech Ltd Methods and systems for implementing a convolution transpose layer of a neural network
US11880760B2 (en) 2019-05-01 2024-01-23 Samsung Electronics Co., Ltd. Mixed-precision NPU tile with depth-wise convolution
KR102178238B1 (ko) * 2019-05-30 2020-11-12 한국생산기술연구원 회전 커널을 이용한 머신러닝 기반 결함 분류 장치 및 방법
CN112116083B (zh) * 2019-06-20 2024-03-08 地平线(上海)人工智能技术有限公司 神经网络加速器及其检测方法和装置
KR102097294B1 (ko) * 2019-07-19 2020-04-06 (주)지와이네트웍스 화염 판단을 위한 신경망 모델의 학습 및 검출 방법, 및 이를 수행하는 장치
CN112306555A (zh) 2019-07-30 2021-02-02 北京百度网讯科技有限公司 并行提取多个卷积窗中的图像数据的方法、装置、设备以及计算机可读存储介质
KR102147912B1 (ko) * 2019-08-13 2020-08-25 삼성전자주식회사 프로세서 칩 및 그 제어 방법들
CN112446474B (zh) 2019-08-31 2022-11-22 安徽寒武纪信息科技有限公司 芯片和多芯片***及电子设备和数据传输方法
CN112446464B (zh) * 2019-08-31 2023-05-30 安徽寒武纪信息科技有限公司 一种神经网络卷积运算方法、装置以及相关产品
CN114450699A (zh) * 2019-09-24 2022-05-06 阿里巴巴集团控股有限公司 由处理单元实现的方法、可读存储介质和处理单元
US11681902B2 (en) * 2019-09-27 2023-06-20 Amazon Technologies, Inc. Transposed convolution using systolic array
CN112784207B (zh) * 2019-11-01 2024-02-02 中科寒武纪科技股份有限公司 运算方法及相关产品
KR20210071471A (ko) 2019-12-06 2021-06-16 삼성전자주식회사 뉴럴 네트워크의 행렬 곱셈 연산을 수행하는 장치 및 방법
US20210182025A1 (en) * 2019-12-12 2021-06-17 Samsung Electronics Co., Ltd. Accelerating 2d convolutional layer mapping on a dot product architecture
US11625605B2 (en) * 2019-12-20 2023-04-11 Nvidia Corporation Selecting computational kernel variants using neural networks
KR20210082970A (ko) * 2019-12-26 2021-07-06 삼성전자주식회사 컨볼루션 연산을 수행하는 방법 및 장치
CN113222136A (zh) * 2020-01-21 2021-08-06 北京希姆计算科技有限公司 卷积运算方法及芯片
US11630991B2 (en) * 2020-02-04 2023-04-18 Apple Inc. Broadcasting mode of planar engine for neural processor
KR20210101903A (ko) 2020-02-11 2021-08-19 삼성전자주식회사 전자 장치 및 그 제어 방법
TWI733334B (zh) * 2020-02-15 2021-07-11 財團法人工業技術研究院 卷積神經網路運算裝置及其運算的方法
US11593609B2 (en) * 2020-02-18 2023-02-28 Stmicroelectronics S.R.L. Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks
US11507831B2 (en) 2020-02-24 2022-11-22 Stmicroelectronics International N.V. Pooling unit for deep learning acceleration
KR102428033B1 (ko) * 2020-02-28 2022-08-02 오픈엣지테크놀로지 주식회사 트랜스포즈드 콘볼루션 하드웨어 가속장치
CN111340680B (zh) * 2020-03-20 2023-06-02 光子算数(北京)科技有限责任公司 一种卷积计算方法及卷积运算电路
CN111428189B (zh) * 2020-04-01 2023-09-22 南京大学 一种用于反卷积运算的数据预处理方法及装置
CN111475321B (zh) * 2020-05-08 2024-04-26 中国人民解放军国防科技大学 一种基于迭代抽象分析的神经网络安全性质验证方法
DE102020208765A1 (de) 2020-07-14 2022-01-20 Robert Bosch Gesellschaft mit beschränkter Haftung Bildklassifikator mit variablen rezeptiven Feldern in Faltungsschichten
US11842273B2 (en) * 2020-09-23 2023-12-12 Arm Limited Neural network processing
US20220121953A1 (en) * 2020-10-21 2022-04-21 Nec Laboratories America, Inc. Multi-task learning via gradient split for rich human analysis
TWI768555B (zh) * 2020-11-23 2022-06-21 威盛電子股份有限公司 調整神經網路輸入資料的系統及方法
CN112465133B (zh) * 2020-11-25 2022-12-09 安徽寒武纪信息科技有限公司 控制流多核并行方法、计算机设备和存储介质
CN112614175A (zh) * 2020-12-21 2021-04-06 苏州拓驰信息技术有限公司 基于特征去相关的用于封孔剂注射器的注射参数确定方法
CN114764615A (zh) * 2021-01-13 2022-07-19 华为技术有限公司 卷积运算的实现方法、数据处理方法及装置
US11195080B1 (en) 2021-03-29 2021-12-07 SambaNova Systems, Inc. Lossless tiling in convolution networks—tiling configuration
US11263170B1 (en) 2021-03-29 2022-03-01 SambaNova Systems, Inc. Lossless tiling in convolution networks—padding before tiling, location-based tiling, and zeroing-out
US11250061B1 (en) 2021-03-29 2022-02-15 SambaNova Systems, Inc. Lossless tiling in convolution networks—read-modify-write in backward pass
US11227207B1 (en) * 2021-03-29 2022-01-18 SambaNova Systems, Inc. Lossless tiling in convolution networks—section boundaries
US11854253B2 (en) * 2021-06-26 2023-12-26 Intel Corporation Apparatus, method, and computer-readable medium for robust response to adversarial perturbations using hyperdimensional vectors
EP4250204A3 (en) * 2021-07-19 2023-12-06 ALE International Method and system for calculating and sharing a user occupancy status relative to use of multimedia applications
KR102395744B1 (ko) * 2021-09-16 2022-05-09 오픈엣지테크놀로지 주식회사 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치
CN113641952B (zh) * 2021-10-14 2022-02-08 北京壁仞科技开发有限公司 卷积设备、卷积方法、矩阵拆聚装置以及矩阵拆聚方法
CN114611685A (zh) * 2022-03-08 2022-06-10 安谋科技(中国)有限公司 神经网络模型中的特征处理方法、介质、设备和程序产品
CN114625378A (zh) * 2022-03-28 2022-06-14 北京地平线机器人技术研发有限公司 神经网络模型的编译方法、装置及计算机可读存储介质
WO2024010437A1 (ko) * 2022-07-08 2024-01-11 주식회사 딥엑스 신경 프로세싱 유닛 및 이의 동작 방법
WO2024041407A1 (en) * 2022-08-23 2024-02-29 Mediatek Inc. Neural network feature map translation for video coding
US20230016455A1 (en) * 2022-09-26 2023-01-19 Alessandro Palla Decomposing a deconvolution into multiple convolutions

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004056120A1 (en) * 2002-12-17 2004-07-01 Let It Wave Processing or compressing n-dimensional signals with warped wavelet packets and bandelets
US7747070B2 (en) 2005-08-31 2010-06-29 Microsoft Corporation Training convolutional neural networks on graphics processing units
EP2403234A1 (en) * 2010-06-29 2012-01-04 Koninklijke Philips Electronics N.V. Method and system for constructing a compound image from data obtained by an array of image capturing devices
WO2016054079A1 (en) * 2014-09-29 2016-04-07 Zyomed Corp. Systems and methods for blood glucose and other analyte detection and measurement using collision computing
US10262259B2 (en) 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
US20160328645A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10373050B2 (en) 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US9747546B2 (en) 2015-05-21 2017-08-29 Google Inc. Neural network processor
US10083395B2 (en) 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
US10019657B2 (en) 2015-05-28 2018-07-10 Adobe Systems Incorporated Joint depth estimation and semantic segmentation from a single image
US10417555B2 (en) 2015-05-29 2019-09-17 Samsung Electronics Co., Ltd. Data-optimized neural network traversal
US20160358069A1 (en) 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
US10540588B2 (en) 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US11074492B2 (en) * 2015-10-07 2021-07-27 Altera Corporation Method and apparatus for performing different types of convolution operations with the same processing elements
US11580375B2 (en) 2015-12-31 2023-02-14 Kla-Tencor Corp. Accelerated training of a machine learning based model for semiconductor applications
US11170294B2 (en) 2016-01-07 2021-11-09 Intel Corporation Hardware accelerated machine learning
US9547821B1 (en) 2016-02-04 2017-01-17 International Business Machines Corporation Deep learning for algorithm portfolios
EP3330898A1 (en) 2016-12-01 2018-06-06 Altera Corporation Method and apparatus for performing different types of convolution operations with the same processing elements
CN106991651B (zh) 2016-12-12 2019-10-29 南昌大学 基于合成分析反卷积网络的快速成像方法及***
CN106650699B (zh) * 2016-12-30 2019-09-17 中国科学院深圳先进技术研究院 一种基于卷积神经网络的人脸检测方法及装置
US10832135B2 (en) 2017-02-10 2020-11-10 Samsung Electronics Co., Ltd. Automatic thresholds for neural network pruning and retraining
US9953236B1 (en) * 2017-03-10 2018-04-24 TuSimple System and method for semantic segmentation using dense upsampling convolution (DUC)
US10671349B2 (en) * 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
JP6935503B2 (ja) 2017-09-20 2021-09-15 株式会社ダイヤメット 焼結含油軸受
US11709911B2 (en) * 2018-10-03 2023-07-25 Maxim Integrated Products, Inc. Energy-efficient memory systems and methods

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHI, WENZHE ET AL.: "Is the deconvolution layer the same as a convolutional layer?", ARXIV, JPN6022009423, 22 September 2016 (2016-09-22), pages 1 - 7, ISSN: 0004726704 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021034039A (ja) * 2019-08-13 2021-03-01 三星電子株式会社Samsung Electronics Co.,Ltd. ニューラルネットワーク方法及び装置
JP7114659B2 (ja) 2019-08-13 2022-08-08 三星電子株式会社 ニューラルネットワーク方法及び装置
JP7461081B2 (ja) 2021-03-18 2024-04-03 北京地平▲線▼机器人技▲術▼研▲発▼有限公司 畳み込みハードウェアによる特徴データに対する逆畳み込み処理方法及び装置

Also Published As

Publication number Publication date
US20190138898A1 (en) 2019-05-09
US11663473B2 (en) 2023-05-30
US20230252298A1 (en) 2023-08-10
KR20190051697A (ko) 2019-05-15
JP7132824B2 (ja) 2022-09-07
US11960999B2 (en) 2024-04-16
EP3480740A1 (en) 2019-05-08
CN109754064A (zh) 2019-05-14
CN109754064B (zh) 2024-04-12
US10885433B2 (en) 2021-01-05
US20210117791A1 (en) 2021-04-22

Similar Documents

Publication Publication Date Title
JP2019087252A (ja) ニューラルネットワークにおいてデコンボルーション演算を実行する装置及びその方法
CN108073981B (zh) 处理卷积神经网络的方法和设备
US10360494B2 (en) Convolutional neural network (CNN) system based on resolution-limited small-scale CNN modules
KR102216019B1 (ko) 콘볼루션 뉴럴 네트워크들을 위한 효율적인 데이터 레이아웃들
JP7234185B2 (ja) データを処理する方法及びその装置
KR20190066473A (ko) 뉴럴 네트워크에서 컨볼루션 연산을 처리하는 방법 및 장치
CN107368886B (zh) 基于重复使用小规模卷积神经网络模块的神经网络***
KR102452951B1 (ko) 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치
US11562046B2 (en) Neural network processor using dyadic weight matrix and operation method thereof
JP2020107338A (ja) ニューラルネットワークのコンボルーション演算を処理する方法及びその装置
KR20200095300A (ko) 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치
EP3800585A1 (en) Method and apparatus with data processing
US20200134465A1 (en) Method and apparatus for reconstructing 3d microstructure using neural network
KR102633139B1 (ko) 데이터를 추출하는 집적 회로, 그것을 포함하는 뉴럴 네트워크 프로세서 및 뉴럴 네트워크 장치
US12014505B2 (en) Method and apparatus with convolution neural network processing using shared operand
KR20200129957A (ko) 피처맵 데이터에 대한 압축을 수행하는 뉴럴 네트워크 프로세서 및 이를 포함하는 컴퓨팅 시스템
CN111523533B (zh) 一种从图像中确定物体所在区域的方法及装置
KR20200023154A (ko) 컨볼루션 뉴럴 네트워크를 처리하는 방법 및 장치
KR20210082970A (ko) 컨볼루션 연산을 수행하는 방법 및 장치
US20240046413A1 (en) Methods of batch-based dnn processing for efficient analytics
KR20210071472A (ko) 데이터를 처리하는 방법 및 장치
US11842273B2 (en) Neural network processing
CN114548361A (zh) 神经网络装置及其操作方法
WO2024058682A1 (en) Data processing method and device
CN116210022A (zh) 图像处理设备及其操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220602

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220826

R150 Certificate of patent or registration of utility model

Ref document number: 7132824

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150