(57)【要約】      （修正有）【課題】人工ニューロンの動作方法及びその方法を行う装置を提供する。【解決手段】人工ニューロンの以前の活性化及び人工ニューロンの入力シナプスによって受信される入力信号に基づいて、人工ニューロンの現在の活性化を決定しＳ１２１０、決定された現在の活性化及び人工ニューロンによって以前に発生したイベントに対応する第２活性化に基づいて、第１活性化の変化量を決定しＳ１２２０、決定した第１活性化の変化量及び第１閾値に基づいて、新しいイベントの発生の有無を決定しＳ１２３０、新しいイベントの発生に応答して出力シナプスに新しいイベントに対応する出力信号を送信するＳ１２４０。【選択図】図１２
2018010633.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを用いて実行される方法であって、
人工ニューロンの以前の活性化及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、
前記決定された現在の活性化及び前記人工ニューロンによって以前に発生したイベントに対応する第２活性化に基づいて、第１活性化の変化量を決定するステップと、
前記決定された第１活性化の変化量及び第１閾値に基づいて、新しいイベントの発生の有無を決定するステップと、
前記新しいイベントの発生に応答して出力シナプスに前記新しいイベントに対応する出力信号を送信するステップと、
を含む方法。
【請求項２】
前記新しいイベントは、前記決定された第１活性化の変化量が前記第１閾値を上回る又は下回ることにより発生する、請求項１に記載の方法。
【請求項３】
前記出力信号は、前記決定された第１活性化の変化量と前記第１閾値の大小関係を示す符号ビットを含む、請求項１又は２に記載の方法。
【請求項４】
前記入力シナプスによって接続された以前レイヤに対応する第２閾値を受信するステップをさらに含み、
前記現在の活性化を決定するステップは、前記以前の活性化、前記入力信号、及び前記第２閾値に基づいて前記現在の活性化を決定するステップを含む、請求項１ないし３のうち何れか一項に記載の方法。
【請求項５】
前記出力信号は、予め決定されたビットの精密度で近似化された前記決定された第１活性化の変化量を含む、請求項１ないし４のうち何れか一項に記載の方法。
【請求項６】
前記ビットの精密度は、要求正確度及び可用リソースのうち少なくとも１つにより調整される、請求項５に記載の方法。
【請求項７】
前記第１閾値は、単位時間の間に発生するイベントの数に応じて調整される、請求項１ないし６のうち何れか一項に記載の方法。
【請求項８】
前記第１閾値は、前記単位時間の間に発生する前記イベントの数が予め決定された第３閾値を超過することにより増加し、前記単位時間の間に発生する前記イベントの数が予め決定された第４閾値未満であることにより減少し、前記第３閾値は前記第４閾値よりも大きい、請求項７に記載の方法。
【請求項９】
前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第１閾値をアップデートするステップをさらに含む、請求項１ないし８のうち何れか一項に記載の方法。
【請求項１０】
前記第１閾値は、固定間隔、ログ間隔、又は、桁数に応じて調整される、請求項９に記載の方法。
【請求項１１】
前記決定された現在の活性化を格納するステップをさらに含む、請求項１ないし１０のうち何れか一項に記載の方法。
【請求項１２】
予め決定された動作モードを指示する制御信号を受信するステップと、
前記入力シナプスによって前記動作モードに対応してフレーム化された入力信号を受信するステップと、
前記フレーム化された入力信号に基づいて前記現在の活性化を決定するステップと、
をさらに含む、請求項１ないし１１のうち何れか一項に記載の方法。
【請求項１３】
前記ニューラルネットワークは、人工ニューラルネットワーク、完全接続ネットワーク、深層畳み込みネットワーク、リカレントニューラルネットワーク、及びスパイキングニューラルネットワークのいずれか１つである、請求項１ないし１２のうち何れか一項に記載の方法。
【請求項１４】
ニューラルネットワークを用いて実行される方法において、
人工ニューロンの以前の活性化、及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、
前記以前の活性化が属する第１クラスタ及び前記現在の活性化が属する第２クラスタに基づいて、イベントの発生の有無を決定するステップと、
前記イベントの発生に応答して、出力シナプスにより、前記イベントに対応する出力信号を送信するステップと、
を含む、方法。
【請求項１５】
前記イベントは、前記第１クラスタと前記第２クラスタとが異なる場合に発生する、請求項１４に記載の方法。
【請求項１６】
前記出力信号は、クラスタの変化方向及びクラスタの変化量のうち少なくとも１つを示す少なくとも１つの変更ビットを含む、請求項１４又は１５に記載の方法。
【請求項１７】
リカレントニューラルネットワークを用いて実行される方法において、
第１時間に対応する第１入力ベクトルと、前記第１時間よりも早い第２時間に対応する第２入力ベクトルとの間の差に基づいて、前記第１時間に対応する第１入力デルタベクトルを取得するステップと、
前記第２時間よりも早い第３時間に対応する第３隠れ状態ベクトルと前記第２時間に対応する第２隠れ状態ベクトルとの間の差に基づいて、前記第２時間に対応する隠れ状態デルタベクトルを取得するステップと、
前記取得された第１入力デルタベクトルに対応する第２加重値及び前記第１入力ベクトルに対応する第１加重値間の積、及び前記取得された隠れ状態デルタベクトルに対応する第４加重値及び前記第２隠れ状態ベクトルに対応する第３加重値間の積に基づいて、前記リカレントニューラルネットワークのパラメータを決定するステップと、
前記決定された前記リカレントニューラルネットワークのパラメータに基づいて、前記第１時間に対応する第１隠れ状態ベクトルを決定するステップと、
を含む方法。
【請求項１８】
前記決定されたリカレントニューラルネットワークのパラメータは、リセットゲートの値、アップデートゲートの値、及び出力隠れ状態ベクトルの値のうち少なくとも１つを含む、請求項１７に記載の方法。
【請求項１９】
前記第１入力デルタベクトルを取得するステップは、
前記第２入力ベクトルと前記第１入力ベクトルとの間の差が予め決定された閾値よりも大きい場合、前記第２入力ベクトルと前記第１入力ベクトルとの間の差を前記第１入力デルタベクトルとして決定するステップと、
前記第２入力ベクトルと前記第１入力ベクトルとの間の差が前記予め決定された閾値よりも小さい場合、ゼロベクトルを前記第１入力デルタベクトルとして決定するステップと、
を含む、請求項１７又は１８に記載の方法。
【請求項２０】
前記第１入力デルタベクトルを取得するステップは、
前記第２時間に対応する第２入力デルタベクトルに基づいて前記第２時間に対応する第２参照ベクトルを取得するステップと、
前記取得された第２参照ベクトルと前記第１入力ベクトルとの間の差に基づいて、前記第１入力デルタベクトルを取得するステップと、
を含む、請求項１７又は１８に記載の方法。
【請求項２１】
前記第２参照ベクトルを取得するステップは、
前記第２入力デルタベクトルが予め決定された閾値よりも大きい場合、前記第２入力デルタベクトルを前記第２参照ベクトルとして決定するステップと、
前記第２入力デルタベクトルが前記予め決定された閾値よりも小さい場合、前記第３時間に対応する第３参照ベクトルを前記第２参照ベクトルとして決定するステップと、
を含む、請求項２０に記載の方法。
【請求項２２】
前記隠れ状態デルタベクトルを取得するステップは、
前記第２入力ベクトルと前記第１入力ベクトルとの間の差が予め決定された閾値よりも大きい場合、前記第１入力デルタベクトルを前記第２入力ベクトルと前記第１入力ベクトルとの間の差で決定するステップと、
前記第２入力ベクトルと前記第１入力ベクトルとの間の差が前記予め決定された閾値よりも小さい場合、前記第１入力デルタベクトルをゼロベクトルとして決定するステップと、
を含む、請求項１７ないし２１のうち何れか一項に記載の方法。
【請求項２３】
請求項１ないし請求項２２のいずれか一項に記載の方法を電子装置のコンピュータに実行させるコンピュータプログラム。
【請求項２４】
人工ニューロンに対応するプロセッシングユニットを含む電子装置であって、
前記プロセッシングユニットそれぞれは、コンピュータで読み込むことのできる命令語を格納するメモリ及びプロセッサを含み、
前記命令語が前記プロセッサで実行されることにより、前記プロセッサは、以前の活性化及び入力リンクによって受信される入力信号に基づいて現在の活性化を決定し、前記決定された現在の活性化及び以前に発生したイベントに対応する第２活性化に基づいて第１活性化の変化量を決定し、前記決定された第１活性化の変化量及び第１閾値に基づいて新しいイベントの発生の有無を決定し、前記新しいイベントの発生に応答して出力リンクで前記新しいイベントに対応する出力信号を送信する、電子装置。
【請求項２５】
前記新しいイベントは、前記決定された第１活性化の変化量が前記第１閾値を上回る又は下回ることにより発生する、請求項２４に記載の電子装置。
【請求項２６】
前記出力信号は、前記決定された第１活性化の変化量と前記第１閾値の大小関係を示す符号ビットを含む、請求項２４又は２５に記載の電子装置。
【請求項２７】
前記プロセッサは、前記入力リンクによって接続された以前レイヤに対応する第２閾値をさらに受信し、前記以前の活性化、前記入力信号、及び前記第２閾値に基づいて前記現在の活性化を決定する、請求項２４ないし２６のうちの何れか一項に記載の電子装置。
【請求項２８】
前記出力信号は、予め決定されたビットの精密度で近似化された前記決定された第１活性化の変化量を含む、請求項２４ないし２７のうちの何れか一項に記載の電子装置。
【請求項２９】
前記ビットの精密度は、要求正確度及び可用リソースのうち少なくとも１つにより調整される、請求項２８に記載の電子装置。
【請求項３０】
前記第１閾値は、単位時間の間に発生するイベントの数に応じて調整される、請求項２４ないし２９のうちの何れか一項に記載の電子装置。
【請求項３１】
前記第１閾値は、前記単位時間の間に発生する前記イベントの数が予め決定された第３閾値を超過することにより増加し、前記単位時間の間に発生する前記イベントの数が予め決定された第４閾値未満であることにより減少し、前記第３閾値は前記第４閾値よりも大きい、請求項３０に記載の電子装置。
【請求項３２】
前記プロセッサは、前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第１閾値をアップデートする、請求項２４ないし３１のうち何れか一項に記載の電子装置。
【請求項３３】
前記第１閾値は、固定間隔、ログ間隔、又は、桁数に応じて調整される、請求項３２に記載の電子装置。
【請求項３４】
前記メモリは、前記決定された現在の活性化を格納する、請求項２４ないし３３のうちの何れか一項に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の実施形態は人工ニューロンの動作方法及び電子装置等に関する。
【背景技術】
【０００２】
複雑であるか又は解の知られていない問題を解決するために、人が有する認識方法をデバイスに適用させようとする研究が行われている。このような研究の１つとして、人の生物学的神経細胞をモデリングしたニューラルネットワーク（ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）がある。ニューラルネットワークは、人が有している学習能力を模倣したアルゴリズムを用いる。ニューラルネットワークは、学習を介して入力パターンと出力パターンとの間のマッピングを行う。また、ニューラルネットワークは、学習された結果に基づいて学習に利用されていない入力パターンに対して比較的に正しい出力を生成することのできる一般化能力を有し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、人工ニューロンの動作方法及びその方法を行う装置を提供することにある。
【課題を解決するための手段】
【０００４】
一側面によれば、ニューラルネットワークを用いて実行される方法は、人工ニューロンの以前の
活性化及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、
前記決定された現在の活性化及び前記人工ニューロンによって以前に発生したイベントに対応する第２活性化に基づいて、第１活性化の変化量を決定するステップと、前記決定された第１活性化の変化量及び第１閾値に基づいて、新しいイベントの発生の有無を決定するステップと、前記新しいイベントの発生に応答して出力シナプスに前記新しいイベントに対応する出力信号を送信するステップとを含む。
【０００５】
前記新しいイベントは、前記決定された第１活性化の変化量と前記第１閾値の交差により発生し得る。前記出力信号は、前記決定された第１活性化の変化量と前記第１閾値の交差方向を示す符号ビットを含み得る。前記方法は、前記入力シナプスによって接続された以前レイヤに対応する第２閾値を受信するステップをさらに含み、前記現在の活性化を決定するステップは、前記以前の活性化、前記入力信号、及び前記第２閾値に基づいて前記現在の活性化を決定するステップを含み得る。
【０００６】
前記出力信号は、予め決定されたビットの精密度で近似化された前記決定された第１活性化の変化量を含み得る。前記ビットの精密度は、要求正確度及び可用リソースのうち少なくとも１つにより調整され得る。前記第１閾値は、単位時間の間に発生するイベントの数に応じて調整され得る。前記第１閾値は、前記単位時間の間に発生する前記イベントの数が予め決定された第３閾値を超過することにより増加し、前記単位時間の間に発生する前記イベントの数が予め決定された第４閾値未満であることにより減少し、前記第３閾値は前記第４閾値よりも大きい。
【０００７】
前記方法は、前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第１閾値をアップデートするステップをさらに含み得る。前記第１閾値は、固定間隔、ログ間隔、又は、桁数に応じて調整され得る。前記方法は、前記決定された現在の活性化を格納するステップをさらに含み得る。
【０００８】
前記方法は、予め決定された動作モードを指示する制御信号を受信するステップと、前記入力シナプスによって前記動作モードに対応してフレーム化された入力信号を受信するステップと、前記フレーム化された入力信号に基づいて前記現在の活性化を決定するステップとをさらに含み得る。
【０００９】
前記前記ニューラルネットワークは、人工ニューラルネットワーク、完全接続ネットワーク、深層畳み込みネットワーク、リカレントニューラルネットワーク、及びスパイキングニューラルネットワークのいずれか１つであり得る。
【００１０】
他の一実施形態によると、ニューラルネットワークを用いて実行される方法は、人工ニューロンの以前の活性化、及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、前記以前の活性化が属する第１クラスタ及び前記現在の活性化が属する第２クラスタに基づいて、イベントの発生の有無を決定するステップと、前記イベントの発生に応答して出力シナプスに前記イベントに対応する出力信号を送信するステップとを含む。
【００１１】
前記イベントは、前記第１クラスタと前記第２クラスタとの差により発生し得る。前記出力信号は、クラスタの変化方向及びクラスタの変化量のうち少なくとも１つを示す少なくとも１つの変更ビットを含み得る。
【００１２】
一実施形態によると、リカレントニューラルネットワークを用いて実行される方法は、第１時間に対応する第１入力ベクトルと、前記第１時間よりも早い第２時間に対応する第２入力ベクトルとの間の差に基づいて、前記第１時間に対応する第１入力デルタベクトルを取得するステップと、前記第２時間よりも早い第３時間に対応する第３隠れ状態ベクトルと前記第２時間に対応する第２隠れ状態ベクトルとの間の差に基づいて、前記第２時間に対応する隠れ状態デルタベクトルを取得するステップと、前記取得された第１入力デルタベクトルに対応する第２加重値及び前記第１入力ベクトルに対応する第１加重値間の積、及び前記取得された隠れ状態デルタベクトルに対応する第４加重値及び前記第２隠れ状態ベクトルに対応する第３加重値間の積に基づいて、前記リカレントニューラルネットワークのパラメータを決定するステップと、前記決定された前記リカレントニューラルネットワークのパラメータに基づいて、前記第１時間に対応する第１隠れ状態ベクトルを決定するステップとを含む。
【００１３】
前記決定されたリカレントニューラルネットワークのパラメータは、リセットゲートの値、アップデートゲートの値、及び出力隠れ状態ベクトルの値のうち少なくとも１つを含み得る。
【００１４】
前記第１入力デルタベクトルを取得するステップは、前記第２入力ベクトルと前記第１入力ベクトルとの間の差が予め決定された閾値よりも大きい場合、前記第２入力ベクトルと前記第１入力ベクトルとの間の差を前記第１入力デルタベクトルとして決定するステップと、前記第２入力ベクトルと前記第１入力ベクトルとの間の差が前記予め決定された閾値よりも小さい場合、ゼロベクトルを前記第１入力デルタベクトルとして決定するステップとを含み得る。
【００１５】
前記第１入力デルタベクトルを取得するステップは、前記第２時間に対応する第２入力デルタベクトルに基づいて前記第２時間に対応する第２参照ベクトルを取得するステップと、前記取得された第２参照ベクトルと前記第１入力ベクトルとの間の差に基づいて、前記第１入力デルタベクトルを取得するステップとを含み得る。
【００１６】
一実施形態によると、電子装置は、人工ニューロンに対応するプロセッシングユニットを含み、前記プロセッシングユニットそれぞれは、コンピュータで読み込むことのできる命令語を格納するメモリ及びプロセッサを含み、前記命令語が前記プロセッサで実行されれば、前記プロセッサは、以前の活性化及び入力リンクによって受信される入力信号に基づいて現在の活性化を決定し、前記決定された現在の活性化及び以前に発生したイベントに対応する第２活性化に基づいて第１活性化の変化量を決定し、前記決定された第１活性化の変化量及び第１閾値に基づいて新しいイベントの発生の有無を決定し、前記新しいイベントの発生に応答して出力リンクで前記新しいイベントに対応する出力信号を送信する。
【００１７】
前記プロセッサは、前記入力リンクによって接続された以前レイヤに対応する第２閾値をさらに受信し、前記以前の活性化、前記入力信号、及び前記第２閾値に基づいて前記現在の活性化を決定し得る。前記プロセッサは、前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第１閾値をアップデートし得る。前記メモリは、前記決定された現在の活性化を格納し得る。
【発明の効果】
【００１８】
本発明によると、人工ニューロンの動作方法及びその方法を行う装置を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】一実施形態に係るニューラルネットワークを示す図である。
【図２】人工ニューロンの入力及び出力例示を示す図である。
【図３】一実施形態に係るイベント決定及び出力信号を示す図である。
【図４】他の実施形態に係るイベント決定及び出力信号を示す図である。
【図５】一実施形態に係る閾値の調整を示す図である。
【図６】一実施形態に係るクラスタの変更を示す図である。
【図７】標準ビデオデータセットを処理する標準畳み込みネットワークの特性を示す図である。
【図８】時間の経過によるＲＮＮ活性化の安定性を示す図である。
【図９】デルタネットワークを介して取得された算出結果を示す図である。
【図１０】一実施形態に係る電子装置を示すブロック図である。
【図１１】他の実施形態に係る電子装置を示す図である。
【図１２】一実施形態に係る人工ニューロンの動作方法を示した動作フローチャートである。
【発明を実施するための形態】
【００２０】
本明細書で開示されている本発明の概念による実施形態に対して特定の構造的又は機能的な説明は、単に本発明の概念による実施形態を説明するための目的として例示したものであり、本発明の概念による実施形態は様々な形態で実施され、本明細書に説明された実施形態に限定されることはない。
【００２１】
第１又は第２などの用語を複数の構成要素を説明するために用いることができるが、このような用語は１つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第１構成要素は第２構成要素と命名することができ、同様に第２構成要素は第１構成要素にも命名することができる。
【００２２】
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、１つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【００２３】
異なるように定義さがれない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【００２４】
以下、実施形態を添付する図面を参照しながら詳細に説明する。各図面に提示された同じ参照符号は同じ部材を示す。
【００２５】
図１は、一実施形態に係るニューラルネットワークを示す図である。図１を参照すると、ニューラルネットワーク１００は、人工ニューロンを含む集合（ｃｏｌｌｅｃｔｉｏｎｓ）１１０〜１５０を含む。
【００２６】
ニューラルネットワーク１００は、イベントに基づいて動作することで学習又は認識に必要される算出コストを減少させる。ニューラルネットワーク１００は、ディープラーニングに用いてもよい。ディープラーニングは、ビッグデータセットから映像又は音声認識のような問題を解決するための機械学習方式である。ディープラーニングの指導式（ｓｕｐｅｒｖｉｓｅｄ）又は非指導式（ｕｎｓｕｐｅｒｖｉｓｅｄ）学習によってマルチレイヤニューラルネットワークで特徴階層が抽出される。ニューラルネットワーク１００は、マルチレイヤニューラルネットワークの例示に当該する。マルチレイヤニューラルネットワークは、完全接続ネットワーク、深層畳み込みネットワーク、及びリカレントニューラルネットワークなどを含む。例えば、完全接続ネットワークは多くの語彙の連続的音声認識（ｌａｒｇｅ−ｖｏｃａｂｕｌａｒｙ  ｃｏｎｔｉｎｕｏｕｓ  ｓｐｅｅｃｈ  ｒｅｃｏｇｎｉｔｉｏｎ）、３Ｄオブジェクト認識、顔認識、及びマッチングや視覚的分類などに用いられる。
【００２７】
マルチレイヤニューラルネットワークの大きさと深度は一般的なニューラルネットワークに比べて極めて大きくて深い。ニューラルネットワークの大きさは、レイヤごとのニューロン数とレイヤ数の積として示し、ニューラルネットワークの深度はネットワークごとのレイヤ数に示すことができる。例えば、最近のビジョンアプリケーションに用いられるニューラルネットワークは、４１個のレイヤ、約１４３×１０６個の加重値、及び３１×１０６個のニューロンを含み、当該のニューラルネットワークのために１９．７×１０９個の演算が必要である。このような、マルチレイヤニューラルネットワークの学習には巨大なデータベース及び長い学習時間が必要とされる。
【００２８】
このような巨大なニューラルネットワークを順次的な方法によって駆動させるためには、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）やＧＰＵ（ｇｒａｐｈｉｃ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）のようなプロセッサの算出に多くのコストが消耗される。最近の研究によれば、スーパーコンピュータで数日又は何週の間に学習された百万の人工ニューロンが使用された。順次的な方法を通した学習で全ての人工ニューロンは、新しい入力サンプルによって常にアップデートされることから、ネットワークの複雑性によりコンピューティングリソースの消耗が増加するしかない。以下で詳細に説明するが、実施形態は、入力サンプルに基づいてイベントベースで動作することでネットワークの出力を算出するために用いられるコンピューティングリソースを大きく減少させ得る。
【００２９】
ニューラルネットワーク１００でそれぞれの集合１１０〜１５０は人工ニューロンを含み、それぞれの集合１１０〜１５０に含まれた人工ニューロンは他の人工ニューロンと接続される。前記他の人工ニューロンは、前記人工ニューロンのような集合に位置してもよいし、あるいは他の集合に位置してもよい。集合１１０〜１５０はレイヤであってもよく、集合１１０〜１５０はレイヤ１１０〜１５０のように称される。この場合、ニューラルネットワーク１００は、人工ニューロンを含む連続的なレイヤ１１０〜１５０を含み得る。したがって、ニューラルネットワーク１００は、マルチレイヤニューラルネットワークに当該する。
【００３０】
図１は、説明の便宜のために５個のレイヤ１１０〜１５０を図示しているが、ニューラルネットワーク１００は様々な数のレイヤを含んでもよい。レイヤ１１０は入力レイヤを示し、レイヤ１２０〜１４０は中間レイヤ又は隠れレイヤを示し、レイヤ１５０は出力レイヤを示す。出力レイヤを除いたレイヤ１１０〜１４０に含まれた人工ニューロンは、次のレイヤの人工ニューロンに出力信号を送信するためのリンクによって接続される。リンクの数は、次のレイヤに含まれた人工ニューロン数に対応する。このようなリンクはシナプスに称される。
【００３１】
ニューラルネットワーク１００は、フィードフォワードネットワークである。ニューラルネットワーク１００に含まれたそれぞれの人工ニューロンは、ニューラルネットワーク１００が完全接続ネットワークを形成するよう、次のレイヤの全ての人工ニューロンに接続され、畳み込みネットワークのように制限された空間的接続の可能性を有する。
【００３２】
ニューラルネットワーク１００に含まれたそれぞれの人工ニューロンは、以前レイヤに含まれた人工ニューロンの入力ｘ＿ｉに関する１次結合を算出する。入力ｘ＿ｉはシナプスの加重値ｗ＿ｉと乗算される。加重された入力は、互いに足し算され、加重された入力の和（ｙ）を数式（１）のように示す。
【００３３】
【数１】
2018010633.tif 000003
加重された入力の和ｙは、活性関数（ａｃｔｉｖａｔｉｏｎ  ｆｕｎｃｔｉｏｎ；ｆ）に入力される。例えば、活性関数ｆはＲｅＬＵ（ｒｅｃｔｉｆｉｅｄ  ｌｉｎｅａｒ  ｕｎｉｔ）、シグモイド（ｓｉｇｍｏｉｄ）及び双曲線正接（ｈｙｐｅｒｂｏｌｉｃ  ｔａｎｇｅｎｔ）のいずれか１つである。活性関数ｆは人工ニューロンの出力ｏを数式（２）により算出する。
【００３４】
【数２】
2018010633.tif 000004
以下、人工ニューロン１０５を基準としてニューラルネットワーク１００の動作を説明するが、人工ニューロン１０５に関する説明は、残りの人工ニューロンにも適用され得る。以下で人工ニューロン１０５の以前レイヤはレイヤ１２０を称し、人工ニューロン１０５の次のレイヤはレイヤ１４０を称する。人工ニューロン１０５とレイヤ１２０に含まれた人工ニューロンの間のリンクは、人工ニューロン１０５の入力シナプスに称し、人工ニューロン１０５とレイヤ１４０に含まれた人工ニューロンの間のリンクは人工ニューロン１０５の出力シナプスに称する。
【００３５】
一側面によれば、人工ニューロン１０５の活性化（ａｃｔｉｖａｔｉｏｎ）が予め決定された量だけ変化するとき、人工ニューロン１０５は新しいイベントの発生を決定する。活性化は、人工ニューロン１０５の入力シナプスによって受信される入力と人工ニューロン１０５のために実現された活性関数に基づいて算出される。
【００３６】
一実施形態に係るニューラルネットワーク１００は、動的演算網（ｄｙｎａｍｉｃ  ｃｏｍｐｕｔａｔｉｏｎ  ｎｅｔ：ＤＣＮ）のように称される。以下で詳細に説明するが、ＤＣＮは人工ニューラルネットワーク（ａｒｔｉｆｉｃｉａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ：ＡＮＮ）あるいはスパイキングニューラルネットワーク（ｓｐｉｋｉｎｇ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ：ＳＮＮ）などの様々な類型のニューラルネットワーク１００に適用され得る。ニューラルネットワーク１００がスパイキングニューラルネットワークである場合、人工ニューロン１０５の活性化は人工ニューロン１０５の膜電位であり得る。
【００３７】
人工ニューロン１０５は、新しいイベントの発生により出力シナプスに新しいイベントに対応する出力信号を送信する。新しいイベントは、活性化の変化量と閾値の交差により発生する可能性がある。ここで、「活性化の変化量と閾値の交差」は、活性化の変化量が閾値の絶対値よりも大きい場合を示す。出力信号は、出力シナプスの加重値と乗算され、次のレイヤの人工ニューロンは人工ニューロン１０５の加重された出力信号を受信する。
【００３８】
一実施形態によれば、出力信号は、活性化の変化量と閾値の交差方向を示す符号ビットを含む。イベント発生時に単一符号ビットを出力する人工ニューロンを含むニューロンネットワークは、基本ＤＣＮ（ｂａｓｉｃ  ＤＣＮ）に称される。この場合、次のレイヤの人工ニューロンに人工ニューロン１０５の閾値が共に送信されてもよい。一実施形態によれば、複数の人工ニューロンは同一の閾値を共有する。例えば、同一のレイヤに属する人工ニューロンは互いに同一の閾値を有する。この場合、次のレイヤの人工ニューロンは、以前レイヤの人工ニューロンの間に共有される閾値を受信することで、閾値送信による負荷が減少される。次のレイヤの人工ニューロンは、受信した符号ビット及び閾値に基づいて自身の活性化を決定する。人工ニューロン１０５は、出力信号を次のレイヤに送信した後に自身の閾値又は自身が属するレイヤ内で共有される閾値をアップデートし得る。他の例として、レイヤ以外に予め決定されたグループごとに閾値が個別に設定されてもよいし、あるいは、個別に人工ニューロンごとに閾値が個別に設定されてもよい。更なる例として、ニューロンネットワーク全体が同じ閾値を用いてもよい。
【００３９】
他の実施形態によれば、出力信号は、予め決定されたビットの精密度で近似化された活性化の変化量を含む。イベント発生時に予め決定されたビットの精密度で近似化された活性化の変化量を出力するニューロンネットワークは、アナログ−送信ＤＣＮ（ａｎａｌｏｇ−ｔｒａｎｓｍｉｓｓｉｏｎ  ＤＣＮ）に称される。近似化された活性化の変化量は、連続的な値を表現する。この場合、出力信号の送信のためにより多くのビットが要求されるが、符号ビットで活性化の変化量を示すことに比べて、次のレイヤに含まれた人工ニューロンの活性化が相対的に正確に算出される。次のレイヤの人工ニューロンは、受信した活性化の変化量を用いて自身の活性化を決定することができるため、人工ニューロン１０５の閾値は送信されない。
【００４０】
人工ニューロン１０５は、出力信号を次のレイヤに送信した後自身の閾値をアップデートする。アナログ−送信ＤＣＮの場合、活性化の変化量が送信されるものであって、全ての人工ニューロンは自身の閾値を有することができ、それぞれの人工ニューロンは、制限されたバス容量のような可用リソース又は活性化に関する関数により自身の閾値を動的に変更できる。
【００４１】
また、基本ＤＣＮの場合、符号ビットに制限された出力信号では閾値より極めて大きい活性化の変化量が正確に伝達することが難い。一方、アナログ−送信ＤＣＮの人工ニューロン１０５は、複数のバイナリイベントを送信する代わりに、活性化の変化量を正確に示す単一イベントを送信可能にする。そのため、アナログ−送信ＤＣＮでは、スロープ過負荷（ｓｌｏｐｅ−ｏｖｅｒｌｏａｄ）の問題が解決される。
【００４２】
上述した実施形態において、人工ニューロンの閾値は新しいイベントの発生によりアップデートされる。閾値は、固定された間隔、ログ間隔、桁数などの様々な方式で調整される。例えば、活性化が閾値に比べて極めて大きく変化する場合、閾値も活性化の変化に適するように調整する必要がある。活性化が１４９から１５０に変わることは、０から１に変わることに比べてその意味が大きくないからである。この場合、閾値がログ間隔で調整されることで、すでに極めて大きい活性化を有する人工ニューロンが活性化の変化量が十分に大きい場合に限って、イベントを発生させることができる。閾値がログ間隔に調整されるニューロンネットワークは、ログ−間隔閾値ＤＣＮ（ｌｏｇ−ｓｔｅｐｐｅｄ  ｔｈｒｅｓｈｏｌｄ  ＤＣＮ）のように称される。ログ−間隔閾値ＤＣＮに含まれた人工ニューロンは、基本ＤＣＮ方式で動作してもよいし、あるいは、アナログ−送信ＤＣＮ方式で動作してもよい。
【００４３】
他の一側面によれば、人工ニューロン１０５は、自身の活性化によって予め決定されたｋ個のクラスタのいずれか１つに分類され、自身が属するクラスタの変更によりイベントの発生を決定する。ここで、ｋは自然数である。例えば、人工ニューロン１０５の以前の活性化によって人工ニューロン１０５が第１クラスタに属するが、人工ニューロン１０５の現在の活性化によって人工ニューロン１０５が第２クラスタに属する場合、人工ニューロン１０５はイベントの発生を決定し得る。
【００４４】
人工ニューロン１０５は、イベントの発生により出力信号を出力シナプスに送信する。この場合、出力信号は、クラスタの変化方向及びクラスタの変化量のうち少なくとも１つを示す少なくとも１つの変更ビットを含み得る。例えば、人工ニューロン１０５が属するクラスタが上位クラスタに変更された場合、人工ニューロン１０５は、正のビットである＋１を送信し、人工ニューロン１０５が属するクラスタが下位クラスタに変更された場合、人工ニューロン１０５は負のビットである−１を送信する。クラスタが２つのレベル以上に変わったことを示すために、変更ビットは２ビット以上である。イベント発生時にクラスタの変化方向及びクラスタの変化量のうち少なくとも１つを示す少なくとも１つの変更ビットを出力する人工ニューロンを含むニューロンネットワークは、Ｋ−レベルＤＣＮ（Ｋ−ｌｅｖｅｌ  ＤＣＮ）のように称される。
【００４５】
人工ニューロン１０５は、入力信号をデコーディングするデコーダ、出力信号を生成するエンコーダ、及び出力信号を送信する送信機を含む。エンコーダは、イベントの発生によりイベントに対応する出力信号を生成する。例えば、出力信号は、符号ビット、近似化された活性化の変化量又は変更ビットを含む。基本ＤＣＮの場合、送信機は符号ビットと共に閾値を送信する。デコーダ、エンコーダ、及び送信機は、少なくとも１つのプロセッサハードウェアモジュール又は少なくとも１つのソフトウェアモジュールに実現できる。
【００４６】
ニューラルネットワーク１００は、ニューラルネットワーク１００の設定値が固定された静的設定（ｓｔａｔｉｃ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）又はニューラルネットワーク１００の設定値が動的に変更される動的設定（ｄｙｎａｍｉｃ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）により動作する。設定値は、閾値及びビットの精密度を含む。動的設定における設定値は周期的に変更されたり、予め決定された条件が満足する場合に変更されたり、あるいはリクエストに応じて変更される。例えば、閾値は、単位時間の間に発生するイベントの数に応じて調整される。より具体的に、単位時間の間に発生するイベントの数が予め決定された第１閾値を超過するとき、イベントを減少させるために閾値が増加し得る。また、単位時間の間に発生するイベントの数が予め決定された第２閾値未満であるとき、イベントを増加させるために閾値が減少し得る。ここで、第１閾値は、第２閾値よりも大きくてもよい。
【００４７】
設定値の動的な変更は、実際の実現においてハードウェアリソースの最適化に役に立つ。例えば、設定値は、要求正確度及び可用リソースのうち少なくとも１つにより調整される。具体的に、検出に要求される正確度に比べて、リソースの消耗や遅延を減少させることに優先順位が付与された場合、優先順位に適するようにビットの精密度が減少又は増加してもよい。モバイル電子機器で、命令のシーケンスを開始する核心キーワードを検出するために要求正確度が低く設定されてもよく、このような核心キーワードの検出によって高い正確度で連続的な単語が検出され得る。核心キーワード以外の残りのキーワードについては、要求正確度が低く設定されてもよい。
【００４８】
ニューラルネットワーク１００の人工ニューロンは、自身の状態を格納することによって、ステートフル（ｓｔａｔｅｆｕｌ）動作を行う。より具体的に、人工ニューロンは活性化の変化量を算出するために、イベントが発生した時点の活性化を格納する。以下で詳細に説明するが、活性化の変化量は、現在の活性化及び以前に発生したイベントに対応する活性化に基づいて決定される。この場合、以前に発生したイベントに対応する活性化が格納されなければ、活性化の変化量を算出することができない。伝統的なフィードフォワードネットワークの人工ニューロンは、状態を格納せずにステートレス（ｓｔａｔｅｌｅｓｓ）動作を行い、全ての人工ニューロンの状態は新しい入力サンプルから再び設定される。ニューラルネットワーク１００はイベントの発生により部分的にアップデートされるため、全ての入力サンプルごとに全てのネットワークをアップデートすることに比べて、多くの量の演算が節減される。
【００４９】
具体的に、ニューラルネットワークを動作させるための算出に関するコストは、ニューラルネットワークのアーキテクチャー及びニューラルネットワークに必要なビットの精密度に依存的である。ネットワークのアーキテクチャーは、人工ニューロンのモデル、レイヤ数、レイヤごとのニューロン数、及びレイヤごとのシナプス数などによって決定される。ネットワークパラメータの算出のためのコストに関し、２−レイヤの完全接続ネットワークの順次的なアップデートを例示的に説明する。
【００５０】
最初のレイヤがＮ個の人工ニューロンを含み、２番目レイヤがＭ個の人工ニューロンを含み、ｂビットの精密度が利用され、ニューロン動作の複雑性がｃであると仮定すると、完全接続ネットワークの順次的なアップデートのためには、ステップごとにＮ×Ｍ×ｂ×ｃビットの動作が算出のためのコストとなる。この場合、人工ニューロンの入力が変わらないか、０に留まるような状況で動作のうちいずれか１つが活性化されなければ、算出のためのコストは減少する。
【００５１】
αが算出を活性化する入力の比率であれば、ニューラルネットワーク１００はステップごとにＮ×Ｍ×ｂ×ｃ×αの動作を行うことになる。α＝１である場合、Ｎ×Ｍ×ｂ×ｃの動作が実行される。α＝０である場合、０の動作が実行される。また、ニューラルネットワーク１００ではｂを小さい値に設定することで、算出に関するコストが減少され得る。ｂ＝１である場合、ニューラルネットワーク１００は、バイナリ−値の連結として動作する。ネットワークの正確度及びビットの精密度間にはトレードオフ関係があるが、ネットワークの正確度及びビットの精密度を全て満たす適切なｂが選択されてもよい。一方、リアルタイムアプリケーションは頻繁にフレームごとの変化の小さい入力を受信する。例えば、入力映像の連続したフレーム間には同じピクセルが複数含まれてもよい。そのため、重複的な算出が行われることがある。ニューラルネットワーク１００はこのような重複的な算出を減少させることができる。
【００５２】
ニューラルネットワーク１００は人工ニューロンが出力信号を送信するとき、全ての人工ニューロンの状態をリフレッシュする喚起モードとして動作する。喚起モードは、雑音によって引き起こされる活性化のエラーが蓄積されることを回避するために使用される。喚起モードは、ニューラルネットワーク１００の入力が、全てのチャネルの周期的な全体情報（例えば、イメージのようなフレーム化された入力）とフレーム間の特定チャネルのアップデートイベントの混合であるとき、情報を十分処理するために適する。一般モードではイベントによる動作が出力信号の送信に応じて終了することに比べて、喚起モードでは、フレーム化された入力が全て処理される。喚起モードによる動作は周期的に処理されてもよいし、或いは、リクエストによって処理されてもよい。
【００５３】
例えば、人工ニューロンは、予め決定された動作モード（例えば、喚起モード）を指示する制御信号を受信し得る。この場合、人工ニューロンは入力シナプスによって動作モードに対応してフレーム化された入力信号を受信する。人工ニューロンは、フレーム化された入力信号に基づいて自身の状態（例えば、活性化など）を決定できる。
【００５４】
図２は、人工ニューロンの入力及び出力例示を示す図である。図２を参照すると、以前レイヤ２１０の人工ニューロン、人工ニューロン２２５、及び次のレイヤ２３０の人工ニューロンが図示されている。
【００５５】
人工ニューロン２２５は、人工ニューロン２２５の以前の活性化ｖ＿ｐ及び入力信号ｉ１、ｉ２、ｉ３に基づいて、人工ニューロン２２５の現在の活性化ｖ＿ｃを決定する。人工ニューロン２２５は、数式（３）を用いて現在の活性化ｖ＿ｃを決定する。
【００５６】
【数３】
2018010633.tif 000005
数式（３）において、ｖ＿ｃは現在の活性化を示し、ｆは活性関数を示し、ｖ＿ｐは以前の活性化を示し、ｉは入力信号の和を示し、φは人工ニューロンのパラメータを示す。人工ニューロンのパラメータは、人工ニューロンのバイアス及び人工ニューロンの状態を含む。入力信号の和ｉは、入力信号ｉ１、ｉ２、ｉ３の和によって決定される。入力信号ｉ１、ｉ２、ｉ３は、以前レイヤ２１０の人工ニューロンの出力信号及び人工ニューロン２２５の入力シナプスの加重値の間の積に基づいて決定される。現在の活性化ｖ＿ｃが決定された後、人工ニューロン２２５は現在の活性化ｖ＿ｃを格納する。
【００５７】
人工ニューロン２２５は、現在の活性化ｖ＿ｃ及び人工ニューロン２２５によって以前に発生したイベントＥ＿Ｐに対応する活性化ｖ＿ｅに基づいて、活性化の変化量△ｖを決定する。人工ニューロン２２５は、現在の活性化ｖ＿ｃから活性化ｖ＿ｅを差し引いた値を活性化の変化量△ｖとして決定する。
【００５８】
人工ニューロン２２５は、活性化の変化量△ｖ及び閾値ＶＴに基づいて、新しいイベントＥ＿Ｎの発生の有無を決定する。具体的に、人工ニューロン２２５は、活性化の変化量△ｖと閾値ＶＴの交差により新しいイベントＥ＿Ｎの発生を決定する。閾値ＶＴは、増加方向の第１閾値及び減少方向の第２閾値を含む。したがって、第１閾値は第２閾値よりも大きくてもよい。この場合、活性化の変化量△ｖが第１閾値を超過し、活性化の変化量△ｖが第１閾値未満に減少することにより、人工ニューロン２２５は新しいイベントＥ＿Ｎの発生を決定できる。
【００５９】
人工ニューロン２２５は、新しいイベントＥ＿Ｎの発生により出力シナプスに新しいイベントＥ＿Ｎに対応する出力信号ｏを送信する。出力信号ｏは、出力シナプスの加重値ｗ１、ｗ２、ｗ３と乗算される。したがって、次のレイヤ２３０に含まれた人工ニューロンは人工ニューロン２２５と接続された出力シナプスの加重値により互いに異なる入力信号を受信できる。
【００６０】
上述したように、一実施形態によれば、基本ＤＣＮで出力信号ｏは活性化の変化量△ｖと閾値ＶＴの交差方向を示す符号ビットを含む。例えば、活性化の変化量△ｖが第１閾値を超過する場合、人工ニューロン２２５は、次のレイヤ２３０に含まれた人工ニューロンに単一の正のビットである＋１を送信する。また、活性化の変化量△ｖが第２閾値未満に減少する場合、人工ニューロン２２５は、次のレイヤ２３０に含まれた人工ニューロンに単一の負のビットである−１を送信する。この場合、出力シナプスによって次のレイヤ２３０の人工ニューロンに閾値ＶＴが共に送信され、次のレイヤ２３０の人工ニューロンは、人工ニューロン２２５から受信した符号ビット及び閾値ＶＴに基づいて自身の活性化を決定できる。
【００６１】
他の実施形態によれば、アナログ−送信ＤＣＮで人工ニューロン２２５は活性化の変化量△ｖを予め決定されたビットの精密度で近似化し、出力信号ｏは近似化された活性化の変化量ｖ＿ａを含む。例えば、活性化の変化量△ｖが第１閾値を超過し、第２閾値未満に減少するとき、人工ニューロン２２５は１６ビットで近似化された活性化の変化量ｖ＿ａを次のレイヤ２３０に含まれた人工ニューロンに送信する。この場合、次のレイヤ２３０の人工ニューロンは、人工ニューロン２２５から受信した近似化された活性化の変化量ｖ＿ａを用いて自身の活性化を決定できるため、閾値ＶＴは送信されない。
【００６２】
人工ニューロン２２５は、出力信号ｏを次のレイヤ２３０の人工ニューロンに送信した後に閾値ＶＴをアップデートする。人工ニューロン２２５は、新しいイベントＥ＿Ｎを発生させた現在の活性化ｖ＿ｃに基づいて閾値ＶＴをアップデートする。例えば、人工ニューロン２２５は、現在の活性化ｖ＿ｃと類似の値で閾値ＶＴをアップデートする。又は、人工ニューロン２２５は、固定間隔、ログ間隔、又は、桁数などの様々な方式により閾値を調整し得る。閾値の調整に関しては後で詳細に説明する。
【００６３】
図３は、一実施形態に係るイベント決定及び出力信号を示す図である。図３を参照すると、基本ＤＮＣで時間による人工ニューロンの活性化及びイベントによる出力信号が図示されている。
【００６４】
時間ｔ１において、活性化の変化量が閾値ＶＴ１を超過することにより、イベントＥ１が発生する。ｃの変化量が増加方向の第１閾値ＶＴ１を超過したため、出力信号ｏとして＋１を指示する単一ビット（例えば、「真」の論理値を有する信号）が送信される。出力信号ｏが送信された後、閾値ＶＴ１はそのまま保持され、閾値ＶＴ２にアップデートされる。
【００６５】
時間ｔ２及び時間ｔ３で活性化の変化量が閾値ＶＴ２及び閾値ＶＴ３を超過することにより、イベントＥ２及びイベントＥ３が発生する。ここで、出力信号ｏとして＋１を指示する単一ビットが送信される。時間ｔ２の後に閾値ＶＴ２はそのまま保持されたり閾値ＶＴ３にアップデートされ、時間ｔ３の後に閾値ＶＴ３はそのまま保持されたり閾値Ｖ４にアップデートされる。
【００６６】
時間ｔ４で活性化の変化量が閾値Ｖ４未満に減少することにより、イベントＥ４が発生する。活性化の変化量が減少方向の第２閾値Ｖ４未満に減少したため、出力信号ｏとして−１を指示する単一ビット（例えば、「偽」の論理値を有する信号）が送信される。出力信号ｏが送信された後、閾値Ｖ４はそのまま保持され、閾値ＶＴ５にアップデートされる。
【００６７】
説明の便宜のために、図３に示す例示として、閾値はアップデートされることなく保持されているが、上述したようにイベントの発生に反応して閾値がアップデートされることができる。
【００６８】
図４は、他の実施形態に係るイベント決定及び出力信号を示す図である。図４を参照すると、アナログ送信ＤＣＮで時間による人工ニューロンの活性化及びイベントによる出力信号が図示されている。
【００６９】
時間ｔ１で活性化の変化量が閾値ＶＴ１を超過することにより、イベントＥ１が発生する。人工ニューロンは、活性化の変化量＋１を予め決定されたビットの精密度で近似化する。人工ニューロンは、近似化された活性化の変化量＋１を出力信号ｏとして送信する。出力信号ｏが送信された後、閾値ＶＴ１はそのまま保持され、閾値ＶＴ２にアップデートされる。
【００７０】
時間ｔ２で活性化の変化量が閾値ＶＴ２を超過することにより、イベントＥ２が発生する。人工ニューロン、は活性化の変化量＋４．２を予め決定されたビットの精密度で近似化する。人工ニューロンは、近似化された活性化の変化量＋４．２を出力信号ｏとして送信する。出力信号ｏが送信された後、閾値ＶＴ２はそのまま保持され、閾値ＶＴ３にアップデートされる。
【００７１】
時間ｔ３で活性化の変化量が閾値ＶＴ３未満に減少することにより、イベントＥ３が発生する。人工ニューロンは、活性化の変化量−１を予め決定されたビットの精密度で近似化する。人工ニューロンは、近似化された活性化の変化量−１を出力信号ｏとして送信する。出力信号ｏが送信された後、閾値ＶＴ３はそのまま保持され、閾値Ｖ４にアップデートされる。
【００７２】
説明の便宜のために、図４に示す例示で、閾値はアップデートされずに保持されているが、上述するようにイベントの発生に反応して閾値がアップデートされることができる。
【００７３】
図５は、一実施形態に係る閾値の調整を示す図である。図５を参照すると、ログ−間隔閾値ＤＣＮで時間による人工ニューロンの活性化及びイベントによる出力信号が図示されている。
【００７４】
時間ｔ１で活性化の変化量が閾値ＶＴ１を超過することにより、イベントＥ１が発生する。活性化の変化量が増加方向の第１閾値ＶＴ１を超過したため、人工ニューロンは、出力信号ｏとして＋１を指示する単一ビットを送信する。又は、人工ニューロンは、活性化の変化量＋１を予め決定されたビットの精密度で近似化する。この場合、人工ニューロンは、近似化された活性化の変化量＋１を出力信号ｏとして送信する。
【００７５】
出力信号ｏが送信された後、閾値ＶＴ１は閾値ＶＴ２にアップデートされる。例えば、閾値ＶＴ２は、ログ間隔により閾値ＶＴ１の２倍に設定される。図５で、閾値ＶＴ１は１であり、閾値ＶＴ２は２である。
【００７６】
時間ｔ２で活性化の変化量が閾値ＶＴ２を超過することにより、イベントＥ２が発生する。活性化の変化量が増加方向の第１閾値ＶＴ１を超過したため、人工ニューロンは出力信号ｏとして＋１を指示する単一ビットを送信する。又は、人工ニューロンは、活性化の変化量＋２を予め決定されたビットの精密度で近似化し、近似化された活性化の変化量＋２を出力信号ｏとして送信する。
【００７７】
出力信号ｏが送信された後、閾値ＶＴ２は閾値ＶＴ３にアップデートされる。例えば、閾値ＶＴ３は、ログ間隔により閾値ＶＴ２の２倍に設定される。図５で、閾値ＶＴ３は４である。活性化の増加により閾値も増加することで、より大きい変化量でイベントが発生する可能性がある。活性化の絶対量に比べて相対的に小さい変化量はその意味が大きくないため、閾値の調整により意味のないイベントの発生を抑制できる。
【００７８】
図６は、一実施形態に係るクラスタの変更を示す図である。図６を参照すると、クラスタ６１０〜６３０が図示されている。
【００７９】
上述したように、人工ニューロンＮは、自身が属するクラスタの変更によりイベントＥの発生を決定する。より具体的に、人工ニューロンＮは、人工ニューロンＮの以前の活性化ｖ＿ｐ、及び人工ニューロンＮの入力シナプスによって受信される入力信号ｉに基づいて、人工ニューロンＮの現在の活性化ｖ＿ｃを決定し、以前の活性化ｖ＿ｐが属する第１クラスタ及び現在の活性化ｖ＿ｃが属する第２クラスタに基づいてイベントＥの発生の有無を決定する。人工ニューロンＮは、第１クラスタと第２クラスタが異なる場合、イベントＥの発生を決定する。人工ニューロンＮは、イベントの発生により出力シナプスにイベントＥに対応する出力信号ｏを送信する。
【００８０】
クラスタ６１０〜６３０は、それぞれ異なる範囲を有する。例えば、クラスタ６２０は０以上１未満の範囲を有し、クラスタ６１０は１以上１０未満の範囲を有し、クラスタ６３０は１０以上の範囲を有する。クラスタ６２０は第１レベルに当該し、クラスタ６１０は第２レベルに当該し、クラスタ６３０は第３レベルに当該する。この場合、人工ニューロンは自身の現在の活性化ｖ＿ｃによりクラスタ６１０〜６３０のいずれか１つに属する。例えば、０以上１未満の活性化を有する人工ニューロンはクラスタ６２０に属する。クラスタの数及びクラスタの範囲はニューラルネットワークに属する人工ニューロンの活性化の範囲により決定され得る。より具体的に、学習が完了した人工ニューロンの典型的な活性化の分布が０、１及び１０を境界に分離している場合、クラスタは上述した０、１及び１０を境界にする範囲を有する。
【００８１】
出力信号ｏは、クラスタの変化方向及びクラスタの変化量のうち少なくとも１つを示す少なくとも１つの変更ビットを含む。例えば、人工ニューロンＮが属するクラスタが上位クラスタに変更された場合、人工ニューロンは＋１を指示する変更ビットを送信し得る。上述した例示によって、クラスタ６１０はクラスタ６２０の上位クラスタに当該し、クラスタ６３０はクラスタ６１０の上位クラスタに該当する。また、クラスタ６３０は、クラスタ６２０の２つのレベルの上位クラスタに該当する。クラスタが２つのレベル以上変わったものを示すため、変更ビットは２ビット以上であり得る。例えば、人工ニューロンＮが属するクラスタが２つのレベルの下位クラスタに変更された場合、人工ニューロンは−２を指示する変更ビットを送信する。
【００８２】
より具体的に、人工ニューロンＮの以前の活性化ｖ＿ｐが１．５であり、人工ニューロンＮの現在の活性化ｖ＿ｃが１０．５である場合、人工ニューロンＮはクラスタ６１０からクラスタ６３０に移動することになる。この場合、人工ニューロンＮは出力信号ｏとして＋１を指示する変更ビットを送信する。また、人工ニューロンＮの以前の活性化ｖ＿ｐが１．５であり、人工ニューロンＮの現在の活性化ｖ＿ｃが０．５である場合、人工ニューロンＮは、クラスタ６１０からクラスタ６２０に移動することになる。この場合、人工ニューロンＮは、出力信号ｏとして−１を指示する変更ビットを送信する。また、人工ニューロンＮの以前の活性化ｖ＿ｐが０．５であり、人工ニューロンＮの現在の活性化ｖ＿ｃが１０．５である場合、人工ニューロンＮは、クラスタ６２０からクラスタ６３０に移動することになる。この場合、人工ニューロンＮは、出力信号ｏとして＋２を指示する変更ビットを送信する。
【００８３】
上述したように、一実施形態によれば、ＤＣＮはＡＮＮあるいはＳＮＮに適用される。以下では図７〜図９を参照してＤＣＮがＡＮＮの一種であるＲＮＮ（ｒｅｃｕｒｒｅｎｔ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）に適用される実施形態について説明する。以下の説明はＤＣＮの適用範囲を制限するものではなく、ＤＣＮは以下の説明とは異なってＲＮＮ以外のＡＮＮ、あるいはＳＮＮに適用され得る。
【００８４】
下記の実施形態は、デルタネットワークと呼ばれるＲＮＮアーキテクチャーを提案する。デルタネットワークは、上述したＤＣＮに対応する。デルタネットワークでそれぞれのニューロンは、自身の活性化の変化が閾値を超過する時のみに値を出力する。
【００８５】
ビッグデータセットを処理する能力、例えば、ＧＰＵのようなコンピュータリソース及びトレーニングアルゴリズムの大きい向上のような因子の結合によって、一時的なシーケンスの処理にＲＮＮを用いてもよい。例えば、ＲＮＮを用いて自然語処理、音声認識、及び構造化された予測のための注意（ａｔｔｅｎｔｉｏｎ）に基づくモデルのようなアプリケーションが実現される。ＲＮＮはメモリを装着し、ＬＳＴＭ（ｌｏｎｇ  ｓｈｏｒｔ  ｔｅｒｍ  ｍｅｍｏｒｙ）のようなゲーティングユニット（ｇａｔｉｎｇ  ｕｎｉｔ）を用いる。ゲート化されたリカレントユニット（ｇａｔｅｄ  ｒｅｃｕｒｒｅｎｔ  ｕｎｉｔ：ＧＲＵ）はＲＮＮのトレーニング過程を大きく向上させることができる。しかし、ＲＮＮは、ニューロン活性化をアップデートするためにマトリックス演算に大きく依存することから、ＲＮＮを駆動するためには多くのリソースが要求される。
【００８６】
実施形態によれば、ＲＮＮを駆動するためのリソースを減少させるために、入力ストリームの特性及び入力ストリームに関する神経表現（ｎｅｕｒａｌ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）の特性を用いることができる。ここで、神経表現は前述したニューロンの活性化に対応する。
【００８７】
一般的に、ニューラルネットワークへの入力は時間的自己相関（ｔｅｍｐｏｒａｌ  ａｕｔｏｃｏｒｒｅｌａｔｉｏｎ）が高いレベルを有する。入力が時間に応じて徐々に変化する場合、時間的自己相関が高いものと見なす。例えば、フレーム間の変化が少ないビデオ映像の場合、時間的自己相関が高く現れる。ニューラルネットワークが、時間的自己相関が高いレベルの入力を処理する場合、ニューラルネットワークの状態は徐々に変わる活性化を生成し得る。
【００８８】
図７は、標準ビデオデータセットを処理する標準畳み込みネットワーク（ｓｔａｎｄａｒｄ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｔｗｏｒｋ）の特性を示す図である。図７を参照すると、標準ビデオデータセットを処理する標準畳み込みネットワークの状態は徐々に変わる活性化を生成する。図７において、時間（又は、フレーム）の流れによる活性化は極めてリダンダント（ｈｉｇｈｌｙ  ｒｅｄｕｎｄａｎｔ）である。
【００８９】
例えば、時間の流れに応じて活性化は変わらない。図７は、場面認識のためのクリップで上位１０００個のフレームが標準畳み込みネットワークに印加されるとき、トップレベル特徴ベクトルレイヤの任意の上位５０個の特徴が時間の流れに応じてプロットされた結果である。図７において、でピークは時間の経過に応じて相対的に一定に保持される傾向があり、時間に応じてランダムの活性化が現れることよりも、活性化に一貫性を表す。
【００９０】
図８は、時間の経過によるＲＮＮ活性化の安定性を示す図である。図８には数字認識データセットが適用されたＲＮＮの活性化特性が示されている。より具体的に、図８に示す上の図面は、音声数字に対するＭＦＣＣ（ｍｅｌ−ｆｒｅｑｕｅｎｃｙ  ｃｅｐｓｔｒａｌ  ｃｏｅｆｆｉｃｉｅｎｔｓ）特徴を示す。図８に示す下の図面はＭＦＣＣ特徴に対する応答として、神経ネットワークの活性化を示す。
【００９１】
図８を参照すると、神経入力を処理するリカレントニューラルネットワークの算出でも徐々に変わる活性化特徴を示す。例えば、入力において長くて安定の表現が存在すれば、時間の経過による活性化に変化が徐々に発生し、時間の流れに応じて活性化に高いレベルの安定性を表す。
【００９２】
＜デルタネットワークの概念＞
デルタネットワークの目的は、加重値マトリックス（ｗｅｉｇｈｔ  ｍａｔｒｉｘ）及び状態ベクトル（ｓｔａｔｅ  ｖｅｃｔｏｒ）のように密集したマトリックス−ベクトルの積を完全和（ｆｕｌｌ  ａｄｄｉｔｉｏｎ）と結合した希少マトリックス−ベクトルの積に変換したものである。この変換によって、メモリアクセス及び演算が減少し得る。この変換を示すためにマトリックス−ベクトルの積が数式（４）のように定義される。
【００９３】
【数４】
2018010633.tif 000006
数式（４）において、ｒはリカレントニューラルネットワークのパラメータのうちリセットゲートの値を示す。以下ではデルタネットワークの概念についてｒを参照して説明するが、以下の説明は、リカレントニューラルネットワークの他のパラメータにも適用され得る。数式（４）によりサイズｎ×ｎのマトリックスＷ及びサイズｎのベクトルｘが算出されるため、ｎ２回の演算が使用され、ｎ２＋ｎ回の読み出し動作が実行され、ｎ回の書き込み動作が実行される。長い入力ベクトルシーケンスｘｔのために複数のマトリックス−ベクトルの積が考慮される。ここで、ｔは１、２、．．．、ｎである。複数のマトリックス−ベクトルの積は数式（５）により回帰的に算出される。
【００９４】
【数５】
2018010633.tif 000007
数式（５）において、Δ＝ｘｔ−ｘｔ−１であり、ｒｔ−１は以前の算出から取得された結果である。したがって、ｔにおいて数式（５）の算出コストは０である。また、ｘ０＝０であり、ｒ０＝０である。ここで、Δは入力デルタベクトルのように称される。もし、Δが隠れ状態ベクトル（ｈｉｄｄｅｎ  ｓｔａｔｅ  ｖｅｃｔｏｒ）に関するものであれば、Δは隠れ状態デルタベクトル（ｈｉｄｄｅｎ  ｓｔａｔｅ  ｄｅｌｔａ  ｖｅｃｔｏｒ）のように称される。Δが希少ベクトルであれば、数式（５）のような形式は算出コストの面で有利である。より詳細に、ｒｔはΔのコストの和（サイズｎのベクトルのためにｎ個の演算）、格納された以前の結果ｒｔ−１を足すコスト（ｎ個の演算）、及び希少マトリックス積ＷΔのコスト（ｎ×ｎ加重値マトリックス及び占有率ｓの希少ベクトルのためのｎ２個の演算）に算出される。同様に、ｒｔを算出するためのメモリコストは、マトリックスＷのためのｎ×ｓ個の加重値を引き出す（ｆｅｔｃｈ）こと、Δのための２ｎ個の値、ｒｔ−１のためのｎ個の値、及び結果を示すｎ個の値を格納することに基づいて決定される。
【００９５】
ｘに小さい変化がある場合であっても算出コストが節約されるという点について明確にするため、閾値の使い方について説明する。実施形態に係る算出コストは数式（６）のように示すことができる。
【００９６】
【数６】
2018010633.tif 000008
また、メモリコストは数式（７）のように示すことができる。
【００９７】
【数７】
2018010633.tif 000009
占有率が１０％であれば、数式（７）によってCdense/Csparce≒n2/0.1n2≒10xである。したがって、演算速度が１０倍増加する。
【００９８】
Δ＝xt-xt-1によって算出される０の数により速度増加が与えられる。実際に、速度増加はデータストリームによって決定される。例えば、速度増加はｘｔ及びｘｔ−１間にどれほどの多い値が同一に留まるかによって決定される。ＲＮＮの入力、中間活性化値、及び出力を示すベクトルｘがタイムステップごとに徐々に変わる場合、入力値ｘｔ及びｘｔ−１は極めてリダンダントになり、低い占有率ｓ及びこれに対応する増加した速度増加が行われ得る。
【００９９】
＜デルタネットワークＧＲＵｓ＞
ＧＲＵにおいて、デルタネットワーク演算に代替されるマトリックス−ベクトルの積演算が数回発生してもよい。以下ではデルタネットワークがＧＲＵに適用される場合をＲＮＮに関する実施形態として説明するが、デルタネットワークはＬＳＴＭのような他の方式のＲＮＮにも適用され得る。数式（８）はＧＲＵのパラメータを示す。具体的に、数式（８）でｒはリセットゲート値を示し、ｚはアップデートゲート値を示し、ｃは出力隠れ状態ベクトルを示し、ｈはアップデートされた隠れ状態ベクトルを示す。また、数式（８）において、太く表示された部分はマトリックス−ベクトルの積演算を示す。数式（８）でＷ及びｘは任意に前置される。
【０１００】
【数８】
2018010633.tif 000010
数式（８）において、Ｗｘｒ、Ｗｘｕ、Ｗｘｃはそれぞれ入力ベクトルｘのための加重値を示し、Ｗｈｒ、Ｗｈｕ、Ｗｈｃはそれぞれ隠れ状態ベクトルｈのための加重値を示す。以下で、Ｗｘｒ、Ｗｘｕ、ＷｘｃはＷｘとして代表され、Ｗｈｒ、Ｗｈｕ、ＷｈｃはＷｈとして代表される。ｔはタイムスタンプを示す。数式（８）において、太く表示された部分は数式（５）で定義されたデルタアップデートに代替されてもよく、これは数式（９）のように示すことができる。
【０１０１】
【数９】
2018010633.tif 000011
数式（９）によれば、ｔ−１における入力ベクトルｘｔ−１及びｔにおける入力ベクトルｘｔ間の差に基づいて、ｔにおける入力デルタベクトルΔｘが取得され、ｔ−２における隠れ状態ベクトルｈｔ−２及びｔ−１における隠れ状態ベクトルｈｔ−２間の差に基づいて、ｔ−１における隠れ状態デルタベクトルΔｈが取得される。また、ｔにおける入力デルタベクトルΔｘ及び入力ベクトルｘのための加重値Ｗｘ間の積、及びｔ−１における隠れ状態デルタベクトルΔｈ及び隠れ状態ベクトルｈのための加重値Ｗｈ間の積に基づいて、パラメータｒ、ｕ及びｃが決定される。決定されたパラメータｒ、ｕ及びｃに基づいてｔにおける隠れ状態ベクトルｈｔが決定される。
【０１０２】
数式（９）において、ｚｘｒ、ｚｘｕ、ｚｘｃ、ｚｈｒ、ｚｈｕ、ｚｈｃは入力又は隠れ状態のための以前の算出の格納された結果として回帰的に定義される。例えば、ｚｘｒは数式（１０）のように示すことができる。
【０１０３】
【数１０】
2018010633.tif 000012
数式（１０）による演算はｚｘｕ、ｚｘｃ、ｚｈｒ、ｚｈｕ、ｚｈｃに類似に適用され得る。ｘ０での初期条件はｚ０：＝０である。また、上述した数式に示すように、格納された完全−ランク（ｆｕｌｌ−ｒａｎｋ）以前−活性化（ｐｒｅ−ａｃｔｉｖａｔｉｏｎ）状態及びバイアスを含む、複数の追加的なタームが１つの値に併合され得る。併合された１つの値は、ゲートタイプごとに単なる１つあるいは２つの格納されたベクトル値に示される。例えば、格納されたベクトル値は数式（１１）のように示すことができる。
【０１０４】
【数１１】
2018010633.tif 000013
最終的に、上述した初期状態の条件により、格納された値Ｍは補正されたバイアスに初期化される。例えば、Ｍｒ、０＝ｂｒ、Ｍｕ、０＝ｂｕ、Ｍｘｃ、０＝ｂｃ、ａｎｄＭｈｒ、０＝０であり、これによってデルタネットワークＧＲＵのために数式（１２）が定義される。
【０１０５】
【数１２】
2018010633.tif 000014
＜デルタネットワークでの近似算出＞
上述した数式は、ネットワークで最初の算出としての正確に同じ答を与えるために設計される。例えば、ｔ−１における入力ベクトル及びｔにおける入力ベクトル間の差が予め決定された閾値よりも大きい場合、ｔ−１における入力ベクトル及びｔにおける入力ベクトル間の差が入力デルタベクトルに決定され、ｔ−１における入力ベクトル及びｔにおける入力ベクトル間の差が予め決定された閾値よりも小さい場合、ゼロベクトルが入力デルタベクトルに決定される。隠れ状態デルタベクトルも同じ方式で決定される。
【０１０６】
上述した数式によって応用的なアクセスが可能である。例えば、活性化の変化が０である場合、ベクトル−積演算が省略される代わりに、活性化の変化が任意の閾値Θよりも小さい場合にベクトル−積演算が省略される。ここで、活性化の変化は前述したデルタベクトルに対応する。これは正確に同じ結果を生成することはないものの、近似的に正確な結果を生成することができる。
【０１０７】
図９は、デルタネットワークを介して取得された算出結果を示す。図９において、０ではない値は黒色に表示される。デルタベクトルの加重値行列及び希少性によって、希少性の効果を把握することができる。図９に示す実施形態において、デルタベクトルが約２０％の占有率を有すれば、加重値行列の約２０％だけ引き出される。加重値行列が２０％の占有率を有することをさらに考慮すれば、本来の加重値行列の４％だけ実際の算出に使用されることが明らかになる。
【０１０８】
０ではない閾値が用いられる場合、様々なタイムステップの間にエラーが蓄積される。例えば、入力値ｘｔがタイムステップごとの間にほとんどΘだけ増加する場合、活性化の重大な変化が蓄積されるにも関わらず、変化が発生しないことがある。したがって、以前のタイムステップのメモリは、単に最近タイプステップからの差を格納することではなく、閾値を上回る変化を引き起こす最近値を格納するよう設定される。このような動作は数式（１３）のように定義される。
【０１０９】
【数１３】
2018010633.tif 000015
数式（１３）において、x^i及びh^iは参照ベクトルを示す。例えば、ｔ−１における入力デルタベクトルΔｘ、ｔ−１が予め決定された閾値Θよりも大きい場合、ｔ−１における入力ベクトルｘｉ、ｔ−１がｔ−１における参照ベクトルx^i,t-1に決定される。ｔ−１における入力デルタベクトルΔｘ、ｔ−１が予め決定された閾値Θよりも小さい場合、ｔ−２における参照ベクトルx^i,t-2がｔ−１における参照ベクトルx^i,t-1に決定される。
【０１１０】
言い換えれば、入力デルタベクトルΔxi,tを算出するとき、入力xi,tの現在の値及びデルタベクトルx^i,t-1の最近値の間の差を用いることができる。ここで、ｉは時間ｔでベクトルの成分を示し、x^i,t-1は０ではない値を有する。また、デルタ変化が所定の閾値Θ未満であれば、デルタ変化は０に設定され、十分に大きい変化が０ではないアップデートを生成するとき矯正される小さい近似誤差を生成する。同様に、数式（１３）によって隠れ状態デルタベクトルΔｈｉ、ｔを求めることができる。
【０１１１】
以下、デルタネットワークモデルを算出するトレーニング方法及び最適化方式を説明する。トレーニング過程に制約条件を追加すれば、強力で加速化されるデルタネットワークが算出される。制約条件については後述する。
【０１１２】
＜トレーニング方法＞
ａ）四捨五入（ｒｏｕｎｄｉｎｇ）ネットワークの活性化：上述した閾値デルタネットワークの算出は、部分的に算出された状態の四捨五入に類似の機能を行う。Δタームは小さい差として０に設定されるが、大きい差でネットワークはアップデートされてもよい。トレーニング過程で四捨五入を行う場合に発生し得る小さい四捨五入エラー（ｓｍａｌｌ  ｒｏｕｎｄｉｎｇ  ｅｒｒｏｒ）に対し、ネットワークを強化する様々な方法が考えられる。より正確性を高めるために、活性化四捨五入を行うこともある。この場合、ネットワークが確実に訓練され得るため、このような小さい四捨五入エラーに堅固である。また、低い精密度算出は電力消費をより減少させ得る。
【０１１３】
言い換えれば、ｍ個の整数ビット及びｆ個の分数ビットを有する符号がある固定小数点形式Ｑｍ．ｆの低解像度パラメータθLは決定性及び傾き−保存型ラウンディング（ｇｒａｄｉｅｎｔ−ｐｒｅｓｅｒｖｉｎｇ  ｒｏｕｎｄｉｎｇ）を使用して高解像度パラメータθから生成される。低解像度パラメータθLは数式（１４）のように示すことができる。
【０１１４】
【数１４】
2018010633.tif 000016
数式（１４）において、θLは［−２ｍ＋ｆ−１、２ｍ＋ｆ−１］の範囲でクリッピングされた（ｃｌｉｐｐｅｄ）2f・θと数式（１５）のような四捨五入関数によって求められる。
【０１１５】
【数１５】
2018010633.tif 000017
数式（１５）において、∇は傾き演算子を示す。フォワードパスで、低解像度パラメータθLはより低い精密度の影響を考慮する出力を生成するため用いられ、小さい傾きのアップデートは高解像度パラメータθで時間によって累積される。訓練が終了すれば、θは捨てられてθLが用いられる。シミュレーション結果のパラメータが活性化される。
【０１１６】
ｂ）ネットワーク活性化にガウスノイズを追加：一応閾値が導入されれば、ネットワークは小さい変化の非伝番（ｎｏｎ−ｐｒｏｐａｇａｔｉｏｎ）に堅固すべきであり、大きい変化は重く考慮しなければならない。小さい変化に対して堅固性を提供する他の方法は、閾値デルタ活性化を有する全ての位置にガウスノイズを追加することにある。ガウスノイズは数式（１６）のように追加される。
【０１１７】
【数１６】
2018010633.tif 000018
数式（１６）において、η〜Ｎ（μ、σ）はそれぞれのη∈｛ηｘｒ、ηｈｒ、ηｘｕ、ηｈｕ、ηｘｃ、ηｈｃ｝及び各ベクトルの各構成要素に対して平均μと分散σを有するガウス分布からサンプルηのベクトルを決定することを意味する。典型的に、値μは０に設定されて期待値がバイアスされないようにする。例えば、Ｅ［ｘｔ＋ηｘｒ］＝Ｅ［ｘｔ］である。分散σはアップデートされないことによる一般的な四捨五入エラーを評価するよう設定される。
【０１１８】
＜デルタネットワークモデルでの直接算出＞
ガウスノイズを追加する作業は、閾値デルタネットワークで行う切断作業とは依然として同一ではない。これを補完するために、モデルをデルタネットワークで直接にトレーニングすることができる。テストモデルで直接トレーニングすることで、ネットワークは、閾値デルタネットワークが一般的に作るエラータイプに対して堅固になる。
【０１１９】
＜希薄性コストに発生する活性化の変化＞
ネットワークがデルタネットワークモデルを使用して訓練されることによって、コストはデルタ条件と関わり、かつ全体のコストに追加される。一括処理（ｂａｔｃｈ）でΔｈのためのＬ１標準（ｎｏｒｍ）は平均絶対値変化として算出され、Ｌ１標準は加重因子βによって調整される。希少コストＬは、損失関数に加えて含まれてもよい。数式（１７）は希少コストＬを示す。
【０１２０】
【数１７】
2018010633.tif 000019
ここで、Ｌ１標準はΔｈの希少値を決定するために用いられることから、少ないデルタアップデートが求められる。実施形態によれば、訓練中にΔが最適化されないため、ΔｘはＬ１のターゲットではない。したがって、関係式にΔｘが含まれないことがある。
【０１２１】
＜最適化方法＞
重さ希薄性（ｗｅｉｇｈｔ  ｓｐａｒｓｉｔｙ）の影響：トレーニング後に深層ネットワークの加重値行列で希薄性の量は算出コストの節減及び速度向上に影響を及す。トレーニングされた低い精密ネットワークで加重値行列の希薄性は極めて大きいことがある。０はデルタベクトルと倍数的に（ｍｕｌｔｉｐｌｉｃａｔｉｖｅｌｙ）作用して必要な積−累積（ｍｕｌｔｉｐｌｙ−ａｃｃｕｍｕｌａｔｅ）をはるかに少なく生成する。したがって、アップデート回数に対する加重値希薄性の影響を考慮することで、追加的な正確度が損失されることなく速度の向上を取得できる。
【０１２２】
図１０は、一実施形態に係る電子装置を示すブロック図である。図１０を参照すると、電子装置１０００はプロセッサ１０１０及びメモリ１０２０を含む。先に説明したニューラルネットワークは電子装置１０００として実現される。
【０１２３】
プロセッサ１０１０は、図１〜図９によって上述した少なくとも１つの装置を含んでもよく、図１〜図９によって上述した少なくとも１つの方法を行うことができる。例えば、プロセッサ１０１０は上述した人工ニューロンの動作を処理する。より具体的に、プロセッサ１０１０は、ニューラルネットワークに含まれたそれぞれのニューロンに関し、以前の活性化及び入力シナプスによって受信される入力信号に基づいて現在の活性化を決定するための動作、現在の活性化及び以前に発生したイベントに対応する活性化に基づいて活性化の変化量を決定するための動作、活性化の変化量及び閾値に基づいて新しいイベントの発生の有無を決定するための動作、新しいイベントの発生により出力シナプスに新しいイベントに対応する出力信号を送信するための動作を処理する。
【０１２４】
メモリ１０２０は、コンピュータで読み出し可能な命令語を格納する。メモリ１０２０に格納された命令語がプロセッサ１０１０で実行されれば、プロセッサ１０１０は、上述した人工ニューロンの動作を処理する。また、メモリ１０２０は、上述したニューラルネットワークに関するデータを格納する。例えば、メモリ１０２０は、人工ニューロンの活性化及びシナプスの加重値などを格納する。メモリ１０２０は、揮発性メモリ又は不揮発性メモリであり得る。
【０１２５】
プロセッサ１０１０はプログラムを実行し、電子装置１０２０を制御する。電子装置１０２０は、入出力装置（図示せず）によって外部装置（例えば、パーソナルコンピュータ又はネットワーク）に接続されてデータを交換する。電子装置１０２０は、携帯電話機、スマートフォン、ＰＤＡ、タブレットコンピュータ、ラップトップコンピュータなどのモバイル装置、パーソナルコンピュータ、タブレットコンピュータ、ネットブックなどのコンピューティング装置、又は、テレビ、スマートテレビ、ゲート制御のためのセキュリティー装置などの電子製品などの様々な電子装置を含む。その他に、電子装置１０００について上述した内容が適用され、より詳細な説明は省略する。
【０１２６】
図１１は、他の実施形態に係る電子装置を示す図である。図１１を参照すると、電子装置１１００は、人工ニューロンに対応するプロセッシングユニットを含む。
【０１２７】
プロセッシングユニットは、上述したニューラルネットワークの人工ニューロンに一対一に対応する。プロセッシングユニットそれぞれは、自身と対応する人工ニューロンのための動作を処理し、自身と対応する人工ニューロンのためのデータを格納する。プロセッシングユニットは、互いにリンクによって接続される。リンクは、上述したシナプスに対応して特定のビット幅を有するように制限される。プロセッシングユニットのそれぞれは、コンピュータで読み出し可能な命令語を格納するメモリ及びプロセッサを含む。例えば、プロセッシングユニットそれぞれに含まれたプロセッサはＡ、ＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）で実現できる。プロセッシングユニットそれぞれは、完全接続ネットワークのように他のレイヤの全てのプロセッシングユニットに接続され、畳み込みネットワークのように制限された空間の接続の可能性を有する。
【０１２８】
メモリに格納された命令語がプロセッサで実行されれば、プロセッサは以前の活性化及び入力リンクによって受信される入力信号に基づいて現在の活性化を決定し、現在の活性化及び以前に発生したイベントに対応する活性化に基づいて活性化の変化量を決定し、活性化の変化量及び閾値に基づいて新しいイベントの発生の有無を決定し、新しいイベントの発生により出力リンクで新しいイベントに対応する出力信号を送信する。メモリは、自身と対応する人工ニューロンの現在の活性化を格納する。その他に、電子装置１１００に関しては上述した内容が適用でき、より詳細な説明は省略する。
【０１２９】
図１２は、一実施形態に係る人工ニューロンの動作方法を示した動作フローチャートである。図１２を参照すると、ステップＳ１２１０において、人工ニューロンは、人工ニューロンの以前の活性化及び人工ニューロンの入力シナプスによって受信される入力信号に基づいて人工ニューロンの現在の活性化を決定する。ステップＳ１２２０において、人工ニューロンは、現在の活性化及び人工ニューロンによって以前に発生したイベントに対応する活性化に基づいて活性化の変化量を決定する。ステップＳ１２３０において、人工ニューロンは、活性化の変化量及び閾値に基づいて、新しいイベントの発生の有無を決定する。ステップＳ１２４０において、人工ニューロンは、新しいイベントの発生により出力シナプスに新しいイベントに対応する出力信号を送信する。その他に、人工ニューロンの動作方法については上述した内容が適用され、より詳細な説明は省略する。
【０１３０】
以上で説明した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現される。例えば、実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、マイクロコンピュータ、ＦＰＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサー、又は命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行して応答する異なる装置のように、１つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム（ＯＳ）及びオペレーティングシステム上で実行される１つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は１つが使用されるものとして説明する場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）及び／又は複数類型の処理要素を含むことが分かる。例えば、処理装置は、複数のプロセッサ又は１つのプロセッサ及び１つのコントローラを含む。また、並列プロセッサ（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ）のような、他の処理構成も可能である。
【０１３１】
ソフトウェアは、コンピュータプログラム、コード、命令、又はこれらのうちの１つ以上の組合せを含み、希望通りに動作するように処理装置を構成し、独立的又は結合的に処理装置に命令する。ソフトウェア及び／又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するためのあらゆる類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、或いは送信される信号波を介して永久的又は一時的に具現化される。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散され、分散された方法で格納されるか又は実行される。ソフトウェア及びデータは１つ以上のコンピュータ読み取り可能な記録媒体に格納される。
【０１３２】
本実施形態による方法は、多様なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような磁気−光媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明の動作を実行するために１つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【０１３３】
上述したように実施形態をたとえ限定された図面によって説明したが、当技の術分野で通常の知識を有する者であれば、前記に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順序で実行されたり、及び／又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組合わせられたり、他の構成要素又は均等物によって置き換えたり置換されても適切な結果を達成することができる。
【符号の説明】
【０１３４】
１００  ニューラルネットワーク
１０５  人工ニューロン
１１０  入力レイヤ
１２０〜１４０  中間レイヤ又は隠れレイヤ
１５０  出力レイヤ
【図１】
2018010633.tif 000020
【図２】
2018010633.tif 000021
【図３】
2018010633.tif 000022
【図４】
2018010633.tif 000023
【図５】
2018010633.tif 000024
【図６】
2018010633.tif 000025
【図７】
2018010633.tif 000026
【図８】
2018010633.tif 000027
【図９】
2018010633.tif 000028
【図１０】
2018010633.tif 000029
【図１１】
2018010633.tif 000030
【図１２】
2018010633.tif 000031