図面 (/)

技術 演算装置、方法及びプログラム

出願人 株式会社東芝
発明者 渡辺友樹伊藤聡窪田進
出願日 2015年9月30日 (4年8ヶ月経過) 出願番号 2015-193188
公開日 2017年4月6日 (3年2ヶ月経過) 公開番号 2017-068577
状態 特許登録済
技術分野 学習型計算機 複合演算 イメージ分析
主要キーワード 総和記号 フィルタ窓 写像部 パターン認識結果 特徴量マップ 写像値 フィルタ重み 累積加算結果
関連する未来課題
重要な関連分野

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

図面 (9)

課題

コンボリューション層や全結合層で行われる演算の演算量を抑えることができる演算装置、方法及びプログラムを提供する。

解決手段

演算装置10は、受付部11と、設定部13と、選択部17と、加算部19と、出力部23と、を備える。受付部11は、テンソルデータの入力を受け付ける。設定部13は、テンソルデータに窓を設定する。選択部17は、窓内におけるテンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する。加算部19は、座標毎に選択された重み値を累積加算して、累積加算値を得る。出力部23は、累積加算値に基づく値を出力する。

概要

背景

近年、ニューラルネットワークと呼ばれる数学モデル画像認識音声認識などのパターン認識に応用されている。ニューラルネットワークは、複数の演算層で構成されており、認識対象パターンが入力されると、当該複数の演算層による繰り返し演算を行い、検出、識別、又はラベリングなどのパターン認識結果を出力する。

ニューラルネットワークを構成する演算層には、主に、コンボリューション層や全結合層と呼ばれる演算層が用いられる。コンボリューション層で行われる演算は、例えば、数式(1)で表される。

ここで、xは、コンボリューション層に入力されたテンソルデータを示し、(Ox,Oy)は、当該テンソルデータに設定されたフィルタ窓原点が位置する当該テンソルデータの座標を示し、Owは、当該フィルタ窓の幅を示し、Ohは、当該フィルタ窓の高さを示し、x(Ox+i,Oy+j)は、当該フィルタ窓内における当該テンソルデータの位置(Ox+i,Oy+j)の値を示す。w(i,j)は、フィルタ窓内の位置(i,j)における重み値を示し、bは、バイアスを示す。f()は非線形関数を表し、一般的にsigmoid関数やtanh関数などが用いられる。y(Ox,Oy)は、コンボリューション層から出力されるテンソルデータの出力値を示す。ここで、テンソルデータとは多次元の配列として表現されるものである。

なお、数式(1)において、テンソルデータの範囲と、設定されるフィルタ窓の範囲とが一致する場合、つまりテンソルデータのすべての要素がちょうどフィルタ窓に内包される場合、全結合層で行われる演算を表す。

概要

コンボリューション層や全結合層で行われる演算の演算量を抑えることができる演算装置、方法及びプログラムを提供する。演算装置10は、受付部11と、設定部13と、選択部17と、加算部19と、出力部23と、を備える。受付部11は、テンソルデータの入力を受け付ける。設定部13は、テンソルデータに窓を設定する。選択部17は、窓内におけるテンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する。加算部19は、座標毎に選択された重み値を累積加算して、累積加算値を得る。出力部23は、累積加算値に基づく値を出力する。

目的

本発明が解決しようとする課題は、コンボリューション層や全結合層で行われる演算の演算量を抑えることができる演算装置、方法及びプログラムを提供する

効果

実績

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

この技術が所属する分野

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

請求項1

テンソルデータの入力を受け付ける受付部と、前記テンソルデータに窓を設定する設定部と、前記窓内における前記テンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する選択部と、前記座標毎に選択された前記重み値を累積加算して、累積加算値を得る加算部と、前記累積加算値に基づく値を出力する出力部と、を備える演算装置

請求項2

前記窓内の座標毎に、2以上の重み値を対応付けて記憶する記憶部を更に備え、前記選択部は、前記窓内における前記テンソルデータの座標毎に、当該テンソルデータの座標と相対する前記窓内の座標に対応付けられた2以上の重み値の中から、比較結果に応じた重み値を選択する請求項1に記載の演算装置。

