図面 (/)

技術 畳み込みニューラルネットワークの演算方法及び演算プログラム、情報処理装置

出願人 富士通株式会社
発明者 笠置明彦
出願日 2015年10月20日 (5年1ヶ月経過) 出願番号 2015-206157
公開日 2017年4月27日 (3年7ヶ月経過) 公開番号 2017-078934
状態 特許登録済
技術分野 学習型計算機 複合演算
主要キーワード 多層ニューラルネットワーク 移動間隔 並列分散処理 複数要素 大プーリ 累積和 ミニバッチ 着眼点
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年4月27日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

平均プーリングが実行される畳み込みニューラルネットワーク演算量を削減する。

解決手段

畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出する第1算出部と、カーネルの要素毎に、当該要素について第1算出部により算出された総和と当該要素との積を算出し、算出された当該積の平均を算出する第2算出部とを有する。

概要

背景

多層ニューラルネットワーク多層構造を有するニューラルネットワークであり、主に音声、画像或いは言語等に関する情報処理に利用されている。図1に、多層ニューラルネットワークの一例を示す。図1において、丸の図形はノードを表し、ノードを結ぶ線分エッジを表し、同じ矩形に含まれるノードは同じ層に属する。多層ニューラルネットワークにおいては、下位の層から上位の層へ順に演算が行われる。例えば、図1において左に位置する層ほど階層が下である場合、左の層から右の層へ順に演算が行われる。多層ニューラルネットワークに対しては学習用の入力データが与えられ、入力データに対する演算の結果である出力データと教師データとの差分に基づきエッジの重みが更新される。

一般に画像処理の分野では、多層ニューラルネットワークの一種である畳み込みニューラルネットワークが利用される。図2に、畳み込みニューラルネットワークの一例を示す。畳み込みニューラルネットワークは、畳み込み層とプーリング層とを含む。畳み込み層においては、学習による最適化の対象であるカーネルフィルタとも呼ばれる)によって入力画像に対して畳み込み演算が行われる。畳み込み層において検出された特徴は、プーリング層でのプーリングによって選別及び集約される。そのため、畳み込みニューラルネットワークにおいては畳み込み層及びプーリング層がセットとして取り扱われる。

例えば図3に示すように、N*Nの入力データuに対してk*kのカーネルwによって畳み込み演算を実行した場合、(N−k)*(N−k)の出力データzが得られる。ここで、出力データzにおける出力値zx,yは以下のように計算される。

また、例えば図4に示すように、プーリング層においては畳み込み層から出力された出力データzの各領域(図4の例では4つの領域の各々)に対して演算が行われ、演算結果P_oが出力される。プーリングには最大プーリングと平均プーリングとが有り、前者は領域に含まれる値の最大値を特定する処理であり、後者は領域に含まれる値の平均を算出する処理である。

なお、多層ニューラルネットワークによる機械学習は、学習時間が非常に長く、学習時間を短縮するために並列分散処理に関する研究が盛んに行われている。学習時間の長期化は主に畳み込み演算の演算量の多さに起因しているため、畳み込み演算の演算量を削減すれば学習時間を大幅に短縮することができる。

概要

平均プーリングが実行される畳み込みニューラルネットワークの演算量を削減する。畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出する第1算出部と、カーネルの要素毎に、当該要素について第1算出部により算出された総和と当該要素との積を算出し、算出された当該積の平均を算出する第2算出部とを有する。

目的

本発明の目的は、1つの側面では、平均プーリングが実行される畳み込みニューラルネットワークの演算量を削減するための技術を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から前記畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出する第1算出部と、前記カーネルの要素毎に、当該要素について前記第1算出部により算出された前記総和と当該要素との積を算出し、算出された当該積の平均を算出する第2算出部と、を有する情報処理装置

請求項2

記入力データからSAT(Summed Area Table)を生成する生成部をさらに有し、前記第1算出部は、特定された前記入力値を含む矩形領域について、前記入力値の総和を前記SATを用いて算出する、請求項1記載の情報処理装置。

