JP7353772B2 - データ処理装置及びその方法、プログラム - Google Patents

データ処理装置及びその方法、プログラム Download PDF

Info

Publication number
JP7353772B2
JP7353772B2 JP2019041447A JP2019041447A JP7353772B2 JP 7353772 B2 JP7353772 B2 JP 7353772B2 JP 2019041447 A JP2019041447 A JP 2019041447A JP 2019041447 A JP2019041447 A JP 2019041447A JP 7353772 B2 JP7353772 B2 JP 7353772B2
Authority
JP
Japan
Prior art keywords
feature data
channels
data
output
layer
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
JP2019041447A
Other languages
English (en)
Other versions
JP2020144659A5 (ja
JP2020144659A (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.)
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
Priority to JP2019041447A priority Critical patent/JP7353772B2/ja
Priority to US16/799,199 priority patent/US11853864B2/en
Publication of JP2020144659A publication Critical patent/JP2020144659A/ja
Publication of JP2020144659A5 publication Critical patent/JP2020144659A5/ja
Application granted granted Critical
Publication of JP7353772B2 publication Critical patent/JP7353772B2/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)

Description

本発明は、ニューラルネットワークに対応する処理を実行するデータ処理装置及びその方法、プログラムに関するものである。
畳込みニューラルネットワーク(Convolutional Neural Network, 以下CNNと称する)を、回路規模を抑えつつ効率よく処理するためのハードウェア実装技術が求められる。CNNは深層学習に用いられる方法として知られており、主に画像認識等のタスクにおいて優れた性能を発揮する。CNNによる画像認識の精度(以下、認識性能と呼ぶ)を高めるためには、CNNの階層(以下、レイヤと称する)の数を増やす、または1レイヤあたりの特徴データの数(以下、チャネル数と称する)を増やすことが求められる。
CNN演算処理ハードウェアの回路規模を抑えつつ認識性能を高める上での障害として、特徴データを格納するためのメモリ(以下、特徴データメモリと呼ぶ)の使用量の増大が挙げられる。CNNの場合、特徴データとは階層毎の畳込み演算結果のことを指す。あるレイヤLの特徴データX ,X ,X ,…から次レイヤL+1のi番目の特徴データXL+1 を求める計算式を式(1)に示す。
Figure 0007353772000001
式(1)において、W i,jは畳込みフィルタ係数(以下、係数と呼ぶ)、b はバイアス項である。また、*は畳込み演算、Φは活性化関数を表す。式(1)に示す処理をハードウェアで実現するためには、入力値X ,X ,X ,…,X NCH-1及び演算結果XL+1 を格納するためのメモリが必要となる。このとき、特徴データメモリの使用量はレイヤLのチャネル数NCH,Lに比例するため、認識性能を高めるためには特徴データメモリの使用量を増やすことが必要となる。
特徴データメモリの使用量を抑えつつチャネル数を増やす方法の一例として、プーリングにより特徴データのデータサイズを削減する方法が挙げられる。特許文献1では、特徴データ内の近傍画素について空間方向の最大値プーリングを行い特徴データ1チャネルあたりのメモリ使用量を削減している。また、非特許文献1では、異なるチャネルの複数の特徴データについて、同じ画素位置についてチャネル方向の最大値プーリングを行い特徴データのチャネル数を削減している。
特開2018-67154号公報
プーリングにより特徴データのデータサイズを削減すると、認識精度が低下する場合がある。特許文献1に見られる空間方向のプーリングを用いる方法では、階層を跨ぐ毎に特徴データの解像度が低下する。これにより、認識対象のサイズや位置といった情報を正確に推定する精度が低下する。
また、プーリングにより特徴データのデータサイズを削減しても、特徴データメモリの使用量を削減できるとは限らない。非特許文献1に見られるチャネル方向のプーリングを用いる方法では、特徴データの解像度は変化しないため、前述の認識精度が低下するという問題は回避できる。一方で、チャネル方向のプーリングを行う場合でも、プーリングを行う前の特徴データを特徴データメモリに保持する場合、特徴データメモリの使用量が増加する。そこで、本発明は、特徴データの解像度を低下させることなくデータサイズを削減することを目的とする。
上記課題を解決するため、本発明の1態様によれば、複数の階層を有するニューラルネットワークによるデータ処理を実行するデータ処理装置に、前記複数の階層のうちの1つの階層において、入力特徴データから中間特徴データを抽出する抽出手段と、複数のチャネルにおいて対応する前記中間特徴データを1つにまとめてチャネル数を削減し、当該チャネル数を削減した特徴データを出力特徴データとして出力する削減手段と、前記削減手段が出力した出力特徴データを格納し、前記抽出手段に、当該出力特徴データを前記1つの階層より後の階層の入力特徴データとして与える記憶手段とを備える。
本発明によれば、ニューラルネットワークにおいて特徴データを格納するためのメモリ使用量を増大させることなく、認識性能を向上させることができる。
第1及び実施形態2における特徴データ処理の概念図。 実施形態1における処理対象ネットワークの構造例を表す図。 第1及び実施形態2におけるデータ処理装置の一構成例を表す図。 実施形態1における特徴データ処理部の構成を表すブロック図。 実施形態1におけるチャネル削減処理手段による処理の一例を表す図。 実施形態1における特徴データ処理部による処理の順序を示す流れ図。 実施形態1における特徴データ処理とメモリ使用量の関係を表す図。 実施形態2における処理対象ネットワークの構造例を表す図。 実施形態2における特徴データ処理部の構成を表すブロック図。 実施形態2における特徴データ処理部による処理の順序を示す流れ図。 その他の実施例における特徴データ処理部の構成を表すブロック図。
以下、図面を参照しながら本発明の好適な実施形態について詳細に説明する。
図1に、レイヤlの特徴データからレイヤl+1の特徴データを算出する場合の特徴データ処理を示す。通常の特徴データ処理では、入力特徴データ101と係数102を用いて、式(1)に示す畳込み演算及び活性化処理といった特徴抽出処理を行い、NCH,l+1チャネルの出力特徴データ103を得る。このとき、NCH,lはレイヤlの特徴データのチャネル数を表す。これに必要に応じて量子化等の処理を加えたものを1レイヤとし、複数レイヤのニューラルネットワークを構成する。
後述する「チャネル方向プーリング」を用いた特徴データ処理では、入力特徴データ104と係数105を用いて特徴抽出処理を行い、通常のα倍のチャネル数の第1の出力特徴データ106を得る。さらに第1の出力特徴データ106についてチャネル削減処理を行い、第2の出力特徴データ107を得る。例えば、畳込み演算により得られる特徴データは値が0の画素が多く含まれるため情報量が少ない。従って、畳込み演算により得られたα×NCH,l+1チャネルの第1の出力特徴データ106にチャネル方向プーリングを適用することで、通常より情報量の多いNCH,l+1チャネルの第2の出力特徴データ107を得ることができる。これにより、出力レイヤのチャネル数を増やすことなくニューラルネットワークの認識性能を向上させることが可能となる。
本実施形態に基づく特徴データ処理装置では、第1の出力特徴データ106を特徴データメモリに保持することなく図1に示す特徴データ処理を実現する。説明の簡略化のため、以下では、特徴データメモリに保持されない第1の出力特徴データ106を「仮想特徴データ(または中間特徴データ)」、特徴データメモリに保持される第2の出力特徴データ107を「出力特徴データ」と呼び分ける。また、入力特徴データ、仮想特徴データ、出力特徴データの各チャネルをそれぞれ「入力チャネル」、「仮想チャネル」、「出力チャネル」と呼ぶ。以下に示す実施形態1及び2では、上記を実現するための装置及び方法について図面に基づいて詳細に説明する。
(実施形態1)
実施形態1では、最も簡単な例として、α=2の場合についてチャネル方向プーリングを用いた特徴データ処理を行う。チャネル方向プーリングを用いた特徴データ処理を実現する装置及び方法の一例を示す。以下に示す装置及び方法により、特徴データメモリのメモリ使用量を増やすことなくニューラルネットワークの認識精度を向上させることを目的とする。
図2に処理対象とするニューラルネットワーク(以下、ネットワークと呼ぶ)の構造の例を示す。図2に示すネットワークはレイヤC1,C2,C3の3つの階層と、その間にレイヤP1,P2の2つの階層を持つ。レイヤC1,C2,C3のチャネル数NCH,1,NCH,2,NCH,3はいずれも4である。尚、説明の簡略化のため、特徴データ1チャネルあたりの画素数、各画素値のビット幅は全て等しいものとする。
レイヤC1,C2とレイヤP1,P2では異なる処理を行う。レイヤC1,C2,C3は「畳込み層」と呼ばれ、特徴抽出処理として式(1)に示す畳込み演算及び活性化処理を行う。レイヤP1,P2は「プーリング層」と呼ばれ、チャネル削減処理として後述する「チャネル方向プーリング」を行う。以上より、特徴抽出処理とチャネル削減処理を交互に行いながら、前段のレイヤから後段のレイヤに向かって順次特徴データを算出する。
尚、式(1)に示す処理のような特徴抽出処理においては係数を用いるが、係数は事前に決定される。この過程を「学習」と呼ぶ。学習においては、画像データについて画像認識を行い、認識結果に応じて係数を更新する。チャネル方向プーリングを行う場合の学習の方法については後述する。
図3は、本発明に係る特徴データ処理装置を含む、データ処理装置の一構成例を示すブロック図である。以下では各構成要素について説明する。
データ保存部302は、画像データを保存する部分である。通常はハードディスク、フレキシブルディスク、CD-ROM、CD-RやDVD、メモリーカード、CFカード、スマートメディア、SDカード、メモリスティック、xDピクチャーカード、USBメモリ等で構成される。データ保存部302には画像データの他にプログラムやその他のデータを保存することも可能である。あるいは、後述するRAM308の一部をデータ保存部302として用いても良い。またあるいは、後述する通信部303を介して接続した先の機器の記憶装置を利用する、というように仮想的に構成するのであっても良い。
表示部304は、画像処理前及び画像処理後の画像、あるいはGUI等の画像を表示する装置である。一般的にはCRTや液晶ディスプレイなどが用いられる。あるいは、ケーブル等で接続された装置外部のディスプレイ装置であっても構わない。
入力部301は、ユーザからの指示やデータを入力する装置であり、キーボードやポインティング装置やボタン等を含む。また、あるいは公知のタッチスクリーン装置のように、表示部304と入力部301が同一装置であっても良い。その場合には、タッチスクリーンによる入力を入力部301の入力として扱う。
通信部303は、機器間の通信を行うためのI/Fである。なお、図3では入力部301、データ保存部302、表示部304が全て1つの装置内に含まれるような図を示している。しかし、これらの部分が公知の通信方式による通信路で接続されており、全体としてこのような構成となっているのであっても構わない。
CPU306は、本装置全体の動作を制御する。ROM307とRAM308は、その処理に必要なプログラム、データ、作業領域等をCPU306に提供する。後述する処理に必要なプログラムがデータ保存部302やROM307に格納されている場合には、一旦RAM308に読み込まれてから実行される。またあるいは、通信部303を経由して装置がプログラムを受信する場合には、一旦データ保存部302に記録した後にRAM308に読み込まれる。また、直接通信部303からRAM308に直接読み込まれてから実行されても良い。なお、図2においては、CPUが1つ(CPU306)だけである構成だが、これを複数設けるような構成にしても良い。
画像処理部309は、CPU306からのコマンドを受け、データ保存部302に書き込まれた画像データを読み出して画素値のレンジ調整を行う。処理された結果をRAM308に書き込む。
特徴データ処理部305は、RAM308に保存された画像処理の結果を受け、後述のフローチャートに従って特徴抽出処理及びチャネル削減処理を行い、その結果をRAM308に返す。特徴データ処理部305は、式(1)に相当する畳込み演算及び活性化処理を行うための特徴抽出処理部を含む。また、特徴データ処理部305は、特徴データを保持するための記憶装置、すなわち特徴データメモリを含む。さらに、特徴データ処理部305は、特徴データについて後述するチャネル方向プーリングを行うためのチャネル削減処理部を含む。
CPU306は、特徴データ処理部305によって処理された結果に基づき、動画像(複数フレームの画像)での画像処理または画像認識を行う。CPU306の処理結果はRAM308に保存される。
なお、本実施形態における装置のシステム構成には、上記以外にも様々な構成要素が存在するが、本発明の主眼ではないのでその説明は省略する。
図4に特徴データ処理部305の一構成例を示す。前述の通り、特徴データ処理部305は図1に示す特徴抽出処理及びチャネル削減処理を行う。畳込み層処理部401は、特徴抽出処理を行い、入力特徴データから仮想特徴データを算出する。また、プーリング層処理部402は、チャネル削減処理を行い、仮想特徴データから出力特徴データを算出する。また、特徴データ処理部305には、特徴データメモリ403と、畳込み層処理部401に必要な係数を与える制御部404が含まれる。
尚、特徴データ処理部305では、「特徴ブロック」と呼ばれる単位で特徴データ処理を行う。特徴ブロックは、特徴データを空間方向に一定のサイズで分割した際の単位である。特徴ブロック単位で処理する利点としては、処理単位毎のデータサイズが小さくなることが挙げられる。畳込み層処理部401及びプーリング層処理部402の入出力データサイズを小さくすることで、これら構成要素の回路規模をより小さくできる。
また、特徴データ処理部305では、入力特徴ブロックを特徴データメモリ403から読み出し、2チャネルの仮想特徴ブロックを算出する。さらに、2チャネルの仮想特徴ブロックから1チャネルの出力特徴ブロックを算出し、特徴データメモリ403に書き込む。以上の処理の繰り返しにより、全チャネルの出力特徴データを算出する。以下では、各構成要素の詳細と構成要素間の関わりについて説明する。
畳込み層処理部401は、特徴抽出処理として、式(1)に示す畳込み演算及び活性化処理を行う。入力特徴ブロックから、2チャネルの仮想特徴ブロックを算出する。仮想特徴ブロックの算出には、制御部404が与える係数を用いる。畳込み層の処理は、畳込み演算と活性化処理に分けられ、畳込み層処理部401は内部に対応する演算部として、畳込み演算部及び活性化処理部を有する。畳込み演算部は入力特徴ブロックの画素と係数の乗算を行い、その乗算結果の累積和をバッファに保持する。
プーリング層処理部402は、チャネル削減処理として、チャネル方向プーリングを行う。2チャネルの仮想特徴ブロックを受け取り、1チャネルの出力特徴ブロックを算出する。
図5に、一般的なプーリングすなわち空間方向プーリングとプーリング層処理部402が行うチャネル方向プーリングの処理を示す。空間方向プーリングでは、初めに特徴データ501から4画素の特徴データ502を取り出す。その後、4画素の特徴データ503から1画素の特徴データ503を求める。以上の処理を異なる位置について繰り返し、特徴データ504を得る。1画素の特徴データ503の求め方は、4画素の特徴データ503について最大値を取るあるいは平均値を取る等の方法がある。
チャネル方向プーリングは、特徴データの取り出し方が空間方向プーリングと異なる。すなわち、2チャネルの特徴データ505から同じ位置の画素を集めたものを、2画素の特徴データ506とし、2画素の特徴データ506から1画素の特徴データ507を空間プーリングと同様に最大値または平均値を取ることにより求める。全体としては、2チャネルの特徴データ505から1チャネルの特徴データ508を算出する処理となる。
チャネル方向の最大値プーリングを行う場合、空間方向の最大値プーリングを行う場合と同様の方法で学習を行うことができる。つまり、特徴データの画素位置毎に最大値を取るチャネルを記憶する。ニューラルネットワークの学習では、まず推論を行い、次に推論の結果の正誤に応じて係数を更新する。このとき、推論時に最大値プーリングにより残された仮想チャネルを記憶し、前記の仮想チャネルを求める際に用いられた係数を更新する。
特徴データメモリ403は、入力特徴データ及び出力特徴データを保持する。入力特徴ブロックを畳込み層処理部401に渡し、出力特徴ブロックをプーリング層処理部402から受け取る。受け取った出力特徴データを次の入力特徴データとすることで、後段レイヤの特徴データを逐次的に算出していくことが可能となる。
制御部404は、畳込み層処理部401に係数を与える。制御部404はネットワークパラメータを内部に保持し、ネットワークパラメータに基づいて係数を与える。
制御部404が与える係数の数は、ネットワークパラメータに基づいて切り替えられる。例えば、図2に示すネットワークではレイヤC1のチャネル数NCHは4で、レイヤP1のチャネル数NCHは8である。この場合、レイヤC1‐P1間のチャネル同士の接続数は32であるため、制御部404は畳込み層処理部401に対して32通りのチャネルの組合せそれぞれに対応する係数を与える。
図6に、図4に示す構成の特徴データ処理部305により図2に示すネットワークを処理する場合のフローチャートを示す。一連の処理では、最前段であるレイヤC1の特徴データ201から、図2に示すネットワーク全体に相当する処理の結果として、最後段であるレイヤC3の特徴データ205を算出する。
図2に示すネットワーク全体の処理は、出力レイヤ単位、出力チャネル単位、特徴ブロック単位、入力チャネル単位の4重ループによって実現される。
以下では、図4に示す構成の特徴データ処理部305において、図2に示したネットワークを処理する例を挙げる。例に基づき、図6のフローチャートの各ステップの詳細を説明する。
ステップS601では、出力レイヤ単位のループが開始される。各ループにおいて仮想特徴データと出力特徴データをそれぞれ1レイヤ分算出する為、ループの周回数は最後段を除く畳込み層の数となる。例えば図2に示すネットワークの場合、C1,C2が処理されるためループの周回数は2となる。l回目のループにおいて処理される入力特徴データ、仮想特徴データ、出力特徴データはそれぞれレイヤCl,Pl,C(l+1)の特徴データとなる。
ステップS602では、制御部404が処理対象となるレイヤのパラメータを取得し、畳込み層処理部401への係数の送信を開始する。図2に示すネットワークの場合、レイヤCl、レイヤPlのチャネル数を取得し、畳込み層処理部401へ送信する係数の数を決定する。
ステップS603では、出力チャネル単位のループが開始される。出力特徴データすなわちレイヤC(l+1)の特徴データを1チャネルずつ算出するため、ループの周回数はレイヤC(l+1)のチャネル数NCH,l+1となる。例えば図2に示すネットワークの場合、常に4となる。
ステップS604では、特徴ブロック単位のループが開始される。ループの周回数は入力特徴データに含まれるブロックの数に等しい。m回目のループにおいては、例えばラスタースキャン順でm番目のブロックが処理される。
ステップS605では、入力チャネル単位のループが開始される。入力特徴データすなわちレイヤClの特徴データを1チャネルずつ与えるため、ループの周回数はレイヤClのチャネル数NCH,lとなる。図2に示すネットワークの場合、ループ周回数は常に4となる。入力チャネル単位のループでは、後述する畳込み演算の結果について累積和を求める。累積和の結果は畳込み層処理部401が有するバッファに格納される。畳込み層処理部401が有するバッファの初期化はステップS605にて行う。
ステップS606では、特徴データメモリ403から入力特徴ブロックを1チャネル読み出す。読み出された入力特徴ブロックは畳込み層処理部401に与えられる。
ステップS607では、畳込み層処理部401が特徴抽出処理に用いる係数を制御部404より取得する。取得する係数は算出する特徴ブロックのレイヤとチャネルにより決まるため、(l,i,j)に依存する。尚、畳込み層処理部401は仮想特徴データを2チャネルずつ算出するため、ステップS607で取得する係数の数も2となる。
ステップS608では、畳込み層処理部401が1チャネルの入力特徴ブロックとステップ607で取得した2つの係数を用いて、畳込み演算を行い、2チャネル分の畳込み演算結果を得る。2チャネル分の畳込み演算結果についてそれぞれ加算を行い、入力チャネル単位のループ内での累積和をバッファに保持する。
ステップS609では、入力チャネル単位のループが終了する。以上の繰り返しにより、全ての入力チャネルについての畳込み演算結果の累積和が得られる。
ステップS610では、畳込み層処理部402が活性化処理を行い、ステップS609にて得られた2チャネル分の畳込み演算結果の累積和から2チャネルの仮想特徴ブロックを算出する。
ステップS611では、プーリング層処理部402がチャネル方向プーリングを行い、2チャネル分の仮想特徴ブロックから1チャネル分の出力特徴ブロックを算出する。算出された出力特徴ブロックは、特徴データメモリ403に与えられる。
ステップS612では、出力特徴ブロックを特徴データメモリ403に書き戻す。
ステップS613では、出力チャネル単位のループが終了する。以上の繰り返しにより、特徴データメモリ403に全チャネルの出力特徴ブロックが格納される。
ステップS614では、ブロック単位のループが終了する。以上の繰り返しにより、特徴データメモリ403に出力特徴データの全てのブロックが格納される。
ステップS615では、出力レイヤ単位のループが終了する。以上の繰り返しにより、図2に示すネットワークの最後段すなわちレイヤC3の特徴データが特徴データメモリ403に格納される。
図4に示す構成の特徴データ処理部と、図6に示すフローチャートに従う手順により、特徴データメモリ403の容量を増やすことなくニューラルネットワークの認識性能を高めることが可能となる。前述の通り、レイヤ毎のチャネル数を大きく取ることでニューラルネットワークの認識性能を高めることができる。以下では、レイヤClの特徴データからレイヤPl及びレイヤC(l+1)の特徴データを算出する場合を例に取り、特徴データメモリ403の使用量を増やすことなくチャネル数を増やす仕組みについて説明する。一般化のため、図1に倣い出力チャネル数に対する仮想チャネル数の比をαとおく。
図7に、入力特徴データから出力特徴データを算出する場合の特徴データとメモリ使用量の関係を示す。図6に示すフローチャートに従うと、図4に示す構成の特徴データ処理部305は、始めに入力特徴ブロック704について特徴抽出処理を行い、αチャネルの仮想特徴ブロック705を算出する。次にαチャネルの仮想特徴ブロック705についてチャネル削減処理を行い、1チャネルの出力特徴ブロックを算出する。以上の繰り返しにより、入力特徴データ701から出力特徴データ703を算出する。
特徴データメモリ403を小さくするためには、入力特徴データ701及び出力特徴データ703のチャネル数NCH,l,NCH,l+1を小さくする必要がある。図6に示すフローチャートに従う手順では、全チャネルの出力特徴データ703を算出するためには全チャネルの入力特徴データ701を特徴データメモリ403に予め格納しておく必要がある。従って、必要な特徴データメモリ403のメモリ容量は、畳込み層毎に入力特徴データと出力特徴データのデータサイズの和を求めたときの最大値となる。各レイヤの特徴データのデータサイズはチャネル数に比例する。図2に示すネットワークの場合、必要な特徴データメモリ403のメモリ容量は入出力合わせて特徴データ8チャネル分となる。
一方で、仮想特徴データ702のチャネル数を大きく取っても、必ずしも特徴データメモリ403の使用量が増大するとは限らない。図6に示すフローチャートに従う手順では、仮想特徴データのうちαチャネルの仮想特徴ブロック705のみを一時的に保持できればよい。従って、保持すべき仮想特徴データのデータサイズは、出力特徴データ703のチャネル数NCH,l+1に依らず仮想特徴ブロックαチャネル分となる。これは入力特徴ブロック数を大きく取る、αを小さく取るなどの方法により、特徴データメモリ403の容量に対して十分小さくできる。
以上を踏まえて、αを1より大きく取り、仮想チャネル数α×NCH,l+1を出力チャネル数より大きくすることで、特徴データメモリ403の容量を増やすことなく認識性能を高めることが可能となる。一例として、チャネル方向プーリングを用いない特徴データ処理の場合、特徴データ容量のメモリが特徴データ8チャネル分で、入力特徴データのチャネル数NCHが4のとき、特徴抽出で得られる次レイヤの特徴データは最大4チャネルまでとなる。一方で、本発明に係るデータ処理装置では、例えば図2のように4チャネル×8チャネルの特徴抽出処理を含むネットワークを処理可能である。
(実施形態2)
実施形態2では、実施形態1と同様に特徴データメモリの使用量を増やすことなくニューラルネットワークの認識精度を高めることを目的とする。加えて、与えられた係数メモリ容量と処理時間の制約を満たしつつ、できるだけ高い認識性能を達成することを目的とする。以下では、認識精度と係数メモリ使用量及び処理時間のトレードオフにおいてスケーラブルな特徴データ処理装置及び方法の例を示す。出力チャネル数に対する仮想チャネル数の比αは、実施形態1と同様に2とする。
図8に処理対象とするネットワークの構造の例を示す。図8に示すネットワークはレイヤC1,C2,C3の3つの畳込み層を持ち、それぞれが有する特徴データのチャネル数NCHはいずれも4である。またレイヤC2とレイヤC3の間にプーリング層P2を持つ。尚、実施形態1と同様に、特徴データ1チャネルあたりの画素数、ビット幅は全て等しいものとする。
実施形態1と同様に、各レイヤの特徴データ802‐804は特徴抽出処理またはチャネル削減処理により求められる。レイヤC1の特徴データ801からレイヤC2の特徴データ802を求める場合、実施形態1と同様に式(1)に相当する畳込み演算及び活性化を行う。これを「第1の特徴抽出処理」と呼ぶ。レイヤC2の特徴データ802からレイヤP2の特徴データ803を算出する場合は、第1の特徴抽出処理とは異なる特徴抽出処理を用いる。これを「第2の特徴抽出処理」と呼ぶ。一方で、レイヤP2の特徴データ803からレイヤC3の特徴データ804を算出する場合は、実施形態1と同様にチャネル方向プーリングを行う。
図2に示すネットワークとの相違点は2つある。1つ目は、プーリング層の有無である。図2に示すネットワークでは、畳込み層の次レイヤは常にプーリング層となる。一方で、図8に示すネットワークでは、畳込み層が連続して存在する。従って、実施形態2においては、後述する構成の特徴データ処理部305が入力特徴ブロックに対して特徴抽出処理のみを行う場合がある。2つ目は、特徴抽出処理が2種類存在する点である。後述する第2の特徴抽出処理は、係数メモリ使用量及び処理時間の増大を抑えることを目的とする。
図9に実施形態2における特徴データ処理部305の構成を示す。実施形態1の同名の各構成要素に対応するものとして、畳込み層処理部901、プーリング層処理部902、特徴データメモリ903、制御部904を含む。また、畳込み層処理部901は特徴抽出処理を行い、プーリング層処理部902はチャネル削減処理を行う。
図4に示す制御部404との相違点として、図9に示す制御部904は、他の各構成要素に制御信号を与える。制御信号に基づき、畳込み層処理部901及びプーリング層処理部902は処理の切替えを行う。以下では各構成要素の詳細について、実施形態1と異なる部分に絞って説明する。
畳込み層処理部901は、第1の特徴抽出処理と第2の特徴抽出処理の2通りの特徴抽出処理を行う。2つの特長抽出処理のいずれを行うかは、制御部904が与える制御信号により決定される。
図8に示すネットワークにおけるレイヤP2の特徴データ803を求める場合、第2の特徴抽出処理を用いることで係数メモリ使用量及び処理時間を抑えることができる。第1の特徴抽出処理では、実施形態1と同様に入力特徴データの全チャネルから仮想特徴データを算出する。一方で、第2の特徴抽出処理では、入力特徴データの一部のチャネルについて、畳込み演算を省略する。省略される入力チャネル、制御部904が与える制御信号により決定され、出力チャネル毎に変えることができる。実施形態2においては、図8に示すレイヤC2の特徴データを入力特徴データとするとき、4チャネルのうち出力チャネル毎に予め選ばれた3チャネルのみを用いてレイヤP2の特徴データを算出するものとする。以下では、仮想特徴データの算出に用いられるチャネル数を「特徴抽出チャネル数」と呼ぶ。また、特徴抽出チャネル数の入力チャネル数に対する比をβと表す。
プーリング層処理部902は、チャネル方向プーリングを行うか否かを切り替えることができる。チャネル方向プーリングを行うか否かは、制御部904が与える制御信号により決定される。
図8に示すネットワークにおけるレイヤC2の特徴データ802を求める場合、プーリング層処理部902においてはチャネル方向プーリングを行わない。チャネル方向プーリングを行う場合、プーリング層処理部902がαチャネルの仮想特徴データを受け取り、1チャネルの出力特徴データを算出する。一方で、チャネル方向プーリングを行わない場合、プーリング層処理部902がαチャネルの仮想特徴データを受け取り、そのままαチャネルの出力特徴データとして出力する。つまり、レイヤC1の特徴データ901から特徴抽出処理のみを行った結果を出力特徴データとみなし、レイヤC2の特徴データ902として特徴データメモリ903に保持することができる。
制御部904は、畳込み層処理部901及びプーリング層処理部902に制御信号を与える。制御信号は、係数と同様にネットワークパラメータに基づいて切り替えられる。例えば、レイヤC1の特徴データ801からレイヤC2の特徴データ802を算出する場合、畳込み層処理部901では第1の特徴抽出処理を行い、プーリング層処理部902ではチャネル方向プーリングを行わない。一方で、レイヤC2の特徴データ802からレイヤP2の特徴データ803及びレイヤC3の特徴データ804を算出する場合、畳込み層処理部901では第2の特徴抽出処理を行い、プーリング層処理部902ではチャネル方向プーリングを行う。尚、制御部904は、事前に決定された制御信号群をネットワークパラメータとして与えられ、それらを順次参照して制御信号を与えても良い。
図10に、特徴データ処理部305により図8に示すネットワークを処理する場合のフローチャートを示す。図10のフローチャートにおけるステップS1001‐1015は、実施形態1におけるステップS601‐615に対応する。以下では、図9に示す特徴データ処理部305によって図8に示すネットワークを処理する場合を例に挙げ、実施形態1と異なる部分に絞って説明する。一般化のため、図10に示すフローチャートでは出力チャネル数に対する仮想チャネル数の比をαと表す。
ステップS1002では、入力特徴データから出力特徴データまでに対応する各レイヤのパラメータを取得する。ただし、パラメータを取得するレイヤ数が3レイヤの場合と2レイヤの場合がある。つまり、チャネル方向プーリングを行う場合はレイヤCl,Pl,C(l+1)のパラメータを、チャネル方向プーリングを行わない場合はレイヤCl,C(l+1)のパラメータを取得する。
ステップS1005では、ステップS605と同様に入力チャネル単位のループが開始される。ただし、第2の特徴抽出処理を用いる場合、ループの周回数は特徴抽出チャネル数β×NCH,lとなるため、入力チャネル数NCH,lよりも小さくなりうる。
ステップS1011では、プーリング層処理部902が、制御部904が与える制御信号に基づき、チャネル方向プーリングにより1チャネルの出力特徴データを算出する。あるいは、チャネル方向プーリングを省略し、αチャネルの仮想特徴データをαチャネルの出力特徴データとしてデータ統合部905に渡す。
実施形態1と同様に、図8に示すネットワークにおいてαを1より大きく取り、レイヤP2のチャネル数α×NCH,l+1を大きくすることで、特徴データメモリ903の容量を増やすことなく認識性能を高めることが可能となる。レイヤC2の特徴データ802からレイヤC3の特徴データ804を算出する場合、図7に示すチャネル数とメモリ使用量の関係が成り立つ。つまり、バッファ等に保持すべき仮想特徴ブロックのデータサイズは特徴データメモリ903の容量に比べて十分に小さく、特徴データメモリ903の使用量はαに依存しない。
実施形態2においては、畳込み層処理部901及びプーリング層処理部902における処理の切替えにより、認識性能と係数メモリ使用量及び処理時間のトレードオフにおいてスケーラブルな特徴データ処理部305を実現する。以下では、畳込み演算の回数の制御により係数メモリ使用量及び処理時間の増大を抑える仕組みについて、図8に示すネットワークを例として説明する。図9に示す特徴データ処理部305において、特徴抽出処理における畳込み演算の回数を削減することで、係数メモリ及び処理時間を削減することができる。係数メモリ使用量は、特徴抽出処理における係数の数に比例し、係数の数は畳込み演算の回数に比例する。一方で、処理時間は、大半を畳込み演算に掛かる処理時間が占めているため、畳込み演算の回数を削減することで短縮可能となる。
特徴抽出処理における畳込み演算の回数は、入力チャネル数NCH,l及び仮想チャネル数α×NCH,l+1に比例する。図9に示す特徴データ処理部305では、畳込み層処理部901の処理の切替えにより、入力チャネル数NCH,lの代わりに特徴抽出チャネル数β×NCH,lを用いる。一方で、プーリング層処理部902の処理の切替えにより、仮想チャネル数α×NCH,l+1を制御する。
畳込み層処理部901において第2の特徴抽出処理を用いることで、入力チャネル数NCH,lの代わりに特徴抽出チャネル数β×NCH,lを用いることができる。第2の特徴抽出処理では、NCH,lチャネルの入力特徴データの内β×NCH,lチャネルのみを用いて仮想特徴データを算出する。例えば、図8に示すネットワークの場合、第2の特徴抽出処理において4チャネルの内出力チャネル毎に予め選ばれた3チャネルの入力特徴データを用いる。つまり、β=3/4とする。これにより、第1の特徴抽出処理を用いる場合と比べて、レイヤP2の特徴データ803を算出する際の畳込み演算の回数を0.75倍に削減できる。
一方で、プーリング層処理部902においてチャネル方向プーリングの有無を切り替えることで、仮想チャネル数α×NCH,l+1を制御することができる。α×NCH,l+1チャネルの仮想特徴データを算出する特徴抽出処理を一部のレイヤのみで行い、他のレイヤでは仮想チャネル数をNCH,l+1に削減する。例えば、図9に示すネットワークでは、レイヤ3の特徴データ803を算出する場合のみ8チャネルの仮想特徴データを算出し、チャネル方向プーリングを行う。これにより、実施形態1のように常にチャネル方向プーリングを行う場合と比べて、レイヤC2の特徴データ802を算出する際の畳込み演算の回数を0.5倍に削減できる。
以上より、畳込み層処理部プーリング層処理部畳込み層処理部プーリング層処理部αが1より大きい場合の係数メモリ使用量及び処理時間の増大を抑えることができる。入力チャネル数NCH,l及び仮想チャネル数α×NCH,l+1を適切に制御することで、係数メモリ容量及び処理時間の制約を満たしつつ、より高い認識性能を達成することが可能となる。畳込み層処理部901及びプーリング層処理部902の制御に必要な情報は、ネットワークパラメータとして制御部904に予め与える。
(その他の実施形態)
その他の実施形態について、図11に示す構成の特徴データ処理装置に基づいて説明する。抽出手段1101及びチャネル削減手段1102は、実施形態1における畳込み層処理部401及びプーリング層処理部402に相当する。他の実施例においても、図6または図10に示すフローチャートに従って処理が行われるものとする。
第1及び実施形態2において、図4及び図9に示す構成の特徴データ処理部305は出力特徴ブロックを1チャネルずつ算出する。一方で、図11に示す構成の特徴データ処理装置は出力特徴ブロックを複数チャネルずつ並列に算出してもよい。例えばNチャネルの出力特徴ブロックを並列に算出する場合、ステップS603から始まる出力チャネル単位のループの周回数はNCH,l+1/Nとなる。また、ステップS610で算出される仮想特徴ブロックのチャネル数はα×Nとなる。図10に示すフローチャートの場合も同様である。
実施形態2において、畳込み層処理部902は入力特徴データの一部のチャネルのみを用いて仮想特徴データを算出することで係数メモリ使用量を削減する。一方で、係数メモリ使用量を削減する目的で、特徴抽出処理において1つの係数を複数の入力チャネルに使い回しても良い。例えば入力特徴データ2チャネル毎に用いる係数を切り替える場合、特徴抽出処理における畳込み演算の回数は変化しないが、必要な係数の数は1/2となる。
実施形態1及び2において、特徴データ処理部305は図4及び図9に示す構成の専用ハードウェアによって実現される。一方で、図10に示すフローチャートの各ステップは、図3に示すデータ処理装置内のCPU306によりソフトウェア処理してもよい。その場合、特徴データメモリとして図3に示すデータ処理装置内のRAM308を用いてもよい。
実施形態1及び2において、図4及び図9に示す構成の特徴データ処理部305はチャネル方向プーリングを行う。一方で、さらに特徴データのデータサイズを削減する目的で、図5に示す空間方向プーリングを併せて行ってもよい。その場合、図6に示すフローチャートのステップS609の直後からステップS612の直前までのいずれかのタイミングで行う。図10に示すフローチャートについても同様である。空間プーリングは、抽出手段1101、チャネル削減手段1102、あるいはその後段に接続される新たな構成要素が行う。
特徴データのビット幅を小さくしデータサイズを削減する目的で、抽出手段1101が活性化処理の直後に、特徴データのビット幅を制御手段1104が指定する値に変換する処理を行っても良い。これを「量子化処理」と呼ぶ。あるいは、抽出手段1101が活性化処理の代わりに量子化処理を行っても良い。その場合、図6に示すフローチャートのステップS609の直後からステップS612の直前までのいずれかのタイミングで行う。図10に示すフローチャートについても同様である。量子化処理は、抽出手段1101、チャネル削減手段1102、あるいはその後段に接続される新たな構成要素が行う。
実施形態1及び2において、活性化処理、チャネル方向プーリングは、前記の順序で処理される。一方で、活性化処理、量子化処理、チャネル方向プーリング、空間方向プーリングは、図6に示すフローチャートのステップS609の直後からステップS612の直前までの任意のタイミングで、任意の順序で行ってよい。
実施形態1及び2において、図4及び図9に示す構成の特徴データ処理部305では、出力特徴データをそのまま次の入力特徴データとした。一方で、チャネル削減手段1102が行うチャネル削減処理を特徴データの圧縮とみなし、出力特徴データを展開したものを次の入力特徴データとしてもよい。その場合、特徴データメモリ1103または抽出手段1101が展開処理を行っても良い。チャネル方向最大プーリングに対応する展開処理の例として、出力特徴データからチャネル削減前の仮想特徴データを推定する処理が挙げられる。例えば、圧縮により得られた1チャネルの出力特徴データを、同じ画素値を持つ1チャネルと、より小さい画素値を持つ1チャネルの2チャネルの入力特徴データに展開する。つまり、出力特徴データに等しい最大値プーリング結果を与える2チャネルの仮想特徴データを推定し、入力特徴データとする。これにより、特徴データメモリ1103の使用量1チャネル分につき、2チャネルの入力特徴データが得られる。展開により得られた2チャネルの入力特徴データが圧縮前の2チャネルの仮想特徴データを正しく推定できている場合、圧縮及び展開を用いずに得られる1チャネルの入力特徴データより多くの情報量を持つ。以上より、圧縮及び展開を用いることで、特徴データメモリ1103の使用量を増やすことなくより優れた認識精度を得られる場合がある。
実施形態2において、制御部904は係数メモリ使用量及び処理時間の制約を満たしつつ、できるだけ認識性能を高めるよう制御信号を決定する。一方で、制御手段1104は、要求される認識性能を達成しつつ、できるだけ係数メモリ使用量及び処理時間を小さくするよう制御信号を決定しても良い。あるいは、前記の要求を満たすよう事前に決定され保存された制御信号を、制御部1104が参照して与えても良い。
実施形態1及び2において、プーリング層処理部402及び902は、それぞれ2チャネルの仮想特徴データから1チャネルの出力特徴データを算出する。一方で、チャネル方向プーリングの入出力のチャネル数比は、2:1以外の比を取っても良い。つまり、出力チャネル数に対する仮想チャネル数の比αは2以外の値を取っても良い。また、αはレイヤ毎に独立に決定してもよい。
実施形態2において、制御部904はレイヤ毎にネットワークパラメータに基づいてチャネル方向プーリングの有無を切り替える。一方で、制御部1104が1レイヤの処理内でチャネル削減手段1102の制御を切り替えることにより、αを制御してもよい。前述の通り、αは出力特徴データに対する仮想特徴データのチャネル数の比である。例えば、第1及び2の実施例におけるチャネル方向プーリングでは、8チャネルの仮想特徴データから4チャネルの出力特徴データを生成する為、α=2となる。一方、先の4チャネルはチャネル方向プーリングあり、後の4チャネルはチャネル方向プーリングなしで処理した場合、8チャネルの仮想特徴データから6チャネルの出力特徴データが算出されるため、α=4/3となる。この場合、制御信号904はステップS1003の直後からステップS1011の直前までのいずれかのタイミングで、制御信号の切替えを行う。
実施形態1において、プーリング層処理部402は特徴抽出処理によって算出された2チャネルの仮想特徴データについて順次チャネル削減処理を行う。従って、チャネル削減手段が受け取る仮想チャネルの数は2となる。また、プーリング層のチャネルに通し番号のインデックスを与えるものとすると、チャネル削減手段は1回目のチャネル削減処理にチャネル1及びチャネル2を、2回目のチャネル削減処理にチャネル3及びチャネル4を用いる。この場合、インデックスの増え幅は2となる。このインデックスの増え幅を「ストライド」と呼ぶ。一方で、ストライドはチャネル削減処理が受け取る仮想チャネルの数と一致しなくてもよい。例えば、チャネル削減手段は1回目のチャネル削減処理にチャネル1及びチャネル2を、2回目にチャネル2及びチャネル3を、3回目にチャネル3及びチャネル4を用いても良い。この場合、ストライドは1となり、チャネル削減手段が受け取る仮想チャネル数2とは一致しない。この場合、ストライドの値は制御手段1104がチャネル削減手段1102に与えてもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
401 畳み込み層処理部
402 プーリング層処理部
403 特徴データメモリ
404 制御部