請求項3

前記2以上の重み値は、0を含む請求項2に記載の演算装置。

請求項4

前記加算部は、前記座標毎に選択された前記重み値のうち値が0以外の重み値を累積加算する請求項3に記載の演算装置。

請求項5

前記選択部は、前記テンソルデータの座標における画素値と1以上の閾値との大小関係を比較する請求項1に記載の演算装置。

請求項6

前記累積加算値を写像する写像部を更に備え、前記出力部は、前記累積加算値の写像値を出力する請求項1に記載の演算装置。

請求項7

前記テンソルデータの画素値は、離散値であり、前記選択部は、前記テンソルデータの座標における画素値と1以上の閾値とが一致するか否かを比較する請求項1に記載の演算装置。

請求項8

前記離散値は、2値である請求項7に記載の演算装置。

請求項9

前記累積加算値を離散値に写像する写像部を更に備え、前記出力部は、前記累積加算値の写像値を出力する請求項7に記載の演算装置。

請求項10

前記重み値及び前記累積加算値は、ベクトルである請求項1に記載の演算装置。

請求項11

前記設定部は、前記テンソルデータの全範囲に前記窓を設定する請求項1に記載の演算装置。

請求項12

テンソルデータの入力を受け付ける受付ステップと、前記テンソルデータに窓を設定する設定ステップと、前記窓内における前記テンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する選択ステップと、前記座標毎に選択された前記重み値を累積加算して、累積加算値を得る加算ステップと、前記累積加算値に基づく値を出力する出力ステップと、を含む演算方法

請求項13

テンソルデータの入力を受け付ける受付ステップと、前記テンソルデータに窓を設定する設定ステップと、前記窓内における前記テンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する選択ステップと、前記座標毎に選択された前記重み値を累積加算して、累積加算値を得る加算ステップと、前記累積加算値に基づく値を出力する出力ステップと、をコンピュータに実行させるためのプログラム

技術分野

0001

本発明の実施形態は、演算装置、方法及びプログラムに関する。

背景技術

0002

近年、ニューラルネットワークと呼ばれる数学モデル画像認識音声認識などのパターン認識に応用されている。ニューラルネットワークは、複数の演算層で構成されており、認識対象パターンが入力されると、当該複数の演算層による繰り返し演算を行い、検出、識別、又はラベリングなどのパターン認識結果を出力する。

0003

ニューラルネットワークを構成する演算層には、主に、コンボリューション層や全結合層と呼ばれる演算層が用いられる。コンボリューション層で行われる演算は、例えば、数式(1)で表される。

0004

0005

ここで、xは、コンボリューション層に入力されたテンソルデータを示し、(Ox,Oy)は、当該テンソルデータに設定されたフィルタ窓原点が位置する当該テンソルデータの座標を示し、Owは、当該フィルタ窓の幅を示し、Ohは、当該フィルタ窓の高さを示し、x(Ox+i,Oy+j)は、当該フィルタ窓内における当該テンソルデータの位置(Ox+i,Oy+j)の値を示す。w(i,j)は、フィルタ窓内の位置(i,j)における重み値を示し、bは、バイアスを示す。f()は非線形関数を表し、一般的にsigmoid関数やtanh関数などが用いられる。y(Ox,Oy)は、コンボリューション層から出力されるテンソルデータの出力値を示す。ここで、テンソルデータとは多次元の配列として表現されるものである。

0006

なお、数式(1)において、テンソルデータの範囲と、設定されるフィルタ窓の範囲とが一致する場合、つまりテンソルデータのすべての要素がちょうどフィルタ窓に内包される場合、全結合層で行われる演算を表す。

0007

特許第5376920号公報

先行技術

0008

岡谷貴之,齋真樹,“ディープラーニング,”研究報告コンピュータビジョンイメージメディアCVIM),2013−CVIM−185(18),1−17(2013−01−16)

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

0009