請求項3

コンピュータが、畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から前記畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出し、前記カーネルの要素毎に、当該要素について算出された前記総和と当該要素との積を算出し、算出された当該積の平均を算出する、処理を実行する、畳み込みニューラルネットワーク演算方法

請求項4

コンピュータに、畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から前記畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出し、前記カーネルの要素毎に、当該要素について算出された前記総和と当該要素との積を算出し、算出された当該積の平均を算出する、処理を実行させる、畳み込みニューラルネットワークの演算プログラム

技術分野

0001

本発明は、畳み込みニューラルネットワークに関する。

背景技術

0002

多層ニューラルネットワーク多層構造を有するニューラルネットワークであり、主に音声、画像或いは言語等に関する情報処理に利用されている。図1に、多層ニューラルネットワークの一例を示す。図1において、丸の図形はノードを表し、ノードを結ぶ線分エッジを表し、同じ矩形に含まれるノードは同じ層に属する。多層ニューラルネットワークにおいては、下位の層から上位の層へ順に演算が行われる。例えば、図1において左に位置する層ほど階層が下である場合、左の層から右の層へ順に演算が行われる。多層ニューラルネットワークに対しては学習用の入力データが与えられ、入力データに対する演算の結果である出力データと教師データとの差分に基づきエッジの重みが更新される。

0003

一般に画像処理の分野では、多層ニューラルネットワークの一種である畳み込みニューラルネットワークが利用される。図2に、畳み込みニューラルネットワークの一例を示す。畳み込みニューラルネットワークは、畳み込み層とプーリング層とを含む。畳み込み層においては、学習による最適化の対象であるカーネルフィルタとも呼ばれる)によって入力画像に対して畳み込み演算が行われる。畳み込み層において検出された特徴は、プーリング層でのプーリングによって選別及び集約される。そのため、畳み込みニューラルネットワークにおいては畳み込み層及びプーリング層がセットとして取り扱われる。

0004

例えば図3に示すように、N*Nの入力データuに対してk*kのカーネルwによって畳み込み演算を実行した場合、(N−k)*(N−k)の出力データzが得られる。ここで、出力データzにおける出力値zx,yは以下のように計算される。

0005

0006

また、例えば図4に示すように、プーリング層においては畳み込み層から出力された出力データzの各領域(図4の例では4つの領域の各々)に対して演算が行われ、演算結果P_oが出力される。プーリングには最大プーリングと平均プーリングとが有り、前者は領域に含まれる値の最大値を特定する処理であり、後者は領域に含まれる値の平均を算出する処理である。

0007

なお、多層ニューラルネットワークによる機械学習は、学習時間が非常に長く、学習時間を短縮するために並列分散処理に関する研究が盛んに行われている。学習時間の長期化は主に畳み込み演算の演算量の多さに起因しているため、畳み込み演算の演算量を削減すれば学習時間を大幅に短縮することができる。

先行技術

0008

特開2008−9893号公報

発明が解決しようとする課題

0009

本発明の目的は、1つの側面では、平均プーリングが実行される畳み込みニューラルネットワークの演算量を削減するための技術を提供することである。

課題を解決するための手段

0010

本発明に係る情報処理装置は、畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出する第1算出部と、カーネルの要素毎に、当該要素について第1算出部により算出された総和と当該要素との積を算出し、算出された当該積の平均を算出する第2算出部とを有する。

発明の効果

0011

1つの側面では、平均プーリングが実行される畳み込みニューラルネットワークの演算量を削減できるようになる。

図面の簡単な説明

0012

