(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-02
(45)【発行日】2023-03-10
(54)【発明の名称】ニューラルネットワークのための方法
(51)【国際特許分類】
G06N 3/044 20230101AFI20230303BHJP
【FI】
G06N3/044
(21)【出願番号】P 2021156768
(22)【出願日】2021-09-27
(62)【分割の表示】P 2017132072の分割
【原出願日】2017-07-05
【審査請求日】2021-10-15
(32)【優先日】2016-07-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】10-2016-0113039
(32)【優先日】2016-09-02
(33)【優先権主張国・地域又は機関】KR
(32)【優先日】2016-12-02
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】10-2017-0053543
(32)【優先日】2017-04-26
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(73)【特許権者】
【識別番号】517237735
【氏名又は名称】ウニベルシテート チューリッヒ
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】李 俊 行
(72)【発明者】
【氏名】ダニエル ネイル
(72)【発明者】
【氏名】劉 世 綺
(72)【発明者】
【氏名】トビ デルブルック
【審査官】関口 明紀
(56)【参考文献】
【文献】米国特許出願公開第2015/0269481(US,A1)
【文献】特開平08-272759(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/044
(57)【特許請求の範囲】
【請求項1】
リカレントニューラルネットワークを用いて実行される方法において、
第1時間に対応する第1入力ベクトルと、前記第1時間よりも早い第2時間に対応する第2入力ベクトルとの間の差に基づいて、前記第1時間に対応する第1入力デルタベクトルを取得するステップと、
前記第2時間よりも早い第3時間に対応する第3隠れ状態ベクトルと前記第2時間に対応する第2隠れ状態ベクトルとの間の差に基づいて、前記第2時間に対応する隠れ状態デルタベクトルを取得するステップと、
前記取得された第1入力デルタベクト
ル及び前記第1入力ベクトルに対応す
る加重値間の積、及び前記取得された隠れ状態デルタベクト
ル及び前記第2隠れ状態ベクトルに対応す
る加重値間の積に基づいて、前記リカレントニューラルネットワークのパラメータを決定するステップと、
前記決定された前記リカレントニューラルネットワークのパラメータに基づいて、前記第1時間に対応する第1隠れ状態ベクトルを決定するステップと、
を含む方法。
【請求項2】
前記決定されたリカレントニューラルネットワークのパラメータは、リセットゲートの値、アップデートゲートの値、及び出力隠れ状態ベクトルの値のうち少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記第1入力デルタベクトルを取得するステップは、
前記第2入力ベクトルと前記第1入力ベクトルとの間の差が予め決定された閾値よりも大きい場合、前記第2入力ベクトルと前記第1入力ベクトルとの間の差を前記第1入力デルタベクトルとして決定するステップと、
前記第2入力ベクトルと前記第1入力ベクトルとの間の差が前記予め決定された閾値よりも小さい場合、ゼロベクトルを前記第1入力デルタベクトルとして決定するステップと、
を含む、請求項1又は2に記載の方法。
【請求項4】
前記第1入力デルタベクトルを取得するステップは、
前記第2時間に対応する第2入力デルタベクトルに基づいて前記第2時間に対応する第2参照ベクトルを取得するステップと、
前記取得された第2参照ベクトルと前記第1入力ベクトルとの間の差に基づいて、前記第1入力デルタベクトルを取得するステップと、
を含む、請求項1又は2に記載の方法。
【請求項5】
前記第2参照ベクトルを取得するステップは、
前記第2入力デルタベクトルが予め決定された閾値よりも大きい場合、前記第2入力デルタベクトルを前記第2参照ベクトルとして決定するステップと、
前記第2入力デルタベクトルが前記予め決定された閾値よりも小さい場合、前記第3時間に対応する第3参照ベクトルを前記第2参照ベクトルとして決定するステップと、
を含む、請求項4に記載の方法。
【請求項6】
前記隠れ状態デルタベクトルを取得するステップは、
前記
第3隠れ状態ベクトルと前記
第2隠れ状態ベクトルとの間の差が予め決定された閾値よりも大きい場合、前記
隠れ状態デルタベクトルを前記
第3隠れ状態ベクトルと前記
第2状態隠れベクトルとの間の差で決定するステップと、
前記
第3隠れ状態ベクトルと前記
第2状態隠れベクトルとの間の差が前記予め決定された閾値よりも小さい場合、前記
隠れ状態デルタベクトルをゼロベクトルとして決定するステップと、
を含む、請求項1ないし5のうち何れか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
以下の実施形態は人工ニューロンの動作方法及び電子装置等に関する。
【背景技術】
【0002】
複雑であるか又は解の知られていない問題を解決するために、人が有する認識方法をデバイスに適用させようとする研究が行われている。このような研究の1つとして、人の生物学的神経細胞をモデリングしたニューラルネットワーク(neural network)がある。ニューラルネットワークは、人が有している学習能力を模倣したアルゴリズムを用いる。ニューラルネットワークは、学習を介して入力パターンと出力パターンとの間のマッピングを行う。また、ニューラルネットワークは、学習された結果に基づいて学習に利用されていない入力パターンに対して比較的に正しい出力を生成することのできる一般化能力を有し得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、人工ニューロンの動作方法及びその方法を行う装置を提供することにある。
【課題を解決するための手段】
【0004】
一側面によれば、ニューラルネットワークを用いて実行される方法は、人工ニューロンの以前の
活性化及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、
前記決定された現在の活性化及び前記人工ニューロンによって以前に発生したイベントに対応する第2活性化に基づいて、第1活性化の変化量を決定するステップと、前記決定された第1活性化の変化量及び第1閾値に基づいて、新しいイベントの発生の有無を決定するステップと、前記新しいイベントの発生に応答して出力シナプスに前記新しいイベントに対応する出力信号を送信するステップとを含む。
【0005】
前記新しいイベントは、前記決定された第1活性化の変化量と前記第1閾値の交差により発生し得る。前記出力信号は、前記決定された第1活性化の変化量と前記第1閾値の交差方向を示す符号ビットを含み得る。前記方法は、前記入力シナプスによって接続された以前レイヤに対応する第2閾値を受信するステップをさらに含み、前記現在の活性化を決定するステップは、前記以前の活性化、前記入力信号、及び前記第2閾値に基づいて前記現在の活性化を決定するステップを含み得る。
【0006】
前記出力信号は、予め決定されたビットの精密度で近似化された前記決定された第1活性化の変化量を含み得る。前記ビットの精密度は、要求正確度及び可用リソースのうち少なくとも1つにより調整され得る。前記第1閾値は、単位時間の間に発生するイベントの数に応じて調整され得る。前記第1閾値は、前記単位時間の間に発生する前記イベントの数が予め決定された第3閾値を超過することにより増加し、前記単位時間の間に発生する前記イベントの数が予め決定された第4閾値未満であることにより減少し、前記第3閾値は前記第4閾値よりも大きい。
【0007】
前記方法は、前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第1閾値をアップデートするステップをさらに含み得る。前記第1閾値は、固定間隔、ログ間隔、又は、桁数に応じて調整され得る。前記方法は、前記決定された現在の活性化を格納するステップをさらに含み得る。
【0008】
前記方法は、予め決定された動作モードを指示する制御信号を受信するステップと、前記入力シナプスによって前記動作モードに対応してフレーム化された入力信号を受信するステップと、前記フレーム化された入力信号に基づいて前記現在の活性化を決定するステップとをさらに含み得る。
【0009】
前記ニューラルネットワークは、人工ニューラルネットワーク、完全接続ネットワーク、深層畳み込みネットワーク、リカレントニューラルネットワーク、及びスパイキングニューラルネットワークのいずれか1つであり得る。
【0010】
他の一実施形態によると、ニューラルネットワークを用いて実行される方法は、人工ニューロンの以前の活性化、及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、前記以前の活性化が属する第1クラスタ及び前記現在の活性化が属する第2クラスタに基づいて、イベントの発生の有無を決定するステップと、前記イベントの発生に応答して出力シナプスに前記イベントに対応する出力信号を送信するステップとを含む。
【0011】
前記イベントは、前記第1クラスタと前記第2クラスタとの差により発生し得る。前記出力信号は、クラスタの変化方向及びクラスタの変化量のうち少なくとも1つを示す少なくとも1つの変更ビットを含み得る。
【0012】
一実施形態によると、リカレントニューラルネットワークを用いて実行される方法は、第1時間に対応する第1入力ベクトルと、前記第1時間よりも早い第2時間に対応する第2入力ベクトルとの間の差に基づいて、前記第1時間に対応する第1入力デルタベクトルを取得するステップと、前記第2時間よりも早い第3時間に対応する第3隠れ状態ベクトルと前記第2時間に対応する第2隠れ状態ベクトルとの間の差に基づいて、前記第2時間に対応する隠れ状態デルタベクトルを取得するステップと、前記取得された第1入力デルタベクトルに対応する第2加重値及び前記第1入力ベクトルに対応する第1加重値間の積、及び前記取得された隠れ状態デルタベクトルに対応する第4加重値及び前記第2隠れ状態ベクトルに対応する第3加重値間の積に基づいて、前記リカレントニューラルネットワークのパラメータを決定するステップと、前記決定された前記リカレントニューラルネットワークのパラメータに基づいて、前記第1時間に対応する第1隠れ状態ベクトルを決定するステップとを含む。
【0013】
前記決定されたリカレントニューラルネットワークのパラメータは、リセットゲートの値、アップデートゲートの値、及び出力隠れ状態ベクトルの値のうち少なくとも1つを含み得る。
【0014】
前記第1入力デルタベクトルを取得するステップは、前記第2入力ベクトルと前記第1入力ベクトルとの間の差が予め決定された閾値よりも大きい場合、前記第2入力ベクトルと前記第1入力ベクトルとの間の差を前記第1入力デルタベクトルとして決定するステップと、前記第2入力ベクトルと前記第1入力ベクトルとの間の差が前記予め決定された閾値よりも小さい場合、ゼロベクトルを前記第1入力デルタベクトルとして決定するステップとを含み得る。
【0015】
前記第1入力デルタベクトルを取得するステップは、前記第2時間に対応する第2入力デルタベクトルに基づいて前記第2時間に対応する第2参照ベクトルを取得するステップと、前記取得された第2参照ベクトルと前記第1入力ベクトルとの間の差に基づいて、前記第1入力デルタベクトルを取得するステップとを含み得る。
【0016】
一実施形態によると、電子装置は、人工ニューロンに対応するプロセッシングユニットを含み、前記プロセッシングユニットそれぞれは、コンピュータで読み込むことのできる命令語を格納するメモリ及びプロセッサを含み、前記命令語が前記プロセッサで実行されれば、前記プロセッサは、以前の活性化及び入力リンクによって受信される入力信号に基づいて現在の活性化を決定し、前記決定された現在の活性化及び以前に発生したイベントに対応する第2活性化に基づいて第1活性化の変化量を決定し、前記決定された第1活性化の変化量及び第1閾値に基づいて新しいイベントの発生の有無を決定し、前記新しいイベントの発生に応答して出力リンクで前記新しいイベントに対応する出力信号を送信する。
【0017】
前記プロセッサは、前記入力リンクによって接続された以前レイヤに対応する第2閾値をさらに受信し、前記以前の活性化、前記入力信号、及び前記第2閾値に基づいて前記現在の活性化を決定し得る。前記プロセッサは、前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第1閾値をアップデートし得る。前記メモリは、前記決定された現在の活性化を格納し得る。
【発明の効果】
【0018】
本発明によると、人工ニューロンの動作方法及びその方法を行う装置を提供することができる。
【図面の簡単な説明】
【0019】
【
図1】一実施形態に係るニューラルネットワークを示す図である。
【
図2】人工ニューロンの入力及び出力例示を示す図である。
【
図3】一実施形態に係るイベント決定及び出力信号を示す図である。
【
図4】他の実施形態に係るイベント決定及び出力信号を示す図である。
【
図5】一実施形態に係る閾値の調整を示す図である。
【
図6】一実施形態に係るクラスタの変更を示す図である。
【
図7】標準ビデオデータセットを処理する標準畳み込みネットワークの特性を示す図である。
【
図8】時間の経過によるRNN活性化の安定性を示す図である。
【
図9】デルタネットワークを介して取得された算出結果を示す図である。
【
図10】一実施形態に係る電子装置を示すブロック図である。
【
図11】他の実施形態に係る電子装置を示す図である。
【
図12】一実施形態に係る人工ニューロンの動作方法を示した動作フローチャートである。
【発明を実施するための形態】
【0020】
本明細書で開示されている本発明の概念による実施形態に対して特定の構造的又は機能的な説明は、単に本発明の概念による実施形態を説明するための目的として例示したものであり、本発明の概念による実施形態は様々な形態で実施され、本明細書に説明された実施形態に限定されることはない。
【0021】
第1又は第2などの用語を複数の構成要素を説明するために用いることができるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に第2構成要素は第1構成要素にも命名することができる。
【0022】
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0023】
異なるように定義さがれない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0024】
以下、実施形態を添付する図面を参照しながら詳細に説明する。各図面に提示された同じ参照符号は同じ部材を示す。
【0025】
図1は、一実施形態に係るニューラルネットワークを示す図である。
図1を参照すると、ニューラルネットワーク100は、人工ニューロンを含む集合(collections)110~150を含む。
【0026】
ニューラルネットワーク100は、イベントに基づいて動作することで学習又は認識に必要される算出コストを減少させる。ニューラルネットワーク100は、ディープラーニングに用いてもよい。ディープラーニングは、ビッグデータセットから映像又は音声認識のような問題を解決するための機械学習方式である。ディープラーニングの指導式(supervised)又は非指導式(unsupervised)学習によってマルチレイヤニューラルネットワークで特徴階層が抽出される。ニューラルネットワーク100は、マルチレイヤニューラルネットワークの例示に当該する。マルチレイヤニューラルネットワークは、完全接続ネットワーク、深層畳み込みネットワーク、及びリカレントニューラルネットワークなどを含む。例えば、完全接続ネットワークは多くの語彙の連続的音声認識(large-vocabulary continuous speech recognition)、3Dオブジェクト認識、顔認識、及びマッチングや視覚的分類などに用いられる。
【0027】
マルチレイヤニューラルネットワークの大きさと深度は一般的なニューラルネットワークに比べて極めて大きくて深い。ニューラルネットワークの大きさは、レイヤごとのニューロン数とレイヤ数の積として示し、ニューラルネットワークの深度はネットワークごとのレイヤ数に示すことができる。例えば、最近のビジョンアプリケーションに用いられるニューラルネットワークは、41個のレイヤ、約143×106個の加重値、及び31×106個のニューロンを含み、当該のニューラルネットワークのために19.7×109個の演算が必要である。このような、マルチレイヤニューラルネットワークの学習には巨大なデータベース及び長い学習時間が必要とされる。
【0028】
このような巨大なニューラルネットワークを順次的な方法によって駆動させるためには、CPU(central processing unit)やGPU(graphic processing unit)のようなプロセッサの算出に多くのコストが消耗される。最近の研究によれば、スーパーコンピュータで数日又は何週の間に学習された百万の人工ニューロンが使用された。順次的な方法を通した学習で全ての人工ニューロンは、新しい入力サンプルによって常にアップデートされることから、ネットワークの複雑性によりコンピューティングリソースの消耗が増加するしかない。以下で詳細に説明するが、実施形態は、入力サンプルに基づいてイベントベースで動作することでネットワークの出力を算出するために用いられるコンピューティングリソースを大きく減少させ得る。
【0029】
ニューラルネットワーク100でそれぞれの集合110~150は人工ニューロンを含み、それぞれの集合110~150に含まれた人工ニューロンは他の人工ニューロンと接続される。前記他の人工ニューロンは、前記人工ニューロンのような集合に位置してもよいし、あるいは他の集合に位置してもよい。集合110~150はレイヤであってもよく、集合110~150はレイヤ110~150のように称される。この場合、ニューラルネットワーク100は、人工ニューロンを含む連続的なレイヤ110~150を含み得る。したがって、ニューラルネットワーク100は、マルチレイヤニューラルネットワークに当該する。
【0030】
図1は、説明の便宜のために5個のレイヤ110~150を図示しているが、ニューラルネットワーク100は様々な数のレイヤを含んでもよい。レイヤ110は入力レイヤを示し、レイヤ120~140は中間レイヤ又は隠れレイヤを示し、レイヤ150は出力レイヤを示す。出力レイヤを除いたレイヤ110~140に含まれた人工ニューロンは、次のレイヤの人工ニューロンに出力信号を送信するためのリンクによって接続される。リンクの数は、次のレイヤに含まれた人工ニューロン数に対応する。このようなリンクはシナプスに称される。
【0031】
ニューラルネットワーク100は、フィードフォワードネットワークである。ニューラルネットワーク100に含まれたそれぞれの人工ニューロンは、ニューラルネットワーク100が完全接続ネットワークを形成するよう、次のレイヤの全ての人工ニューロンに接続され、畳み込みネットワークのように制限された空間的接続の可能性を有する。
【0032】
ニューラルネットワーク100に含まれたそれぞれの人工ニューロンは、以前レイヤに含まれた人工ニューロンの入力x_iに関する1次結合を算出する。入力x_iはシナプスの加重値w_iと乗算される。加重された入力は、互いに足し算され、加重された入力の和(y)を数式(1)のように示す。
【0033】
【数1】
加重された入力の和yは、活性関数(activation function;f)に入力される。例えば、活性関数fはReLU(rectified linear unit)、シグモイド(sigmoid)及び双曲線正接(hyperbolic tangent)のいずれか1つである。活性関数fは人工ニューロンの出力oを数式(2)により算出する。
【0034】
【数2】
以下、人工ニューロン105を基準としてニューラルネットワーク100の動作を説明するが、人工ニューロン105に関する説明は、残りの人工ニューロンにも適用され得る。以下で人工ニューロン105の以前レイヤはレイヤ120を称し、人工ニューロン105の次のレイヤはレイヤ140を称する。人工ニューロン105とレイヤ120に含まれた人工ニューロンの間のリンクは、人工ニューロン105の入力シナプスに称し、人工ニューロン105とレイヤ140に含まれた人工ニューロンの間のリンクは人工ニューロン105の出力シナプスに称する。
【0035】
一側面によれば、人工ニューロン105の活性化(activation)が予め決定された量だけ変化するとき、人工ニューロン105は新しいイベントの発生を決定する。活性化は、人工ニューロン105の入力シナプスによって受信される入力と人工ニューロン105のために実現された活性関数に基づいて算出される。
【0036】
一実施形態に係るニューラルネットワーク100は、動的演算網(dynamic computation net:DCN)のように称される。以下で詳細に説明するが、DCNは人工ニューラルネットワーク(artificial neural network:ANN)あるいはスパイキングニューラルネットワーク(spiking neural network:SNN)などの様々な類型のニューラルネットワーク100に適用され得る。ニューラルネットワーク100がスパイキングニューラルネットワークである場合、人工ニューロン105の活性化は人工ニューロン105の膜電位であり得る。
【0037】
人工ニューロン105は、新しいイベントの発生により出力シナプスに新しいイベントに対応する出力信号を送信する。新しいイベントは、活性化の変化量と閾値の交差により発生する可能性がある。ここで、「活性化の変化量と閾値の交差」は、活性化の変化量が閾値の絶対値よりも大きい場合を示す。出力信号は、出力シナプスの加重値と乗算され、次のレイヤの人工ニューロンは人工ニューロン105の加重された出力信号を受信する。
【0038】
一実施形態によれば、出力信号は、活性化の変化量と閾値の交差方向を示す符号ビットを含む。イベント発生時に単一符号ビットを出力する人工ニューロンを含むニューロンネットワークは、基本DCN(basic DCN)に称される。この場合、次のレイヤの人工ニューロンに人工ニューロン105の閾値が共に送信されてもよい。一実施形態によれば、複数の人工ニューロンは同一の閾値を共有する。例えば、同一のレイヤに属する人工ニューロンは互いに同一の閾値を有する。この場合、次のレイヤの人工ニューロンは、以前レイヤの人工ニューロンの間に共有される閾値を受信することで、閾値送信による負荷が減少される。次のレイヤの人工ニューロンは、受信した符号ビット及び閾値に基づいて自身の活性化を決定する。人工ニューロン105は、出力信号を次のレイヤに送信した後に自身の閾値又は自身が属するレイヤ内で共有される閾値をアップデートし得る。他の例として、レイヤ以外に予め決定されたグループごとに閾値が個別に設定されてもよいし、あるいは、個別に人工ニューロンごとに閾値が個別に設定されてもよい。更なる例として、ニューロンネットワーク全体が同じ閾値を用いてもよい。
【0039】
他の実施形態によれば、出力信号は、予め決定されたビットの精密度で近似化された活性化の変化量を含む。イベント発生時に予め決定されたビットの精密度で近似化された活性化の変化量を出力するニューロンネットワークは、アナログ-送信DCN(analog-transmission DCN)に称される。近似化された活性化の変化量は、連続的な値を表現する。この場合、出力信号の送信のためにより多くのビットが要求されるが、符号ビットで活性化の変化量を示すことに比べて、次のレイヤに含まれた人工ニューロンの活性化が相対的に正確に算出される。次のレイヤの人工ニューロンは、受信した活性化の変化量を用いて自身の活性化を決定することができるため、人工ニューロン105の閾値は送信されない。
【0040】
人工ニューロン105は、出力信号を次のレイヤに送信した後自身の閾値をアップデートする。アナログ-送信DCNの場合、活性化の変化量が送信されるものであって、全ての人工ニューロンは自身の閾値を有することができ、それぞれの人工ニューロンは、制限されたバス容量のような可用リソース又は活性化に関する関数により自身の閾値を動的に変更できる。
【0041】
また、基本DCNの場合、符号ビットに制限された出力信号では閾値より極めて大きい活性化の変化量が正確に伝達することが難い。一方、アナログ-送信DCNの人工ニューロン105は、複数のバイナリイベントを送信する代わりに、活性化の変化量を正確に示す単一イベントを送信可能にする。そのため、アナログ-送信DCNでは、スロープ過負荷(slope-overload)の問題が解決される。
【0042】
上述した実施形態において、人工ニューロンの閾値は新しいイベントの発生によりアップデートされる。閾値は、固定された間隔、ログ間隔、桁数などの様々な方式で調整される。例えば、活性化が閾値に比べて極めて大きく変化する場合、閾値も活性化の変化に適するように調整する必要がある。活性化が149から150に変わることは、0から1に変わることに比べてその意味が大きくないからである。この場合、閾値がログ間隔で調整されることで、すでに極めて大きい活性化を有する人工ニューロンが活性化の変化量が十分に大きい場合に限って、イベントを発生させることができる。閾値がログ間隔に調整されるニューロンネットワークは、ログ-間隔閾値DCN(log-stepped threshold DCN)のように称される。ログ-間隔閾値DCNに含まれた人工ニューロンは、基本DCN方式で動作してもよいし、あるいは、アナログ-送信DCN方式で動作してもよい。
【0043】
他の一側面によれば、人工ニューロン105は、自身の活性化によって予め決定されたk個のクラスタのいずれか1つに分類され、自身が属するクラスタの変更によりイベントの発生を決定する。ここで、kは自然数である。例えば、人工ニューロン105の以前の活性化によって人工ニューロン105が第1クラスタに属するが、人工ニューロン105の現在の活性化によって人工ニューロン105が第2クラスタに属する場合、人工ニューロン105はイベントの発生を決定し得る。
【0044】
人工ニューロン105は、イベントの発生により出力信号を出力シナプスに送信する。この場合、出力信号は、クラスタの変化方向及びクラスタの変化量のうち少なくとも1つを示す少なくとも1つの変更ビットを含み得る。例えば、人工ニューロン105が属するクラスタが上位クラスタに変更された場合、人工ニューロン105は、正のビットである+1を送信し、人工ニューロン105が属するクラスタが下位クラスタに変更された場合、人工ニューロン105は負のビットである-1を送信する。クラスタが2つのレベル以上に変わったことを示すために、変更ビットは2ビット以上である。イベント発生時にクラスタの変化方向及びクラスタの変化量のうち少なくとも1つを示す少なくとも1つの変更ビットを出力する人工ニューロンを含むニューロンネットワークは、K-レベルDCN(K-level DCN)のように称される。
【0045】
人工ニューロン105は、入力信号をデコーディングするデコーダ、出力信号を生成するエンコーダ、及び出力信号を送信する送信機を含む。エンコーダは、イベントの発生によりイベントに対応する出力信号を生成する。例えば、出力信号は、符号ビット、近似化された活性化の変化量又は変更ビットを含む。基本DCNの場合、送信機は符号ビットと共に閾値を送信する。デコーダ、エンコーダ、及び送信機は、少なくとも1つのプロセッサハードウェアモジュール又は少なくとも1つのソフトウェアモジュールに実現できる。
【0046】
ニューラルネットワーク100は、ニューラルネットワーク100の設定値が固定された静的設定(static configuration)又はニューラルネットワーク100の設定値が動的に変更される動的設定(dynamic configuration)により動作する。設定値は、閾値及びビットの精密度を含む。動的設定における設定値は周期的に変更されたり、予め決定された条件が満足する場合に変更されたり、あるいはリクエストに応じて変更される。例えば、閾値は、単位時間の間に発生するイベントの数に応じて調整される。より具体的に、単位時間の間に発生するイベントの数が予め決定された第1閾値を超過するとき、イベントを減少させるために閾値が増加し得る。また、単位時間の間に発生するイベントの数が予め決定された第2閾値未満であるとき、イベントを増加させるために閾値が減少し得る。ここで、第1閾値は、第2閾値よりも大きくてもよい。
【0047】
設定値の動的な変更は、実際の実現においてハードウェアリソースの最適化に役に立つ。例えば、設定値は、要求正確度及び可用リソースのうち少なくとも1つにより調整される。具体的に、検出に要求される正確度に比べて、リソースの消耗や遅延を減少させることに優先順位が付与された場合、優先順位に適するようにビットの精密度が減少又は増加してもよい。モバイル電子機器で、命令のシーケンスを開始する核心キーワードを検出するために要求正確度が低く設定されてもよく、このような核心キーワードの検出によって高い正確度で連続的な単語が検出され得る。核心キーワード以外の残りのキーワードについては、要求正確度が低く設定されてもよい。
【0048】
ニューラルネットワーク100の人工ニューロンは、自身の状態を格納することによって、ステートフル(stateful)動作を行う。より具体的に、人工ニューロンは活性化の変化量を算出するために、イベントが発生した時点の活性化を格納する。以下で詳細に説明するが、活性化の変化量は、現在の活性化及び以前に発生したイベントに対応する活性化に基づいて決定される。この場合、以前に発生したイベントに対応する活性化が格納されなければ、活性化の変化量を算出することができない。伝統的なフィードフォワードネットワークの人工ニューロンは、状態を格納せずにステートレス(stateless)動作を行い、全ての人工ニューロンの状態は新しい入力サンプルから再び設定される。ニューラルネットワーク100はイベントの発生により部分的にアップデートされるため、全ての入力サンプルごとに全てのネットワークをアップデートすることに比べて、多くの量の演算が節減される。
【0049】
具体的に、ニューラルネットワークを動作させるための算出に関するコストは、ニューラルネットワークのアーキテクチャー及びニューラルネットワークに必要なビットの精密度に依存的である。ネットワークのアーキテクチャーは、人工ニューロンのモデル、レイヤ数、レイヤごとのニューロン数、及びレイヤごとのシナプス数などによって決定される。ネットワークパラメータの算出のためのコストに関し、2-レイヤの完全接続ネットワークの順次的なアップデートを例示的に説明する。
【0050】
最初のレイヤがN個の人工ニューロンを含み、2番目レイヤがM個の人工ニューロンを含み、bビットの精密度が利用され、ニューロン動作の複雑性がcであると仮定すると、完全接続ネットワークの順次的なアップデートのためには、ステップごとにN×M×b×cビットの動作が算出のためのコストとなる。この場合、人工ニューロンの入力が変わらないか、0に留まるような状況で動作のうちいずれか1つが活性化されなければ、算出のためのコストは減少する。
【0051】
αが算出を活性化する入力の比率であれば、ニューラルネットワーク100はステップごとにN×M×b×c×αの動作を行うことになる。α=1である場合、N×M×b×cの動作が実行される。α=0である場合、0の動作が実行される。また、ニューラルネットワーク100ではbを小さい値に設定することで、算出に関するコストが減少され得る。b=1である場合、ニューラルネットワーク100は、バイナリ-値の連結として動作する。ネットワークの正確度及びビットの精密度間にはトレードオフ関係があるが、ネットワークの正確度及びビットの精密度を全て満たす適切なbが選択されてもよい。一方、リアルタイムアプリケーションは頻繁にフレームごとの変化の小さい入力を受信する。例えば、入力映像の連続したフレーム間には同じピクセルが複数含まれてもよい。そのため、重複的な算出が行われることがある。ニューラルネットワーク100はこのような重複的な算出を減少させることができる。
【0052】
ニューラルネットワーク100は人工ニューロンが出力信号を送信するとき、全ての人工ニューロンの状態をリフレッシュする喚起モードとして動作する。喚起モードは、雑音によって引き起こされる活性化のエラーが蓄積されることを回避するために使用される。喚起モードは、ニューラルネットワーク100の入力が、全てのチャネルの周期的な全体情報(例えば、イメージのようなフレーム化された入力)とフレーム間の特定チャネルのアップデートイベントの混合であるとき、情報を十分処理するために適する。一般モードではイベントによる動作が出力信号の送信に応じて終了することに比べて、喚起モードでは、フレーム化された入力が全て処理される。喚起モードによる動作は周期的に処理されてもよいし、或いは、リクエストによって処理されてもよい。
【0053】
例えば、人工ニューロンは、予め決定された動作モード(例えば、喚起モード)を指示する制御信号を受信し得る。この場合、人工ニューロンは入力シナプスによって動作モードに対応してフレーム化された入力信号を受信する。人工ニューロンは、フレーム化された入力信号に基づいて自身の状態(例えば、活性化など)を決定できる。
【0054】
図2は、人工ニューロンの入力及び出力例示を示す図である。
図2を参照すると、以前レイヤ210の人工ニューロン、人工ニューロン225、及び次のレイヤ230の人工ニューロンが図示されている。
【0055】
人工ニューロン225は、人工ニューロン225の以前の活性化v_p及び入力信号i1、i2、i3に基づいて、人工ニューロン225の現在の活性化v_cを決定する。人工ニューロン225は、数式(3)を用いて現在の活性化v_cを決定する。
【0056】
【数3】
数式(3)において、v_cは現在の活性化を示し、fは活性関数を示し、v_pは以前の活性化を示し、iは入力信号の和を示し、φは人工ニューロンのパラメータを示す。人工ニューロンのパラメータは、人工ニューロンのバイアス及び人工ニューロンの状態を含む。入力信号の和iは、入力信号i1、i2、i3の和によって決定される。入力信号i1、i2、i3は、以前レイヤ210の人工ニューロンの出力信号及び人工ニューロン225の入力シナプスの加重値の間の積に基づいて決定される。現在の活性化v_cが決定された後、人工ニューロン225は現在の活性化v_cを格納する。
【0057】
人工ニューロン225は、現在の活性化v_c及び人工ニューロン225によって以前に発生したイベントE_Pに対応する活性化v_eに基づいて、活性化の変化量△vを決定する。人工ニューロン225は、現在の活性化v_cから活性化v_eを差し引いた値を活性化の変化量△vとして決定する。
【0058】
人工ニューロン225は、活性化の変化量△v及び閾値VTに基づいて、新しいイベントE_Nの発生の有無を決定する。具体的に、人工ニューロン225は、活性化の変化量△vと閾値VTの交差により新しいイベントE_Nの発生を決定する。閾値VTは、増加方向の第1閾値及び減少方向の第2閾値を含む。したがって、第1閾値は第2閾値よりも大きくてもよい。この場合、活性化の変化量△vが第1閾値を超過し、活性化の変化量△vが第1閾値未満に減少することにより、人工ニューロン225は新しいイベントE_Nの発生を決定できる。
【0059】
人工ニューロン225は、新しいイベントE_Nの発生により出力シナプスに新しいイベントE_Nに対応する出力信号oを送信する。出力信号oは、出力シナプスの加重値w1、w2、w3と乗算される。したがって、次のレイヤ230に含まれた人工ニューロンは人工ニューロン225と接続された出力シナプスの加重値により互いに異なる入力信号を受信できる。
【0060】
上述したように、一実施形態によれば、基本DCNで出力信号oは活性化の変化量△vと閾値VTの交差方向を示す符号ビットを含む。例えば、活性化の変化量△vが第1閾値を超過する場合、人工ニューロン225は、次のレイヤ230に含まれた人工ニューロンに単一の正のビットである+1を送信する。また、活性化の変化量△vが第2閾値未満に減少する場合、人工ニューロン225は、次のレイヤ230に含まれた人工ニューロンに単一の負のビットである-1を送信する。この場合、出力シナプスによって次のレイヤ230の人工ニューロンに閾値VTが共に送信され、次のレイヤ230の人工ニューロンは、人工ニューロン225から受信した符号ビット及び閾値VTに基づいて自身の活性化を決定できる。
【0061】
他の実施形態によれば、アナログ-送信DCNで人工ニューロン225は活性化の変化量△vを予め決定されたビットの精密度で近似化し、出力信号oは近似化された活性化の変化量v_aを含む。例えば、活性化の変化量△vが第1閾値を超過し、第2閾値未満に減少するとき、人工ニューロン225は16ビットで近似化された活性化の変化量v_aを次のレイヤ230に含まれた人工ニューロンに送信する。この場合、次のレイヤ230の人工ニューロンは、人工ニューロン225から受信した近似化された活性化の変化量v_aを用いて自身の活性化を決定できるため、閾値VTは送信されない。
【0062】
人工ニューロン225は、出力信号oを次のレイヤ230の人工ニューロンに送信した後に閾値VTをアップデートする。人工ニューロン225は、新しいイベントE_Nを発生させた現在の活性化v_cに基づいて閾値VTをアップデートする。例えば、人工ニューロン225は、現在の活性化v_cと類似の値で閾値VTをアップデートする。又は、人工ニューロン225は、固定間隔、ログ間隔、又は、桁数などの様々な方式により閾値を調整し得る。閾値の調整に関しては後で詳細に説明する。
【0063】
図3は、一実施形態に係るイベント決定及び出力信号を示す図である。
図3を参照すると、基本DNCで時間による人工ニューロンの活性化及びイベントによる出力信号が図示されている。
【0064】
時間t1において、活性化の変化量が閾値VT1を超過することにより、イベントE1が発生する。cの変化量が増加方向の第1閾値VT1を超過したため、出力信号oとして+1を指示する単一ビット(例えば、「真」の論理値を有する信号)が送信される。出力信号oが送信された後、閾値VT1はそのまま保持され、閾値VT2にアップデートされる。
【0065】
時間t2及び時間t3で活性化の変化量が閾値VT2及び閾値VT3を超過することにより、イベントE2及びイベントE3が発生する。ここで、出力信号oとして+1を指示する単一ビットが送信される。時間t2の後に閾値VT2はそのまま保持されたり閾値VT3にアップデートされ、時間t3の後に閾値VT3はそのまま保持されたり閾値V4にアップデートされる。
【0066】
時間t4で活性化の変化量が閾値V4未満に減少することにより、イベントE4が発生する。活性化の変化量が減少方向の第2閾値V4未満に減少したため、出力信号oとして-1を指示する単一ビット(例えば、「偽」の論理値を有する信号)が送信される。出力信号oが送信された後、閾値V4はそのまま保持され、閾値VT5にアップデートされる。
【0067】
説明の便宜のために、
図3に示す例示として、閾値はアップデートされることなく保持されているが、上述したようにイベントの発生に反応して閾値がアップデートされることができる。
【0068】
図4は、他の実施形態に係るイベント決定及び出力信号を示す図である。
図4を参照すると、アナログ送信DCNで時間による人工ニューロンの活性化及びイベントによる出力信号が図示されている。
【0069】
時間t1で活性化の変化量が閾値VT1を超過することにより、イベントE1が発生する。人工ニューロンは、活性化の変化量+1を予め決定されたビットの精密度で近似化する。人工ニューロンは、近似化された活性化の変化量+1を出力信号oとして送信する。出力信号oが送信された後、閾値VT1はそのまま保持され、閾値VT2にアップデートされる。
【0070】
時間t2で活性化の変化量が閾値VT2を超過することにより、イベントE2が発生する。人工ニューロン、は活性化の変化量+4.2を予め決定されたビットの精密度で近似化する。人工ニューロンは、近似化された活性化の変化量+4.2を出力信号oとして送信する。出力信号oが送信された後、閾値VT2はそのまま保持され、閾値VT3にアップデートされる。
【0071】
時間t3で活性化の変化量が閾値VT3未満に減少することにより、イベントE3が発生する。人工ニューロンは、活性化の変化量-1を予め決定されたビットの精密度で近似化する。人工ニューロンは、近似化された活性化の変化量-1を出力信号oとして送信する。出力信号oが送信された後、閾値VT3はそのまま保持され、閾値V4にアップデートされる。
【0072】
説明の便宜のために、
図4に示す例示で、閾値はアップデートされずに保持されているが、上述するようにイベントの発生に反応して閾値がアップデートされることができる。
【0073】
図5は、一実施形態に係る閾値の調整を示す図である。
図5を参照すると、ログ-間隔閾値DCNで時間による人工ニューロンの活性化及びイベントによる出力信号が図示されている。
【0074】
時間t1で活性化の変化量が閾値VT1を超過することにより、イベントE1が発生する。活性化の変化量が増加方向の第1閾値VT1を超過したため、人工ニューロンは、出力信号oとして+1を指示する単一ビットを送信する。又は、人工ニューロンは、活性化の変化量+1を予め決定されたビットの精密度で近似化する。この場合、人工ニューロンは、近似化された活性化の変化量+1を出力信号oとして送信する。
【0075】
出力信号oが送信された後、閾値VT1は閾値VT2にアップデートされる。例えば、閾値VT2は、ログ間隔により閾値VT1の2倍に設定される。
図5で、閾値VT1は1であり、閾値VT2は2である。
【0076】
時間t2で活性化の変化量が閾値VT2を超過することにより、イベントE2が発生する。活性化の変化量が増加方向の第1閾値VT1を超過したため、人工ニューロンは出力信号oとして+1を指示する単一ビットを送信する。又は、人工ニューロンは、活性化の変化量+2を予め決定されたビットの精密度で近似化し、近似化された活性化の変化量+2を出力信号oとして送信する。
【0077】
出力信号oが送信された後、閾値VT2は閾値VT3にアップデートされる。例えば、閾値VT3は、ログ間隔により閾値VT2の2倍に設定される。
図5で、閾値VT3は4である。活性化の増加により閾値も増加することで、より大きい変化量でイベントが発生する可能性がある。活性化の絶対量に比べて相対的に小さい変化量はその意味が大きくないため、閾値の調整により意味のないイベントの発生を抑制できる。
【0078】
図6は、一実施形態に係るクラスタの変更を示す図である。
図6を参照すると、クラスタ610~630が図示されている。
【0079】
上述したように、人工ニューロンNは、自身が属するクラスタの変更によりイベントEの発生を決定する。より具体的に、人工ニューロンNは、人工ニューロンNの以前の活性化v_p、及び人工ニューロンNの入力シナプスによって受信される入力信号iに基づいて、人工ニューロンNの現在の活性化v_cを決定し、以前の活性化v_pが属する第1クラスタ及び現在の活性化v_cが属する第2クラスタに基づいてイベントEの発生の有無を決定する。人工ニューロンNは、第1クラスタと第2クラスタが異なる場合、イベントEの発生を決定する。人工ニューロンNは、イベントの発生により出力シナプスにイベントEに対応する出力信号oを送信する。
【0080】
クラスタ610~630は、それぞれ異なる範囲を有する。例えば、クラスタ620は0以上1未満の範囲を有し、クラスタ610は1以上10未満の範囲を有し、クラスタ630は10以上の範囲を有する。クラスタ620は第1レベルに当該し、クラスタ610は第2レベルに当該し、クラスタ630は第3レベルに当該する。この場合、人工ニューロンは自身の現在の活性化v_cによりクラスタ610~630のいずれか1つに属する。例えば、0以上1未満の活性化を有する人工ニューロンはクラスタ620に属する。クラスタの数及びクラスタの範囲はニューラルネットワークに属する人工ニューロンの活性化の範囲により決定され得る。より具体的に、学習が完了した人工ニューロンの典型的な活性化の分布が0、1及び10を境界に分離している場合、クラスタは上述した0、1及び10を境界にする範囲を有する。
【0081】
出力信号oは、クラスタの変化方向及びクラスタの変化量のうち少なくとも1つを示す少なくとも1つの変更ビットを含む。例えば、人工ニューロンNが属するクラスタが上位クラスタに変更された場合、人工ニューロンは+1を指示する変更ビットを送信し得る。上述した例示によって、クラスタ610はクラスタ620の上位クラスタに当該し、クラスタ630はクラスタ610の上位クラスタに該当する。また、クラスタ630は、クラスタ620の2つのレベルの上位クラスタに該当する。クラスタが2つのレベル以上変わったものを示すため、変更ビットは2ビット以上であり得る。例えば、人工ニューロンNが属するクラスタが2つのレベルの下位クラスタに変更された場合、人工ニューロンは-2を指示する変更ビットを送信する。
【0082】
より具体的に、人工ニューロンNの以前の活性化v_pが1.5であり、人工ニューロンNの現在の活性化v_cが10.5である場合、人工ニューロンNはクラスタ610からクラスタ630に移動することになる。この場合、人工ニューロンNは出力信号oとして+1を指示する変更ビットを送信する。また、人工ニューロンNの以前の活性化v_pが1.5であり、人工ニューロンNの現在の活性化v_cが0.5である場合、人工ニューロンNは、クラスタ610からクラスタ620に移動することになる。この場合、人工ニューロンNは、出力信号oとして-1を指示する変更ビットを送信する。また、人工ニューロンNの以前の活性化v_pが0.5であり、人工ニューロンNの現在の活性化v_cが10.5である場合、人工ニューロンNは、クラスタ620からクラスタ630に移動することになる。この場合、人工ニューロンNは、出力信号oとして+2を指示する変更ビットを送信する。
【0083】
上述したように、一実施形態によれば、DCNはANNあるいはSNNに適用される。以下では
図7~
図9を参照してDCNがANNの一種であるRNN(recurrent neural network)に適用される実施形態について説明する。以下の説明はDCNの適用範囲を制限するものではなく、DCNは以下の説明とは異なってRNN以外のANN、あるいはSNNに適用され得る。
【0084】
下記の実施形態は、デルタネットワークと呼ばれるRNNアーキテクチャーを提案する。デルタネットワークは、上述したDCNに対応する。デルタネットワークでそれぞれのニューロンは、自身の活性化の変化が閾値を超過する時のみに値を出力する。
【0085】
ビッグデータセットを処理する能力、例えば、GPUのようなコンピュータリソース及びトレーニングアルゴリズムの大きい向上のような因子の結合によって、一時的なシーケンスの処理にRNNを用いてもよい。例えば、RNNを用いて自然語処理、音声認識、及び構造化された予測のための注意(attention)に基づくモデルのようなアプリケーションが実現される。RNNはメモリを装着し、LSTM(long short term memory)のようなゲーティングユニット(gating unit)を用いる。ゲート化されたリカレントユニット(gated recurrent unit:GRU)はRNNのトレーニング過程を大きく向上させることができる。しかし、RNNは、ニューロン活性化をアップデートするためにマトリックス演算に大きく依存することから、RNNを駆動するためには多くのリソースが要求される。
【0086】
実施形態によれば、RNNを駆動するためのリソースを減少させるために、入力ストリームの特性及び入力ストリームに関する神経表現(neural representation)の特性を用いることができる。ここで、神経表現は前述したニューロンの活性化に対応する。
【0087】
一般的に、ニューラルネットワークへの入力は時間的自己相関(temporal autocorrelation)が高いレベルを有する。入力が時間に応じて徐々に変化する場合、時間的自己相関が高いものと見なす。例えば、フレーム間の変化が少ないビデオ映像の場合、時間的自己相関が高く現れる。ニューラルネットワークが、時間的自己相関が高いレベルの入力を処理する場合、ニューラルネットワークの状態は徐々に変わる活性化を生成し得る。
【0088】
図7は、標準ビデオデータセットを処理する標準畳み込みネットワーク(standard convolutional network)の特性を示す図である。
図7を参照すると、標準ビデオデータセットを処理する標準畳み込みネットワークの状態は徐々に変わる活性化を生成する。
図7において、時間(又は、フレーム)の流れによる活性化は極めてリダンダント(highly redundant)である。
【0089】
例えば、時間の流れに応じて活性化は変わらない。
図7は、場面認識のためのクリップで上位1000個のフレームが標準畳み込みネットワークに印加されるとき、トップレベル特徴ベクトルレイヤの任意の上位50個の特徴が時間の流れに応じてプロットされた結果である。
図7において、でピークは時間の経過に応じて相対的に一定に保持される傾向があり、時間に応じてランダムの活性化が現れることよりも、活性化に一貫性を表す。
【0090】
図8は、時間の経過によるRNN活性化の安定性を示す図である。
図8には数字認識データセットが適用されたRNNの活性化特性が示されている。より具体的に、
図8に示す上の図面は、音声数字に対するMFCC(mel-frequency cepstral coefficients)特徴を示す。
図8に示す下の図面はMFCC特徴に対する応答として、神経ネットワークの活性化を示す。
【0091】
図8を参照すると、神経入力を処理するリカレントニューラルネットワークの算出でも徐々に変わる活性化特徴を示す。例えば、入力において長くて安定の表現が存在すれば、時間の経過による活性化に変化が徐々に発生し、時間の流れに応じて活性化に高いレベルの安定性を表す。
【0092】
<デルタネットワークの概念>
デルタネットワークの目的は、加重値マトリックス(weight matrix)及び状態ベクトル(state vector)のように密集したマトリックス-ベクトルの積を完全和(full addition)と結合した希少マトリックス-ベクトルの積に変換したものである。この変換によって、メモリアクセス及び演算が減少し得る。この変換を示すためにマトリックス-ベクトルの積が数式(4)のように定義される。
【0093】
【数4】
数式(4)において、rはリカレントニューラルネットワークのパラメータのうちリセットゲートの値を示す。以下ではデルタネットワークの概念についてrを参照して説明するが、以下の説明は、リカレントニューラルネットワークの他のパラメータにも適用され得る。数式(4)によりサイズn×nのマトリックスW及びサイズnのベクトルxが算出されるため、n2回の演算が使用され、n2+n回の読み出し動作が実行され、n回の書き込み動作が実行される。長い入力ベクトルシーケンスxtのために複数のマトリックス-ベクトルの積が考慮される。ここで、tは1、2、...、nである。複数のマトリックス-ベクトルの積は数式(5)により回帰的に算出される。
【0094】
【数5】
数式(5)において、Δ=xt-xt-1であり、rt-1は以前の算出から取得された結果である。したがって、tにおいて数式(5)の算出コストは0である。また、x0=0であり、r0=0である。ここで、Δは入力デルタベクトルのように称される。もし、Δが隠れ状態ベクトル(hidden state vector)に関するものであれば、Δは隠れ状態デルタベクトル(hidden state delta vector)のように称される。Δが希少ベクトルであれば、数式(5)のような形式は算出コストの面で有利である。より詳細に、rtはΔのコストの和(サイズnのベクトルのためにn個の演算)、格納された以前の結果rt-1を足すコスト(n個の演算)、及び希少マトリックス積WΔのコスト(n×n加重値マトリックス及び占有率sの希少ベクトルのためのn2個の演算)に算出される。同様に、rtを算出するためのメモリコストは、マトリックスWのためのn×s個の加重値を引き出す(fetch)こと、Δのための2n個の値、rt-1のためのn個の値、及び結果を示すn個の値を格納することに基づいて決定される。
【0095】
xに小さい変化がある場合であっても算出コストが節約されるという点について明確にするため、閾値の使い方について説明する。実施形態に係る算出コストは数式(6)のように示すことができる。
【0096】
【数6】
また、メモリコストは数式(7)のように示すことができる。
【0097】
【数7】
占有率が10%であれば、数式(7)によってCdense/Csparce≒n2/0.1n2≒10xである。したがって、演算速度が10倍増加する。
【0098】
Δ=xt-xt-1によって算出される0の数により速度増加が与えられる。実際に、速度増加はデータストリームによって決定される。例えば、速度増加はxt及びxt-1間にどれほどの多い値が同一に留まるかによって決定される。RNNの入力、中間活性化値、及び出力を示すベクトルxがタイムステップごとに徐々に変わる場合、入力値xt及びxt-1は極めてリダンダントになり、低い占有率s及びこれに対応する増加した速度増加が行われ得る。
【0099】
<デルタネットワークGRUs>
GRUにおいて、デルタネットワーク演算に代替されるマトリックス-ベクトルの積演算が数回発生してもよい。以下ではデルタネットワークがGRUに適用される場合をRNNに関する実施形態として説明するが、デルタネットワークはLSTMのような他の方式のRNNにも適用され得る。数式(8)はGRUのパラメータを示す。具体的に、数式(8)でrはリセットゲート値を示し、zはアップデートゲート値を示し、cは出力隠れ状態ベクトルを示し、hはアップデートされた隠れ状態ベクトルを示す。また、数式(8)において、太く表示された部分はマトリックス-ベクトルの積演算を示す。数式(8)でW及びxは任意に前置される。
【0100】
【数8】
数式(8)において、Wxr、Wxu、Wxcはそれぞれ入力ベクトルxのための加重値を示し、Whr、Whu、Whcはそれぞれ隠れ状態ベクトルhのための加重値を示す。以下で、Wxr、Wxu、WxcはWxとして代表され、Whr、Whu、WhcはWhとして代表される。tはタイムスタンプを示す。数式(8)において、太く表示された部分は数式(5)で定義されたデルタアップデートに代替されてもよく、これは数式(9)のように示すことができる。
【0101】
【数9】
数式(9)によれば、t-1における入力ベクトルxt-1及びtにおける入力ベクトルxt間の差に基づいて、tにおける入力デルタベクトルΔxが取得され、t-2における隠れ状態ベクトルht-2及びt-1における隠れ状態ベクトルht-2間の差に基づいて、t-1における隠れ状態デルタベクトルΔhが取得される。また、tにおける入力デルタベクトルΔx及び入力ベクトルxのための加重値Wx間の積、及びt-1における隠れ状態デルタベクトルΔh及び隠れ状態ベクトルhのための加重値Wh間の積に基づいて、パラメータr、u及びcが決定される。決定されたパラメータr、u及びcに基づいてtにおける隠れ状態ベクトルhtが決定される。
【0102】
数式(9)において、zxr、zxu、zxc、zhr、zhu、zhcは入力又は隠れ状態のための以前の算出の格納された結果として回帰的に定義される。例えば、zxrは数式(10)のように示すことができる。
【0103】
【数10】
数式(10)による演算はzxu、zxc、zhr、zhu、zhcに類似に適用され得る。x0での初期条件はz0:=0である。また、上述した数式に示すように、格納された完全-ランク(full-rank)以前-活性化(pre-activation)状態及びバイアスを含む、複数の追加的なタームが1つの値に併合され得る。併合された1つの値は、ゲートタイプごとに単なる1つあるいは2つの格納されたベクトル値に示される。例えば、格納されたベクトル値は数式(11)のように示すことができる。
【0104】
【数11】
最終的に、上述した初期状態の条件により、格納された値Mは補正されたバイアスに初期化される。例えば、Mr、0=br、Mu、0=bu、Mxc、0=bc、andMhr、0=0であり、これによってデルタネットワークGRUのために数式(12)が定義される。
【0105】
【数12】
<デルタネットワークでの近似算出>
上述した数式は、ネットワークで最初の算出としての正確に同じ答を与えるために設計される。例えば、t-1における入力ベクトル及びtにおける入力ベクトル間の差が予め決定された閾値よりも大きい場合、t-1における入力ベクトル及びtにおける入力ベクトル間の差が入力デルタベクトルに決定され、t-1における入力ベクトル及びtにおける入力ベクトル間の差が予め決定された閾値よりも小さい場合、ゼロベクトルが入力デルタベクトルに決定される。隠れ状態デルタベクトルも同じ方式で決定される。
【0106】
上述した数式によって応用的なアクセスが可能である。例えば、活性化の変化が0である場合、ベクトル-積演算が省略される代わりに、活性化の変化が任意の閾値Θよりも小さい場合にベクトル-積演算が省略される。ここで、活性化の変化は前述したデルタベクトルに対応する。これは正確に同じ結果を生成することはないものの、近似的に正確な結果を生成することができる。
【0107】
図9は、デルタネットワークを介して取得された算出結果を示す。
図9において、0ではない値は黒色に表示される。デルタベクトルの加重値行列及び希少性によって、希少性の効果を把握することができる。
図9に示す実施形態において、デルタベクトルが約20%の占有率を有すれば、加重値行列の約20%だけ引き出される。加重値行列が20%の占有率を有することをさらに考慮すれば、本来の加重値行列の4%だけ実際の算出に使用されることが明らかになる。
【0108】
0ではない閾値が用いられる場合、様々なタイムステップの間にエラーが蓄積される。例えば、入力値xtがタイムステップごとの間にほとんどΘだけ増加する場合、活性化の重大な変化が蓄積されるにも関わらず、変化が発生しないことがある。したがって、以前のタイムステップのメモリは、単に最近タイプステップからの差を格納することではなく、閾値を上回る変化を引き起こす最近値を格納するよう設定される。このような動作は数式(13)のように定義される。
【0109】
【数13】
数式(13)において、x^i及びh^iは参照ベクトルを示す。例えば、t-1における入力デルタベクトルΔx、t-1が予め決定された閾値Θよりも大きい場合、t-1における入力ベクトルxi、t-1がt-1における参照ベクトルx^i,t-1に決定される。t-1における入力デルタベクトルΔx、t-1が予め決定された閾値Θよりも小さい場合、t-2における参照ベクトルx^i,t-2がt-1における参照ベクトルx^i,t-1に決定される。
【0110】
言い換えれば、入力デルタベクトルΔxi,tを算出するとき、入力xi,tの現在の値及びデルタベクトルx^i,t-1の最近値の間の差を用いることができる。ここで、iは時間tでベクトルの成分を示し、x^i,t-1は0ではない値を有する。また、デルタ変化が所定の閾値Θ未満であれば、デルタ変化は0に設定され、十分に大きい変化が0ではないアップデートを生成するとき矯正される小さい近似誤差を生成する。同様に、数式(13)によって隠れ状態デルタベクトルΔhi、tを求めることができる。
【0111】
以下、デルタネットワークモデルを算出するトレーニング方法及び最適化方式を説明する。トレーニング過程に制約条件を追加すれば、強力で加速化されるデルタネットワークが算出される。制約条件については後述する。
【0112】
<トレーニング方法>
a)四捨五入(rounding)ネットワークの活性化:上述した閾値デルタネットワークの算出は、部分的に算出された状態の四捨五入に類似の機能を行う。Δタームは小さい差として0に設定されるが、大きい差でネットワークはアップデートされてもよい。トレーニング過程で四捨五入を行う場合に発生し得る小さい四捨五入エラー(small rounding error)に対し、ネットワークを強化する様々な方法が考えられる。より正確性を高めるために、活性化四捨五入を行うこともある。この場合、ネットワークが確実に訓練され得るため、このような小さい四捨五入エラーに堅固である。また、低い精密度算出は電力消費をより減少させ得る。
【0113】
言い換えれば、m個の整数ビット及びf個の分数ビットを有する符号がある固定小数点形式Qm.fの低解像度パラメータθLは決定性及び傾き-保存型ラウンディング(gradient-preserving rounding)を使用して高解像度パラメータθから生成される。低解像度パラメータθLは数式(14)のように示すことができる。
【0114】
【数14】
数式(14)において、θLは[-2m+f-1、2m+f-1]の範囲でクリッピングされた(clipped)2f・θと数式(15)のような四捨五入関数によって求められる。
【0115】
【数15】
数式(15)において、∇は傾き演算子を示す。フォワードパスで、低解像度パラメータθLはより低い精密度の影響を考慮する出力を生成するため用いられ、小さい傾きのアップデートは高解像度パラメータθで時間によって累積される。訓練が終了すれば、θは捨てられてθLが用いられる。シミュレーション結果のパラメータが活性化される。
【0116】
b)ネットワーク活性化にガウスノイズを追加:一応閾値が導入されれば、ネットワークは小さい変化の非伝番(non-propagation)に堅固すべきであり、大きい変化は重く考慮しなければならない。小さい変化に対して堅固性を提供する他の方法は、閾値デルタ活性化を有する全ての位置にガウスノイズを追加することにある。ガウスノイズは数式(16)のように追加される。
【0117】
【数16】
数式(16)において、η~N(μ、σ)はそれぞれのη∈{ηxr、ηhr、ηxu、ηhu、ηxc、ηhc}及び各ベクトルの各構成要素に対して平均μと分散σを有するガウス分布からサンプルηのベクトルを決定することを意味する。典型的に、値μは0に設定されて期待値がバイアスされないようにする。例えば、E[xt+ηxr]=E[xt]である。分散σはアップデートされないことによる一般的な四捨五入エラーを評価するよう設定される。
【0118】
<デルタネットワークモデルでの直接算出>
ガウスノイズを追加する作業は、閾値デルタネットワークで行う切断作業とは依然として同一ではない。これを補完するために、モデルをデルタネットワークで直接にトレーニングすることができる。テストモデルで直接トレーニングすることで、ネットワークは、閾値デルタネットワークが一般的に作るエラータイプに対して堅固になる。
【0119】
<希薄性コストに発生する活性化の変化>
ネットワークがデルタネットワークモデルを使用して訓練されることによって、コストはデルタ条件と関わり、かつ全体のコストに追加される。一括処理(batch)でΔhのためのL1標準(norm)は平均絶対値変化として算出され、L1標準は加重因子βによって調整される。希少コストLは、損失関数に加えて含まれてもよい。数式(17)は希少コストLを示す。
【0120】
【数17】
ここで、L1標準はΔhの希少値を決定するために用いられることから、少ないデルタアップデートが求められる。実施形態によれば、訓練中にΔが最適化されないため、ΔxはL1のターゲットではない。したがって、関係式にΔxが含まれないことがある。
【0121】
<最適化方法>
重さ希薄性(weight sparsity)の影響:トレーニング後に深層ネットワークの加重値行列で希薄性の量は算出コストの節減及び速度向上に影響を及す。トレーニングされた低い精密ネットワークで加重値行列の希薄性は極めて大きいことがある。0はデルタベクトルと倍数的に(multiplicatively)作用して必要な積-累積(multiply-accumulate)をはるかに少なく生成する。したがって、アップデート回数に対する加重値希薄性の影響を考慮することで、追加的な正確度が損失されることなく速度の向上を取得できる。
【0122】
図10は、一実施形態に係る電子装置を示すブロック図である。
図10を参照すると、電子装置1000はプロセッサ1010及びメモリ1020を含む。先に説明したニューラルネットワークは電子装置1000として実現される。
【0123】
プロセッサ1010は、
図1~
図9によって上述した少なくとも1つの装置を含んでもよく、
図1~
図9によって上述した少なくとも1つの方法を行うことができる。例えば、プロセッサ1010は上述した人工ニューロンの動作を処理する。より具体的に、プロセッサ1010は、ニューラルネットワークに含まれたそれぞれのニューロンに関し、以前の活性化及び入力シナプスによって受信される入力信号に基づいて現在の活性化を決定するための動作、現在の活性化及び以前に発生したイベントに対応する活性化に基づいて活性化の変化量を決定するための動作、活性化の変化量及び閾値に基づいて新しいイベントの発生の有無を決定するための動作、新しいイベントの発生により出力シナプスに新しいイベントに対応する出力信号を送信するための動作を処理する。
【0124】
メモリ1020は、コンピュータで読み出し可能な命令語を格納する。メモリ1020に格納された命令語がプロセッサ1010で実行されれば、プロセッサ1010は、上述した人工ニューロンの動作を処理する。また、メモリ1020は、上述したニューラルネットワークに関するデータを格納する。例えば、メモリ1020は、人工ニューロンの活性化及びシナプスの加重値などを格納する。メモリ1020は、揮発性メモリ又は不揮発性メモリであり得る。
【0125】
プロセッサ1010はプログラムを実行し、電子装置1020を制御する。電子装置1020は、入出力装置(図示せず)によって外部装置(例えば、パーソナルコンピュータ又はネットワーク)に接続されてデータを交換する。電子装置1020は、携帯電話機、スマートフォン、PDA、タブレットコンピュータ、ラップトップコンピュータなどのモバイル装置、パーソナルコンピュータ、タブレットコンピュータ、ネットブックなどのコンピューティング装置、又は、テレビ、スマートテレビ、ゲート制御のためのセキュリティー装置などの電子製品などの様々な電子装置を含む。その他に、電子装置1000について上述した内容が適用され、より詳細な説明は省略する。
【0126】
図11は、他の実施形態に係る電子装置を示す図である。
図11を参照すると、電子装置1100は、人工ニューロンに対応するプロセッシングユニットを含む。
【0127】
プロセッシングユニットは、上述したニューラルネットワークの人工ニューロンに一対一に対応する。プロセッシングユニットそれぞれは、自身と対応する人工ニューロンのための動作を処理し、自身と対応する人工ニューロンのためのデータを格納する。プロセッシングユニットは、互いにリンクによって接続される。リンクは、上述したシナプスに対応して特定のビット幅を有するように制限される。プロセッシングユニットのそれぞれは、コンピュータで読み出し可能な命令語を格納するメモリ及びプロセッサを含む。例えば、プロセッシングユニットそれぞれに含まれたプロセッサはA、LU(arithmetic logic unit)で実現できる。プロセッシングユニットそれぞれは、完全接続ネットワークのように他のレイヤの全てのプロセッシングユニットに接続され、畳み込みネットワークのように制限された空間の接続の可能性を有する。
【0128】
メモリに格納された命令語がプロセッサで実行されれば、プロセッサは以前の活性化及び入力リンクによって受信される入力信号に基づいて現在の活性化を決定し、現在の活性化及び以前に発生したイベントに対応する活性化に基づいて活性化の変化量を決定し、活性化の変化量及び閾値に基づいて新しいイベントの発生の有無を決定し、新しいイベントの発生により出力リンクで新しいイベントに対応する出力信号を送信する。メモリは、自身と対応する人工ニューロンの現在の活性化を格納する。その他に、電子装置1100に関しては上述した内容が適用でき、より詳細な説明は省略する。
【0129】
図12は、一実施形態に係る人工ニューロンの動作方法を示した動作フローチャートである。
図12を参照すると、ステップS1210において、人工ニューロンは、人工ニューロンの以前の活性化及び人工ニューロンの入力シナプスによって受信される入力信号に基づいて人工ニューロンの現在の活性化を決定する。ステップS1220において、人工ニューロンは、現在の活性化及び人工ニューロンによって以前に発生したイベントに対応する活性化に基づいて活性化の変化量を決定する。ステップS1230において、人工ニューロンは、活性化の変化量及び閾値に基づいて、新しいイベントの発生の有無を決定する。ステップS1240において、人工ニューロンは、新しいイベントの発生により出力シナプスに新しいイベントに対応する出力信号を送信する。その他に、人工ニューロンの動作方法については上述した内容が適用され、より詳細な説明は省略する。
【0130】
以上で説明した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現される。例えば、実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが分かる。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0131】
ソフトウェアは、コンピュータプログラム、コード、命令、又はこれらのうちの1つ以上の組合せを含み、希望通りに動作するように処理装置を構成し、独立的又は結合的に処理装置に命令する。ソフトウェア及び/又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するためのあらゆる類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、或いは送信される信号波を介して永久的又は一時的に具現化される。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散され、分散された方法で格納されるか又は実行される。ソフトウェア及びデータは1つ以上のコンピュータ読み取り可能な記録媒体に格納される。
【0132】
本実施形態による方法は、多様なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明の動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0133】
上述したように実施形態をたとえ限定された図面によって説明したが、当技の術分野で通常の知識を有する者であれば、前記に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順序で実行されたり、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組合わせられたり、他の構成要素又は均等物によって置き換えたり置換されても適切な結果を達成することができる。
【0134】
<<付記>>
(付記1)
ニューラルネットワークを用いて実行される方法であって、
人工ニューロンの以前の活性化及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、
前記決定された現在の活性化及び前記人工ニューロンによって以前に発生したイベントに対応する第2活性化に基づいて、第1活性化の変化量を決定するステップと、
前記決定された第1活性化の変化量及び第1閾値に基づいて、新しいイベントの発生の有無を決定するステップと、
前記新しいイベントの発生に応答して出力シナプスに前記新しいイベントに対応する出力信号を送信するステップと、
を含む方法。
【0135】
(付記2)
前記新しいイベントは、前記決定された第1活性化の変化量が前記第1閾値を上回る又は下回ることにより発生する、付記1に記載の方法。
【0136】
(付記3)
前記出力信号は、前記決定された第1活性化の変化量と前記第1閾値の大小関係を示す符号ビットを含む、付記1又は2に記載の方法。
【0137】
(付記4)
前記入力シナプスによって接続された以前レイヤに対応する第2閾値を受信するステップをさらに含み、
前記現在の活性化を決定するステップは、前記以前の活性化、前記入力信号、及び前記第2閾値に基づいて前記現在の活性化を決定するステップを含む、付記1ないし3のうち何れか一項に記載の方法。
【0138】
(付記5)
前記出力信号は、予め決定されたビットの精密度で近似化された前記決定された第1活性化の変化量を含む、付記1ないし4のうち何れか一項に記載の方法。
【0139】
(付記6)
前記ビットの精密度は、要求正確度及び可用リソースのうち少なくとも1つにより調整される、付記5に記載の方法。
【0140】
(付記7)
前記第1閾値は、単位時間の間に発生するイベントの数に応じて調整される、付記1ないし6のうち何れか一項に記載の方法。
【0141】
(付記8)
前記第1閾値は、前記単位時間の間に発生する前記イベントの数が予め決定された第3閾値を超過することにより増加し、前記単位時間の間に発生する前記イベントの数が予め決定された第4閾値未満であることにより減少し、前記第3閾値は前記第4閾値よりも大きい、付記7に記載の方法。
【0142】
(付記9)
前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第1閾値をアップデートするステップをさらに含む、付記1ないし8のうち何れか一項に記載の方法。
【0143】
(付記10)
前記第1閾値は、固定間隔、ログ間隔、又は、桁数に応じて調整される、付記9に記載の方法。
【0144】
(付記11)
前記決定された現在の活性化を格納するステップをさらに含む、付記1ないし10のうち何れか一項に記載の方法。
【0145】
(付記12)
予め決定された動作モードを指示する制御信号を受信するステップと、
前記入力シナプスによって前記動作モードに対応してフレーム化された入力信号を受信するステップと、
前記フレーム化された入力信号に基づいて前記現在の活性化を決定するステップと、
をさらに含む、付記1ないし11のうち何れか一項に記載の方法。
【0146】
(付記13)
前記ニューラルネットワークは、人工ニューラルネットワーク、完全接続ネットワーク、深層畳み込みネットワーク、リカレントニューラルネットワーク、及びスパイキングニューラルネットワークのいずれか1つである、付記1ないし12のうち何れか一項に記載の方法。
【0147】
(付記14)
ニューラルネットワークを用いて実行される方法において、
人工ニューロンの以前の活性化、及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、
前記以前の活性化が属する第1クラスタ及び前記現在の活性化が属する第2クラスタに基づいて、イベントの発生の有無を決定するステップと、
前記イベントの発生に応答して、出力シナプスにより、前記イベントに対応する出力信号を送信するステップと、
を含む、方法。
【0148】
(付記15)
前記イベントは、前記第1クラスタと前記第2クラスタとが異なる場合に発生する、付記14に記載の方法。
【0149】
(付記16)
前記出力信号は、クラスタの変化方向及びクラスタの変化量のうち少なくとも1つを示す少なくとも1つの変更ビットを含む、付記14又は15に記載の方法。
【0150】
(付記17)
リカレントニューラルネットワークを用いて実行される方法において、
第1時間に対応する第1入力ベクトルと、前記第1時間よりも早い第2時間に対応する第2入力ベクトルとの間の差に基づいて、前記第1時間に対応する第1入力デルタベクトルを取得するステップと、
前記第2時間よりも早い第3時間に対応する第3隠れ状態ベクトルと前記第2時間に対応する第2隠れ状態ベクトルとの間の差に基づいて、前記第2時間に対応する隠れ状態デルタベクトルを取得するステップと、
前記取得された第1入力デルタベクトルに対応する第2加重値及び前記第1入力ベクトルに対応する第1加重値間の積、及び前記取得された隠れ状態デルタベクトルに対応する第4加重値及び前記第2隠れ状態ベクトルに対応する第3加重値間の積に基づいて、前記リカレントニューラルネットワークのパラメータを決定するステップと、
前記決定された前記リカレントニューラルネットワークのパラメータに基づいて、前記第1時間に対応する第1隠れ状態ベクトルを決定するステップと、
を含む方法。
【0151】
(付記18)
前記決定されたリカレントニューラルネットワークのパラメータは、リセットゲートの値、アップデートゲートの値、及び出力隠れ状態ベクトルの値のうち少なくとも1つを含む、付記17に記載の方法。
【0152】
(付記19)
前記第1入力デルタベクトルを取得するステップは、
前記第2入力ベクトルと前記第1入力ベクトルとの間の差が予め決定された閾値よりも大きい場合、前記第2入力ベクトルと前記第1入力ベクトルとの間の差を前記第1入力デルタベクトルとして決定するステップと、
前記第2入力ベクトルと前記第1入力ベクトルとの間の差が前記予め決定された閾値よりも小さい場合、ゼロベクトルを前記第1入力デルタベクトルとして決定するステップと、
を含む、付記17又は18に記載の方法。
【0153】
(付記20)
前記第1入力デルタベクトルを取得するステップは、
前記第2時間に対応する第2入力デルタベクトルに基づいて前記第2時間に対応する第2参照ベクトルを取得するステップと、
前記取得された第2参照ベクトルと前記第1入力ベクトルとの間の差に基づいて、前記第1入力デルタベクトルを取得するステップと、
を含む、付記17又は18に記載の方法。
【0154】
(付記21)
前記第2参照ベクトルを取得するステップは、
前記第2入力デルタベクトルが予め決定された閾値よりも大きい場合、前記第2入力デルタベクトルを前記第2参照ベクトルとして決定するステップと、
前記第2入力デルタベクトルが前記予め決定された閾値よりも小さい場合、前記第3時間に対応する第3参照ベクトルを前記第2参照ベクトルとして決定するステップと、
を含む、付記20に記載の方法。
【0155】
(付記22)
前記隠れ状態デルタベクトルを取得するステップは、
前記第2入力ベクトルと前記第1入力ベクトルとの間の差が予め決定された閾値よりも大きい場合、前記第1入力デルタベクトルを前記第2入力ベクトルと前記第1入力ベクトルとの間の差で決定するステップと、
前記第2入力ベクトルと前記第1入力ベクトルとの間の差が前記予め決定された閾値よりも小さい場合、前記第1入力デルタベクトルをゼロベクトルとして決定するステップと、
を含む、付記17ないし21のうち何れか一項に記載の方法。
【0156】
(付記23)
付記1ないし付記22のいずれか一項に記載の方法を電子装置のコンピュータに実行させるコンピュータプログラム。
【0157】
(付記24)
人工ニューロンに対応するプロセッシングユニットを含む電子装置であって、
前記プロセッシングユニットそれぞれは、コンピュータで読み込むことのできる命令語を格納するメモリ及びプロセッサを含み、
前記命令語が前記プロセッサで実行されることにより、前記プロセッサは、以前の活性化及び入力リンクによって受信される入力信号に基づいて現在の活性化を決定し、前記決定された現在の活性化及び以前に発生したイベントに対応する第2活性化に基づいて第1活性化の変化量を決定し、前記決定された第1活性化の変化量及び第1閾値に基づいて新しいイベントの発生の有無を決定し、前記新しいイベントの発生に応答して出力リンクで前記新しいイベントに対応する出力信号を送信する、電子装置。
【0158】
(付記25)
前記新しいイベントは、前記決定された第1活性化の変化量が前記第1閾値を上回る又は下回ることにより発生する、付記24に記載の電子装置。
【0159】
(付記26)
前記出力信号は、前記決定された第1活性化の変化量と前記第1閾値の大小関係を示す符号ビットを含む、付記24又は25に記載の電子装置。
【0160】
(付記27)
前記プロセッサは、前記入力リンクによって接続された以前レイヤに対応する第2閾値をさらに受信し、前記以前の活性化、前記入力信号、及び前記第2閾値に基づいて前記現在の活性化を決定する、付記24ないし26のうちの何れか一項に記載の電子装置。
【0161】
(付記28)
前記出力信号は、予め決定されたビットの精密度で近似化された前記決定された第1活性化の変化量を含む、付記24ないし27のうちの何れか一項に記載の電子装置。
【0162】
(付記29)
前記ビットの精密度は、要求正確度及び可用リソースのうち少なくとも1つにより調整される、付記28に記載の電子装置。
【0163】
(付記30)
前記第1閾値は、単位時間の間に発生するイベントの数に応じて調整される、付記24ないし29のうちの何れか一項に記載の電子装置。
【0164】
(付記31)
前記第1閾値は、前記単位時間の間に発生する前記イベントの数が予め決定された第3閾値を超過することにより増加し、前記単位時間の間に発生する前記イベントの数が予め決定された第4閾値未満であることにより減少し、前記第3閾値は前記第4閾値よりも大きい、付記30に記載の電子装置。
【0165】
(付記32)
前記プロセッサは、前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第1閾値をアップデートする、付記24ないし31のうち何れか一項に記載の電子装置。
【0166】
(付記33)
前記第1閾値は、固定間隔、ログ間隔、又は、桁数に応じて調整される、付記32に記載の電子装置。
【0167】
(付記34)
前記メモリは、前記決定された現在の活性化を格納する、付記24ないし33のうちの何れか一項に記載の電子装置。
【符号の説明】
【0168】
100 ニューラルネットワーク
105 人工ニューロン
110 入力レイヤ
120~140 中間レイヤ又は隠れレイヤ
150 出力レイヤ
【先行技術文献】
【非特許文献】
【0169】
【文献】Garen Arevian, et al., "Optimising the Hystereses of a Two Context Layer RNN for Text Classification", In: Proceedings of International Joint Conference on Neural Networks 2007, 2007.08.17, Pages 1-6, <DOI: 10.1109/IJCNN.2007.4371427>