(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024162569
(43)【公開日】2024-11-21
(54)【発明の名称】処理システム、処理方法、及び処理プログラム
(51)【国際特許分類】
G06N 3/049 20230101AFI20241114BHJP
【FI】
G06N3/049
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023078198
(22)【出願日】2023-05-10
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】細木 浩二
(72)【発明者】
【氏名】藤本 和久
(57)【要約】
【課題】スパイキングニューラルネットワークによる推論において、再学習に利用可能なデータを容易且つ適切に把握することができるようにする。
【解決手段】入力データに基づいて推論処理を行う監視カメラシステム1において、入力データをスパイク列データに変換するスパイク変換部210と、スパイク列データを入力して、スパイキングニューラルネットワークにより入力データが複数のクラスの中のいずれのクラスであるかを推定した推論結果を出力する推論部220と、推論結果が、いずれのクラスも推定されなかった、又は、複数のクラスが推定されたとの不定判定であるか否かを判断する判断部230と、を有するように構成する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
入力データに基づいて推論処理を行う処理システムであって、
入力データをスパイク列データに変換するスパイク変換部と、
前記スパイク列データを入力して、スパイキングニューラルネットワークにより前記入力データが複数のクラスの中のいずれのクラスであるかを推定した推論結果を出力するSNN用デバイスと、
前記推論結果が、いずれのクラスも推定されなかった、又は、複数のクラスが推定されたとの不定判定であるか否かを判断する判断部と、
を有する処理システム。
【請求項2】
前記推論結果が前記不定判定であると判断された場合に、前記推論結果の基となる前記入力データを特定可能な入力データ特定情報を記憶させる記憶制御部を更に有する
請求項1に記載の処理システム。
【請求項3】
前記入力データ特定情報により特定される入力データを用いて前記スパイキングニューラルネットワークを更新するSNN更新部を更に有する
請求項2に記載の処理システム。
【請求項4】
前記SNN更新部は、
前記入力データ特定情報により特定される入力データを含む学習データに基づいて、入力データが複数のクラスの中のいずれのクラスであるかを推定するディープニューラルネットワークを学習する学習部と、
学習された前記ディープニューラルネットワークを対応するスパイキングニューラルネットワークに変換する変換部と、
変換された前記スパイキングニューラルネットワークを前記SNN用デバイスに設定する設定部と、を含む
請求項3に記載の処理システム。
【請求項5】
前記処理システムは、
ネットワークで接続された推論装置と、学習装置とを含み、
前記推論装置は、
前記スパイク変換部と、前記SNN用デバイスと、前記判断部と、前記記憶制御部と、前記入力データ特定情報により特定される入力データを前記学習装置に送信する送信部と、を備え、
前記学習装置は、
前記SNN更新部を備える
請求項4に記載の処理システム。
【請求項6】
前記判断部により不定判定であると判断された場合に、アラートを出力するアラート出力部を更に有する
請求項1に記載の処理システム。
【請求項7】
入力データに基づいて推論処理を行う処理システムによる処理方法であって、
前記入力データをスパイク列データに変換し、
前記スパイク列データを入力して、スパイキングニューラルネットワークにより前記入力データが複数のクラスの中のいずれのクラスであるかを推定した推論結果を出力し、
前記推論結果が、いずれのクラスも推定されなかった、又は、複数のクラスが推定されたとの不定判定であるか否かを判断する
処理方法。
【請求項8】
入力データに基づいて推論処理を行うコンピュータに実行させる処理プログラムであって、
前記コンピュータは、
前記入力データに対応するスパイク列データを入力して、スパイキングニューラルネットワークにより前記入力データが複数のクラスの中のいずれのクラスであるかを推定した推論結果を出力するSNN用デバイスを備え、
前記コンピュータに、
前記入力データをスパイク列データに変換させ、
前記スパイク列データを前記SNN用デバイスに入力させ、
前記推論結果が、いずれのクラスも推定されなかった、又は、複数のクラスが推定されたとの不定判定であるか否かを判断させる
処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習を用いた推論を行う処理システム等に関する。
【背景技術】
【0002】
従来の監視カメラシステムでは、取得した映像を目視確認することにより、異常状態や危険状態を検知していた。一方、近年の監視カメラシステムでは、映像内の人物などのオブジェクトやその動きなどの注目すべき対象を検出し、その対象の属性を推論することで、リアルタイムに異常状態を検知する機能を有することで、目視確認の不要な高機能性を提供している。
【0003】
一般的な推論では、機械学習と呼ぶ技術のうちニューラルネットワークが用いられる。ニューラルネットワークは脳内の神経細胞とそのつながりである神経細胞網とを数式的モデルを用いて構成される。また数式的モデルは、高速演算するために、例えば、GPU(Graphic Processing Unit)によって計算される。
【0004】
近年では、より複雑な機械学習を実現するため、ディープニューラルネットワーク(DNN)を一つの大きなネットワークとして構築する深層学習も用いられる。深層学習ではより高い処理性能が要求されるため、低消費電力で高スループットの処理を実現することが困難となっている。
【0005】
この問題に対し、DNNを模倣するスパイキングニューラルネットワーク(SNN)に変換し、これを処理する低電力動作可能な脳型デバイスを用いた機械学習方式が研究されている(例えば、非特許文献1参照)。また、非特許文献2には、入力データにスパイク列を用い、特定の条件下のみで発火する脳型アレイで処理することにより、発火時のみに電力を消費する構造の脳型デバイスが開示されており、GPUを用いた数式的モデル方式と比較し、2倍から48倍の低電力効果を得ることが可能であることが開示されている。この方式での出力は、発火するか否かの2種(0又は1)であり、0から1までのグラデーションは存在しない。
【0006】
ここで、一般的な機械学習では、入力データとデータの属性とを組とする学習データを入力し、GPUとDNNを用いて学習を行うプロセス(学習プロセス)を実行する。学習プロセスにて多量の学習データを用いて学習することにより、後の推論プロセスにおける新たなデータを入力とした場合の推論精度を向上できる。
【0007】
次に、監視カメラシステムなどへの推論装置の社会実装を考える。上記した通り、機械学習では事前の学習プロセスと、社会実装後の推論プロセスとに分類できる。社会実装後では、環境変化への適応などの継続的な認識精度の向上が要求される。これに対して、能動的学修と呼ぶ技術が用いられる。例えば、非特許文献3には、認識精度に加え、その確信度を算出し、低確信度の入力データを再学習対象とすることで、認識精度を向上することが開示されている。
【0008】
確信度の算出方法は、大きく2種あり、非特許文献4に開示されたTemperature Scaling方式のように、予測時に認識精度を直接的に確信度になるように補正をかける技術や、非特許文献5に開示されたTrust Score方式のように、推論時に推論データと事前学習データとの距離から確信度を算出する技術がある。これらの確信度算出には数式的モデルを使用した算術演算が用いられる。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】“Benchmarking Keyword Spotting Efficiency on Neuromorphic Hardware”, P. Blouw, et al., in NICE '19, March 2019.
【非特許文献2】“Loihi A Neuromorphic Manycore Processor with On-Chip Learning ”, M. Davies, et. Al., in IEEE Micro 38, 82-99 (2018)
【非特許文献3】“Confidence-Based Active Learning”, Mingkun Li, et. Al., IEEE PAMI 28, No.8, 1251-1261 (2006)
【非特許文献4】“On the Properties of the Softmax Function with Application in Game Theory and Reinforcement Learning”, Bolin Gao, et. Al., in arXiv preprint arXiv:1704.00805. (2017)
【非特許文献5】“To Trust Or Not To Trust A Classifier”, Heinrich Jiang, et. Al., in NeurIPS2018. (2018)
【発明の概要】
【発明が解決しようとする課題】
【0010】
DNNを用いた数式的モデルによる推論結果と確信度との算出では、数式的モデルをソフトウェア的により算術演算して算出する。一方、SNNの出力は、発火するか否か(値1又は値0を出力する)のみのため、DNNを用いた数式的モデルと同様な確信度を算出することはできない。
【0011】
そのため、SNNを用いた場合には、社会実装後に自動で低確信度の入力データを検出できず、再学習対象のデータを習得できない。このため、能動的学修をすることができず、SNNにおける認識精度を向上することができない。
【0012】
本発明は、上記事情に鑑みなされたものであり、その目的は、スパイキングニューラルネットワークによる推論において、再学習に利用可能なデータを容易且つ適切に把握することのできる技術を提供することにある。
【課題を解決するための手段】
【0013】
上記目的を達成するため、一観点に係る処理システムは、入力データに基づいて推論処理を行う処理システムであって、入力データをスパイク列データに変換するスパイク変換部と、前記スパイク列データを入力して、スパイキングニューラルネットワークにより前記入力データが複数のクラスの中のいずれのクラスであるかを推定した推論結果を出力するSNN用デバイスと、前記推論結果が、いずれのクラスも推定されなかった、又は、複数のクラスが推定されたとの不定判定であるか否かを判断する判断部と、を有する。
【発明の効果】
【0014】
本発明によれば、スパイキングニューラルネットワークによる推論において、再学習に利用可能なデータを容易且つ適切に把握することができる。
【図面の簡単な説明】
【0015】
【
図1】
図1は、多クラス推論の概要を説明する図である。
【
図2】
図2は、多ラベル推論の概要を説明する図である。
【
図3】
図3は、一実施形態に係る監視カメラシステムの機能構成図である。
【
図4】
図4は、一実施形態に係る推論結果を説明する図である。
【
図5】
図5は、一実施形態に係る判断処理のフローチャートである。
【
図6】
図6は、一実施形態に係る監視カメラシステムのハードウェア構成の一例を示す図である。
【
図7】
図7は、一実施形態に係る監視カメラシステムのハードウェア構成の他の例を示す図である。
【発明を実施するための形態】
【0016】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0017】
まず、本実施形態に係る処理システムにおける推論内容について説明する。
【0018】
【0019】
多クラス推論は、入力データを、複数のクラスの中の1つのクラスに分類する推論である。
図1は、入力データのクラスとして、3つのクラス(a,b,c)の中の1つのクラスを選択する例を示している。
図1の例では、入力データは、1つのクラスbに分類される。多クラス推論では、入力データに対応する1つのクラスが出力される、いわゆるワンホットの出力が期待される。
【0020】
【0021】
多ラベル推論は、入力データを、複数のカテゴリのそれぞれについて、複数のクラスの中の1つのクラスに分類する推論である。
図2は、入力データを、種類を示すカテゴリについての3つのクラス(a,b,c)から1つのクラスに分類するとともに、模様を示すカテゴリについての3つのクラス(空白、模様有、黒)から1つのクラスに分類する例を示している。
図2の例では、入力データは、種類がクラスbに分類され、模様が模様有に分類される。多ラベル推論では、入力データに対して、各カテゴリごとに1つのクラスが選択されて出力される、いわゆるマルチホットの出力が期待される。
【0022】
次に、処理システムの一例としての監視カメラシステムについて説明する。
【0023】
図3は、一実施形態に係る監視カメラシステムの機能構成図である。
【0024】
監視カメラシステム1は、学習済SNN(スパイキングニューラルネットワーク)140を作成するプロセス(学習プロセス)を実行する学習プロセス部10と、SNNを使用して推論を行うプロセス(推論プロセス)を実行する推論プロセス部20とを含む。
【0025】
学習プロセス部10は、学習用データセット100と、学習部110と、学習済DNN(ディープニューラルネットワーク)120と、変換部130と、学習済SNN140とを含む。
【0026】
学習用データセット100は、DNNを学習するための学習用データを格納するデータセットであり、学習のためにDNNに入力する学習向データ101と、学習向データ101に対応する属性(正解)を含む属性データ102との組である教師データを複数含む。
【0027】
学習部110は、学習用データセット100の教師データを入力として、DNNについての機械学習を行い、学習済DNN120を出力する。
【0028】
変換部130は、学習済DNN120を、この学習済DNN120と同様な推論結果を出力する学習済SNN140に変換する処理を行う。なお、DNNをSNNに変換する方法は、公知の技術を用いることができる。また、変換部130は、学習済SNN140を推論部220に送信して、学習済SNN140を設定する。
【0029】
ここで、SNN更新部は、学習部110及び変換部130により構成され、設定部は、変換部130により構成される。
【0030】
推論プロセス部20は、実データ200と、スパイク変換部210と、推論部220と、判断部230と、記憶制御部240と、再学習データ250と、を含む。
【0031】
実データ200は、推論対象のデータ(実データ:入力データ)である。実データ200は、例えば、カメラ320(
図6参照)により撮像された監視対象範囲の画像データである。
【0032】
スパイク変換部210は、実データ200を入力し、入力された実データ200を、SNNに入力するための時系列のスパイク列データに変換する。実データ200をスパイク列データに変換する方法は、公知の技術を用いることができる。
【0033】
推論部220は、学習プロセス部10により生成された学習済SNN140が設定され、学習済SNNにより、入力されたスパイク列データに対して推論処理を行い、推論結果221を出力する。ここで、推論部220による推論処理は、例えば、スパイク列データに対応する実データ200が複数のクラスのいずれのクラスであるかを推定する処理である。
【0034】
判断部230は、推論結果221が妥当であるか否かを判断し、その判断結果を出力する。ここで、判断部230は、推論結果221が1つのクラスを示している場合には妥当であるとし、推論結果221における推定されたクラスが不定の場合、具体的には、複数のクラスを示している又はいずれのクラスも示していない場合には妥当でないと判断する。
【0035】
記憶制御部240は、判断部230による判断結果が、推論結果221が妥当でないことを示している場合には、この推論結果221に対応する実データを、再学習に使用するデータ(再学習データ250)として記憶する。なお、記憶制御部240は、再学習データ250を、学習用データセット100に追加し、学習プロセス部10における以降の学習プロセスに使用されるようにしてもよい。この場合、再学習データについての属性データは、ユーザにより設定されてもよい。このような再学習データ250を用いて学習プロセスを実行することにより、学習済SNN140の認識の精度を向上することができる。
【0036】
次に、推論部220による推論結果221の具体例について説明する。
【0037】
図4は、一実施形態に係る推論結果を説明する図である。
【0038】
図4は、推論部220により、
図1に示した3つのクラスから1つのクラスを選択する多クラス推論を行う場合の例を示している。
【0039】
推論部220は、学習済SNNを用いて3つのクラスから1つのクラスを選択するので、出力(推論結果221)は、各ビットがそれぞれのクラスであるか否かを示す3ビットの情報となる。この推論結果221は、選択されたクラスに対応するビットが1に設定され、選択されていないクラスに対応するビットが0に設定される。
【0040】
ここで、推論結果221は、いずれか1つのクラスのみが選択されたOne-hitと、いずれのクラスも選択されていないZero-hitと、複数のクラスが選択されたMulti-hitとの3種に分類できる。
【0041】
One-hitは、推論結果221が「001」,「010」,「100」のいずれかであり、クラスを正しく判定した正判定の場合と、誤って判定した誤判定の場合とに該当する。なお、実データ200には、属性(正解)が付与されていないため、推論結果221から正判定であるか、誤判定であるかは判別できない。
【0042】
Zero-hitは、推論結果221が「000」であり、いずれのクラスも選択されず、クラスを1つに決定できなかった不定判定の場合に該当する。
【0043】
Multi-hitは、推論結果221が「011」,「101」,「110」,「111」のいずれかであり、複数のクラスが選択され、クラスを1つに決定できなかった不定判定の場合に該当する。
【0044】
ここで、推論部220における多クラス推論においては、1つのクラスを選択することを期待されているものであり、Zero-hit及びMulti-hitのように不定判定は、妥当な判定ではない。なお、
図2に示す多ラベル推論においては、推論結果221は、各カテゴリごとに、上記したような3ビットの情報を有する。
【0045】
次に、判断部230による判断処理の処理動作について説明する。
【0046】
図5は、一実施形態に係る判断処理のフローチャートである。
図5は、推論部220により1以上のカテゴリに対する推論(多クラス推論、多ラベル推論)を行う場合を例に説明する。
【0047】
判断部230は、推論結果221についてカテゴリ分割を行い(S10)、未処理のカテゴリの1つを処理対象として以降の処理を行う。ここで、カテゴリとは、複数のクラスから1つのクラスを選択する群であり、例えば、
図1に示す多クラス推論であれば、カテゴリは1つであり、
図2に示す多ラベル推論であれば、カテゴリは、種類と、模様との2つである。
【0048】
判断部230は、処理対象とするカテゴリ(現カテゴリ)についての推論結果がZero-hitであるか否かを判定し(S11)、Zero-hitである場合(S11:Yes)には、推論結果が妥当でない(不定判定である)との判断結果を出力する。
【0049】
一方、現カテゴリがZero-hitでない場合(S11:No)には、判断部230は、現カテゴリについての推論結果がMulti-hotであるか否かを判定し(S12)、Multi-hitである場合(S12:Yes)には、推論結果が妥当でない(不定判定である)との判定結果を出力する。
【0050】
一方、現カテゴリがMulti-hitでない場合(S12:No)には、判断部230は、現カテゴリが最終カテゴリであるか否かを判定し(S13)、最終カテゴリである場合(S13:Yes)には推論結果が妥当であるとの判断結果を出力する。
【0051】
一方、最終カテゴリでない(S13:No)には、判断部230は、処理対象を次のカテゴリに設定し(S14)、処理をステップS11に進める。
【0052】
以上説明したように、監視カメラシステム1によると、実データ200のうち、推論結果が妥当でない実データ、すなわち、推論結果が不定判定である実データを適切に認識でき、この実データを再学習データとして記憶することができる。このため、この再学習データを学習用データセット100に追加して、再度学習プロセスを実行することにより、より推論精度の高い学習済SNN140を生成でき、推論部220でこの学習済SNN140を使用することにより、推論プロセスにおいて推論精度を向上することができる。
【0053】
次に、監視カメラシステム1を構成するハードウェア構成の例について説明する。
【0054】
図6は、一実施形態に係る監視カメラシステムのハードウェア構成の一例を示す図である。
【0055】
監視カメラシステム1Aは、推論装置310と、カメラ320とを含む。
【0056】
カメラ320は、監視対象領域の画像を撮像し、推論装置310に入力する。
【0057】
推論装置310は、例えば、PC(Personal Computer)や汎用サーバ等のコンピュータであり、プロセッサ330と、チップセット340と、ネットワークインタフェース350と、主記憶装置360と、SNN用デバイス370と、補助記憶装置380と、GPU390とを含む。
【0058】
チップセット340は、プロセッサ330と、ネットワークインタフェース350と、SNN用デバイス370と、補助記憶装置380と、GPU390と、カメラ320と、を相互に通信可能に接続する。
【0059】
ネットワークインタフェース350は、ネットワークを介して他の装置と通信する。
【0060】
プロセッサ330は、例えば、CPU(Central Processing Unit)であり、主記憶装置360及び/又は補助記憶装置380に格納されているプログラムに従って各種処理を実行する。
【0061】
主記憶装置360は、例えば、RAM(RANDOM ACCESS MEMORY)であり、プロセッサ330で実行されるプログラムや、必要な情報を記憶する。
【0062】
補助記憶装置380は、例えば、ハードディスクやフラッシュメモリなどであり、プロセッサ330で実行されるプログラム(処理プログラム)、プロセッサ330に利用されるデータ、DNNの学習用データセット100、学習済DNN120、学習済SNN140、推論に使用する実データ200、再学習データ250等を記憶する。
【0063】
SNN用デバイス370は、例えば、脳型デバイスと呼ばれることもあり、スパイクデータを入力として、SNNによる推論処理を実行し、異論結果を出力する。
【0064】
GPU390は、例えば、特定の処理の実行に適しているプロセッサであり、例えば、並列的に行われる処理の実行に適している。本実施形態では、GPU390は、プロセッサ330の指示に従ってDNNによる処理を実行する。
【0065】
ここで、学習部110は、主にプロセッサ330とGPU390とが協働することにより構成され、変換部130、スパイク変換部210、判断部230、及び記憶制御部240は、主にプロセッサ330が処理プログラムを実行することにより構成され、推論部220は、主にSNN用デバイス370により構成される。
【0066】
次に、監視カメラシステム1を構成するハードウェア構成の他の例について説明する。
【0067】
図7は、一実施形態に係る監視カメラシステムのハードウェア構成の他の例を示す図である。
【0068】
監視カメラシステム1Bは、カメラ320と、推論装置410と、学習装置510とを含む。推論装置410と、学習装置510とは、ネットワークを介して接続されている。
【0069】
推論装置410は、推論プロセス部20を構成する装置であり、例えば、PCや汎用サーバ等のコンピュータであり、プロセッサ430と、チップセット440と、ネットワークインタフェース450と、主記憶装置460と、SNN用デバイス470と、補助記憶装置480と、を含む。各構成は、
図6の推論装置300の同名の構成と同様である。
【0070】
この例では、スパイク変換部210、判断部230、及び記憶制御部240は、主にプロセッサ430が処理プログラムを実行することにより構成され、推論部220は、主にSNN用デバイス470により構成される。ここで、記憶制御部240は、送信部に対応し、再学習データ250を、ネットワークを介して学習装置510に送信する。
【0071】
学習装置510は、学習プロセス部10を構成する装置であり、例えば、PCや汎用サーバ等のコンピュータであり、プロセッサ530と、チップセット540と、ネットワークインタフェース550と、主記憶装置560と、補助記憶装置580と、GPU590と、を含む。各構成は、
図6の推論装置300の同名の構成と同様である。
【0072】
この例では、学習部110は、主にプロセッサ530とGPU590とが協働することにより構成され、変換部130は、主にプロセッサ530が処理プログラムを実行することにより構成される。
【0073】
監視カメラシステム1Bでは、再学習データ250は、ネットワークを介して推論装置410から学習装置510に送信され、学習済SNN140は、ネットワークを介して、学習装置510から推論装置410に送信されて設定される。
【0074】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。例えば、本発明は、必ずしも説明した全ての構成を備えるものに限定されない。
【0075】
例えば、上記実施形態では、記憶制御部240は、推論結果が妥当でないと判断された場合に、対応する入力データを再学習データ250として記憶するようにしていたが、本発明はこれに限られず、例えば、全ての実データ200を常時記憶しておき、妥当でないと判断された場合には、対応する入力データを示すタイムスタンプのデータを記憶するようにし、そのタイムスタンプに基づいて再学習データとする入力データを特定するようにしてもよく、要は、対応する入力データ又は入力データを特定可能なデータ(これらを総称して入力データ特定情報という)を記憶するようにすればよい。
【0076】
また、上記実施形態において、記憶制御部240を、判断部230による判断結果が、推論結果が妥当でないことを示している場合に、この推論結果に対応する実データを、推論結果が妥当でないことを示すアラートを、例えば、図示しない表示装置や、他の装置に表示(出力)させるようにしてもよい。ここで、記憶制御部240は、アラート出力部に相当する。
【0077】
また、上記実施形態では、学習用データセット100によりDNNを学習し、学習済DNNを変換することにより学習済SNNを生成するようにしていたが、学習済SNNを生成する方法はこれに限られず、DNNからの変換によらずに、SNNの生成又は学習を行うようにしてもよい。
【0078】
また、上記実施形態において、プロセッサが行っていた処理の一部又は全部を、専用のハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記録メディア(例えば可搬型の記録メディア)であってもよい。
【符号の説明】
【0079】
1,1A,1B…監視カメラシステム、10…学習プロセス、20…推論プロセス、110…学習部、130…変換部、210…スパイク変換部、220…推論部、230…判断部、240…記憶制御部、310…推論装置、320…カメラ、330…プロセッサ、340…チップセット、350…ネットワークインタフェース、360…主記憶装置、370…SNN用デバイス、380…補助記憶装置、390…GPU