図1は、多層ニューラルネットワークの一例を示す図である。
図2は、畳み込みニューラルネットワークの一例を示す図である。
図3は、畳み込み層の処理の一例を示す図である。
図4は、プーリング層の処理の一例を示す図である。
図5は、畳み込み演算を説明するための図である。
図6は、平均プーリングを説明するための図である。
図7は、SATの生成処理を説明するための図である。
図8は、SATを用いて矩形領域内の入力値の総和を算出する方法を説明するための図である。
図9は、情報処理装置の機能ブロック図である。
図10は、メイン処理フローを示す図である。
図11は、生成処理の処理フローを示す図である。
図12は、カーネル要素と入力データとの関係を示す図である。
図13は、総和テーブル格納部に格納される総和テーブルの一例を示す図である。
図14は、本実施の形態の処理を実行するためのプログラムの一例を示す図である。
図15は、本実施の形態における計算の具体例を示す図である。
図16は、本実施の形態における計算の具体例を示す図である。
図17は、本実施の形態における計算の具体例を示す図である。
図18は、プーリング層の出力が複数要素である場合を説明するための図である。
図19は、プーリング層の出力が複数要素である場合を説明するための図である。
図20は、プーリング層の出力が複数要素である場合を説明するための図である。
図21は、プーリング層の出力が複数要素である場合を説明するための図である。
図22は、プーリング層の出力が複数要素である場合を説明するための図である。
図23は、プーリング層の出力が複数要素である場合を説明するための図である。
図24は、SGEMMを使用した畳み込み演算の一例を示す図である。
図25は、行列積の一例を示す図である。
図26は、コンピュータの機能ブロック図である。

実施例

0013

まず、本実施の形態の概要を説明する。

0014

通常、畳み込み演算においては、入力データに含まれる、カーネルサイズと同サイズの部分領域に対してカーネルが適用される。例えば図5においては、サイズが3*3である9つの部分領域に対してカーネルが適用され、出力z0乃至z8が計算される。計算式は上で述べたとおりである。そして、平均プーリングにおいては、畳み込み層の出力の平均を求める処理が実行される。例えば図6においては、畳み込み層の出力に含まれる値の総和を値の数(=9)で割ることによってプーリング層の出力Poutが算出される。

0015

本実施の形態においては、プーリング層の出力Poutを別の方法によって算出することによって演算量を削減する。着眼点を以下で説明する。

0016

図6に示した式において、z0乃至z8の総和が求められているが、この式の右辺は{A(e0+e1+・・・+e12)+B(e1+e2+・・・+e13)+C(e2+e3+・・・+e14)+D(e5+e6+・・・+e17)+E(e6+e7+・・・+e18)+F(e7+e8+・・・+e19)+G(e10+e11+・・・+e22)+H(e11+e12+・・・+e23)+I(e12+e13+・・・+e24)}/9と書き換えることができる。すなわち、各カーネル要素は入力データにおける矩形領域内の入力値の総和に掛け合わされている。例えば図5に示した入力データのうち、実線で囲まれた部分領域内の入力値に対してはカーネル要素「A」が掛け合わされており、一点鎖線で囲まれた部分領域内の入力値に対してはカーネル要素「B」が掛け合わされている。従って、各矩形領域内の入力値の総和を高速で算出できれば、プーリング層の出力を算出するまでの時間を大幅に短縮することができる。

0017

そこで本実施の形態においては、矩形領域内の入力値の総和を、SAT(Summed Area Table)(積分画像とも呼ばれる)を利用することで算出する。SATの生成処理はよく知られた処理であるが、念のため図7を用いてSATの生成処理を説明する。例えば、入力データが図7に示すような行列データであるとする。この入力データからSATが生成される場合、まず列方向に累積和を求めることによって中間的なデータが生成される。そして、中間的なデータについて、行方向に累積和を求めることによってSATが生成される。SATの各要素は、その要素に対応する入力値、及び、その要素より左又は上に位置する要素に対応する入力値の総和を表す。例えば、「46」である要素は、4+6+9+4+2+5+7+5+4に相当する。

0018