Claims (19)

  1. 複数の階層を有するニューラルネットワークによるデータ処理を実行するデータ処理装置であって、
    前記複数の階層のうちの1つの階層において、入力特徴データから中間特徴データを抽出する抽出手段と、
    複数のチャネルにおいて対応する前記中間特徴データを1つにまとめてチャネル数を削減し、当該チャネル数を削減した特徴データを出力特徴データとして出力する削減手段と、
    前記削減手段が出力した出力特徴データを格納し、前記抽出手段に、当該出力特徴データを前記1つの階層より後の階層の入力特徴データとして与える記憶手段と有することを特徴とするデータ処理装置。
  2. 前記削減手段は、前記中間特徴データをそれぞれの値に基づいて1つにまとめてチャネル数を削減することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記抽出手段は、前記入力特徴データから当該入力特徴データよりもチャネル数の多い中間特徴データを抽出することを特徴とする請求項1に記載のデータ処理装置。
  4. 前記入力特徴データのチャネル数及び前記出力特徴データのチャネル数に基づいて、前記記憶手段の容量予め決定されることを特徴とする請求項1に記載のデータ処理装置。
  5. 前記中間特徴データのチャネル数は、前記入力特徴データのチャネル数及び前記出力特徴データのチャネル数に基づいて予め決定されることを特徴とする請求項に記載のデータ処理装置。
  6. 前記中間特徴データのチャネル数及び/または前記出力特徴データのチャネル数を複数の階層について制御する制御手段を更に有することを特徴とする請求項1に記載のデータ処理装置。
  7. 前記抽出手段は、前記入力特徴データと与えられた係数を用いて前記中間特徴データを算出することを特徴とする請求項1に記載のデータ処理装置。
  8. 前記抽出手段は、前記入力特徴データの一部のチャネルを前記中間特徴データの算出に用いることを特徴とする請求項に記載のデータ処理装置。
  9. 前記抽出手段は、前記中間特徴データを算出する際に、一つの係数を複数の回数、用いることを特徴とする請求項に記載のデータ処理装置。
  10. 前記抽出手段は、前記出力特徴データを、一定のサイズ及び一定のチャネル数ごとにブロックに分割し、ブロック単位で逐次的に算出することを特徴とする請求項1に記載のデータ処理装置。
  11. 前記制御手段はデータのビット幅を指示し、
    前記抽出手段は、前記ビット幅で量子化した中間特徴データを出力することを特徴とする請求項に記載のデータ処理装置。
  12. 前記抽出手段は、活性化処理の出力として、前記制御手段が指示したビット幅で量子化された中間特徴データを出力することを特徴とする請求項11に記載のデータ処理装置。
  13. 前記削減手段は、前記出力特徴データの1チャネルあたりのデータの量を削減することを特徴とする請求項に記載のデータ処理装置。
  14. 前記削減手段は、前記チャネル数の削減において、複数チャネルの前記中間特徴データにおける同一位置のデータを1つにまとめる請求項に記載のデータ処理装置。
  15. 前記記憶手段は、前記削減手段が行うチャネル数を削減する処理により得られた出力特徴データを保持し、
    前記抽出手段は、ある階層の前記出力特徴データについて展開処理を行った結果を後の階層の前記入力特徴データとして受け取ることを特徴とする請求項に記載のデータ処理装置。
  16. 前記削減手段は、出力する前記出力特徴データのチャネル数を、前記中間特徴データが与えられる毎に切り替えることを特徴とする請求項1に記載のデータ処理装置。
  17. 前記削減手段は、1チャネルの前記出力特徴データの算出に用いる前記中間特徴データのチャネル数と異なる大きさのストライドに従って、当該出力特徴データの算出に用いる中間特徴データを切り替えることを特徴とする請求項1に記載のデータ処理装置。
  18. 複数の階層を有するニューラルネットワークによるデータ処理を実行するデータ処理方法であって、
    前記複数の階層のうちの1つの階層において、入力特徴データから中間特徴データを抽出する抽出工程と、
    複数のチャネルにおいて対応する前記中間特徴データを1つにまとめてチャネル数を削減し、当該チャネル数を削減した特徴データを出力特徴データとして出力する削減工程と、
    前記削減工程で出力された出力特徴データをメモリに格納し、当該出力特徴データを、前記抽出工程で用いる前記1つの階層より後の階層の入力特徴データとして与える記憶工程と有することを特徴とするデータ処理方法。
  19. コンピュータを、請求項1乃至17の何れか1項に記載のデータ処理装置の各手段として機能させるためのプログラム。
