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

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

▶ 日本電気株式会社の特許一覧

<>
  • 特許-設計方法およびプログラム 図1
  • 特許-設計方法およびプログラム 図2
  • 特許-設計方法およびプログラム 図3
  • 特許-設計方法およびプログラム 図4
  • 特許-設計方法およびプログラム 図5
  • 特許-設計方法およびプログラム 図6
  • 特許-設計方法およびプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】設計方法およびプログラム
(51)【国際特許分類】
   G06N 3/063 20230101AFI20241217BHJP
【FI】
G06N3/063
【請求項の数】 5
(21)【出願番号】P 2023523783
(86)(22)【出願日】2021-05-26
(86)【国際出願番号】 JP2021019903
(87)【国際公開番号】W WO2022249308
(87)【国際公開日】2022-12-01
【審査請求日】2023-11-07
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】酒見 悠介
【審査官】千葉 久博
(56)【参考文献】
【文献】国際公開第2020/241356(WO,A1)
【文献】国際公開第2019/125419(WO,A1)
【文献】国際公開第2013/119867(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/063
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
スパイク発生器による発火時刻とシナプス回路の出力電流値とが離散化された、スパイキングニューロンの回路モデルの、前記スパイク発生器による発火時刻の刻み幅を、発火時刻とスパイキングニューロンモデルへの入力に対する重みとが離散化されたスパイキングニューロンの数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記回路モデルにおける膜電位を模擬するコンデンサの容量との積で除算した値に算出すること、
前記シナプス回路の出力電流値の最小刻み幅を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器による発火時刻の刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、
前記スパイク発生器における発火閾値電圧を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記コンデンサの容量との積で除算した値に算出すること、
前記コンデンサの容量を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧との積で除算した値に算出すること、
前記数理モデルにおける発火時刻の刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、および、
前記数理モデルにおける重みの刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、数理モデルにおける発火時刻の刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、
のうち少なくとも何れかを行うことと、
発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いるスパイキングニューラルネットワークの学習を行うことと、
発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いる学習済みの前記スパイキングニューラルネットワークを、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いるスパイキングニューラルネットワークに変換することと、
を含み、
発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いる前記スパイキングニューラルネットワークが、発火時刻および電流値が離散化されたスパイキングニューロンの回路モデルを用いるスパイキングニューラルネットワークのハードウェアに実装される、
設計方法。
【請求項2】
前記スパイク発生器による発火時刻とシナプス回路の出力電流値とが離散化された、スパイキングニューロンの回路モデルの、前記スパイク発生器による発火時刻の刻み幅を、発火時刻とスパイキングニューロンモデルへの入力に対する重みとが離散化されたスパイキングニューロンの数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記回路モデルにおける膜電位を模擬するコンデンサの容量との積で除算した値に算出すること、
前記シナプス回路の出力電流値の最小刻み幅を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器による発火時刻の刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、
前記スパイク発生器における発火閾値電圧を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記コンデンサの容量との積で除算した値に算出すること、
前記コンデンサの容量を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧との積で除算した値に算出すること、
前記数理モデルにおける発火時刻の刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、および、
前記数理モデルにおける重みの刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、数理モデルにおける発火時刻の刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、
のうち少なくとも何れかを行うことは、
前記コンピュータが、
前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との仕様に基づいて、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅とを決定すること
を含む、請求項1に記載の設計方法。
【請求項3】
前記スパイク発生器による発火時刻とシナプス回路の出力電流値とが離散化された、スパイキングニューロンの回路モデルの、前記スパイク発生器による発火時刻の刻み幅を、発火時刻とスパイキングニューロンモデルへの入力に対する重みとが離散化されたスパイキングニューロンの数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記回路モデルにおける膜電位を模擬するコンデンサの容量との積で除算した値に算出すること、
前記シナプス回路の出力電流値の最小刻み幅を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器による発火時刻の刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、
前記スパイク発生器における発火閾値電圧を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記コンデンサの容量との積で除算した値に算出すること、
前記コンデンサの容量を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧との積で除算した値に算出すること、
前記数理モデルにおける発火時刻の刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、および、
前記数理モデルにおける重みの刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、数理モデルにおける発火時刻の刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、
のうち少なくとも何れかを行うことは、
前記コンピュータが、
前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅との要求仕様に基づいて、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量とを決定すること
を含む、請求項1に記載の設計方法。
【請求項4】
記数理モデルにおける発火時刻の刻み幅、および、前記数理モデルにおける重みの刻み幅は、発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いる学習済みの前記スパイキングニューラルネットワークを、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いるスパイキングニューラルネットワークに変換するための設計値であり、
前記スパイク発生器による発火時刻の刻み幅、前記シナプス回路の出力電流値の最小刻み幅、前記スパイク発生器における発火閾値電圧、および、前記膜電位を模擬するコンデンサの容量は、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いる前記スパイキングニューラルネットワークを、発火時刻および電流値が離散化されたスパイキングニューロンの回路モデルを用いるスパイキングニューラルネットワークのハードウェアに実装するための設計値である、
請求項1から3の何れか一項に記載の設計方法。
【請求項5】
コンピュータに、
スパイク発生器による発火時刻とシナプス回路の出力電流値とが離散化された、スパイキングニューロンの回路モデルの、前記スパイク発生器による発火時刻の刻み幅を、発火時刻とスパイキングニューロンモデルへの入力に対する重みとが離散化されたスパイキングニューロンの数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記回路モデルにおける膜電位を模擬するコンデンサの容量との積で除算した値に算出すること、
前記シナプス回路の出力電流値の最小刻み幅を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器による発火時刻の刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、
前記スパイク発生器における発火閾値電圧を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記コンデンサの容量との積で除算した値に算出すること、
前記コンデンサの容量を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧との積で除算した値に算出すること、
前記数理モデルにおける発火時刻の刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、および、
前記数理モデルにおける重みの刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、数理モデルにおける発火時刻の刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、
のうち少なくとも何れかを行うことと、
発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いるスパイキングニューラルネットワークの学習を行うことと、
発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いる学習済みの前記スパイキングニューラルネットワークを、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いるスパイキングニューラルネットワークに変換することと、
を実行させ、
発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いる前記スパイキングニューラルネットワークが、発火時刻および電流値が離散化されたスパイキングニューロンの回路モデルを用いるスパイキングニューラルネットワークのハードウェアに実装される、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、設計方法およびプログラムに関する。
【背景技術】
【0002】
ニューラルネットワークの1つにスパイキングニューラルネットワーク(Spiking Neural Network;SNN)がある(例えば、特許文献1参照)。スパイキングニューラルネットワークは、スパイクと呼ばれる2値信号でスパイキングニューロン間の情報伝達を行う点で、電力効率が高いニューラルネットワークとして期待されている。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2020/241356号
【発明の概要】
【発明が解決しようとする課題】
【0004】
スパイキングニューロンをハードウェア実装する場合、発火時刻が離散化されている回路のほうが、製造容易性および電力効率の点で有利であることが考えられる。一方、一般的には、時刻が離散化されたモデルは、学習の精度が低い傾向がある。
【0005】
本発明の目的の一例は、上述した課題を解決することのできる設計方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第一の態様によれば、設計方法は、コンピュータが、スパイク発生器による発火時刻とシナプス回路の出力電流値とが離散化された、スパイキングニューロンの回路モデルの、前記スパイク発生器による発火時刻の刻み幅を、発火時刻とスパイキングニューロンモデルへの入力に対する重みとが離散化されたスパイキングニューロンの数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記回路モデルにおける膜電位を模擬するコンデンサの容量との積で除算した値に算出すること、前記シナプス回路の出力電流値の最小刻み幅を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器による発火時刻の刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、前記スパイク発生器における発火閾値電圧を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記コンデンサの容量との積で除算した値に算出すること、前記コンデンサの容量を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧との積で除算した値に算出すること、前記数理モデルにおける発火時刻の刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、および、前記数理モデルにおける重みの刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、数理モデルにおける発火時刻の刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、のうち少なくとも何れかを行うことと、発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いるスパイキングニューラルネットワークの学習を行うことと、発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いる学習済みの前記スパイキングニューラルネットワークを、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いるスパイキングニューラルネットワークに変換することと、を含み、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いる前記スパイキングニューラルネットワークが、発火時刻および電流値が離散化されたスパイキングニューロンの回路モデルを用いるスパイキングニューラルネットワークのハードウェアに実装される。
【0007】
本発明の第二の態様によれば、プログラムは、コンピュータに、スパイク発生器による発火時刻とシナプス回路の出力電流値とが離散化された、スパイキングニューロンの回路モデルの、前記スパイク発生器による発火時刻の刻み幅を、発火時刻とスパイキングニューロンモデルへの入力に対する重みとが離散化されたスパイキングニューロンの数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記回路モデルにおける膜電位を模擬するコンデンサの容量との積で除算した値に算出すること、前記シナプス回路の出力電流値の最小刻み幅を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器による発火時刻の刻み幅との積を、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、前記スパイク発生器における発火閾値電圧を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記コンデンサの容量との積で除算した値に算出すること、前記コンデンサの容量を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける発火時刻の刻み幅と、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧との積で除算した値に算出すること、前記数理モデルにおける発火時刻の刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、前記数理モデルにおける重みの刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、および、前記数理モデルにおける重みの刻み幅を、前記スパイク発生器による発火時刻の刻み幅と、前記シナプス回路の出力電流値の最小刻み幅との積を、数理モデルにおける発火時刻の刻み幅と、前記スパイク発生器における発火閾値電圧と、前記コンデンサの容量との積で除算した値に算出すること、のうち少なくとも何れかを行うことと、発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いるスパイキングニューラルネットワークの学習を行うことと、発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いる学習済みの前記スパイキングニューラルネットワークを、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いるスパイキングニューラルネットワークに変換することと、を実行させ、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いる前記スパイキングニューラルネットワークが、発火時刻および電流値が離散化されたスパイキングニューロンの回路モデルを用いるスパイキングニューラルネットワークのハードウェアに実装される。
【発明の効果】
【0008】
本発明によれば、発火時刻を離散化することができ、かつ、学習の精度が比較的高い。
【図面の簡単な説明】
【0009】
図1】実施形態に係る離散化の対象となるスパイキングニューロンの数理モデルの例を示す図である。
図2】実施形態に係るスパイキングニューロンの膜電位の時間発展の例を示す図である。
図3】実施形態に係るスパイキングニューロンの回路モデルの例を示す図である。
図4】実施形態に係るスパイキングニューラルネットワークにおける発火時刻の例を示す図である。
図5】実施形態に係る設計方法における処理手順の例を示す図である。
図6】実施形態に係る設計方法における処理の例を示すフローチャートである。
図7】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、離散化の対象となるスパイキングニューロンの数理モデルの例を示す図である。
【0011】
スパイキングニューロンでは、膜電位と呼ばれる内部状態が、スパイクの入力に応じて時間発展する。図1では、膜電位がv (l)(t)と表記されている。図1では、階層性のニューラルネットワークが想定されており、第l層のi番目のスパイキングニューロンが示されている。ただし、スパイキングニューラルネットワークの構造は、階層構造に限定されない。
膜電位v (l)(t)が発火閾値Vthに達すると、スパイキングニューロンがスパイクを出力する。
【0012】
図2は、スパイキングニューロンの膜電位の時間発展の例を示す図である。図2のグラフの横軸は時刻を示す。縦軸は膜電位を示す。図2では、膜電位をv (l)と表記している。
図2のスパイキングニューロンは、時刻t *(l-1)、t *(l-1)、t *(l-1)のそれぞれに、第l-1層のスパイキングニューロンからのスパイクの入力を受けている。スパイクの入力後、膜電位が、スパイク出力元のスパイキングニューロン毎に設定されている重みに応じた変化率で変化し続ける。また、スパイクの入力毎の膜電位の変化率は線形的に加算される。
【0013】
時刻t *(l)に、図2のスパイキングニューロンの膜電位が発火閾値Vthに達し、スパイキングニューロンが発火している。発火によって膜電位が0になり、その後はスパイクの入力を受けても膜電位は変化していない。
スパイキングニューロンが発火する時刻を発火時刻と称する。発火時刻をスパイク時刻とも称する。
【0014】
また、以下の説明では、発火時刻と、スパイク出力側のスパイキングニューロンのスパイク出力時刻と、スパイク入力側のスパイキングニューロンのスパイク入力時刻とが同じであるものとして説明する。ただし、スパイク出力側のスパイキングニューロンのスパイク出力時刻と、スパイク入力側のスパイク入力時刻との間に無視できない遅延があってもよい。その場合、遅延時間が式に示されていてもよい。
【0015】
また、発火後の膜電位は、上述した電位0から変化しないものに限定されない。例えば、発火から所定時間経過後は、スパイクの入力に応じて膜電位が変化するようにしてもよい。
スパイキングニューロンの数理モデルにおける発火前の膜電位の変化は、式(1)の微分方程式のように示すことができる。
【0016】
【数1】
【0017】
(l)(t)は、第l層のi番目のスパイキングニューロンの、時刻tにおける膜電位を示す。
ij (l)は、第l-1層のj番目のスパイキングニューロンから第l層のi番目のスパイキングニューロンへのスパイクに対する重みを表す。
θはステップ関数を表し、式(2)のように示される。
【0018】
【数2】
【0019】
*(l-1)は、第l-1層のj番目のスパイキングニューロンの発火時刻を示す。
上述したスパイキングニューロンの数理モデルをハードウェア実装することを考える。
なお、実施形態に係る設計方法の対象となるスパイキングニューロンの数理モデルは、式(1)に示されるもの限定されない。例えば、実施形態に係る設計方法を、一般的な漏れ積分発火ニューロン(Leaky integrate-and-fire neuron)に適用することも同様に可能である。
【0020】
図3は、スパイキングニューロンの回路モデルの例を示す図である。ここでいう回路モデルは、モデルを実装する回路である。
図3の回路モデルで、パルス信号またはステップ信号によるスパイクがシナプス回路(Synapse Circuit)に入力されると、シナプス回路は、重み付けされた電流を出力し続ける。
【0021】
シナプス回路が出力する電流は、合計されてコンデンサに流れて蓄電され、コンデンサに電位が生じる。このコンデンサの電位は膜電位を模擬する。
スパイク発生器(Spike Generator)は、コンデンサの電位と所定の発火閾値とを比較する。コンデンサの電位が発火閾値に達すると、スパイク発生器はスパイクを出力する。
【0022】
1つのスパイク発生器が1回のみスパイクを出力するようにしてもよい。あるいは、スパイク発生時にコンデンサの電位をリセットする等により、1つのスパイク発生器が複数回発火し得るようにしてもよい。
スパイキングニューロンの回路モデルにおける発火前の膜電位の変化は、式(3)の微分方程式のように示すことができる。
【0023】
【数3】
【0024】
Cは、コンデンサの容量を示す。
ij (l)(t)は、第l-1層のj番目のスパイキングニューロンから第l層のi番目のスパイキングニューロンへのスパイクによる膜電位の変化を模擬するための電流値を示す。
【0025】
電流の有無について式(2)のステップ関数θを用いて表すと、式(3)は式(4)のように変形される。
【0026】
【数4】
【0027】
ij (l)は、シナプス回路が電流を出力する場合の電流値を表す。電流のONとOFFとの切替は「θ(t-t *(l-1))」で示されるので、電流値Iij (l)は、学習によって値が更新され得る定数として扱われる。このため、式(3)の場合と異なり式(4)では、「Iij (l)」に「(t)」が付加されていない。
【0028】
図3の構成で、スパイク発生器による発火時刻、および、シナプス回路による重みを離散化することを考える。これらが離散化されている回路のほうが、製造容易性および電力効率の点で有利であることが考えられる。ここでいう離散化は、量子化とも称される。
【0029】
一方、一般的には、時刻が離散化されたモデルは、学習の精度が低い傾向がある。スパイキングニューロンについても、時刻が離散化された回路モデルで学習を行うと、学習の精度が低くなることが考えられる。
式(1)に示されるスパイキングニューロンの数理モデルにおいて、時刻を離散化して時間ステップ(Time Step)で表すようにすると、膜電位は式(5)のように示される。
【0030】
【数5】
【0031】
式(5)では、時刻が時間ステップで表されており、tは、例えば0、1、2、・・・の整数値をとる。
時刻tにおける膜電位「v (l)(t)」は、時刻t-1における膜電位「v (l)(t-1)」に、時間ステップの単位時間あたりの変化量「Σ(wij (l)θ(t-t *(l-1)))」を加算することで算出される。
式(5)に示される数理モデルを、図3に示される回路モデルに実装すると、式(6)のように示される。
【0032】
【数6】
【0033】
式(6)で、電流値の合計に単位時間「1」を乗算した「Σ(Iij (l)(t))」によって、時刻t-1から時刻tまでの間の、コンデンサの電荷の変化量が示される。
式(6)のように、時刻が離散化されて時間ステップで表されるモデルで学習を行う場合、学習の精度が低くなることが考えられる。
【0034】
また、時間ステップにおける単位時間を、離散化されていない時刻におけるどれだけの時間幅にするかで、スパイキングニューラルネットワークの演算の精度が異なることが考えられる。単位時間の時間幅を短くするほど、演算の精度が高くなると考えられる。
【0035】
一方、スパイク発生器における発火時刻の離散化で、発火時刻の刻み幅を、時間ステップにおける単位時間の時間幅に合わせる場合、単位時間の時間幅を短くすると、発火時刻の刻み幅が短いスパイク発生器が必要となる。
したがって、この場合、スパイキングニューラルネットワークの演算の精度と、スパイク発生器に対する要求仕様とのトレードオフとなる。
【0036】
また、スパイク発生器における発火時刻の離散化で、発火時刻の刻み幅を、時間ステップにおける単位時間の時間幅にかかわらず一定とする場合、単位時間の時間幅を短くすると、演算に要する時間ステップのステップ数が多くなることが考えられる。ステップ数が多くなることで演算時間が長くなり、消費電力が大きくなる。
したがって、この場合、スパイキングニューラルネットワークの演算の精度と、演算時間および消費電力とのトレードオフとなる。
【0037】
図4は、スパイキングニューラルネットワークにおける発火時刻の例を示す図である。図4のグラフの横軸は時刻を、入力層のスパイキングニューロンが最初に発火してからの経過時間で示す。横軸における時間の単位はミリ秒(ms)である。縦軸は、入力層、隠れ層、出力層それぞれにおけるスパイキングニューロンの識別番号を示す。
【0038】
図4の例では、時刻が時間ステップで表されており、単位時間は2ミリ秒となっている。入力層のスパイキングニューロンが最初に発火してから6ステップ後に、出力層のスパイキングニューロンが最初に発火している。
【0039】
ここで、時刻が離散化された数理モデルが、図4に示されるように時間ステップの単位時間を2ミリ秒として構成され、時刻が離散化された回路モデルも、スパイク発生器の発火時刻の刻み幅を2ミリ秒として構成されている状態を想定する。
この状態から、数理モデルにおける時間ステップの単位時間を1ミリ秒にする場合について考える。
【0040】
この場合、回路モデルのスパイク発生器を、発火時刻の刻み幅が1ミリ秒のものに交換することが考えられる。スパイク発生器を交換することで、回路モデルでも数理モデルの場合と同様の時間で演算結果を得られる。
一方、発火時刻の刻み幅が短いスパイク発生器を用意すること、および、スパイク発生器を交換することが負担となる。
【0041】
あるいは、回路モデルのスパイク発生器として、発火時刻の刻み幅が2ミリ秒のものをそのまま用いることも考えられる。この場合、新たなスパイク発生器を用意する必要、および、スパイク発生器を交換する必要は無い。
一方、発火時刻の刻み幅が、時間ステップの単位時間の2倍になることで、回路モデルでの演算時間が、数理モデルでの演算時間の2倍になることが考えられる。また、演算時間が長くなることで、コンデンサに蓄電される電荷がコンデンサの蓄電可能量を超える場合は、コンデンサ、または、シナプス回路を交換する必要が生じる。
【0042】
このように、スパイク発生器の発火時刻の刻み幅を、時間ステップにおける単位時間の時間幅に合わせる場合、および、単位時間の時間幅にかかわらず一定とする場合の何れも、単位時間の時間幅の長短に関してメリットとデメリットとがある。
離散化された回路モデルを用いて学習を行った後、単位時間の時間幅を変更する場合、再学習が必要となり、学習の担当者の負担となる。離散化された数理モデルを用いて学習を行った後、単位時間の時間幅を変更する場合も、再学習が必要となり、学習の担当者の負担となる。
【0043】
そこで、実施形態に係る設計方法では、離散化されていない数理モデルを用いて学習を行った後、学習済みの数理モデルを、スパイク発生器による発火時刻、および、シナプス回路による重みが離散化された回路モデルに実装する。
図5は、実施形態に係る設計方法における処理手順の例を示す図である。コンピュータなどの装置が、自動的に、あるいは半自動的に、図5の処理を行うようにしてもよい。あるいは、スパイキングニューラルネットワークの設計者がコンピュータを用いて図5の処理を行うなど、人が図5の処理を行うようにしてもよい。
【0044】
図5に示す処理で、装置または人は、スパイキングニューラルネットワークの離散化されていないモデルの学習を行う(ステップS11)。ここでいうモデルの学習は、機械学習によってモデルのパラメータ値を調整することである。
次に、装置または人は、離散化された回路に学習済みのモデルを実装するためのパラメータ値を決定する(ステップS12)。
ここで、発火閾値のスケールのパラメータβを式(1)に導入すると、式(7)を得られる。
【0045】
【数7】
【0046】
式(7)で、パラメータβは、膜電位の変化速度を調整する係数の役割を果たしている。パラメータβの値を調整することで、重みWij (l)の値を変更する必要なしに、膜電位v (l)が発火閾値に到達する速さを調整することができる。
パラメータβを、図2に例示される膜電位のスケールを調整するパラメータとして用いることができる。回路モデルの設計時に、スパイク発生器に設定される発火閾値に応じてパラメータβの値を設定することができる。
【0047】
例えば、規格化された発火閾値の値Vth=1が1ボルト(V)に相当するのに対し、発火閾値が5ボルトに設定されているスパイク発生器を使用する場合、パラメータβの値を5に設定することができる。
図2の例で、β=5の設定に応じて、縦軸が示す電圧の値が5倍にスケーリングされることで、横軸が示す時間のスケールを変更する必要なしに、かつ、重みwij (l)の値を変更してグラフの線の傾きを調整する必要なしに、電圧値と時間との整合性をとることができる。
【0048】
式(7)に対して、重みWij (l)および発火時刻t *(l-1)を離散化すると、式(8)を得られる。
【0049】
【数8】
【0050】
(min)は、重みの刻み幅を示す。
ij (level,l)は、重みの刻み幅W(min)に乗算される整数を示す。
(min)ij (level,l)で、式(7)に示される重みWij (l)を離散化によって丸めた値を示す。
【0051】
Δt(model)は、数理モデルにおける発火時刻の刻み幅を示す。
(step,l-1)は、発火時刻の刻み幅Δt(model)に乗算される整数を示す。
(step,l-1)(model)で、式(7)に示される発火時刻t *(l-1)を離散化によって丸めた値を示す。
【0052】
式(8)に対して、さらに、数理モデルにおける時間スケールから回路モデルにおける時間スケールに変換するスケール変換を行う。このスケール変換は、式(9)のように示される。
【0053】
【数9】
【0054】
式(9)では、数理モデルにおける時刻をtと表記し、回路モデルにおける時刻をt’と表記している。
Δt(Circuit)は、回路モデルにおける発火時刻の刻み幅を示す。
Δt(model)とΔt(Circuit)との関係に式(9)を適用すると、式(10)を得られる。
【0055】
【数10】
【0056】
式(9)および式(10)を用いて、式(8)の時間スケールを数理モデルにおける時間スケールから回路モデルにおける時間スケールに変換すると、式(11)を得られる。
【0057】
【数11】
【0058】
式(11)で、右辺の「Δt(model)/Δt(Circuit)」をまとめてΣの前に出し、さらに、「t’」を「t」と表記し直すと、式(12)を得られる。
【0059】
【数12】
【0060】
また、式(4)に対して、電流値Iij (l)(t)および発火時刻t *(l-1)を離散化すると、式(13)を得られる。
【0061】
【数13】
【0062】
(min)は、電流値の刻み幅を示す。
ij (level,l)は、電流値の刻み幅I(min)に乗算される整数を示す。
(min)ij (level,l)で、式(4)に示される電流値Iij (l)(t)を離散化によって丸めた値を示す。
【0063】
式(12)と式(13)とが等価になるための条件について考える。
式(13)の「(d/dt)v (l)(t)」に式(12)を代入し、jについて合計する前の個々の式に展開して整理すると、式(14)を得られる。
【0064】
【数14】
【0065】
ij (level,l)とIij (level,l)とは、何れも離散化による整数でありWij (level,l)=Iij (level,l)である。Wij (level,l)=Iij (level,l)が任意の整数値をとるときに式(14)が成り立つための条件は、式(15)のように表される。
【0066】
【数15】
【0067】
図5のステップS12では、装置または人は、式(15)を満たすように、各パラメータの値を決定する。例えば、装置または人が、式(15)の制約条件の下で、スパイキングニューラルネットワークの認識性能および電力効率がなるべく高くなるように、パラメータ値を決定するようにしてもよい。
【0068】
スパイキングニューロンモデルを実装するハードウェアの仕様が決まっている場合、装置または人が、式(15)にハードウェアの仕様を入力して、数理モデルの離散化のパラメータ値を決定するようにしてもよい。
例えば、ハードウェアの仕様が以下のように決まっている場合について考える。
【0069】
電流値の刻み幅:I(min)=5[nA]
発火閾値:β=0.5[V]
隠れ層のコンデンサの容量:C(hidden)=300[fF]
出力層のコンデンサの容量:C(output)=300[fF]
発火時刻の刻み幅:Δt(circuit)=10[ns]
【0070】
この場合、式(15)に仕様値を入力すると式(16)のようになる。
【0071】
【数16】
【0072】
装置または人が、Δt(model)(min)=3.33・10-4を満たすΔt(model)およびW(min)で、スパイキングニューラルネットワークの認識性能および電力効率がなるべく高くなるように、Δt(model)およびW(min)の値を決定するようにしてもよい。
【0073】
数理モデルの離散化のパラメータ値について要求仕様が決まっている場合、装置または人が、決まっている要求仕様を式(15)に入力して、得られる条件を満たすように、ハードウェアの仕様を決定するようにしてもよい。数理モデルの離散化のパラメータ値は、例えばΔt(model)の値およびw(min)の値である。ハードウェアの仕様は、例えば、I(min)の値、βの値、Cの値、および、Δt(circuit)の値である。
数理モデル、および、回路モデルの何れについても、式(15)に示されるパラメータの値が決まっていない場合、装置または人が、スパイキングニューラルネットワークに求められる性能に基づいて、数理モデルの離散化のパラメータ値を決定し、決定したパラメータ値を式(15)に入力してハードウェアの仕様を決定するようにしてもよい。
【0074】
図5のステップS12の後、装置または人は、学習済みのスパイキングニューラルネットワークを、重みおよび発火時刻が離散化された数理モデルに変換する(ステップS13)。具体的には、装置または人は、学習済みのスパイキングニューラルネットワークに含まれるスパイキングニューロンモデルの各々を、ステップS12で得られたΔt(model)およびw(min)の値を満たすように、スパイキングニューロンの離散化モデルに置き換える。スパイキングニューロンモデル間の接続関係は、変換前のスパイキングニューラルネットワークの場合と同様とする。
【0075】
次に、装置または人は、重みおよび発火時刻が離散化された数理モデルを電流値および発火時刻が離散化された回路モデルに変換することで、スパイキングニューラルネットワークの回路モデルを設計する(ステップS14)。具体的には、装置または人は、重みおよび発火時刻が離散化された数理モデルにおけるスパイキングニューロンモデルの各々を、ステップS12で得られたI(min)、β、C、および、Δt(circuit)の値を満たすように、スパイキングニューロンの回路モデルに置き換える。スパイキングニューロンモデル間の接続関係は、変換前のスパイキングニューラルネットワークの場合と同様とする。
ステップS14の後、人または装置は、図5の処理を終了する。
【0076】
図5の処理の後、装置が自動または半自動で、図5の処理で設計されたスパイキングニューラルネットワークの回路モデルを生成することで、学習済みのスパイキングニューラルネットワークをハードウェア実装するようにしてもよい。あるいは、人が装置を用いて、図5の処理で設計されたスパイキングニューラルネットワークの回路モデルを生成することで、学習済みのスパイキングニューラルネットワークをハードウェア実装するようにしてもよい。
【0077】
以上のように、数理モデルにおける発火時刻の刻み幅と、数理モデルにおける重みの刻み幅との積が、スパイク発生器による発火時刻の刻み幅と、シナプス回路の出力電流値の最小刻み幅との積を、スパイク発生器における発火閾値電圧と、膜電位を模擬するコンデンサの容量との積で除算した値に等しくなるように、スパイク発生器による発火時刻の刻み幅、シナプス回路の出力電流値の最小刻み幅、スパイク発生器における発火閾値電圧、コンデンサの容量、数理モデルにおける発火時刻の刻み幅、または、数理モデルにおける重みの刻み幅の少なくとも何れかを決定する。
【0078】
この設計方法で得られるパラメータ値を用いて、発火時刻および重みが離散化されていない学習済みのスパイキングニューラルネットワークを、発火時刻および重みが離散化された数値モデルによるスパイキングニューラルネットワーク変換し、さらに、電流値および重みが離散化された回路モデルによるスパイキングニューラルネットワークに変換することができる。
この設計方法によれば、発火時刻および重みが離散化されていないスパイキングニューラルネットワークで学習を行える点で学習の精度が比較的高く、かつ、学習済みのニューラルネットワークにおける発火時刻を離散化することができる。
【0079】
また、スパイク発生器による発火時刻の刻み幅と、シナプス回路の出力電流値の最小刻み幅と、スパイク発生器における発火閾値電圧と、コンデンサの容量との仕様に基づいて、数理モデルにおける発火時刻の刻み幅と、数理モデルにおける重みの刻み幅とを決定する。
【0080】
この設計方法によれば、スパイキングニューラルネットワークの回路モデルの仕様が決まっている場合に、スパイキングニューラルネットワークの回路モデルの仕様に整合するように、スパイキングニューラルネットワークの数理モデルの設計パラメータ値を決定することができる。
【0081】
また、数理モデルにおける発火時刻の刻み幅と、数理モデルにおける重みの刻み幅との要求仕様に基づいて、スパイク発生器による発火時刻の刻み幅と、シナプス回路の出力電流値の最小刻み幅と、スパイク発生器における発火閾値電圧と、コンデンサの容量とを決定する。
【0082】
この設計方法によれば、発火時刻と重みとが離散化された数理モデルによるスパイキングニューラルネットワークに対する要求仕様が決まっている場合に、その要求仕様に整合するように、スパイキングニューラルネットワークの回路モデルの仕様を決定することができる。
【0083】
また、設計方法は、発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いるスパイキングニューラルネットワークの学習を行うことをさらに含む。上記の数理モデルにおける発火時刻の刻み幅、および、数理モデルにおける重みの刻み幅は、発火時刻および重みの何れも離散化されていないスパイキングニューロンモデルを用いる学習済みのスパイキングニューラルネットワークを、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いるスパイキングニューラルネットワークに変換するための設計値である。上記のスパイク発生器による発火時刻の刻み幅、シナプス回路の出力電流値の最小刻み幅、スパイク発生器における発火閾値電圧、および、膜電位を模擬するコンデンサの容量は、発火時刻および重みが離散化されたスパイキングニューロンの数理モデルを用いるスパイキングニューラルネットワークを、発火時刻および電流値が離散化されたスパイキングニューロンの回路モデルを用いるスパイキングニューラルネットワークのハードウェアに実装するための設計値である。
【0084】
この設計方法で得られるパラメータ値を用いて、発火時刻および重みが離散化されていない学習済みのスパイキングニューラルネットワークを、発火時刻および重みが離散化された数値モデルによるスパイキングニューラルネットワーク変換し、さらに、電流値および重みが離散化された回路モデルによるスパイキングニューラルネットワークに変換することができる。
この設計方法によれば、発火時刻および重みが離散化されていないスパイキングニューラルネットワークで学習を行える点で学習の精度が比較的高く、かつ、学習済みのニューラルネットワークにおける発火時刻を離散化することができる。
【0085】
図6は、実施形態に係る設計方法における処理の例を示すフローチャートである。図6に示す設計方法は、パラメータ値を決定すること(ステップS611)を含む。
パラメータ値を決定すること(ステップS611)では、数理モデルにおける発火時刻の刻み幅と、数理モデルにおける重みの刻み幅との積が、スパイク発生器による発火時刻の刻み幅と、シナプス回路の出力電流値の最小刻み幅との積を、スパイク発生器における発火閾値電圧と、膜電位を模擬するコンデンサの容量との積で除算した値に等しくなるように、スパイク発生器による発火時刻の刻み幅、シナプス回路の出力電流値の最小刻み幅、スパイク発生器における発火閾値電圧、コンデンサの容量、数理モデルにおける発火時刻の刻み幅、または、数理モデルにおける重みの刻み幅の少なくとも何れかを決定する。
【0086】
図6に示す設計方法で得られるパラメータ値を用いて、発火時刻および重みが離散化されていない学習済みのスパイキングニューラルネットワークを、発火時刻および重みが離散化された数値モデルによるスパイキングニューラルネットワーク変換し、さらに、電流値および重みが離散化された回路モデルによるスパイキングニューラルネットワークに変換することができる。
図6に示す設計方法によれば、発火時刻および重みが離散化されていないスパイキングニューラルネットワークで学習を行える点で学習の精度が比較的高く、かつ、学習済みのニューラルネットワークにおける発火時刻を離散化することができる。
【0087】
図7は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図7に示す構成において、コンピュータ700は、CPU(Central Processing Unit、中央処理装置)710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。
【0088】
図5の処理、および、図6の処理のうち何れか1つ以上またはその一部が、コンピュータ700で実行されてもよい。その場合、上述した各処理は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した処理のための記憶領域を主記憶装置720に確保する。上述した処理のための通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。上述した処理のためのユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0089】
図5の処理がコンピュータ700で実行される場合、ステップS11からS14の各処理は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0090】
また、CPU710は、プログラムに従って、図5の処理のための記憶領域を主記憶装置720に確保する。
【0091】
図6の処理がコンピュータ700で実行される場合、ステップS611の処理は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0092】
また、CPU710は、プログラムに従って、図6の処理のための記憶領域を主記憶装置720に確保する。
【0093】
なお、図5の処理、および、図6の処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0094】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0095】
本発明は、設計方法および記録媒体に適用してもよい。
【符号の説明】
【0096】
700 コンピュータ
710 CPU
720 主記憶装置
730 補助記憶装置
740 インタフェース
図1
図2
図3
図4
図5
図6
図7