しかしながら、上述したような従来技術では、コンボリューション層や全結合層で行われる演算に、重み値とテンソルデータの位置における値との乗算が発生するため、演算量が増大してしまう。

0010

本発明が解決しようとする課題は、コンボリューション層や全結合層で行われる演算の演算量を抑えることができる演算装置、方法及びプログラムを提供することである。

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

0011

実施形態の演算装置は、受付部と、設定部と、選択部と、加算部と、出力部と、を備える。受付部は、テンソルデータの入力を受け付ける。設定部は、前記テンソルデータに窓を設定する。選択部は、前記窓内における前記テンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する。加算部は、前記座標毎に選択された前記重み値を累積加算して、累積加算値を得る。出力部は、前記累積加算値に基づく値を出力する。

図面の簡単な説明

0012

本実施形態の演算装置の例を示す構成図。
本実施形態のフィルタ窓が設定されたテンソルデータの例を示す図。
本実施形態の処理例を示すフローチャート
応用例の車両の例を示す模式図。
応用例の車両の構成例を示す図。
応用例の認識部の詳細構成の例を示す図。
応用例の入力画像の例を示す図。
応用例の出力画像の例を示す図。

実施例

0013

以下、添付図面を参照しながら、実施形態を詳細に説明する。

0014

図1は、本実施形態の演算装置10の一例を示す構成図である。図1に示すように、演算装置10は、受付部11と、設定部13と、記憶部15と、選択部17と、加算部19と、写像部21と、出力部23と、を備える。

0015

受付部11、設定部13、選択部17、加算部19、写像部21、及び出力部23は、例えば、IC(IntegratedCircuit)などのハードウェアにより実現してもよいし、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。

0016

記憶部15は、例えば、メモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク、ROM(Read Only Memory)、及びRAM(Random Access Memory)などの磁気的、光学的、又は電気的に記憶可能な記憶装置により実現できる。

0017

本実施形態の演算装置10は、ニューラルネットワークを構成するコンボリューション層や全結合層で行われる演算を行うものであり、数式(2)に示す演算により、数式(1)に示す演算結果の近似値を求める。

0018

0019

ここで、xは、演算装置10に入力されたテンソルデータを示し、(Ox,Oy)は、当該テンソルデータに設定されたフィルタ窓の原点が位置する当該テンソルデータの座標を示し、Owは、当該フィルタ窓の幅を示し、Ohは、当該フィルタ窓の高さを示し、x(Ox+i,Oy+j)は、当該フィルタ窓内における当該テンソルデータの位置(Ox+i,Oy+j)の画素値を示す。なお、テンソルデータとは、上述の通り、多次元の配列として表現されるものである。

0020

select(i,j,x(Ox+i,Oy+j))は、フィルタ窓内の位置(i,j)における重み値を選択する関数であり、例えば、数式(3)に示す2つの重み値の中から重み値を選択する関数や数式(4)に示す3つの重み値の中から重み値を選択する関数などを利用できるが、これらに限定されるものではない。例えば、select()を4つ以上の重み値の中から重み値を選択する関数としてもよい。

0021

0022

0023

数式(3)に示す関数は、変数aの値(数式(2)のx(Ox+i,Oy+j)の値に相当)が閾値Tより大きければ、重み値w(i,j)を選択し、変数aの値が閾値T以下であれば、重み値0を選択する関数である。

0024

また数式(4)に示す関数は、変数aの値が閾値Tより大きければ、重み値w(i,j,+1)を選択し、変数aの値が閾値−T以上かつ閾値T以下であれば、重み値0を選択し、変数aの値が閾値−T未満であれば、重み値w(i,j,−1)を選択する関数である。

0025

数式(2)の説明に戻り、bは、バイアスを示す。f()は非線形関数を表し、一般的にsigmoid関数やtanh関数などが用いられる。y(Ox,Oy)は、演算装置10から出力されるテンソルデータの出力値を示す。

0026

なお、数式(2)において、テンソルデータの範囲と、設定されるフィルタ窓の範囲とが一致する場合、全結合層で行われる演算を表す。