JP2019041447A 2019-03-07 2019-03-07 データ処理装置及びその方法、プログラム Active JP7353772B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019041447A JP7353772B2 (ja) 2019-03-07 2019-03-07 データ処理装置及びその方法、プログラム
US16/799,199 US11853864B2 (en) 2019-03-07 2020-02-24 Data processing apparatus and data processing method for executing processing using neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019041447A JP7353772B2 (ja) 2019-03-07 2019-03-07 データ処理装置及びその方法、プログラム

Publications (3)

Publication Number Publication Date
JP2020144659A JP2020144659A (ja) 2020-09-10
JP2020144659A5 JP2020144659A5 (ja) 2022-03-15
JP7353772B2 true JP7353772B2 (ja) 2023-10-02

Family

ID=72335326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019041447A Active JP7353772B2 (ja) 2019-03-07 2019-03-07 データ処理装置及びその方法、プログラム

Country Status (2)

Country Link
US (1) US11853864B2 (ja)
JP (1) JP7353772B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019212206A (ja) 2018-06-08 2019-12-12 沖電気工業株式会社 ニューラルネットワーク軽量化装置、情報処理装置、ニューラルネットワーク軽量化方法およびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018067154A (ja) * 2016-10-19 2018-04-26 ソニーセミコンダクタソリューションズ株式会社 演算処理回路および認識システム
CN108874445A (zh) * 2017-10-30 2018-11-23 上海寒武纪信息科技有限公司 神经网络处理器及使用处理器执行向量点积指令的方法
US11488002B2 (en) * 2018-02-15 2022-11-01 Atlazo, Inc. Binary neural network accelerator engine methods and systems
CN112840356B (zh) * 2018-10-09 2023-04-11 华为技术有限公司 运算加速器、处理方法及相关设备
KR20200066952A (ko) * 2018-12-03 2020-06-11 삼성전자주식회사 확장 컨벌루션 연산을 수행하는 장치 및 방법
WO2020175862A1 (ko) * 2019-02-25 2020-09-03 주식회사 딥엑스 인공신경망의 비트 양자화 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019212206A (ja) 2018-06-08 2019-12-12 沖電気工業株式会社 ニューラルネットワーク軽量化装置、情報処理装置、ニューラルネットワーク軽量化方法およびプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Diego Marcos et al,Learning rotation invariant convolutional filters for texture classification,2016 23rd International Conference on Pattern Recognition (ICPR),2016年12月08日,p2012-2017,https://ieeexplore.ieee.org/document/7899932
Hao Li et al,Pruning Filters for Efficient ConvNets,arXiv,2016年08月31日,p1-9,https://arxiv.org/pdf/1608.08710v1.pdf
Yao Zhai et al,Feature Selective Networks for Object Detection,2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition,2018年06月23日,p4139-4147,https://ieeexplore.ieee.org/document/8578533