図8を用いて、SATを用いて矩形領域内の入力値の総和を算出する方法について説明する。例えば、入力データのうちハッチングが付された矩形領域内の入力値の総和を算出することを考える。この場合には、矩形領域内の右下の要素に対応するSATの要素から、矩形領域内の左下の要素に対応するSATの要素の左に隣接する要素と、矩形領域内の右上の要素に対応するSATの要素の上に隣接する要素とを差し引き、矩形領域内の左上の要素に対応するSATの要素の左上に隣接する要素を加えることで、矩形領域内の入力値の総和が算出される。

0019

このように、本実施の形態によれば、畳み込み演算を矩形領域内の入力値の総和を求める問題に置き換え、総和をSATによって求めることで、平均プーリングの完了までに要する時間を短縮することができる。

0020

以下では、本実施の形態の詳細を説明する。図9に、本実施の形態の情報処理装置1の機能ブロック図を示す。情報処理装置1は、入力データ格納部101と、SAT生成部102と、SAT格納部103と、総和テーブル生成部104と、カーネル格納部105と、総和テーブル格納部106と、算出部107と、プーリング出力データ格納部108と、処理部109と、更新部110とを含む。算出部107は、第1算出部1071と第2算出部1072とを含む。

0021

SAT生成部102は、入力データ格納部101に格納されたデータに基づき処理を実行し、処理結果をSAT格納部103に格納する。総和テーブル生成部104は、入力データ格納部101に格納されたデータ、SAT格納部103に格納されたデータ及びカーネル格納部105に格納されたデータに基づき処理を実行し、処理結果を総和テーブル格納部106に格納する。算出部107における第1算出部1071及び第2算出部1072は、カーネル格納部105に格納されたデータ及び総和テーブル格納部106に格納されたデータに基づき処理を実行し、処理結果をプーリング出力データ格納部108に格納する。処理部109は、プーリング出力データ格納部108に格納されたデータに基づき処理を実行し、処理結果を更新部110に通知する。更新部110は、処理部109から受け取った処理結果に基づき、カーネル格納部105に格納されたカーネルを更新する。

0022

次に、図10乃至図23を用いて、情報処理装置1の動作を説明する。本実施の形態においては、プーリング層の処理が平均プーリングであり且つ畳み込み層でのストライド(すなわち横方向の移動間隔)が1であるとする。また、説明を簡単にするため、ミニバッチサイズを1とし、カーネル数を1とし、プーリング層の出力が1要素であるとする。

0023

まず、SAT生成部102は、入力データ格納部101に格納された入力データを読み出す(図10:ステップS1)。入力データは例えば画像データであり、複数の入力値(例えば画素値)を含む。但し、入力データが画像データ以外のデータであってもよい。

0024

SAT生成部102は、ステップS1において読み出した入力データからSATを生成し(ステップS3)、SAT格納部103に格納する。

0025

そして、総和テーブル生成部104は、生成処理を実行する(ステップS5)。生成処理については、図11乃至図13を用いて説明する。

0026

総和テーブル生成部104は、カーネル格納部105に格納されたカーネルの要素(以下、カーネル要素と呼ぶ)のうち未処理のカーネル要素(以下、処理対象のカーネル要素と呼ぶ)を1つ特定する(図11:ステップS21)。

0027

総和テーブル生成部104は、入力データ格納部101に格納された入力データから、処理対象のカーネル要素と掛け合わされる入力値を含む矩形領域(以下、処理対象の矩形領域と呼ぶ)を特定する(ステップS23)。

0028

総和テーブル生成部104は、処理対象の矩形領域内の入力値の総和を、SATを用いて算出する(ステップS25)。矩形領域内の入力値の総和を算出する方法については、上で説明したとおりである。

0029

総和テーブル生成部104は、ステップS25において算出された総和を、総和テーブル格納部106における総和テーブルに格納する(ステップS27)。総和は、掛け合わされるカーネル要素の位置に対応する位置に格納される。例えば図12に示すように、丸印のカーネル要素は矩形領域1101内の入力値の総和に掛け合わされ、星印のカーネル要素は入力データのうち矩形領域1102内の入力値の総和に掛け合わされる場合、丸印のカーネル要素について算出された総和は丸印のカーネル要素の位置に対応する位置に格納され、星印のカーネル要素について算出された総和は星印のカーネル要素の位置に対応する位置に格納される。なお、入力データのサイズをN*N、カーネルのサイズをk*kとすると、矩形領域のサイズは(N−k+1)*(N−k+1)である。