0027

また、数式(2)〜(4)では、表記を簡略化するため、入出力されるテンソルデータ及び選択される重み値が2次元配列である場合を示しており、以降の説明においても、言及がなければ、2次元配列を前提として説明するが、2次元配列である場合に限定されるものではない。入出力されるテンソルデータ及び選択される重み値が1次元配列や3次元以上の次元の配列である場合への拡張は容易であり一般性は失わないため、このような場合も当然本実施形態の範囲に含まれる。

0028

以下、数式(2)〜(4)を参照しながら、受付部11、設定部13、記憶部15、選択部17、加算部19、写像部21、及び出力部23について説明する。

0029

受付部11は、テンソルデータの入力を受け付ける。なお、受付部11により受け付けられたテンソルデータは、数式(2)のxに相当する。

0030

例えば、演算装置10が行うコンボリューション層や全結合層の演算が、ニューラルネットワークを構成する演算層の第1層目の演算に該当する場合、受付部11は、テンソルデータとして、画像データの入力を受け付ける。例えば、画像データがRGBのカラー画像であれば、テンソルデータは、3×画像の幅×画像の高さの大きさの3次元配列のデータとなる。

0031

また例えば、演算装置10が行うコンボリューション層や全結合層の演算が、ニューラルネットワークを構成する演算層の第n(nは2以上の自然数)層目の演算に該当する場合、受付部11は、テンソルデータとして、第n−1層目の演算層から出力された特徴量マップの入力を受け付ける。例えば、第n−1層目の演算層がコンボリューション層の特徴量マップであれば、テンソルデータは、特徴量マップの数×特徴量マップの幅×特徴量マップの高さの大きさの3次元配列のデータとなる。また例えば、第n−1層目の演算層が全結合層の特徴量マップであれば、テンソルデータは、長さが特徴量マップの数の1次元配列のデータとなる。

0032

設定部13は、受付部11により受け付けられたテンソルデータに窓(フィルタ窓)を設定する。図2は、本実施形態のフィルタ窓32が設定されたテンソルデータ31の一例を示す図である。図2に示すように、(Ox,Oy)は、テンソルデータ31に設定されたフィルタ窓32の原点が位置する当該テンソルデータの座標を示し、Owは、当該フィルタ窓32の幅を示し、Ohは、当該フィルタ窓32の高さを示し、(Ox+i,Oy+j)は、当該フィルタ窓32内における当該テンソルデータ31の位置を示す。なお、図2に示す例では、フィルタ窓32の原点は、左上となっているが、これに限定されるものではない。なお、全結合層の場合、設定部13は、受付部11により受け付けられたテンソルデータの全範囲に窓を設定する。

0033

記憶部15は、設定部13により設定される窓内の座標毎に、2以上の重み値を対応付けて記憶する。例えば、数式(3)に示す関数が用いられる場合であれば、記憶部15は、フィルタ窓内の座標(i,j)毎に、重み値w(i,j)及び重み値0を対応付けて記憶する。また例えば、数式(4)に示す関数が用いられる場合であれば、記憶部15は、フィルタ窓内の座標(i,j)毎に、重み値w(i,j,+1)、重み値0、及び重み値w(i,j,−1)を対応付けて記憶する。

0034

なお、記憶部15は、フィルタ窓内の重み値の集合であるフィルタ重みを、(フィルタ窓の次元数+1)の次元数の配列で記憶する。例えば、フィルタ窓の次元数が2で、数式(4)に示す関数が用いられる場合であれば、選択可能な重みの数は3つで1つは常に0なので、記憶部15は、フィルタ重みをフィルタの幅×フィルタの高さ×2の大きさの3次元配列で記憶する。同様に、数式(3)に示す関数が用いられる場合であれば、選択可能な重みの数は2つで片方は常に0なので、記憶部15は、フィルタ重みをフィルタの幅×フィルタの高さ×1の大きさの3次元配列(この場合、実質的には2次元配列)で記憶する。

0035

