IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーアイティーラボラトリの特許一覧

<>
  • 特開-学習方法、情報処理装置 図1
  • 特開-学習方法、情報処理装置 図2
  • 特開-学習方法、情報処理装置 図3
  • 特開-学習方法、情報処理装置 図4
  • 特開-学習方法、情報処理装置 図5
  • 特開-学習方法、情報処理装置 図6
  • 特開-学習方法、情報処理装置 図7
  • 特開-学習方法、情報処理装置 図8
  • 特開-学習方法、情報処理装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022101164
(43)【公開日】2022-07-06
(54)【発明の名称】学習方法、情報処理装置
(51)【国際特許分類】
   G06N 3/08 20060101AFI20220629BHJP
【FI】
G06N3/08 140
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020215596
(22)【出願日】2020-12-24
(71)【出願人】
【識別番号】502324066
【氏名又は名称】株式会社デンソーアイティーラボラトリ
(74)【代理人】
【識別番号】100113549
【弁理士】
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(72)【発明者】
【氏名】関川 雄介
(57)【要約】      (修正有)
【課題】性能の劣化を抑制しつつ演算量を低減させるニューラルネットワークの学習方法を提供する。
【解決手段】各ニューロンが入力された信号に基づいて更新される膜電位を有し、現在の膜電位と前回発火したときの膜電位との差分が所定の閾値を超えたときに発火して、後段のニューロンに対して信号を出力するニューラルネットワークの学習方法は、ニューラルネットワークに教師データを入力し、推論を行うステップと、推論の結果とターゲットデータとの誤差と、膜電位のアクティベーションが変化するニューロンの個数とを含むコスト関数を最小にするようにニューラルネットワークの学習を行うステップとを備える。
【選択図】図5
【特許請求の範囲】
【請求項1】
ニューラルネットワークの学習方法であって、
学習対象のニューラルネットワークは、各ニューロンが入力された信号に基づいて更新される膜電位を有し、現在の膜電位と前回発火したときの膜電位との差分が所定の閾値を超えたときに発火して、後段のニューロンに対して信号を出力するニューラルネットワークであり、
前記ニューラルネットワークに教師データを入力し、推論を行うステップと、
前記推論の結果とターゲットデータとの誤差と、前記膜電位のアクティベーションが変化するニューロンの個数とを含むコスト関数を最小にするように前記ニューラルネットワークの学習を行うステップと、
を備える学習方法。
【請求項2】
前記学習を行うステップは、次式(1)で示すコスト関数を最小にするように前記ニューラルネットワークを学習する請求項1に記載の学習方法。
【数1】
【請求項3】
前記学習を行うステップは、次式(2)で示すコスト関数を最小にするように前記ニューラルネットワークを学習する請求項1に記載の学習方法。
【数2】
【請求項4】
前記ニューラルネットワークの学習対象のパラメータは、各ニューロンへの複数の入力のそれぞれに対して与えられる重みと、空間的な位置に応じて前記重みを有効にするか否かを決めるマスクとからなり、
前記学習を行うステップは、前記重みと前記マスクを学習する請求項1乃至3のいずれかに記載の学習方法。
【請求項5】
前記推論を行うステップでは、連続する画像の差分データを入力して推論を行い、
前記学習を行うステップでは、前記推論の結果とターゲットとの誤差と前記ニューロンの個数のL1ロスの和を最小化するように学習する請求項1乃至4のいずれかに記載の学習方法。
【請求項6】
前記学習するステップでは、前記膜電位のアクティベーションが変化するニューロンの個数を前記ニューロンが属する層ごとに求め、求めたニューロンの個数に対して前記層に含まれるニューロンの総数に基づく重みを掛ける請求項1乃至5のいずれかに記載の学習方法。
【請求項7】
請求項1乃至6のいずれかに記載の学習方法によって生成されたニューラルネットワークモデルを記憶した記憶部と、
ニューロンの発火を調整する閾値を設定する閾値設定部と、
推論対象のデータの入力を受け付ける入力部と、
前記記憶部から読み出したニューラルネットワークに前記推論対象のデータを適用し、前記閾値設定部にて設定された閾値を用いて推論を行う推論部と、
前記推論の結果を出力する出力部と、
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークの学習方法、及び情報処理装置に関する。
【背景技術】
【0002】
画像認識等で用いられる畳み込みニューラルネットワークは、入力された画像データと学習した重みベクトルの畳み込み演算を繰り返すことにより処理を行う。畳み込みニューラルネットワークでは、入力されたデータの全体に対して畳み込み演算を行う。例えば、ビデオデータの処理では、入力された画像間で一部に変化がない場合や、変化が少ない場合でも、画像全体に対して畳み込み演算を行う。変化がないにもかかわらず演算処理を行うことは無駄な処理であるといえる。畳み込みニューラルネットワークでは、例えば、フレームレートが高いデータでは、高速な出力レートに対応することが困難な場合があった。
【0003】
ところで、画像の差分を捉えるカメラとして、イベントカメラが着目されている。イベントカメラは、高速、ハイダイナミックレンジ、ブラーレスといった特徴を有する。また、処理の効率化という観点で重要な特徴として、データのスパース性という特徴がある。
【0004】
スパースなデータを効率的に処理できるデバイスとして、生物の脳にインスパイアされたSpiking Neural Network(以下、「SNN」という。)が知られている。SNNは、入力層、中間層ともに、差分情報を処理する構造を有するので、イベントデータのような差分データを処理するのに適している。
【0005】
図1は、SNNの構成および動作を示す模式図である。SNNは、各ニューロンが膜電位を有している。膜電位が閾値に達したニューロンは発火し、後段のニューロンに信号を伝える。SNNでは、信号が入力されたニューロンだけが動作し、膜電位が閾値に達しないニューロンは発火しないで終了する。
【0006】
図1においては、発火したニューロンを黒で示し、動作したニューロンはグレーで示している。グレーのニューロンは、信号が入力されて動作したが、発火しなかった。つまり、グレーのニューロンの後段のニューロンについては演算を行わなくてもよい。図1に示すように、SNNは、入力により変化のあったニューロンのみが動作するので、演算負荷を低減し、消費電力を抑制することができる。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Amirreza Yousefzadeh他「Asynchronous Spiking Neurons, the natural key to exploit temporal sparsity」IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS. 9(4). p.668-678
【発明の概要】
【発明が解決しようとする課題】
【0008】
SNNは複雑な時間的なダイナミクスをとるため、デジタル回路での実装が難しく、実用的なニューロン数を備えたSNNの実現は困難であった。このような背景の下、デジタル回路に相性の良い動作にすることで、大規模なニューロンを実現したデバイスが登場してきている(非特許文献1)。このようにデジタル回路に適合させたSNNを、以下では、Non-NeuromorphicなSNNと呼ぶ。
【0009】
NeuromorphicなSNNとNon-NeuromorphicなSNNとは、いくつかの点で異なる。NeuromorphicなSNNでは、アクティベーションがバイナリであるのに対し、Non-NeuromorphicなSNNでは連続値である。NeuromorphicなSNNでは、発火後には膜電位をリセットして休眠するのに対し、Non-NeuromorphicなSNNではリセットなしでその値を保持する。NeuromorphicなSNNでは、シナプスが減衰(decay)電流であるのに対し、Non-NeuromorphicなSNNでは発火した信号と重みとの積をそのまま伝える。このように異なる点もあるが、Non-NeuromorphicなSNNは、イベントベースで差分だけを処理するというSNNの処理の効率性という良さを残している。非特許文献1に記載された方法は、シグマデルタ変調と似たような動きをする。
【0010】
図2は、非特許文献1に記載されたNon-NeuromorphicなSNNの処理を示す図である。図2(a)に示すように、ニューロンiからニューロンjへ信号δ(t)が流れる。ここで、信号δ(t)はバイナリではなく、連続値である。ニューロンjの膜電位X(t)は、ニューロンiからの信号を受け、図1(b)に示すように、前時刻の膜電位X(t-1)から、X(t)=X(t-1)+δX(t)に更新される。ここで、δX(t-1)は、前段の複数のニューロンから入力される信号δ(t)に各々の重みwijを乗じた値の総和である。なお、この重みwijが、ニューラルネットワークの学習の対象であり、重みwijを学習しておくことにより、運用時に適切な推論を行うことが可能となる。
【0011】
次に、更新された後の膜電位X(t)と最後に発火したときの膜電位XLFT(t)とを比較し、その差が閾値Thrより大きければ、ニューロンjは発火する。発火した後は、ニューロンjの膜電位XLFT(t)を発火時点の膜電位で更新する。図2(c)は、信号δ(t)、更新幅δX(t)と膜電位X(t)の時系列データの例を示す図である。
【0012】
ここで説明したNon-Neuromorphicなニューラルネットワークは、閾値Thrを0としたときに、構造が同じANN(Artificial Neural Network)と完全に等価である。そこで、構造が等価のANNでパラメータの学習を行い、学習したパラメータを使って運用を行う。
【0013】
非特許文献1では、上記した構造のニューラルネットワークにおいて、ニューロンを発火させるか否かの判断に用いる閾値Thrを大きくすることで、イベントの発火をスパースにし、その分だけ消費電力を低減させることを開示している。
【0014】
非特許文献1に記載の方法は、閾値Thrを大きくすることで発火頻度をスパースにし、演算量を低減できるものの、閾値Thrが0であるとして行った学習時の状態との乖離が大きくなるので、性能が劣化する。
【0015】
本発明は、上記背景に鑑み、性能の劣化を抑制しつつ演算量を低減させるニューラルネットワークの学習方法を提供することを目的とする。
【課題を解決するための手段】
【0016】
本発明のニューラルネットワークの学習方法によって学習されるニューラルネットワークは、各ニューロンが入力された信号に基づいて更新される膜電位を有し、現在の膜電位と前回発火したときの膜電位との差分が所定の閾値を超えたときに発火して、後段のニューロンに対して信号を出力するニューラルネットワークである。本発明のニューラルネットワークの学習方法は、前記ニューラルネットワークに教師データを入力し、推論を行うステップと、前記推論の結果とターゲットデータとの誤差と、前記膜電位のアクティベーションが変化するニューロンの個数とを含むコスト関数を最小にするように前記ニューラルネットワークの学習を行うステップとを備える。
【0017】
本発明によれば、推論の結果とターゲットデータとの誤差と膜電位のアクティベーションのが変化するニューロンの個数を最小にするように学習を行うことで、構造が同じANNと同様にして学習を行うことができる。ここで、膜電位のアクティベーションとは、膜電位に活性化関数を適用した結果であり、膜電位のアクティベーションの変化は、現在時刻tと前時刻t-1の膜電位のアクティベーションの変化である。ここで、時刻について説明する。ニューラルネットワークに対して、イベントデータや映像の差分データが逐次入力されると、入力される都度、入力データが伝播して計算が行われる。逐次入力されるデータに対応して各ニューロンで計算が行われる時刻を「時刻t-1」、「時刻t」、・・というように規定している。
【0018】
学習済みのモデルを用いた運用時には、小さな閾値を設定することで、閾値が0の場合との条件の乖離を抑えて適切な推論を行うことができる。膜電位のアクティベーションの変化を抑えるコスト関数を用いて学習を行っているので、運用時に設定する閾値が小さくても、ニューラルネットワークにおけるニューロンの発火の頻度を低下させ、演算量を抑えることができる。したがって、性能の保持と演算負荷の低減を両立させることができる。なお、「ターゲットデータ」は、入力された教師データに対応する正解データである。
【0019】
ここで、前記学習を行うステップは、次式(1)で示すコスト関数を最小にするように前記ニューラルネットワークを学習してもよい。
【数1】
【0020】
また、前記学習を行うステップでは、次式(2)で示すコスト関数を最小にするように前記ニューラルネットワークを学習してもよい。
【数2】
【0021】
このように一つ前の時刻t-2からの膜電位のアクティベーションの変化もコスト関数に含めることにより、膜電位のアクティベーションの変化をいっそう抑制することができる。この際、一つ前の時刻t-2より、時刻t-1からの膜電位のアクティベーションの変化の方に相対的に大きい重みを掛けることで、適切にニューロンの発火を抑制できる。
【0022】
本発明の学習方法において、前記ニューラルネットワークの学習すべきパラメータは、各ニューロンへの複数の入力のそれぞれに対して与えられる重みと、空間的な位置に応じて前記重みを有効にするか否かを決めるマスクとからなり、前記学習を行うステップは、前記重みと前記マスクを学習してもよい。
【0023】
この構成により、空間的に異なる重みを学習することで、場所ごとに重みをカスタマイズすることで膜電位の変化を抑制することができる。マスクを0,1とし、空間的な場所によって0を掛ける構成とすれば、場所によってはニューロン間の接続を切り、発火を抑えることができる。
【0024】
本発明の学習方法において、前記推論を行うステップでは、連続する画像を入力して推論を行い、前記学習を行うステップでは、前記推論の結果とターゲットとの誤差と前記ニューロンの個数のL1ロスとの和を最小化するように学習してもよい。この構成により、画像を入力とするニューラルネットワークの学習を適切に行える。
【0025】
本発明の学習方法は、前記学習するステップでは、前記膜電位のアクティベーションが変化するニューロンの個数を前記ニューロンが属する層ごとに求め、求めたニューロンの個数に対して前記層に含まれるニューロンの総数に基づく重みを掛けてもよい。
【0026】
一般に、ニューラルネットワークのニューロン数は、入力に近い層の方が多く、出力に近づくに従ってニューロン数は少なくなる。このようにニューロンの個数は層によって異なる。本発明によれば、ニューロンを多く含む層については重みを大きくし、ニューロンが少ない層については重みを小さくすることにより、ニューロンの発火を効率良く抑制することができる。
【0027】
本発明の学習方法において、前記推論を行うステップでは、隣接する画像間の差分を入力して推論を行ってもよい。
【0028】
このように隣接する画像間の差分を入力することにより、差分の変化のあったニューロンだけが演算を行い、その他のニューロンは演算を行わないので、演算量を低減できる。
【0029】
本発明の情報処理装置は、上記のいずれかに記載の学習方法によって生成されたニューラルネットワークモデルを記憶した記憶部と、ニューロンの発火を調整する閾値を設定する閾値設定部と、推論対象のデータの入力を受け付ける入力部と、前記記憶部から読み出したニューラルネットワークに前記推論対象のデータを適用し、前記閾値設定部にて設定された閾値を用いて推論を行う推論部と、前記推論結果を出力する出力部とを備える。
【0030】
この構成により、信号が入力されたニューロンだけが動作するニューラルネットワークにおいて、ニューロンの発火を抑制して演算量を低減することができる。
【発明の効果】
【0031】
本発明によれば、ニューラルネットワークにおけるニューロンの発火を抑制し、演算量を抑えることができるニューラルネットワークを生成することができる。
【図面の簡単な説明】
【0032】
図1】SNNの構成および動作を示す模式図である。
図2】非特許文献1に記載されたNon-NeuromorphicなSNNの処理を示す図である。
図3】本実施の形態のニューラルネットワークが実装されるSoC(System-on-a-chip)の構成を示す図である。
図4】(a)ニューロンコアの詳細な構成を示す図である。(b)ニューロンコアが実行する処理を概念的に記載した図である。
図5】本実施の形態のニューラルネットワークの学習方法の動作を示すフローチャートである。
図6】第2の実施の形態で用いるニューラルネットワークを部分的に示す説明図である。
図7】一般的なニューラルネットワークの構成を示す図である。
図8】第4の実施の形態の情報処理装置の構成を示す図である。
図9】実施例と比較例による演算量とエラー率を閾値ごとに示すグラフである。
【発明を実施するための形態】
【0033】
以下、本発明の実施の形態に係るニューラルネットワークの学習方法について図面を参照しながら説明する。
【0034】
(第1の実施の形態)
本実施の形態の学習方法において学習を行うニューラルネットワークは、図1及び図2を用いて説明したNon-NeuromorphicなSNNである。すなわち、学習対象のニューラルネットワークは、各ニューロンが入力された信号に基づいて更新される膜電位を有する。現在の膜電位と前回発火したときの膜電位との差分が所定の閾値を超えたときに発火して、後段のニューロンに対して信号を出力するニューラルネットワークである。本実施の形態のニューラルネットワークを用いた推論を行う情報処理装置の構成について説明する。
【0035】
図3は、本実施の形態のニューラルネットワークが実装されるSoC(System-on-a-chip)の構成を示す図である。図3に示すように、SoCは、ニューラルネットワークの各層を構成するニューロンコアが配列されて構成されている。
【0036】
図4(a)は、各ニューロンコアの詳細な構成を示す図であり、図4(b)は図4(a)のニューロンコアが実行する処理を概念的に記載した図である。各ニューロンコアは、前の層からイベントを受信し、受信したイベントにSRAM上に保存された重みをかけて膜電位を更新し、前回発火時の膜電位との差分が閾値を超えたら発火するという動作をする。
【0037】
図4(a)に示すように、重みを記憶したSRAMがニューロンコア内にあるので、外部メモリへのアクセスなしに、プロセッサ内ですべての処理が実行される。このため、消費電力の観点からも有利である。
【0038】
図5は、本実施の形態のニューラルネットワークの学習方法の動作を示すフローチャートである。本実施の形態のニューラルネットワークの学習方法では、情報処理装置は、ニューラルネットワークの教師データである差分データまたはイベントデータの入力を受け付ける(S10)。教師データの例は、例えば、画像とその画像に映るオブジェクトの正解データのセットである。差分データの例は、映像の連続するフレーム間の差分データである。イベントデータの例は、イベントカメラで取得したイベントデータである。このような教師データを用いることで、スパースな入力を与えることができる。情報処理装置は、入力されたデータに基づいて推論を行う(S11)。
【0039】
続いて、情報処理装置は、推論結果とターゲットデータとの誤差と、膜電位のアクティベーションが変化するニューロンの個数を含むコスト関数を最小にするように、ニューラルネットワークのパラメータを学習する(S12)。
ここで、学習するステップにて用いるコスト関数を次式(1)に示す。
【数3】
【0040】
式(1)の右辺第1項は、推論結果とターゲットデータとの誤差である。コスト関数がこの項を含むことにより、推論結果がターゲットデータ、すなわち真値に近づくように学習を行うことができる。右辺第2項は、時刻t-1における膜電位のアクティベーションと時刻tにおける膜電位のアクティベーションの差のL0ノルムである。すなわち、時刻tと時刻t-1における膜電位のアクティベーションの差が非ゼロの要素数であり、膜電位のアクティベーションが変化するニューロンの個数である。コスト関数がこの項を含むことにより、膜電位のアクティベーションが変化するニューロンの個数が少なくなるように学習を行える。なお、本実施の形態では、学習を行う際には、L0ノルムを直接に求める代わりに、L0擬ノルムの下界の中で最大の凸関数であるL1ノルムを用いる。
【0041】
情報処理装置は、学習の収束条件を満たすか否かを判定する(S13)。収束条件は、例えば、コスト関数Lが所定値以下となった場合、あるいは、所定値以下となる状態が所定回数継続した場合等である。
【0042】
収束条件を満たさない場合には(S13でNO)、情報処理装置は、新しい教師データを用いて、ニューラルネットワークの学習を継続する(S10~S12)。収束条件を満たす場合には(S13でYES)、更新されたパラメータを有するニューラルネットワークを学習済みのニューラルネットワークとして記憶部に記憶する(S14)。
【0043】
本実施の形態のニューラルネットワークの学習方法によれば、推論の結果とターゲットデータとの誤差と膜電位のアクティベーションが変化するニューロンの個数とを含むコスト関数を最小にするように学習を行うことで、SNNの学習を行うことが可能である。学習済みのモデルを用いた運用時には、ニューロンの発火を調整する閾値を設定することで、適切な推論を行うことができる。本実施の形態では、ニューラルネットワークの膜電位のアクティベーションの変化を抑制するように学習がなされているので、閾値を大きくしなくても発火を抑制することができるので、性能の劣化を抑えつつ、演算量を抑制することができる。
【0044】
(第1の実施の形態の変形例)
上記した実施の形態では、式(1)で示すコスト関数を用いたが、式(1)のコスト関数に代えて、次式(2)で示すコスト関数を最小にするようにニューラルネットワークを学習してもよい。
【数4】
【0045】
このコスト関数は、時刻t-1の膜電位のアクティベーションと時刻tの膜電位のアクティベーションとの変化に加え、時刻t-2の膜電位のアクティベーションと時刻tの膜電位のアクティベーションとの変化をも含んでいる。ただし、時刻t-2の膜電位のアクティベーションと時刻tの膜電位のアクティベーションとの変化については、係数α(α<1)を乗じることで、時刻t-1の膜電位のアクティベーションと時刻tの膜電位のアクティベーションとの変化よりも、コストに与える影響を小さくしている。この構成により、膜電位のアクティベーションの変化をいっそう抑制することができる。
【0046】
なお、上記した実施の形態では、膜電位のアクティベーションが変化したニューロンの個数をコスト関数に含めているが、膜電位が変化したニューロンの個数をコスト関数に含めてもよい。ただし、上記したように膜電位のアクティベーションが変化したニューロンの個数を用いた方が、ニューロンの発火の抑制という目的により適った方法である。なぜなら、アクティベーション前において膜電位が変化していても、アクティベーション後には膜電位が変化しないことがあり得るからである。このことは、例えば、RELUの負の領域では、膜電位が変化しても発火というイベントが発生しないことからも理解できる。膜電位の変化を用いると、アクティベーション後にはイベント数に影響しない部分にまで制約を課すことになってしまうことがあるから、本実施の形態では、膜電位のアクティベーションが変化したニューロンの個数をコスト関数に用いている。
【0047】
(第2の実施の形態)
次に、第2の実施の形態のニューラルネットワークの学習方法について説明する。第2の実施の形態の学習方法は、入力データとして画像等の空間的なデータを用いる。
【0048】
図6は、第2の実施の形態で用いるニューラルネットワークを部分的に示す説明図である。図6には、ニューラルネットワークの第l-1層、第l層、第l+1層を示している。第l-1層を代表してニューロンiを示し、第l層を代表してニューロンjを示し、第l+1層を代表してニューロンkを示している。
【0049】
ニューロンjには、第l-1層のニューロンiからの信号δFij(t)が入力される。本書では、第l-1層からの信号であることを示す上付きの添え字「(l-1)」を省略して記載している。以下も同様に、レイヤを示す上付きの添え字を省略する。ニューロンjは、ニューロンiからの信号δFij(t)と同様に、ニューロンjに接続された第l-1層の他のニューロンからも信号を受信するので、ニューロンjに入力される信号δFj(t)は、次式で求まる。
【数5】
第2の実施の形態では、δFij(t)は、ニューロンiからの出力δi(t)に対して、シナプス信号Sij(t)を経由して、重みwiだけでなく、マスクmijを乗じて以下のとおり算出される。
【数6】
ここで、重みwiは第l層のニューロンについて共用の重みであり、ニューロンjに拠らない。図6及び上式では、共用の重みであることを示すために、重みwiの添え字iにハットを付している。一方、マスクmijは、ニューロンiとニューロンjのシナプス(エッジ)ごとの0,1のマスクである。マスクmijは、シナプスごとに異なる値(0,1)を持ち得る。
【0050】
第2の実施の形態の学習方法で用いるコスト関数を次式で示す。
【数7】