0030

図13に、入力データが図5に示したデータである場合において総和テーブル格納部106に格納される総和テーブルの一例を示す。総和テーブルの各要素は、図5に示した入力データにおける矩形領域内の入力値の総和に相当する。

0031

図11の説明に戻り、総和テーブル生成部104は、未処理のカーネル要素が有るか判定する(ステップS29)。未処理のカーネル要素が有る場合(ステップS29:Yesルート)、ステップS21の処理に戻る。一方、未処理のカーネル要素が無い場合(ステップS29:Noルート)、呼び出し元の処理に戻る。

0032

図10の説明に戻り、算出部107における第1算出部1071は、カーネルのデータをカーネル格納部105から読み出し、また、総和テーブル格納部106に格納された総和テーブルを読み出す(ステップS7)。そして、第1算出部1071は、カーネル要素毎に、カーネル要素と対応する総和テーブルの要素との積を算出する(ステップS9)。例えば、図5に示したカーネル及び図13に示した総和テーブルについてステップS9の処理を実行すると、As0、Bs1、Cs2、Ds3、Es4、Fs5、Gs6、Hs7及びIs8が算出される。

0033

第2算出部1072は、ステップS9において算出された積の平均を算出し(ステップS11)、算出された平均をプーリング出力データ格納部108に格納する。なお、ステップS1乃至S11の処理と同様の処理を実行するためのプログラムは、例えば図14に示すようなプログラムである。但し、このようなプログラムに限られるわけではない。

0034

処理部109は、プーリング出力データ格納部108に格納されたデータを読み出し、読み出したデータに対して畳み込み層及びプーリング層の後の層(例えば、全結合層又はソフトマックス層など)の処理を実行し、畳み込みニューラルネットワークの出力データを生成する(ステップS13)。なお、畳み込み層及びプーリング層の後の層が無い場合には、ステップS13の処理はスキップされ、ステップS11において算出された平均が出力データである。ステップS13の処理は通常の畳み込みニューラルネットワークにおいても行われる処理であり、本実施の形態の主要な部分ではないので、詳細な説明を省略する。

0035

処理部109は、ステップS13において生成された出力データと、予め用意された教師データとの誤差を算出し(ステップS15)、ステップS15において算出された誤差を更新部110に通知する。これに応じ、更新部110は、カーネル格納部105に格納されたカーネルを更新する(ステップS17)。そして処理は終了する。ステップS15及びS17の処理も通常の畳み込みニューラルネットワークにおいて行われる処理であり、本実施の形態の主要な部分ではないので、詳細な説明を省略する。

0036

図15乃至図17に、本実施の形態における計算の具体例を示す。本具体例では、プーリング層の出力が1要素であるものとする。そして、図15に示すように、カーネルのサイズは2*2であり、入力データのサイズは5*5であるとする。この場合、入力データに含まれる入力値の累積和を列方向及び行方向に算出することによって、サイズが5*5であるSATが生成される。

0037

そして、図16に示すように、サイズが4(=5−2+1)*4である矩形領域内の入力値の総和が、SATを用いて算出される。1行目における1列目のカーネル要素に対応する総和は66であり、1行目における2列目のカーネル要素に対応する総和は64であり、2行目における1列目のカーネル要素に対応する総和は56であり、2行目における2列目のカーネル要素に対応する総和は62である。SATの枠外の値は0であるとする。算出された総和は、総和テーブルに格納される。

0038

そして、図17に示すように、ステップS9及びS11の畳み込み演算及び平均の算出によって、プーリング層の出力が生成される。

0039