なお、記憶部15が記憶するフィルタ重みは、例えば、機械学習などの手段を用いて予め計算(学習)しておいたものを用いることができる。例えば、記憶部15が記憶するフィルタ重みとして、数式(1)のコンボリューション層を含むニューラルネットワークを確率的勾配法(SGD:Stochastic Gradient Descent)などのニューラルネットワーク向けの一般的な手法で学習することにより得られるコンボリューションフィルタの重み値を用いることができる。また例えば、記憶部15が記憶するフィルタ重みとして、数式(2)のコンボリューション層を含むニューラルネットワークを直接最適化することにより得られるコンボリューションフィルタの重み値を用いてもよい。但し、フィルタ重みの計算方法は、これらに限定されるものではない。

0036

なお、フィルタ窓内の座標に対応付けられた2以上の重み値は、0を含むことが好ましい。つまり、フィルタ窓内の座標に対応付けられた2以上の重み値のいずれかは、0であることが好ましい。重み値が0である場合、後述の加算部19での加算処理を省略できるためである。例えば、重み値の選択に数式(3)に示す関数を用いる場合、数式(2)のバイアスbを用いて、重み値w(i,j)を調整しておけば、演算装置10の出力値であるy(Ox,Oy)の値を変えずに、重み値のいずれかを0に設定できる。

0037

選択部17は、設定部13により設定された窓内におけるテンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する。具体的には、選択部17は、設定部13により設定された窓内におけるテンソルデータの座標毎に、記憶部15において、当該テンソルデータの座標と相対する当該窓内の座標に対応付けられた2以上の重み値の中から、比較結果に応じた重み値を選択する。なお、選択部17による重み値の選択は、例えば、数式(3)や(4)に示す関数により行われる。つまり、選択部17は、テンソルデータの座標における画素値と1以上の閾値との大小関係を比較し、比較結果に応じた重み値を選択する。

0038

例えば、テンソルデータの座標(Ox,Oy)における重み値を、数式(3)を用いて選択するのであれば、選択部17は、画素値x(Ox,Oy)と閾値Tとを比較し、閾値Tより大きければ、重み値w(0,0)を選択し、閾値T以下であれば、重み値0を選択する。なお、テンソルデータの座標と相対する窓内の座標は、テンソルデータのx座標からOx、y座標からOyを減じることで求められる。このため、テンソルデータの座標(Ox,Oy)と相対する窓内の座標は、(0,0)となる。

0039

加算部19は、設定部13により設定された窓内におけるテンソルデータの座標毎に選択部17により選択された重み値を累積加算して、累積加算値を得る。なお、加算部19の処理は、数式(2)のf()内の右辺の処理(総和記号Σの処理)に相当する。

0040

なお、前述の通り、重み値に0が含まれ、重み値0が選択部17により選択された場合、select(i,j,x(Ox+i,Oy+j))の値も0であるため、加算処理を省略してもよい。つまり、加算部19は、設定部13により設定された窓内におけるテンソルデータの座標毎に選択部17により選択された重み値のうち値が0以外の重み値を累積加算するようにしてもよい。

0041

なお、加算部19は、数式(2)のf()内の左辺(バイアスb)については、累積加算する変数の初期値として設定しておくか、別途累積加算結果に加算する。

0042

写像部21は、加算部19により加算された累積加算値を写像する。なお、写像部21の処理は、数式(2)のf()の処理に相当する。

0043

出力部23は、加算部19により加算された累積加算値に基づく値を出力する。具体的には、出力部23は、写像部21により写像された累積加算値の写像値を出力する。

0044

図3は、本実施形態の処理の手順の流れの一例を示すフローチャートである。なお、図3に示す例では、重み値を選択する関数として、数式(3)に示す関数が用いられる場合を例に取り説明するが、これに限定されるものではない。

0045

まず、受付部11は、テンソルデータxの入力を受け付ける(ステップS101)。

0046

続いて、設定部13は、受付部11により受け付けられたテンソルデータxに、幅Ow、高さOhのフィルタ窓を設定する(ステップS103)。