第2の実施の形態の学習方法では、コスト関数を最小にする重みwiとマスクmijを求める。
【0051】
この構成により、空間的に異なるマスクmijを学習することで、マスクmijによって場所ごとに重みwiをカスタマイズし膜電位のアクティベーションの変化をさらに抑制することができる。マスクmijを0とした場合には、ニューロン間の接続自体が切れるので、発火を抑制することができる。
【0052】
情報処理装置が、学習済みのパラメータを用いて推論を行う際には、次式に示すようにマスクmijと重みwiはマージされて直接Fが計算される。
【数8】
【0053】
なお、本実施の形態の学習方法で用いられる情報処理装置は、図3及び図4で説明したようなSoCである。ニューロンコアのSRAMに重みのデータを記憶しているので、本実施の形態のように場所ごとに重みが変わっても計算量に影響はない。
【0054】
(第3の実施の形態)
次に、第3の実施の形態のニューラルネットワークの学習方法について説明する。第3の実施の形態の学習方法では、コスト関数に含まれる膜電位のアクティベーションが変化するニューロンの個数に関し、そのニューロンが属する層ごとに重み付けを行う。
【0055】
図7は、ニューラルネットワークの一般的な構成の例を示す図である。図7に示すように、一般的には、ニューラルネットワークは、入力に近い方の層の方がニューロン数が多く、出力に近い層の方がニューロン数が少ない。第3の実施の形態では、コスト関数に含まれる膜電位のアクティベーションが変化するニューロン数をカウントする際に、全てのニューロンを等しく扱うのではなく、そのニューロンが含まれる層によって重み付けをする。
【0056】
具体的には、各層に含まれるニューロンの総数に基づき、ニューロンの総数が多い層に含まれるニューロンの個数について重みを大きくし、ニューロンの総数が小さい層に含まれるニューロンの個数について重みを小さくするといった具合に、ニューロンの総数に応じて重み付けを行う。例えば、図7の例でいうと、第1層に含まれるニューロンのうち膜電位のアクティベーションが変化するニューロンの個数に対して重みwを掛け、第6層に含まれるニューロンのうち膜電位のアクティベーションが変化するニューロンの個数に対して重みwを掛けるとした場合、重みはw>wとする。ここで、重みwの決め方は、各層のニューロンの総数に比例させてもよいし、ニューロンの総数の多い方から何段階かで設定してもよい。
【0057】
第3の実施の形態の学習方法によれば、イベント数に影響の強いニューロンの膜電位のアクティベーションの変化を積極的に抑制し、演算量および消費電力を抑制することができる。また、イベント数に影響の小さいニューロンの動きを大きく制限しないようにすることで、推論時の性能を高く維持する。
【0058】
(第4の実施の形態)
次に、上記した第1~第3の実施の形態のニューラルネットワークの学習方法によって生成されたニューラルネットワークを用いて、推論を行う情報処理装置を第4の実施の形態として説明する。
【0059】
図8は、第4の実施の形態の情報処理装置1の構成を示す図である。情報処理装置1は、処理対象のデータの入力を受け付ける入力部10と、学習によって生成されたSNNのモデルを記憶した記憶部11と、記憶部11から読み出したSNNに入力データを適用して推論を行う推論部12と、推論結果を出力する出力部13とを有している。
【0060】
また、情報処理装置1は、閾値設定部14を有している。ここで、設定される閾値は、SNNのニューロンの発火を調整するための閾値である。閾値が大きくなるほど、ニューロンは発火しづらくなるので、SNNの演算量は減少する。一方で、SNNは、閾値が0であるとして学習されているので、閾値を大きくすると学習時との乖離が大きくなるため性能が劣化する。
【0061】
閾値設定部14は、性能と演算量の兼ね合いで適切な閾値を設定する機能を有する。閾値の設定は、例えば、予め担保したい性能を定めておき、その性能を担保できる範囲で演算量を低減できるように自動的に閾値を設定してもよい。また、閾値は、ユーザが推論結果を見つつ、手動で設定することとしてもよい。以上の構成により、信号が入力されたニューロンだけで演算を行うニューラルネットワークにおいて、ニューロンの膜電位のアクティベーションの変化を抑制して演算量を低減することができる。
【0062】
情報処理装置1のAD/ADAS(Autonomous Driving/Advanced Driver Assistance System)への適用例として、例えば、車両のハンドル操舵角やアクセルなどの制御情報を予測する装置や歩行者の位置を予測する装置が考えられる。入力データとして、車両に搭載されたカメラで撮影した映像から連続するフレームでの差分データを用いる。これにより、フレーム全体を畳込み演算するよりも遥かに高速に画像処理を行うことができ、高速なレスポンスを要求されるAD/ADASに好適に適用できる。
【0063】
また、別の適用例としては、監視用途に用いることもできる。室内やエントランス等の監視対象の空間をイベントカメラで撮影し、イベントカメラにて取得したイベントデータを情報処理装置1に入力する。情報処理装置1は、イベントデータに基づいて、人物の位置を求めることができる。
【実施例0064】
次に、第1の実施の形態のニューラルネットワークの学習方法によって生成したニューラルネットワークモデルを用いた実施例と、非特許文献1に記載された方法を用いた比較例について説明する。
【0065】
図9は、実施例と比較例による演算量とエラー率を閾値ごとに示すグラフである。左のグラフは、閾値Thrと演算量MOPS(Million Operation per Second)との関係を示すグラフである。実施例と比較例のいずれも場合も閾値Thrが大きくなるにしたがって演算量が減少することが分かる。閾値Thrが大きいと発火が起きにくくなるためである。実施例と比較例を比較すると、同じ閾値Thrの場合には、実施例の方が演算量が遥かに小さいことが分かる。なお、CNNの場合には結合されたニューロン間で必ず演算が発生するので、ネットワークの構造によってMOPSが決まる。今回の実施例で用いたネットワークの構造をCNNで計算したとすると、MOPSは約28.2となる。実施例の演算量はCNNと比較しても非常に小さい。
【0066】
中央のグラフは、閾値Thrとエラー率MSE(Mean Squared Error)との関係を示すグラフである。実施例と比較例のいずれの場合も閾値Thrが大きくなるにしたがってエラー率が高くなることが分かる。実施例と比較例を比較すると、同じ閾値Thrでは、比較例の方が若干エラー率が低い。ただし、この結果は実施例が比較例より性能が劣ることを意味しない。なぜなら、実施例では、膜電位のアクティベーションの変化を抑制するように学習しているので、閾値を低く設定することが可能となっているからである。
【0067】
右のグラフは、演算量MOPSとエラー率MSEとの関係を示すグラフである。左のグラフと中央のグラフを統合したグラフである。つまり、各閾値に対応する点を演算量MOPSとエラー率MSEに対応する箇所にプロットし、接続したグラフである。図9では、MSE=0.007に点線を引いている。MSE=0.007を実現するために必要な演算量MOPSは、実施例では約1.5であるのに対し、比較例では5.4である。このように、同じエラー率を達成するのに必要な演算量は、実施例の方が遥かに小さいことが分かる。
【0068】
以上、本実施の形態のニューラルネットワークの学習方法について、詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。上記した実施の形態では、式(1)、式(2)に示すように閾値が0であることを前提としたコスト関数を用いたが、次式(3)に示すように、運用時の閾値Thrを使って、その範囲内の差分は無視するようにコスト関数を設計してもよい。
【0069】
【数9】
【産業上の利用可能性】
【0070】
本発明のニューラルネットワークの学習方法は、スパースなデータを処理するニューラルネットワークを学習する方法として有用である。
【符号の説明】
【0071】
1 情報処理装置
10 入力部
11 記憶部
12 推論部
13 出力部
14 閾値設定部
図1
図2
図3
図4
図5
図6
図7
図8
図9