以上のように、本実施の形態によれば、SATを利用することで任意の矩形領域内の入力値の総和を定数時間で算出できるので、畳み込み演算の演算量を削減することができるようになる。また、通常の畳み込み演算においてはカーネルのサイズ及び数が大きくなった場合には演算量が多くなるが、本実施の形態の方法はカーネルのサイズに依存せず、畳み込み演算の演算量を安定的に削減することができる。さらに、通常の畳み込み演算においては、カーネルのサイズが異なる場合にはライブラリ投入される行列が変わるため、カーネルのサイズが異なる畳み込みニューラルネットワークは別の畳み込みニューラルネットワークであるとして取り扱われる。しかし、本実施の形態の方法であれば、カーネルのサイズが不均一であっても問題は無い。

0040

ここまではプーリング層の出力が1要素である場合について説明をしたが、以下では、プーリング層の出力が複数要素である場合について説明をする。また、SATの使用方法を変更することを考える。

0041

ここでは、図18に示すように、入力データのサイズが8*8であり、カーネルのサイズが3*3であるとする。また、プーリング層の出力が4(=2*2)要素であるとする。通常の畳み込み演算を実行する場合、カーネルが適用される36の部分領域が入力データから生成され、各部分領域とカーネルとによって畳み込み演算が実行される。畳み込み層の出力は、図19に示すように、36の要素を有する。そして、図20に示すように、畳み込み層の出力は4(=2*2)つの部分領域に分割され、各部分領域に含まれる要素の平均が算出される。結果として、プーリング層の出力は4要素である。なお、通常の畳み込み演算を実行するためのプログラムは、例えば図21に示すようなプログラムである。

0042

ここで、畳み込み層の出力からSATを生成することを考える。例えば図22に示すように、畳み込み層の出力に対して列方向の累積和を計算し、さらに行方向の累積和を計算することでSATを生成する。このようにすれば、SATの要素t14を要素数9で割った値と、SATの要素t17を要素数9で割った値と、SATの要素t32を要素数9で割った値と、SATの要素t35を要素数9で割った値とがプーリング層の出力に該当する。しかし、この方法においてはSATが4つ生成されるので、通常の畳み込み演算よりも演算量が多くなってしまう。

0043

従って、SATを生成するのであれば、本実施の形態のように入力データから生成することが効果的である。本実施の形態を適用する場合、図23に示すように、入力データから4つの矩形領域を生成し、各矩形領域について上で述べた処理を実行すればよい。本実施の形態によれば、入力データから生成したSATが1つあれば任意の矩形領域内の入力値の総和を求めることができる。また、入力データからSATを生成するのでSATはカーネルと無関係であり、カーネルが複数有ってもSATは1つ有ればよい。

0044

以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。

0045

また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番入れ替えることも可能である。さらに、並列に実行させるようにしても良い。

0046

また、カーネルの形状は正方形には限られず、任意の矩形のカーネルに対して本実施の形態の処理を適用可能である。

0047

また、畳み込み層の数は1つには限られない。複数の畳み込み層が連なった畳み込みネットワークであっても、1度生成したSATによって一度にプーリング層の出力を生成することができる。

0048

付録
以下の付録においては、SGEMM(Single precision floating GEneral Matrix Multiply)を使用して畳み込み演算を実行する方法について説明を追加する。

0049

図24に、SGEMMを使用した畳み込み演算の概要を示す。SGEMMにおいては、GPU(Graphics Processing Unit)による高速な行列積計算によって畳み込み演算を行うため、入力画像及びカーネルが行列計算ライブラリに投入可能な形式に変形される。図24に示したように、入力画像に対応する行列と、カーネルに対応する行列とが生成され、これらの行列の行列積が計算される。入力画像のサイズがN*Nであり、ミニバッチのサイズが1であり、カーネルのサイズがk*kであり、カーネル数がdであるとすると、図25に示すような行列積を計算することになる。この場合、乗算の演算量はdk2(N−k+1)2であり、加算の演算量もdk2(N−k+1)2である。これに加え、SGEMMを利用するために行列生成のパーミュテーション操作及び一般的なプーリング層での処理が行われるので、さらに演算量が多くなる。