0047

続いて、加算部19は、累積加算値ACCの初期値にバイアスbの値を設定する(ステップS105)。

0048

続いて、加算部19は、変数i及び変数jの値を0に初期化する(ステップS107)。

0049

続いて、選択部17は、テンソルデータxの座標(Ox+i,Oy+j)における画素値x(Ox+i,Oy+j)が閾値Tより大きいか否かを判定する(ステップS109)。

0050

画素値x(Ox+i,Oy+j)が閾値Tより大きい場合(ステップS109でYes)、選択部17は、重み値w(i,j)を選択し、加算部19は、累積加算値ACCに選択された重み値w(i,j)を加算する(ステップS111)。

0051

一方、画素値x(Ox+i,Oy+j)が閾値T以下の場合(ステップS109でNo)、選択部17は、重み値0を選択するため、ステップS111の処理は行われない。

0052

続いて、加算部19は、変数iの値をインクリメントし(ステップS113)、変数iの値が幅Ow以下であれば(ステップS115でNo)、ステップS109へ戻り、変数iの値が幅Owより大きければ(ステップS115でYes)、ステップS117へ進む。

0053

続いて、加算部19は、変数jの値をインクリメントし(ステップS117)、変数jの値が高さOh以下であれば(ステップS119でNo)、ステップS109へ戻り、変数jの値が高さOhより大きければ(ステップS119でYes)、ステップS121へ進む。

0054

続いて、写像部21は、加算部19により加算された累積加算値ACCを非線形関数f()で写像し、出力値y(Ox,Oy)を得る(ステップS121)。

0055

続いて、出力部23は、写像部21により得られた出力値y(Ox,Oy)を出力する(ステップS123)。

0056

以上のように本実施形態によれば、ニューラルネットワークを構成するコンボリューション層や全結合層で行われる演算を、選択及び加算で近似でき、乗算が不要となるため、コンボリューション層や全結合層で行われる演算の演算量を抑えることができる。これは、乗算に対し、選択や加算は、演算規模が小さいためである。これにより、コンボリューション層や全結合層で行われる演算を実行する演算装置のコストも抑えることができる。

0057

また本実施形態によれば、フィルタ窓内の座標に対応付けられた2以上の重み値のいずれかは0であるため、重み値が0の場合、select(i,j,x(Ox+i,Oy+j))の値も0であるため、加算処理を省略することができる。これにより、コンボリューション層や全結合層で行われる演算の演算量を更に抑えることができ、コンボリューション層や全結合層で行われる演算を実行する演算装置のコストも更に抑えることができる。

0058

(変形例1)
上記実施形態では、テンソルデータの画素値が連続値である場合を想定して説明したが、変形例1では、テンソルデータの画素値が離散値である場合を想定して説明する。以下では、上記実施形態との相違点の説明を主に行い、上記実施形態と同様の機能を有する構成要素については、上記実施形態と同様の名称・符号を付し、その説明を省略する。

0059

変形例1の演算装置10が行うコンボリューション層や全結合層の演算は、ニューラルネットワークを構成する演算層の第n(nは2以上の自然数)層目の演算に該当する。このため、受付部11は、テンソルデータとして、第n−1層目の演算層から出力された特徴量マップの入力を受け付ける。

0060

変形例1では、テンソルデータ(特徴量マップ)の画素値が、2値{+1、−1}の場合と、3値{+1、0、−1}の場合と、について説明するが、これらに限定されるものではない。なお、2値や3値における値の取り方は、これらに限定されるものではなく、例えば、{0、1}などの2値でもよい。また、テンソルデータの画素値が、4値以上の場合への拡張は容易であり一般性は失わないため、このような場合も当然本実施形態の範囲に含まれる。

0061

変形例1では、選択部17は、テンソルデータの座標における画素値と1以上の閾値とが一致するか否かを比較し、比較結果に応じた重み値を選択する。選択部17は、例えば、select()として、数式(5)に示す2つの重み値の中から重み値を選択する関数や数式(6)に示す3つの重み値の中から重み値を選択する関数などを利用できるが、これらに限定されるものではない。例えば、select()を4つ以上の重み値の中から重み値を選択する関数としてもよい。

