(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06N 3/04 20230101AFI20241022BHJP
G06F 17/10 20060101ALI20241022BHJP
G06N 3/0464 20230101ALI20241022BHJP
【FI】
G06N3/04
G06F17/10 A
G06N3/0464
(21)【出願番号】P 2021148670
(22)【出願日】2021-09-13
【審査請求日】2023-10-26
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】毛利 昌弘
(72)【発明者】
【氏名】高田 広章
(72)【発明者】
【氏名】本田 晋也
【審査官】佐藤 直樹
(56)【参考文献】
【文献】特開2020-126601(JP,A)
【文献】特表2019-532349(JP,A)
【文献】特開2006-252394(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/04
G06F 17/10
G06N 3/0464
(57)【特許請求の範囲】
【請求項1】
畳み込みニューラルネットワークに用いられる
情報処理装置であって、
入力データを取得するデータ取得部と、
畳み込み処理を実行する畳み込み層とプーリング処理を実行するプーリング層を有し、前記入力データを処理する処理部とを備え、
前記処理部は、
前記データ取得部で取得した前記入力データを、処理領域が重複する重複領域と処理領域が重複しない非重複領域を有する処理領域に区切り、
前記処理領域における前記処理を実行する際、前記非重複領域では、前記畳み込み処理あるいは前記プーリング処理を実行し、前記重複領域では、前記畳み込み処理の処理結果あるいは前記プーリング処理の処理結果を再利用して、前記処理を実行するよう構成され
、
前記処理部は、
全結合層の前段に、前記畳み込み層および前記プーリング層を含む複数の処理層を有し、
前記処理部は、
最初の1周期の処理の際には、前記複数の処理層の第1層から最終層まで、前記畳み込み処理あるいは前記プーリング処理を、順次実行し、
前記処理の2周期以降の処理の際には、前記第1層から前記最終層まで、前周期と今周期の前記非重複領域では、前記畳み込み処理あるいは前記プーリング処理を実行するとともに、前周期と今周期の前記重複領域では、前周期における前記畳み込み処理の前記処理結果あるいは前周期における前記プーリング処理の前記処理結果を再利用して、前記処理を実行するよう構成されている、情報処理装置。
【請求項2】
前記最終層は、前記全結合層に入力する出力データを作成するものであり、
前記処理部は、
前周期と今周期の前記重複領域では、前周期における前記畳み込み処理の前記処理結果あるいは前周期における前記プーリング処理の前記処理結果を再利用して、前記出力データを作成し、
前周期と今周期の前記非重複領域では、前記第1層から前記最終層まで、前記畳み込み処理あるいは前記プーリング処理を、順次実行することにより、前記出力データを作成し、
前記最終層で、今周期の前記処理領域における前記出力データが全て作成されると、前記出力データを、前記
全結合層に入力するよう構成されている、請求項
1に記載の情報処理装置。
【請求項3】
前記処理部は、
前周期と今周期の前記非重複領域では、カーネルによって処理可能なデータが揃うと順次前記処理を実行するよう、請求項
2に記載の情報処理装置。
【請求項4】
前記情報処理装置は、車両に搭載された演算処理装置から構成される、請求項1から請求項
3のいずれか1項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、畳み込みニューラルネットワークを使用する情報処理装置に関する。
【背景技術】
【0002】
国際公開第2020/194465号(特許文献1)には、畳み込み演算を、空間方向への畳み込み演算とチャネル方向への畳み込み演算とに分けて、これらを個別に実行するニューラルネットワーク回路が開示されている。このニューラルネットワーク回路は、チャネル方向への畳み込みを行なう1×1畳み込み演算回路と、1×1畳み込み演算回路の演算結果が格納されるSRAMと、SRAMに格納された演算結果に対して空間方向への畳み込みを行なうN×N畳み込み演算回路とを備える。1×1畳み込み演算回路の演算結果をSRAMに格納することにより、N×N畳み込み演算回路のメモリボトルネックを回避している。メモリボトルネックは、1回の畳み込み演算に必要なデータをメモリから読み出す時間が、1回の畳み込み演算時間を上回ることをいう(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)では、繰り返し行列演算を大量に行うため、情報処理装置の処理量(演算量)が膨大になることが知られている。また、CNNによる推論(入力データを分類して結果を推測すること)の実行頻度が高いほど、推論の精度が高くなる。このため、CNNを用いて精度の高い推論を行うには、処理能力の高いCPU(Central Processing Unit)やGPU(Graphics Processing Unit)を用いることが望ましい。
【0005】
組み込み系のシステム等では、コスト低減の観点から、汎用のCPUに比べて処理能力の低いCPUが用いられることがある。たとえば、車両に搭載される組み込み系シスデムでは、各タスクに実行周期が設定され、短時間で確実に処理を行う必要性があるとともに、処理速度が制限される場合がある。処理能力の低いCPUでCNNを用いる場合、処理量(計算量)を削減しつつ、推論の実行頻度が高めることが望まれる。
【0006】
本開示の目的は、畳み込みニューラルネットワークの処理量(演算量)が比較的少なくても、推論の精度を高くすることが可能な情報処理装置を提供することである。
【課題を解決するための手段】
【0007】
本開示に係る情報処理装置は、畳み込みニューラルネットワークに用いられる情報処理装置である。情報処理装置は、入力データを取得するデータ取得部と、畳み込み処理を実行する畳み込み層とプーリング処理を実行するプーリング層を有し、入力データを処理する処理部とを備える。処理部は、データ取得部で取得した入力データを、処理領域が重複する重複領域と処理領域が重複しない非重複領域を有する処理領域に区切り、処理領域における処理を実行する際、非重複領域では、畳み込み処理あるいはプーリング処理を実行し、重複領域では、畳み込み処理の処理結果あるいはプーリング処理の処理結果を再利用して、処理を実行するよう構成されている。
【0008】
この構成によれば、処理部は、データ取得部で取得した入力データを、処理領域が重複する重複領域と処理領域が重複しない非重複領域を有する処理領域に区切る。処理領域に重複領域が設定されるため、入力データの推論の実行頻度が高くなり、推論の精度を高めることができる。処理部は、処理領域における処理を実行する際、重複領域では、畳み込み処理の処理結果あるいはプーリング処理の処理結果を再利用して、処理を実行する。畳み込み処理の処理結果あるいはプーリング処理の処理結果を再利用するので、処理量(演算量)を削減することができる。
【0009】
好ましくは、入力データは時系列データであってよく、処理部は、時系列データを一定間隔で処理領域に区切るとともに、重複領域と非重複領域を有するよう処理領域を区切ってもよい。
【0010】
この構成によれば、時系列データの重複を許容しながら、処理部に入力できるので、推論の実行頻度を高めることができる。
【0011】
好ましくは、処理部は、全結合層の前段に、畳み込み層およびプーリング層を含む複数の処理層を有する。処理部は、最初の1周期の処理の際には、複数の処理層の第1層から最終層まで、畳み込み処理あるいはプーリング処理を、順次実行する。そして、処理部は、2周期以降の処理の際には、第1層から最終層まで、前周期と今周期の非重複領域では、畳み込み処理あるいはプーリング処理を実行するとともに、前周期と今周期の重複領域では、前周期における畳み込み処理の処理結果あるいは前周期におけるプーリング処理の処理結果を再利用して、処理を実行するよう構成されてもよい。
【0012】
この構成によれば、最初の1周期には、前周期がなく重複領域がないので、複数の処理層の第1層から最終層まで、畳み込み処理あるいはプーリング処理を、順次実行する。2周期以降の処理の際には、第1層から最終層まで、前周期と今周期の非重複領域では、畳み込み処理あるいはプーリング処理を、順次実行する。これにより、入力データに対して、連続して、第1層から最終層まで処理を順次実行することが可能になり、処理に待ち時間が無くなるので、処理時間を短縮することができる。前周期と今周期の重複領域では、前周期における畳み込み処理の処理結果あるいは前周期におけるプーリング処理の処理結果を再利用するので、処理量(演算量)を削減することができる。
【0013】
好ましくは、最終層は、全結合層に入力する出力データを作成するものである。処理部は、前周期と今周期の重複領域では、前周期における畳み込み処理の処理結果あるいは前周期におけるプーリング処理の処理結果を再利用して、出力データを作成し、前周期と今周期の非重複領域では、第1層から最終層まで、畳み込み処理あるいはプーリング処理を、順次実行することにより、出力データを作成する。そして、処理部は、最終層で、今周期の処理領域における出力データが全て作成されると、出力データを、全結合層に入力するよう構成されてもよい。
【0014】
この構成によれば、全結合層に入力する出力データを作成する最終層において、重複領域では、前周期における畳み込み処理の処理結果あるいは前周期におけるプーリング処理の処理結果を再利用して、出力データを作成し、非重複領域では、第1層から最終層まで、畳み込み処理あるいはプーリング処理を、順次実行することにより、出力データを作成する。したがって、全結合層に入力される出力データを、重複領域における処理結果を再利用して作成することができ、処理量を削減することができる。
【0015】
好ましくは、処理部は、前周期と今周期の非重複領域では、カーネルによって処理可能なデータが揃うと順次処理を実行するようにしてもよい。
【0016】
この構成によれば、非重複領域において、非重複領域のデータが全て揃うのを待つこと無く、カーネル(フィルタ)のサイズ等に相当するデータが揃うと、順次処理を実行する。これにより、処理時間を短縮することが可能になる。
【0017】
情報処理装置は、車両に搭載された演算装置から構成されてもよい。本開示の情報処理装置は、処理量(演算量)が少ないので、車両に搭載された組み込みシステムのCPUを用いて、CNNを使用することができる。
【発明の効果】
【0018】
本開示によれば、畳み込みニューラルネットワークの処理量(演算量)が比較的少なくても、推論の精度を高くすることが可能な情報処理装置を提供することができる。
【図面の簡単な説明】
【0019】
【
図1】本実施の形態に係る情報処理装置10の構成を示す図である。
【
図2】処理部23の詳細な構成を説明するための図である。
【
図3】従来における、入力データの区切り方を説明する図である。
【
図4】本実施の形態における、入力データの区切り方を説明する図である。
【
図5】従来における、CNNの処理(演算)を模式的に説明した図である。
【
図6】本実施の形態における、CNNの処理(演算)を模式的に説明した図である。
【発明を実施するための形態】
【0020】
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0021】
図1は、本実施の形態に係る情報処理装置10の構成を示す図である。本実施の形態に係る情報処理装置10は、車両Vに搭載されている。車両Vは、内燃機関Eと変速機MとディファレンシャルギヤGと駆動輪Dを備える。なお、車両Vは、電気モータを備えた電動車両であってもよい。情報処理装置10は、畳み込みニューラルネットワーク(CNN)による推論を行い(入力データを分類して結果を推測し)、その結果を出力する。情報処理装置10は、制御装置20と、記憶装置30と、通信装置40とを備える。
【0022】
記憶装置30は、たとえば、ROM(Read Only Memory)およびRAM(Random Access Memory)を含んで構成される。記憶装置30は、制御装置20により実行されるプログラム等を記憶する。通信装置40は、外部の装置と制御装置20の双方向の通信が可能に構成される。
【0023】
制御装置20は、データ取得部21と、処理部23と、出力部25とを含む。制御装置20は、記憶装置30に記憶されたプログラムを実行することにより、データ取得部21、処理部23、出力部25として機能する。なお、制御装置20は、CNNを使用して、データ取得部21から受けたデータ(入力データ)を処理する際のバッファを備えてよく、記憶装置30をバッファとして使用してもよい。
【0024】
データ取得部21は、各種センサ50で検出した、あるいは、各種センサ50で検出した値に基づき作成された、時系列データ100を取得する。時系列データ100としては、たとえば、車両Vの運動状態(前後加速度、横加速度、車速等)や、内燃機関Eの回転速度や排気温度等であってよく、車両Vに係る時系列データであればよい。データ取得部21は、所定の周期で、時系列データ100を取得し、取得された時系列データ100を処理部23に出力する。
【0025】
処理部23は、CNNを使用して、データ取得部21から受けた時系列データ100(入力データ)を処理し、入力データに対する識別結果(推論の結果)を出力部25に出力する。
【0026】
図2は、処理部23の詳細な構成を説明するための図である。処理部23は、畳み込み層231、233、プーリング層232、234、および、全結合層235を含む。畳み込み層231、233およびプーリング層232、234は、入力データから特徴量を抽出する。畳み込み層231、233では、所定のサイズのカーネル(フィルタ)を用いた畳み込み処理が実行される。プーリング層232、234では、畳み込み結果を圧縮する処理であり、所定サイズのカーネル(ウィンド)を用いてプーリング処理が実行される。本実施の形態では、MAXプーリングが実行される。なお、
図2おいては、2つの畳み込み層231、233および2つのプーリング層232、234が処理部23に含まれる例を示しているが、これらの処理層の数(畳み込み層の数、プーリング層の数)は、適宜変更することが可能である。
【0027】
全結合層235は、入力層と、中間層と、出力層とを含む。入力層は、複数のユニットで構成される。各ユニットには、1次元に変換されたプーリング層234の出力が入力される。
【0028】
中間層は、複数の層で構成される。
図2では、中間層の層数が2である場合を例示しているが、中間層の層数は適宜変更することができる。中間層の各層は、複数のユニットで構成される。各ユニットは、前の層の各ユニットと、次の層の各ユニットとに接続される。各ユニットは、前の層の各ユニットからの各出力値に重みを乗算し、それらの乗算結果を積算する。次に、各ユニットは、積算結果の各々に対して所定のバイアスを加算(または減算)し、その加算結果(または減算結果)を所定の活性化関数(たとえば、ランプ関数またはシグモナイト関数)に入力し、その活性化関数の出力値を次の層の各ユニットに出力する。
【0029】
出力層は、1つ以上のユニットで構成される。出力層のユニット数は、適宜変更することができる。出力層の各ユニットは、中間層の最終層の各ユニットに接続される。出力層の各ユニットは、中間層の最終層の各ユニットからの出力値を受けて、各出力値に重みを乗算し、それらの乗算結果を積算する。当該乗算結果は、所定の活性化関数(たとえば、ランプ関数またはシグモナイト関数)に入力される。当該活性化関数の出力値は、たとえば確率を示す。
【0030】
一般的に、入力データが時系列データ100である場合、CNNを使用した処理では、データ取得部21で取得した時系列データ100(入力データ)を、一定間隔(一定周期)で区切り、CNNの処理領域(演算領域)として、最初の処理(本実施の形態では畳み込み層の処理)を実行する。
図3は、従来における、入力データの区切り方を説明する図である。
図3に示すように、時系列データ100を一定間隔(一定周期)Tで区切り、時刻t1sから時刻t1eまでの時系列データ100を第1処理領域1として処理を実行し、時刻t2s(時刻t1eと同時刻)から時刻t2eまでの時系列データ100を第2処理領域2として処理を実行する。第3処理領域3および第4処理領域の同様である。
【0031】
このように、一定間隔Tで処理領域を区切り、CNNの処理を実行すると、第1処理領域1と第2処理領域2の間に、特徴が良く表れている時系列データ100が存在する場合、時系列データ100の特徴を精度良く推論することができない懸念がある。
【0032】
図4は、本実施の形態における、入力データの区切り方を説明する図である。本実施の形態では、従来と同様に、時系列データ100を一定間隔Tで区切り、処理領域を設定する際に、処理領域の重複を許容し、重複領域を設定する。
図4に示すように、時刻t1sから時刻t1eまでの第1処理領域1の間に、第2処理領域2の開始時刻t2sを設定し、時刻t1sから時刻t1eまでの時系列データ100の重複を許容する。これにより、
図4に斜線で示した、時刻t2sから時刻t1eまでの時系列データ100が、第1処理領域1と第2処理領域2の重複領域となる。また、時刻t1eから時刻t2eまでの時系列データ100が、第2処理領域2における、非重複領域となる。時刻t2sから時刻t2eまでの第2処理領域2の間に、第3処理領域3の開始時刻t3sを設定し、時刻t3sから時刻t2eまでの時系列データ100の重複を許容することにより、時刻t3sから時刻t2eまでの時系列データ100が、第2処理領域2と第3処理領域3の重複領域となる。以後、同様に入力データ(時系列データ100)を区切ることにより、今周期における処理領域と前周期における処理領域に重複領域を設定することができる。
【0033】
図4においては、時刻によって処理領域の区切ることを説明しているが、時系列データ100は、所定のデータ収集間隔毎に生成される。時系列データ100を一定間隔(一定周期)Tで区切り、処理領域を設定することは、連続した所定個数の時系列データ100を処理領域とすることと実施的に同一である。連続した所定個数の時系列データ100の処理領域を、「入力窓」と称すると、入力窓を設定個数だけスライドすることにより、重複領域を設定することができる。
【0034】
このように、処理領域の重複を許容することにより、特徴が良く表れている時系列データ100が存在する領域を確実にカバーできるとともに、CNNによる推論の実行頻度を増やすことができるので、時系列データ100の特徴を精度良く推論することが可能になる。しかし、処理領域毎にCNNによる推論を実行すると、処理量(演算量)が増加するという問題が生じる。
【0035】
図5は、従来における、CNNの処理(演算)を模式的に説明した図である。
図5において、処理層の第1層は、畳み込み層231であり、第2層はプーリング層232であり、第3層は畳み込み層233であり、最終層(第4層)はプーリング層234である。最終層であるプーリング層234は、全結合層235に入力する出力データを作成する。
【0036】
データ取得部21が、入力データ(時系列データ100)を取得し、第1処理領域1の時系列データ100が揃うと、第1層(畳み込み層231)は、第1層カーネル(フィルタ)231fを用いて畳み込み処理を開始する。たとえば、第1層カーネル231fを用いた積和演算を、第1層カーネル231fを順次スライドしながら実行し、処理結果(処理データ)を第1層バッファ231bに記憶する。第1層(畳み込み層231)の処理が終了すると、第2層(プーリング層232)の処理を実行する。
【0037】
第2層(プーリング層232)では、第1層バッファ231bに記憶された処理データに対して、第2層カーネル(ウィンド)232cを順次スライドしMAXプーリングを実行し、処理結果(処理データ)を、第2層バッファ232bに記憶する。第2層(プーリング層232)の処理が終了すると、第3層(畳み込み層233)の処理を実行する。
【0038】
第3層(畳み込み層233)および最終層(プーリング層234)の処理は、上記と同様に行わる。第2層バッファ232bに記憶された処理データに対して、第3層カーネル(フィルタ)233fを用いた畳み込み処理を実行し、処理結果を第3層バッファ233bに記憶する。また、第3層バッファ233bに記憶された処理データに対して、最終層カーネル(ウィンド)234cを用いたMAXプーリングを実行し、処理結果を最終層バッファ234bに記憶する。そして、最終層(プーリング層234)の処理が終了すると、最終層バッファ234bに記憶された処理データが、全結合層235に入力される。
【0039】
第1処理領域1において、第1層(畳み込み層231)から最終層(プーリング層234)の処理が終了すると、第2処理領域2において同様の処理を実行する。このように、従来は、処理領域毎に順次、CNNによる推論を繰り返し実行している。
【0040】
図6は、本実施の形態における、CNNの処理(演算)を模式的に説明した図である。
図6において、
図5と同様に、処理層の第1層は、畳み込み層231であり、第2層はプーリング層232であり、第3層は畳み込み層233であり、最終層(第4層)はプーリング層234である。最終層であるプーリング層234は、全結合層235に入力する出力データを作成する。
【0041】
本実施の形態では、第1処理領域1の処理に際し、第1層(畳み込み層231)において、データ取得部21が入力データ(時系列データ100)を取得し、第1層カーネル(フィルタ)231fを用いた積和演算が可能な時系列データ100が揃うと、第1層カーネル231fを用いて畳み込み処理を開始する。たとえば、最初は、第1層カーネル231fのサイズと同じ数(あるいは、同じ数以上)の時系列データ100が揃うと、積和演算を行い、処理結果(処理データ)を第1層バッファ231bに記憶する。次回以降の処理(演算)では、第1層カーネル231fのスライド量に相当する時系列データ100が追加され、第1層カーネル231fを用いた積和演算が可能な時系列データ100が揃うと、積和演算を行い、処理結果(処理データ)を第1層バッファ231bに記憶する。このように、第1層(畳み込み層231)では、第1層カーネル231fを用いた積和演算が可能な時系列データ100が揃うと、順次、積和演算を行い、処理結果(処理データ)を第1層バッファ231bに記憶する。
【0042】
第2層(プーリング層232)においては、第1層バッファ231bに記憶された処理データ(第1層の処理結果)の数が、第2層カーネル(ウィンド)232cを用いたMAXプーリングが可能な数になると、プーリング処理を実行する。たとえば、最初は、第2層カーネル232cのサイズと同じ数(あるいは、同じ数以上)の処理データが第1層バッファ231bに揃うと、MAXプーリングを実行し、処理結果(処理データ)を第2層バッファ232bへ記憶する。次回以降の処理(演算)では、第2層カーネル232cのスライド量に相当する処理データが第1層バッファ231bに追加され、第2層カーネル232cを用いたMAXプーリングが可能な処理データが揃うと、MAXプーリングを行い、処理結果(処理データ)を第2層バッファ232bに記憶する。このように、第2層(プーリング層232)においても、第2層カーネル232cを用いたMAXプーリングが可能な処理データが第1層バッファ231bに揃うと、順次、プーリング処理を行い、処理結果(処理データ)を第2層バッファ232bに記憶する。
【0043】
第3層(畳み込み層233)および最終層(プーリング層234)の処理も、上記と同様に行わる。第2層バッファ232bに記憶された処理データが、第3層カーネル(フィルタ)233fを用いた畳み込み処理を可能な状態になると、順次、畳み込み処理を実行し、処理結果を第3層バッファ233bに記憶する。また、第3層バッファ233bに記憶された処理データが、最終層カーネル234cを用いたMAXプーリングを可能な状態になると、順次プーリング処理を実行し処理結果を最終層バッファ234bに記憶する。そして、第1処理領域1における最終層(プーリング層234)の処理が終了すると、最終層バッファ234bに記憶された処理データが、全結合層235に入力される。
【0044】
第2処理領域2の非重複領域(
図6に斜線で示した重複領域に続く、第2処理領域)では、非重複領域における時系列データ100に対して、上記で説明した第1処理領域1における処理と同様な処理が実行される。これにより、第1処理領域1の処理に連続して、第2処理領域の非重複領域の処理が実行され、最終層バッファ234bには、非重複領域における時系列データ100に対する処理結果(処理データ)が記憶される。
【0045】
第2処理領域2において、斜線で示した、第1処理領域1と第2処理領域2の重複領域では、第1処理領域1の処理結果を再利用する。第2処理領域2においては、重複領域における時系列データ100に対する第1層(畳み込み層231)から最終層(プーリング層234)の処理を実行せず、重複領域における時系列データ100を用いて第1処理領域1で処理(演算)され、最終層バッファ234bに記憶された処理結果(処理データ)を、非重複領域における時系列データ100に対する処理結果(処理データ)に加えることによって、第1処理領域1の処理結果を再利用する。第2処理領域2の処理が終了すると、最終層バッファ234bには、重複領域における時系列データ100を用いて第1処理領域1で処理(演算)された処理結果(処理データ)と、非重複領域における時系列データ100に対する処理結果(処理データ)が記憶されているので、これらの処理結果(処理データ)を全結合層235に入力する。
【0046】
第3処理領域3以降の処理は、第2処理領域2における処理と同様に実行され、第2処理領域2と第3処理領域3の重複領域では、第2処理領域2の処理結果を再利用する。なお、
図6において、第1処理領域1と第2処理領域2と第3処理領域が重複する領域が存在するが、この領域では、第3処理領域3において、第1処理領域1の処理結果が再利用されることになる。
【0047】
本実施の形態では、データ取得部21で取得した時系列データ100(入力データ)を、一定間隔Tで区切り処理領域を設定する際に、処理領域の重複を許容し、重複領域を設定している。重複領域を設定することにより、特徴が良く表れている時系列データ100が存在する領域を確実にカバーできるとともに、CNNによる推論の実行頻度を増やすことができるので、時系列データ100の特徴を精度良く推論することが可能になる。
【0048】
本実施の形態では、処理領域における処理を実行する際、重複領域において、処理結果を再利用する。すなわち、前周期の重複領域の処理結果を、今周期の重複領域の処理結果として出力する。これにより、CNNの処理量(演算)量を削減することができる。
【0049】
本実施の形態では、最初の1周期である第1処理領域1の処理の際には、第1層(畳み込み層231)から最終層(プーリング層234)まで、処理(演算)を順次実行する。2周期以降の処理である第2処理領域2以降の処理の際には、前周期と今周期の非重複領域では、第1層(畳み込み層231)から最終層(プーリング層234)まで、処理(演算)を順次実行するとともに、前周期と今周期の重複領域では、前周期の処理結果を再利用している。これにより、入力データである時系列データ100に対して、連続して、第1層から最終層まで処理を順次実行することが可能になり、処理に待ち時間が無くなるので、処理時間を短縮することができる。
【0050】
本実施の形態では、最終層(プーリング層234)は、全結合層235に入力する出力データ(処理データ)を記憶する最終層バッファ234bを備える。最終層バッファ234bは、前周期と今周期の重複領域では、前周期における処理結果(処理データ)を記憶し、前周期と今周期の非重複領域では、第1層から最終層までの処理を順次実行した処理結果(処理データ)を記憶する。そして、今周期の処理領域における処理が終了すると、最終層バッファ234bに記憶されている、重複領域の処理データと非重複領域の処理データを、全結合層235に入力する。これにより、全結合層235に入力する出力データ(処理データ)記憶する最終層バッファ234bに、重複複領域での処理結果(処理データ)が記憶され、再利用されるので、処理量(演算量)を削減することができる。
【0051】
本実施の形態では、非重複領域において、時系列データ100、第1層バッファ231bに記憶された処理データ、第2層バッファ232bに記憶された処理データ、および、第3層バッファ233bに記憶された処理データが、対応するカーネルのサイズ、あるいは、スライド量に相当する数になり、カーネルによる処理が可能なデータが揃うと、処理を実行する。これにより、非重複領域のデータがすべて揃うのを待つことなく処理を実行できるので、処理時間を短縮することが可能になる。
【0052】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0053】
10 情報処理装置、20 制御装置、21 データ取得部、23 処理部、25 出力部、30 記憶装置、40 通信装置、50 各種センサ、100 時系列データ、231 畳み込み層、231b 第1層バッファ、231f 第1層カーネル、232 プーリング層、232b 第2層バッファ、232c 第2層カーネル、233 畳み込み層、233b 第3層バッファ、233f 第3層カーネル、234 プーリング層、234b 最終層バッファ、234c 最終層カーネル、235 全結合層、D 駆動輪、E 内燃機関、G ディファレンシャルギヤ、M 変速機、V 車両。