0050

一方、本実施の形態においては、(1)各列の累積和の計算、(2)各行の累積和の計算、(3)カーネル数*4の要素を取得する処理及び総和を算出する処理、(4)各カーネル要素への乗算、(5)カーネルごとに値の総和を求める処理、が実行される。この場合、乗算の演算量はdk2であり、加算の演算量は2N2+4dk2+k2−1である。次数が減っているので、演算量を大幅に削減することができている。

0051

以上で付録を終了する。

0052

なお、上で述べた情報処理装置1は、コンピュータ装置であって、図26に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスクドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブルディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。

0053

以上述べた本発明の実施の形態をまとめると、以下のようになる。

0054

本実施の形態の第1の態様に係る情報処理装置は、(A)畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出する第1算出部と、(B)カーネルの要素毎に、当該要素について第1算出部により算出された総和と当該要素との積を算出し、算出された当該積の平均を算出する第2算出部とを有する。

0055

これにより、畳み込み演算が矩形領域内の入力値の総和を求める問題に変換されるので、平均プーリングが実行される畳み込みニューラルネットワークの演算量を削減することができるようになる。

0056

また、本情報処理装置は、(C)入力データからSAT(Summed Area Table)を生成する生成部をさらに有してもよい。そして、上で述べた第1算出部は、(a1)特定された入力値を含む矩形領域について、入力値の総和をSATを用いて算出してもよい。SATを利用すれば、任意の矩形領域内の入力値の総和を定数時間で算出できるので、畳み込み演算及び平均プーリングに要する時間を短縮できるようになる。

0057

また、上で述べた第2算出部は、(b1)算出された積の総和をカーネルの要素数で除することで積の平均を算出してもよい。

0058

本実施の形態の第2の態様に係る、畳み込みニューラルネットワークの演算方法は、(D)畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出し、(E)カーネルの要素毎に、当該要素について算出された総和と当該要素との積を算出し、算出された当該積の平均を算出する処理を含む。

0059

なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスクCD−ROM光磁気ディスク半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。

0060

以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。

0061

(付記1)
畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から前記畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出する第1算出部と、
前記カーネルの要素毎に、当該要素について前記第1算出部により算出された前記総和と当該要素との積を算出し、算出された当該積の平均を算出する第2算出部と、
を有する情報処理装置。

0062

(付記2)
記入力データからSAT(Summed Area Table)を生成する生成部
をさらに有し、
前記第1算出部は、
特定された前記入力値を含む矩形領域について、前記入力値の総和を前記SATを用いて算出する、
付記1記載の情報処理装置。

0063

(付記3)
前記第2算出部は、
算出された前記積の総和を前記カーネルの要素数で除することで前記積の平均を算出する、
付記1又は2記載の情報処理装置。

0064

(付記4)
コンピュータが、
畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から前記畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出し、
前記カーネルの要素毎に、当該要素について算出された前記総和と当該要素との積を算出し、算出された当該積の平均を算出する、
処理を実行する、畳み込みニューラルネットワークの演算方法。

0065

(付記5)
コンピュータに、
畳み込み演算において使用されるカーネルの要素毎に、入力データに含まれる入力値の中から前記畳み込み演算において当該要素と掛け合わされる入力値を特定し、特定された当該入力値の総和を算出し、
前記カーネルの要素毎に、当該要素について算出された前記総和と当該要素との積を算出し、算出された当該積の平均を算出する、
処理を実行させる、畳み込みニューラルネットワークの演算プログラム

0066

1情報処理装置101 入力データ格納部
102 SAT生成部 103 SAT格納部
104 総和テーブル生成部 105カーネル格納部
106 総和テーブル格納部 107 算出部
1071 第1算出部 1072 第2算出部
108プーリング出力データ格納部 109 処理部
110更新部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