0062

0063

0064

数式(5)に示す関数は、変数aの値が+1であれば、重み値w(i,j)を選択し、変数aの値が−1であれば、重み値0を選択する関数である。

0065

また数式(6)に示す関数は、変数aの値が+1であれば、重み値w(i,j,+1)を選択し、変数aの値が0であれば、重み値0を選択し、変数aの値が−1であれば、重み値w(i,j,−1)を選択する関数である。

0066

なお選択部17は、値の一致を判断する代わりに、記憶部15の重み値が記憶されている記憶領域の先頭アドレスに画素値を相対アドレスとして加算して得られたアドレスが指す値を参照するルックアップテーブル方式で重み値を選択してもよい。

0067

変形例1では、写像部21は、加算部19により加算された累積加算値を離散値に写像する。具体的には、写像部21は、加算部19により加算された累積加算値を、非線形関数を用いて離散値に変換(写像)する。この場合、写像部21は、数式(2)のf()の代わりに、数式(7)に示す2値の中から出力値を選択する関数や数式(8)に示す3値の中から出力値を選択する関数などを利用できるが、これらに限定されるものではない。例えば、f()の代わりに、4値の中から出力値を選択する関数を用いてもよい。

0068

0069

0070

数式(7)に示す関数は、変数a(累積加算値に相当)の値が0より大きければ、出力値を1に変換し、変数aの値が0以下であれば、出力値を−1に変換する関数である。

0071

また数式(8)に示す関数は、変数aの値が閾値Tより大きければ、出力値を1に変換し、変数aの値が閾値−T以上かつ閾値T以下であれば、出力値を0に変換し、変数aの値が閾値−T未満であれば、出力値を−1に変換する関数である。

0072

以上のように本実施形態によれば、入力されるテンソルデータ(特徴量マップ)の画素値が離散値であるため、テンソルデータを一時的に記憶するメモリ容量を抑えることができ、コンボリューション層や全結合層で行われる演算を実行する演算装置のコストを抑えることができる。例えば、テンソルデータの画素値が2値で表現される場合は、画素値を1ビットで記憶できるため、メモリ容量を抑えることができる。

0073

(変形例2)
変形例2では、演算装置が出力するテンソルデータ(特徴量マップ)が複数のマップを持つ3次元配列である場合に、複数のマップの値を並列して演算する例について説明する。以下では、上記実施形態との相違点の説明を主に行い、上記実施形態と同様の機能を有する構成要素については、上記実施形態と同様の名称・符号を付し、その説明を省略する。

0074

変形例2では、並列して演算するマップの数をLとすると、数式(2)のバイアスb及び出力値y(Ox,Oy)は、長さLのベクトルとなる。変形例2では、記憶部15は、L個のフィルタ重みに対応した重み値を記憶しており、L個のマップ出力に対応している。選択部17は、L個のフィルタ重みに対応した重み値を選択する。変形例2では、数式(3)、(4)、(5)、(6)において、wは長さLのベクトルである。変形例2では、累積加算値は長さLのベクトルとなる。

0075

変形例2によれば、1つの入力の画素値に対して、複数の出力の画素値を並列して演算できるため、比較の演算回数を削減することができる。これにより、コンボリューション層や全結合層で行われる演算の演算量を更に抑えることができ、コンボリューション層や全結合層で行われる演算を実行する演算装置のコストも更に抑えることができる。

0076

(応用例)
応用例では、上記実施形態、変形例1、及び変形例2で説明した演算装置10の応用例について説明する。上述したように、上記実施形態、変形例1、及び変形例2で説明した演算装置10では、ニューラルネットワークを構成するコンボリューション層や全結合層で行われる演算の演算量を抑えることができる。

0077