Also Published As

Publication number Publication date
US20200285961A1 (en) 2020-09-10
JP2020144659A (ja) 2020-09-10
US11853864B2 (en) 2023-12-26

Similar Documents

Publication Publication Date Title
KR102458243B1 (ko) 얼굴 영상 분석 방법 및 장치
CN110830802B (zh) 基于机器学习的视频压缩
US10991150B2 (en) View generation from a single image using fully convolutional neural networks
US20200090030A1 (en) Integrated circuit for convolution calculation in deep neural network and method thereof
US11216910B2 (en) Image processing system, image processing method and display device
ES2278087T3 (es) Filtro bicubico aproximado.
JP2021525408A (ja) 画像または音声データの入力データセットペアの変位マップの生成
US20070071282A1 (en) Digital watermark embedding apparatus and method, and digital watermark detection apparatus and method
JP7345262B2 (ja) データ圧縮装置、データ処理装置、データ圧縮方法、プログラム、及び学習済みモデル
KR102658359B1 (ko) 라이트 필드의 중간 뷰 합성 방법, 라이트 필드의 중간 뷰 합성 시스템과 라이트 필드 압축 방법
US10277810B2 (en) Image processing apparatus that divides and processes an image signal, control method thereof, and storage medium
US11943454B2 (en) Image processing apparatus and operation method for learning parameters based on machine learning
KR102092205B1 (ko) 초해상화, 역톤매핑 및 동시 초해상화-역톤매핑 처리된 다중 출력 이미지를 생성하는 이미지 처리 방법 및 장치
EP3633602A1 (en) Image processing method, image processing apparatus, and program
KR20190131800A (ko) 뉴럴 네트워크를 이용하는 영상 처리 장치 및 상기 장치가 수행하는 방법
US11900577B2 (en) Processing apparatus for performing processing using a convolutional neural network
JP7353772B2 (ja) データ処理装置及びその方法、プログラム
JP6614824B2 (ja) 画像処理装置、画像処理システム、撮像装置、画像処理方法およびプログラム
WO2014077024A1 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP6661491B2 (ja) 画像処理装置および画像処理方法
WO2018131105A1 (en) Information processing device, information processing method and storage medium
JP2008141616A (ja) 動きベクトル算出装置、方法およびプログラム、動画像圧縮記録装置ならびに撮像装置
US20120155784A1 (en) Image processing apparatus and image processing method
WO2017217395A1 (ja) 画像処理装置、画像処理方法及びプログラム記録媒体
JP2011043901A (ja) 画像処理装置、画像処理方法、画像処理プログラム、および、電子機器

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220307

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230428

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230920

R151 Written notification of patent or utility model registration

Ref document number: 7353772

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151