このため、上記演算装置10をハードウェア(回路)として実現する場合、上述のように、乗算器を不要とすることができたり、メモリ容量を抑えることができたりするため、回路規模を削減することができる。特に上記演算装置10では、処理を並列化する場合においても、乗算器を並列化する必要がないため、処理の高速化と回路規模の削減とを両立させることができる。

0078

従って、上記演算装置10を用いてニューラルネットワーク用の演算を行うLSI(Large-Scale Integration)を実装すれば、従来よりも回路規模を削減したニューラルネットワーク用の演算を行うLSIを実現でき、車載家電などの組み込み機器向けに好適である。回路規模の削減は、組み込み機器におけるバッテリーの容量、販売価格、及び発熱量等の各種制約に対し、強みとなるためである。

0079

以下では、応用例として、上記演算装置10を適用したLSIを車両に搭載し、当該LSIを用いて、パターン認識として歩行者検出を行う例について説明するが、応用例はこれに限定されるものではない。

0080

図4は、応用例の車両100の一例を示す模式図であり、図5は、応用例の車両100の構成の一例を示す図である。図5に示すように、車両100は、撮像部110と、認識部120と、表示部130と、を備える。

0081

撮像部110は、例えば、カメラなどの画像センサにより実現できる。認識部120は、上記LSIにより実現できる。表示部130は、例えば、ディスプレイなどにより実現できる。

0082

認識部120は、ニューラルネットワーク用の演算を行うLSIである。図6は、応用例の認識部120の詳細構成の一例を示す図である。図6に示すように、認識部120は、第1演算層120−1〜第n演算層120−nで構成されている。なお、第1演算層120−1〜第n演算層120−nのうちコンボリューション層や全結合層に該当する演算層については、上記演算装置10で説明した構成が採用される。

0083

認識部120には、撮像部110により撮像された画像が入力される。例えば、図7に示すように、歩行者201、202が映っている画像が入力される。

0084

認識部120は、撮像部110から画像(テンソルデータ)が入力されると、まず、第1演算層120−1は、入力された画像を用いて歩行者検出用の演算を行って特徴量マップを第2演算層120−2に出力し、次に、第2演算層120−2は、第1演算層120−1から出力された特徴量マップを用いて歩行者検出用の演算を行って特徴量マップを第3演算層120−3に出力し、最終的に、第n演算層120−nが歩行者の検出結果を示す画像を出力し、表示部130に表示させる。例えば、図8に示すように、歩行者201、202、それぞれに、枠211、212が付された画像が出力される。

0085

以上のように、本応用例によれば、ニューラルネットワーク用の演算を行う組み込み機器向けに好適なLSIを実現できる。

0086

なお、上記演算装置10をハードウェア(回路)ではなくソフトウェアとしてニューラルネットワーク用の演算機能を実現してもよい。この場合、上記演算装置10をソフトウェアとして適用したニューラルネットワーク用の演算機能は、例えば、インターネットサービス等で同時に大量のデータを処理するサーバなどに好適であり、CPUの使用時間や使用メモリの量を減らすことで、コストを抑えたシステムを実現できる。

0087

プログラム構成
上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルCD−ROM、CD−R、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスクFD)等のコンピュータ読み取り可能な記憶媒体に記憶されて提供される。

0088

また、上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムを、ROM等に予め組み込んで提供するようにしてもよい。

0089

上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、CPUがROMやHDDなどからプログラムをRAM上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。

0090

本発明は、上記実施形態及び変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態及び変形例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、上記実施形態及び変形例に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせても良い。

0091

例えば、実施形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。

0092

以上のように、上記実施形態、各変形例、及び応用例によれば、コンボリューション層や全結合層で行われる演算の演算量を抑えることができる。

0093

10演算装置
11 受付部
13 設定部
15 記憶部
17 選択部
19加算部
21写像部
23 出力部
100 車両
110撮像部
120 認識部
130 表示部
120−1〜120−n 第1演算層〜第n演算層

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

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

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

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

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

関連性が強い人物一覧

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

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

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

関連する公募課題一覧

astavision 新着記事

サイト情報について

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

主たる情報の出典

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