JP7037143B2 - ニューラルネットワークのための方法及び電子装置 - Google Patents

ニューラルネットワークのための方法及び電子装置 Download PDF

Info

Publication number
JP7037143B2
JP7037143B2 JP2017132072A JP2017132072A JP7037143B2 JP 7037143 B2 JP7037143 B2 JP 7037143B2 JP 2017132072 A JP2017132072 A JP 2017132072A JP 2017132072 A JP2017132072 A JP 2017132072A JP 7037143 B2 JP7037143 B2 JP 7037143B2
Authority
JP
Japan
Prior art keywords
activation
threshold
change
artificial neuron
threshold value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017132072A
Other languages
English (en)
Other versions
JP2018010633A (ja
Inventor
俊 行 李
ネイル ダニエル
世 綺 劉
デルブルック トビ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020170053543A external-priority patent/KR102399548B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2018010633A publication Critical patent/JP2018010633A/ja
Priority to JP2021156767A priority Critical patent/JP7290256B2/ja
Priority to JP2021156768A priority patent/JP7237122B2/ja
Application granted granted Critical
Publication of JP7037143B2 publication Critical patent/JP7037143B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Description

以下の実施形態は人工ニューロンの動作方法及び電子装置等に関する。
複雑であるか又は解の知られていない問題を解決するために、人が有する認識方法をデバイスに適用させようとする研究が行われている。このような研究の1つとして、人の生物学的神経細胞をモデリングしたニューラルネットワーク(neural network)がある。ニューラルネットワークは、人が有している学習能力を模倣したアルゴリズムを用いる。ニューラルネットワークは、学習を介して入力パターンと出力パターンとの間のマッピングを行う。また、ニューラルネットワークは、学習された結果に基づいて学習に利用されていない入力パターンに対して比較的に正しい出力を生成することのできる一般化能力を有し得る。
本発明の目的は、人工ニューロンの動作方法及びその方法を行う装置を提供することにある。
一側面によれば、ニューラルネットワークを用いて実行される方法は、人工ニューロンの以前の
活性化及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、
前記決定された現在の活性化及び前記人工ニューロンによって以前に発生したイベントに対応する第2活性化に基づいて、第1活性化の変化量を決定するステップと、前記決定された第1活性化の変化量及び第1閾値に基づいて、新しいイベントの発生の有無を決定するステップと、前記新しいイベントの発生に応答して出力シナプスに前記新しいイベントに対応する出力信号を送信するステップとを含む。
前記新しいイベントは、前記決定された第1活性化の変化量と前記第1閾値の交差により発生し得る。前記出力信号は、前記決定された第1活性化の変化量と前記第1閾値の交差方向を示す符号ビットを含み得る。前記方法は、前記入力シナプスによって接続された以前レイヤに対応する第2閾値を受信するステップをさらに含み、前記現在の活性化を決定するステップは、前記以前の活性化、前記入力信号、及び前記第2閾値に基づいて前記現在の活性化を決定するステップを含み得る。
前記出力信号は、予め決定されたビットの精密度で近似化された前記決定された第1活性化の変化量を含み得る。前記ビットの精密度は、要求正確度及び可用リソースのうち少なくとも1つにより調整され得る。前記第1閾値は、単位時間の間に発生するイベントの数に応じて調整され得る。前記第1閾値は、前記単位時間の間に発生する前記イベントの数が予め決定された第3閾値を超過することにより増加し、前記単位時間の間に発生する前記イベントの数が予め決定された第4閾値未満であることにより減少し、前記第3閾値は前記第4閾値よりも大きい。
前記方法は、前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第1閾値をアップデートするステップをさらに含み得る。前記第1閾値は、固定間隔、ログ間隔、又は、桁数に応じて調整され得る。前記方法は、前記決定された現在の活性化を格納するステップをさらに含み得る。
前記方法は、予め決定された動作モードを指示する制御信号を受信するステップと、前記入力シナプスによって前記動作モードに対応してフレーム化された入力信号を受信するステップと、前記フレーム化された入力信号に基づいて前記現在の活性化を決定するステップとをさらに含み得る。
前記前記ニューラルネットワークは、人工ニューラルネットワーク、完全接続ネットワーク、深層畳み込みネットワーク、リカレントニューラルネットワーク、及びスパイキングニューラルネットワークのいずれか1つであり得る。
他の一実施形態によると、ニューラルネットワークを用いて実行される方法は、人工ニューロンの以前の活性化、及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、前記以前の活性化が属する第1クラスタ及び前記現在の活性化が属する第2クラスタに基づいて、イベントの発生の有無を決定するステップと、前記イベントの発生に応答して出力シナプスに前記イベントに対応する出力信号を送信するステップとを含む。
前記イベントは、前記第1クラスタと前記第2クラスタとの差により発生し得る。前記出力信号は、クラスタの変化方向及びクラスタの変化量のうち少なくとも1つを示す少なくとも1つの変更ビットを含み得る。
一実施形態によると、リカレントニューラルネットワークを用いて実行される方法は、第1時間に対応する第1入力ベクトルと、前記第1時間よりも早い第2時間に対応する第2入力ベクトルとの間の差に基づいて、前記第1時間に対応する第1入力デルタベクトルを取得するステップと、前記第2時間よりも早い第3時間に対応する第3隠れ状態ベクトルと前記第2時間に対応する第2隠れ状態ベクトルとの間の差に基づいて、前記第2時間に対応する隠れ状態デルタベクトルを取得するステップと、前記取得された第1入力デルタベクトルに対応する第2加重値及び前記第1入力ベクトルに対応する第1加重値間の積、及び前記取得された隠れ状態デルタベクトルに対応する第4加重値及び前記第2隠れ状態ベクトルに対応する第3加重値間の積に基づいて、前記リカレントニューラルネットワークのパラメータを決定するステップと、前記決定された前記リカレントニューラルネットワークのパラメータに基づいて、前記第1時間に対応する第1隠れ状態ベクトルを決定するステップとを含む。
前記決定されたリカレントニューラルネットワークのパラメータは、リセットゲートの値、アップデートゲートの値、及び出力隠れ状態ベクトルの値のうち少なくとも1つを含み得る。
前記第1入力デルタベクトルを取得するステップは、前記第2入力ベクトルと前記第1入力ベクトルとの間の差が予め決定された閾値よりも大きい場合、前記第2入力ベクトルと前記第1入力ベクトルとの間の差を前記第1入力デルタベクトルとして決定するステップと、前記第2入力ベクトルと前記第1入力ベクトルとの間の差が前記予め決定された閾値よりも小さい場合、ゼロベクトルを前記第1入力デルタベクトルとして決定するステップとを含み得る。
前記第1入力デルタベクトルを取得するステップは、前記第2時間に対応する第2入力デルタベクトルに基づいて前記第2時間に対応する第2参照ベクトルを取得するステップと、前記取得された第2参照ベクトルと前記第1入力ベクトルとの間の差に基づいて、前記第1入力デルタベクトルを取得するステップとを含み得る。
一実施形態によると、電子装置は、人工ニューロンに対応するプロセッシングユニットを含み、前記プロセッシングユニットそれぞれは、コンピュータで読み込むことのできる命令語を格納するメモリ及びプロセッサを含み、前記命令語が前記プロセッサで実行されれば、前記プロセッサは、以前の活性化及び入力リンクによって受信される入力信号に基づいて現在の活性化を決定し、前記決定された現在の活性化及び以前に発生したイベントに対応する第2活性化に基づいて第1活性化の変化量を決定し、前記決定された第1活性化の変化量及び第1閾値に基づいて新しいイベントの発生の有無を決定し、前記新しいイベントの発生に応答して出力リンクで前記新しいイベントに対応する出力信号を送信する。
前記プロセッサは、前記入力リンクによって接続された以前レイヤに対応する第2閾値をさらに受信し、前記以前の活性化、前記入力信号、及び前記第2閾値に基づいて前記現在の活性化を決定し得る。前記プロセッサは、前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第1閾値をアップデートし得る。前記メモリは、前記決定された現在の活性化を格納し得る。
本発明によると、人工ニューロンの動作方法及びその方法を行う装置を提供することができる。
一実施形態に係るニューラルネットワークを示す図である。 人工ニューロンの入力及び出力例示を示す図である。 一実施形態に係るイベント決定及び出力信号を示す図である。 他の実施形態に係るイベント決定及び出力信号を示す図である。 一実施形態に係る閾値の調整を示す図である。 一実施形態に係るクラスタの変更を示す図である。 標準ビデオデータセットを処理する標準畳み込みネットワークの特性を示す図である。 時間の経過によるRNN活性化の安定性を示す図である。 デルタネットワークを介して取得された算出結果を示す図である。 一実施形態に係る電子装置を示すブロック図である。 他の実施形態に係る電子装置を示す図である。 一実施形態に係る人工ニューロンの動作方法を示した動作フローチャートである。
本明細書で開示されている本発明の概念による実施形態に対して特定の構造的又は機能的な説明は、単に本発明の概念による実施形態を説明するための目的として例示したものであり、本発明の概念による実施形態は様々な形態で実施され、本明細書に説明された実施形態に限定されることはない。
第1又は第2などの用語を複数の構成要素を説明するために用いることができるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に第2構成要素は第1構成要素にも命名することができる。
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
異なるように定義さがれない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
以下、実施形態を添付する図面を参照しながら詳細に説明する。各図面に提示された同じ参照符号は同じ部材を示す。
図1は、一実施形態に係るニューラルネットワークを示す図である。図1を参照すると、ニューラルネットワーク100は、人工ニューロンを含む集合(collections)110~150を含む。
ニューラルネットワーク100は、イベントに基づいて動作することで学習又は認識に必要される算出コストを減少させる。ニューラルネットワーク100は、ディープラーニングに用いてもよい。ディープラーニングは、ビッグデータセットから映像又は音声認識のような問題を解決するための機械学習方式である。ディープラーニングの指導式(supervised)又は非指導式(unsupervised)学習によってマルチレイヤニューラルネットワークで特徴階層が抽出される。ニューラルネットワーク100は、マルチレイヤニューラルネットワークの例示に当該する。マルチレイヤニューラルネットワークは、完全接続ネットワーク、深層畳み込みネットワーク、及びリカレントニューラルネットワークなどを含む。例えば、完全接続ネットワークは多くの語彙の連続的音声認識(large-vocabulary continuous speech recognition)、3Dオブジェクト認識、顔認識、及びマッチングや視覚的分類などに用いられる。
マルチレイヤニューラルネットワークの大きさと深度は一般的なニューラルネットワークに比べて極めて大きくて深い。ニューラルネットワークの大きさは、レイヤごとのニューロン数とレイヤ数の積として示し、ニューラルネットワークの深度はネットワークごとのレイヤ数に示すことができる。例えば、最近のビジョンアプリケーションに用いられるニューラルネットワークは、41個のレイヤ、約143×106個の加重値、及び31×106個のニューロンを含み、当該のニューラルネットワークのために19.7×109個の演算が必要である。このような、マルチレイヤニューラルネットワークの学習には巨大なデータベース及び長い学習時間が必要とされる。
このような巨大なニューラルネットワークを順次的な方法によって駆動させるためには、CPU(central processing unit)やGPU(graphic processing unit)のようなプロセッサの算出に多くのコストが消耗される。最近の研究によれば、スーパーコンピュータで数日又は何週の間に学習された百万の人工ニューロンが使用された。順次的な方法を通した学習で全ての人工ニューロンは、新しい入力サンプルによって常にアップデートされることから、ネットワークの複雑性によりコンピューティングリソースの消耗が増加するしかない。以下で詳細に説明するが、実施形態は、入力サンプルに基づいてイベントベースで動作することでネットワークの出力を算出するために用いられるコンピューティングリソースを大きく減少させ得る。
ニューラルネットワーク100でそれぞれの集合110~150は人工ニューロンを含み、それぞれの集合110~150に含まれた人工ニューロンは他の人工ニューロンと接続される。前記他の人工ニューロンは、前記人工ニューロンのような集合に位置してもよいし、あるいは他の集合に位置してもよい。集合110~150はレイヤであってもよく、集合110~150はレイヤ110~150のように称される。この場合、ニューラルネットワーク100は、人工ニューロンを含む連続的なレイヤ110~150を含み得る。したがって、ニューラルネットワーク100は、マルチレイヤニューラルネットワークに当該する。
図1は、説明の便宜のために5個のレイヤ110~150を図示しているが、ニューラルネットワーク100は様々な数のレイヤを含んでもよい。レイヤ110は入力レイヤを示し、レイヤ120~140は中間レイヤ又は隠れレイヤを示し、レイヤ150は出力レイヤを示す。出力レイヤを除いたレイヤ110~140に含まれた人工ニューロンは、次のレイヤの人工ニューロンに出力信号を送信するためのリンクによって接続される。リンクの数は、次のレイヤに含まれた人工ニューロン数に対応する。このようなリンクはシナプスに称される。
ニューラルネットワーク100は、フィードフォワードネットワークである。ニューラルネットワーク100に含まれたそれぞれの人工ニューロンは、ニューラルネットワーク100が完全接続ネットワークを形成するよう、次のレイヤの全ての人工ニューロンに接続され、畳み込みネットワークのように制限された空間的接続の可能性を有する。
ニューラルネットワーク100に含まれたそれぞれの人工ニューロンは、以前レイヤに含まれた人工ニューロンの入力x_iに関する1次結合を算出する。入力x_iはシナプスの加重値w_iと乗算される。加重された入力は、互いに足し算され、加重された入力の和(y)を数式(1)のように示す。
Figure 0007037143000001
加重された入力の和yは、活性関数(activation function;f)に入力される。例えば、活性関数fはReLU(rectified linear unit)、シグモイド(sigmoid)及び双曲線正接(hyperbolic tangent)のいずれか1つである。活性関数fは人工ニューロンの出力oを数式(2)により算出する。
Figure 0007037143000002
以下、人工ニューロン105を基準としてニューラルネットワーク100の動作を説明するが、人工ニューロン105に関する説明は、残りの人工ニューロンにも適用され得る。以下で人工ニューロン105の以前レイヤはレイヤ120を称し、人工ニューロン105の次のレイヤはレイヤ140を称する。人工ニューロン105とレイヤ120に含まれた人工ニューロンの間のリンクは、人工ニューロン105の入力シナプスに称し、人工ニューロン105とレイヤ140に含まれた人工ニューロンの間のリンクは人工ニューロン105の出力シナプスに称する。
一側面によれば、人工ニューロン105の活性化(activation)が予め決定された量だけ変化するとき、人工ニューロン105は新しいイベントの発生を決定する。活性化は、人工ニューロン105の入力シナプスによって受信される入力と人工ニューロン105のために実現された活性関数に基づいて算出される。
一実施形態に係るニューラルネットワーク100は、動的演算網(dynamic computation net:DCN)のように称される。以下で詳細に説明するが、DCNは人工ニューラルネットワーク(artificial neural network:ANN)あるいはスパイキングニューラルネットワーク(spiking neural network:SNN)などの様々な類型のニューラルネットワーク100に適用され得る。ニューラルネットワーク100がスパイキングニューラルネットワークである場合、人工ニューロン105の活性化は人工ニューロン105の膜電位であり得る。
人工ニューロン105は、新しいイベントの発生により出力シナプスに新しいイベントに対応する出力信号を送信する。新しいイベントは、活性化の変化量と閾値の交差により発生する可能性がある。ここで、「活性化の変化量と閾値の交差」は、活性化の変化量が閾値の絶対値よりも大きい場合を示す。出力信号は、出力シナプスの加重値と乗算され、次のレイヤの人工ニューロンは人工ニューロン105の加重された出力信号を受信する。
一実施形態によれば、出力信号は、活性化の変化量と閾値の交差方向を示す符号ビットを含む。イベント発生時に単一符号ビットを出力する人工ニューロンを含むニューロンネットワークは、基本DCN(basic DCN)に称される。この場合、次のレイヤの人工ニューロンに人工ニューロン105の閾値が共に送信されてもよい。一実施形態によれば、複数の人工ニューロンは同一の閾値を共有する。例えば、同一のレイヤに属する人工ニューロンは互いに同一の閾値を有する。この場合、次のレイヤの人工ニューロンは、以前レイヤの人工ニューロンの間に共有される閾値を受信することで、閾値送信による負荷が減少される。次のレイヤの人工ニューロンは、受信した符号ビット及び閾値に基づいて自身の活性化を決定する。人工ニューロン105は、出力信号を次のレイヤに送信した後に自身の閾値又は自身が属するレイヤ内で共有される閾値をアップデートし得る。他の例として、レイヤ以外に予め決定されたグループごとに閾値が個別に設定されてもよいし、あるいは、個別に人工ニューロンごとに閾値が個別に設定されてもよい。更なる例として、ニューロンネットワーク全体が同じ閾値を用いてもよい。
他の実施形態によれば、出力信号は、予め決定されたビットの精密度で近似化された活性化の変化量を含む。イベント発生時に予め決定されたビットの精密度で近似化された活性化の変化量を出力するニューロンネットワークは、アナログ-送信DCN(analog-transmission DCN)に称される。近似化された活性化の変化量は、連続的な値を表現する。この場合、出力信号の送信のためにより多くのビットが要求されるが、符号ビットで活性化の変化量を示すことに比べて、次のレイヤに含まれた人工ニューロンの活性化が相対的に正確に算出される。次のレイヤの人工ニューロンは、受信した活性化の変化量を用いて自身の活性化を決定することができるため、人工ニューロン105の閾値は送信されない。
人工ニューロン105は、出力信号を次のレイヤに送信した後自身の閾値をアップデートする。アナログ-送信DCNの場合、活性化の変化量が送信されるものであって、全ての人工ニューロンは自身の閾値を有することができ、それぞれの人工ニューロンは、制限されたバス容量のような可用リソース又は活性化に関する関数により自身の閾値を動的に変更できる。
また、基本DCNの場合、符号ビットに制限された出力信号では閾値より極めて大きい活性化の変化量が正確に伝達することが難い。一方、アナログ-送信DCNの人工ニューロン105は、複数のバイナリイベントを送信する代わりに、活性化の変化量を正確に示す単一イベントを送信可能にする。そのため、アナログ-送信DCNでは、スロープ過負荷(slope-overload)の問題が解決される。
上述した実施形態において、人工ニューロンの閾値は新しいイベントの発生によりアップデートされる。閾値は、固定された間隔、ログ間隔、桁数などの様々な方式で調整される。例えば、活性化が閾値に比べて極めて大きく変化する場合、閾値も活性化の変化に適するように調整する必要がある。活性化が149から150に変わることは、0から1に変わることに比べてその意味が大きくないからである。この場合、閾値がログ間隔で調整されることで、すでに極めて大きい活性化を有する人工ニューロンが活性化の変化量が十分に大きい場合に限って、イベントを発生させることができる。閾値がログ間隔に調整されるニューロンネットワークは、ログ-間隔閾値DCN(log-stepped threshold DCN)のように称される。ログ-間隔閾値DCNに含まれた人工ニューロンは、基本DCN方式で動作してもよいし、あるいは、アナログ-送信DCN方式で動作してもよい。
他の一側面によれば、人工ニューロン105は、自身の活性化によって予め決定されたk個のクラスタのいずれか1つに分類され、自身が属するクラスタの変更によりイベントの発生を決定する。ここで、kは自然数である。例えば、人工ニューロン105の以前の活性化によって人工ニューロン105が第1クラスタに属するが、人工ニューロン105の現在の活性化によって人工ニューロン105が第2クラスタに属する場合、人工ニューロン105はイベントの発生を決定し得る。
人工ニューロン105は、イベントの発生により出力信号を出力シナプスに送信する。この場合、出力信号は、クラスタの変化方向及びクラスタの変化量のうち少なくとも1つを示す少なくとも1つの変更ビットを含み得る。例えば、人工ニューロン105が属するクラスタが上位クラスタに変更された場合、人工ニューロン105は、正のビットである+1を送信し、人工ニューロン105が属するクラスタが下位クラスタに変更された場合、人工ニューロン105は負のビットである-1を送信する。クラスタが2つのレベル以上に変わったことを示すために、変更ビットは2ビット以上である。イベント発生時にクラスタの変化方向及びクラスタの変化量のうち少なくとも1つを示す少なくとも1つの変更ビットを出力する人工ニューロンを含むニューロンネットワークは、K-レベルDCN(K-level DCN)のように称される。
人工ニューロン105は、入力信号をデコーディングするデコーダ、出力信号を生成するエンコーダ、及び出力信号を送信する送信機を含む。エンコーダは、イベントの発生によりイベントに対応する出力信号を生成する。例えば、出力信号は、符号ビット、近似化された活性化の変化量又は変更ビットを含む。基本DCNの場合、送信機は符号ビットと共に閾値を送信する。デコーダ、エンコーダ、及び送信機は、少なくとも1つのプロセッサハードウェアモジュール又は少なくとも1つのソフトウェアモジュールに実現できる。
ニューラルネットワーク100は、ニューラルネットワーク100の設定値が固定された静的設定(static configuration)又はニューラルネットワーク100の設定値が動的に変更される動的設定(dynamic configuration)により動作する。設定値は、閾値及びビットの精密度を含む。動的設定における設定値は周期的に変更されたり、予め決定された条件が満足する場合に変更されたり、あるいはリクエストに応じて変更される。例えば、閾値は、単位時間の間に発生するイベントの数に応じて調整される。より具体的に、単位時間の間に発生するイベントの数が予め決定された第1閾値を超過するとき、イベントを減少させるために閾値が増加し得る。また、単位時間の間に発生するイベントの数が予め決定された第2閾値未満であるとき、イベントを増加させるために閾値が減少し得る。ここで、第1閾値は、第2閾値よりも大きくてもよい。
設定値の動的な変更は、実際の実現においてハードウェアリソースの最適化に役に立つ。例えば、設定値は、要求正確度及び可用リソースのうち少なくとも1つにより調整される。具体的に、検出に要求される正確度に比べて、リソースの消耗や遅延を減少させることに優先順位が付与された場合、優先順位に適するようにビットの精密度が減少又は増加してもよい。モバイル電子機器で、命令のシーケンスを開始する核心キーワードを検出するために要求正確度が低く設定されてもよく、このような核心キーワードの検出によって高い正確度で連続的な単語が検出され得る。核心キーワード以外の残りのキーワードについては、要求正確度が低く設定されてもよい。
ニューラルネットワーク100の人工ニューロンは、自身の状態を格納することによって、ステートフル(stateful)動作を行う。より具体的に、人工ニューロンは活性化の変化量を算出するために、イベントが発生した時点の活性化を格納する。以下で詳細に説明するが、活性化の変化量は、現在の活性化及び以前に発生したイベントに対応する活性化に基づいて決定される。この場合、以前に発生したイベントに対応する活性化が格納されなければ、活性化の変化量を算出することができない。伝統的なフィードフォワードネットワークの人工ニューロンは、状態を格納せずにステートレス(stateless)動作を行い、全ての人工ニューロンの状態は新しい入力サンプルから再び設定される。ニューラルネットワーク100はイベントの発生により部分的にアップデートされるため、全ての入力サンプルごとに全てのネットワークをアップデートすることに比べて、多くの量の演算が節減される。
具体的に、ニューラルネットワークを動作させるための算出に関するコストは、ニューラルネットワークのアーキテクチャー及びニューラルネットワークに必要なビットの精密度に依存的である。ネットワークのアーキテクチャーは、人工ニューロンのモデル、レイヤ数、レイヤごとのニューロン数、及びレイヤごとのシナプス数などによって決定される。ネットワークパラメータの算出のためのコストに関し、2-レイヤの完全接続ネットワークの順次的なアップデートを例示的に説明する。
最初のレイヤがN個の人工ニューロンを含み、2番目レイヤがM個の人工ニューロンを含み、bビットの精密度が利用され、ニューロン動作の複雑性がcであると仮定すると、完全接続ネットワークの順次的なアップデートのためには、ステップごとにN×M×b×cビットの動作が算出のためのコストとなる。この場合、人工ニューロンの入力が変わらないか、0に留まるような状況で動作のうちいずれか1つが活性化されなければ、算出のためのコストは減少する。
αが算出を活性化する入力の比率であれば、ニューラルネットワーク100はステップごとにN×M×b×c×αの動作を行うことになる。α=1である場合、N×M×b×cの動作が実行される。α=0である場合、0の動作が実行される。また、ニューラルネットワーク100ではbを小さい値に設定することで、算出に関するコストが減少され得る。b=1である場合、ニューラルネットワーク100は、バイナリ-値の連結として動作する。ネットワークの正確度及びビットの精密度間にはトレードオフ関係があるが、ネットワークの正確度及びビットの精密度を全て満たす適切なbが選択されてもよい。一方、リアルタイムアプリケーションは頻繁にフレームごとの変化の小さい入力を受信する。例えば、入力映像の連続したフレーム間には同じピクセルが複数含まれてもよい。そのため、重複的な算出が行われることがある。ニューラルネットワーク100はこのような重複的な算出を減少させることができる。
ニューラルネットワーク100は人工ニューロンが出力信号を送信するとき、全ての人工ニューロンの状態をリフレッシュする喚起モードとして動作する。喚起モードは、雑音によって引き起こされる活性化のエラーが蓄積されることを回避するために使用される。喚起モードは、ニューラルネットワーク100の入力が、全てのチャネルの周期的な全体情報(例えば、イメージのようなフレーム化された入力)とフレーム間の特定チャネルのアップデートイベントの混合であるとき、情報を十分処理するために適する。一般モードではイベントによる動作が出力信号の送信に応じて終了することに比べて、喚起モードでは、フレーム化された入力が全て処理される。喚起モードによる動作は周期的に処理されてもよいし、或いは、リクエストによって処理されてもよい。
例えば、人工ニューロンは、予め決定された動作モード(例えば、喚起モード)を指示する制御信号を受信し得る。この場合、人工ニューロンは入力シナプスによって動作モードに対応してフレーム化された入力信号を受信する。人工ニューロンは、フレーム化された入力信号に基づいて自身の状態(例えば、活性化など)を決定できる。
図2は、人工ニューロンの入力及び出力例示を示す図である。図2を参照すると、以前レイヤ210の人工ニューロン、人工ニューロン225、及び次のレイヤ230の人工ニューロンが図示されている。
人工ニューロン225は、人工ニューロン225の以前の活性化v_p及び入力信号i1、i2、i3に基づいて、人工ニューロン225の現在の活性化v_cを決定する。人工ニューロン225は、数式(3)を用いて現在の活性化v_cを決定する。
Figure 0007037143000003
数式(3)において、v_cは現在の活性化を示し、fは活性関数を示し、v_pは以前の活性化を示し、iは入力信号の和を示し、φは人工ニューロンのパラメータを示す。人工ニューロンのパラメータは、人工ニューロンのバイアス及び人工ニューロンの状態を含む。入力信号の和iは、入力信号i1、i2、i3の和によって決定される。入力信号i1、i2、i3は、以前レイヤ210の人工ニューロンの出力信号及び人工ニューロン225の入力シナプスの加重値の間の積に基づいて決定される。現在の活性化v_cが決定された後、人工ニューロン225は現在の活性化v_cを格納する。
人工ニューロン225は、現在の活性化v_c及び人工ニューロン225によって以前に発生したイベントE_Pに対応する活性化v_eに基づいて、活性化の変化量△vを決定する。人工ニューロン225は、現在の活性化v_cから活性化v_eを差し引いた値を活性化の変化量△vとして決定する。
人工ニューロン225は、活性化の変化量△v及び閾値VTに基づいて、新しいイベントE_Nの発生の有無を決定する。具体的に、人工ニューロン225は、活性化の変化量△vと閾値VTの交差により新しいイベントE_Nの発生を決定する。閾値VTは、増加方向の第1閾値及び減少方向の第2閾値を含む。したがって、第1閾値は第2閾値よりも大きくてもよい。この場合、活性化の変化量△vが第1閾値を超過し、活性化の変化量△vが第1閾値未満に減少することにより、人工ニューロン225は新しいイベントE_Nの発生を決定できる。
人工ニューロン225は、新しいイベントE_Nの発生により出力シナプスに新しいイベントE_Nに対応する出力信号oを送信する。出力信号oは、出力シナプスの加重値w1、w2、w3と乗算される。したがって、次のレイヤ230に含まれた人工ニューロンは人工ニューロン225と接続された出力シナプスの加重値により互いに異なる入力信号を受信できる。
上述したように、一実施形態によれば、基本DCNで出力信号oは活性化の変化量△vと閾値VTの交差方向を示す符号ビットを含む。例えば、活性化の変化量△vが第1閾値を超過する場合、人工ニューロン225は、次のレイヤ230に含まれた人工ニューロンに単一の正のビットである+1を送信する。また、活性化の変化量△vが第2閾値未満に減少する場合、人工ニューロン225は、次のレイヤ230に含まれた人工ニューロンに単一の負のビットである-1を送信する。この場合、出力シナプスによって次のレイヤ230の人工ニューロンに閾値VTが共に送信され、次のレイヤ230の人工ニューロンは、人工ニューロン225から受信した符号ビット及び閾値VTに基づいて自身の活性化を決定できる。
他の実施形態によれば、アナログ-送信DCNで人工ニューロン225は活性化の変化量△vを予め決定されたビットの精密度で近似化し、出力信号oは近似化された活性化の変化量v_aを含む。例えば、活性化の変化量△vが第1閾値を超過し、第2閾値未満に減少するとき、人工ニューロン225は16ビットで近似化された活性化の変化量v_aを次のレイヤ230に含まれた人工ニューロンに送信する。この場合、次のレイヤ230の人工ニューロンは、人工ニューロン225から受信した近似化された活性化の変化量v_aを用いて自身の活性化を決定できるため、閾値VTは送信されない。
人工ニューロン225は、出力信号oを次のレイヤ230の人工ニューロンに送信した後に閾値VTをアップデートする。人工ニューロン225は、新しいイベントE_Nを発生させた現在の活性化v_cに基づいて閾値VTをアップデートする。例えば、人工ニューロン225は、現在の活性化v_cと類似の値で閾値VTをアップデートする。又は、人工ニューロン225は、固定間隔、ログ間隔、又は、桁数などの様々な方式により閾値を調整し得る。閾値の調整に関しては後で詳細に説明する。
図3は、一実施形態に係るイベント決定及び出力信号を示す図である。図3を参照すると、基本DNCで時間による人工ニューロンの活性化及びイベントによる出力信号が図示されている。
時間t1において、活性化の変化量が閾値VT1を超過することにより、イベントE1が発生する。cの変化量が増加方向の第1閾値VT1を超過したため、出力信号oとして+1を指示する単一ビット(例えば、「真」の論理値を有する信号)が送信される。出力信号oが送信された後、閾値VT1はそのまま保持され、閾値VT2にアップデートされる。
時間t2及び時間t3で活性化の変化量が閾値VT2及び閾値VT3を超過することにより、イベントE2及びイベントE3が発生する。ここで、出力信号oとして+1を指示する単一ビットが送信される。時間t2の後に閾値VT2はそのまま保持されたり閾値VT3にアップデートされ、時間t3の後に閾値VT3はそのまま保持されたり閾値V4にアップデートされる。
時間t4で活性化の変化量が閾値V4未満に減少することにより、イベントE4が発生する。活性化の変化量が減少方向の第2閾値V4未満に減少したため、出力信号oとして-1を指示する単一ビット(例えば、「偽」の論理値を有する信号)が送信される。出力信号oが送信された後、閾値V4はそのまま保持され、閾値VT5にアップデートされる。
説明の便宜のために、図3に示す例示として、閾値はアップデートされることなく保持されているが、上述したようにイベントの発生に反応して閾値がアップデートされることができる。
図4は、他の実施形態に係るイベント決定及び出力信号を示す図である。図4を参照すると、アナログ送信DCNで時間による人工ニューロンの活性化及びイベントによる出力信号が図示されている。
時間t1で活性化の変化量が閾値VT1を超過することにより、イベントE1が発生する。人工ニューロンは、活性化の変化量+1を予め決定されたビットの精密度で近似化する。人工ニューロンは、近似化された活性化の変化量+1を出力信号oとして送信する。出力信号oが送信された後、閾値VT1はそのまま保持され、閾値VT2にアップデートされる。
時間t2で活性化の変化量が閾値VT2を超過することにより、イベントE2が発生する。人工ニューロン、は活性化の変化量+4.2を予め決定されたビットの精密度で近似化する。人工ニューロンは、近似化された活性化の変化量+4.2を出力信号oとして送信する。出力信号oが送信された後、閾値VT2はそのまま保持され、閾値VT3にアップデートされる。
時間t3で活性化の変化量が閾値VT3未満に減少することにより、イベントE3が発生する。人工ニューロンは、活性化の変化量-1を予め決定されたビットの精密度で近似化する。人工ニューロンは、近似化された活性化の変化量-1を出力信号oとして送信する。出力信号oが送信された後、閾値VT3はそのまま保持され、閾値V4にアップデートされる。
説明の便宜のために、図4に示す例示で、閾値はアップデートされずに保持されているが、上述するようにイベントの発生に反応して閾値がアップデートされることができる。
図5は、一実施形態に係る閾値の調整を示す図である。図5を参照すると、ログ-間隔閾値DCNで時間による人工ニューロンの活性化及びイベントによる出力信号が図示されている。
時間t1で活性化の変化量が閾値VT1を超過することにより、イベントE1が発生する。活性化の変化量が増加方向の第1閾値VT1を超過したため、人工ニューロンは、出力信号oとして+1を指示する単一ビットを送信する。又は、人工ニューロンは、活性化の変化量+1を予め決定されたビットの精密度で近似化する。この場合、人工ニューロンは、近似化された活性化の変化量+1を出力信号oとして送信する。
出力信号oが送信された後、閾値VT1は閾値VT2にアップデートされる。例えば、閾値VT2は、ログ間隔により閾値VT1の2倍に設定される。図5で、閾値VT1は1であり、閾値VT2は2である。
時間t2で活性化の変化量が閾値VT2を超過することにより、イベントE2が発生する。活性化の変化量が増加方向の第1閾値VT1を超過したため、人工ニューロンは出力信号oとして+1を指示する単一ビットを送信する。又は、人工ニューロンは、活性化の変化量+2を予め決定されたビットの精密度で近似化し、近似化された活性化の変化量+2を出力信号oとして送信する。
出力信号oが送信された後、閾値VT2は閾値VT3にアップデートされる。例えば、閾値VT3は、ログ間隔により閾値VT2の2倍に設定される。図5で、閾値VT3は4である。活性化の増加により閾値も増加することで、より大きい変化量でイベントが発生する可能性がある。活性化の絶対量に比べて相対的に小さい変化量はその意味が大きくないため、閾値の調整により意味のないイベントの発生を抑制できる。
図6は、一実施形態に係るクラスタの変更を示す図である。図6を参照すると、クラスタ610~630が図示されている。
上述したように、人工ニューロン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を送信する。
クラスタ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を境界にする範囲を有する。
出力信号oは、クラスタの変化方向及びクラスタの変化量のうち少なくとも1つを示す少なくとも1つの変更ビットを含む。例えば、人工ニューロンNが属するクラスタが上位クラスタに変更された場合、人工ニューロンは+1を指示する変更ビットを送信し得る。上述した例示によって、クラスタ610はクラスタ620の上位クラスタに当該し、クラスタ630はクラスタ610の上位クラスタに該当する。また、クラスタ630は、クラスタ620の2つのレベルの上位クラスタに該当する。クラスタが2つのレベル以上変わったものを示すため、変更ビットは2ビット以上であり得る。例えば、人工ニューロンNが属するクラスタが2つのレベルの下位クラスタに変更された場合、人工ニューロンは-2を指示する変更ビットを送信する。
より具体的に、人工ニューロン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を指示する変更ビットを送信する。
上述したように、一実施形態によれば、DCNはANNあるいはSNNに適用される。以下では図7~図9を参照してDCNがANNの一種であるRNN(recurrent neural network)に適用される実施形態について説明する。以下の説明はDCNの適用範囲を制限するものではなく、DCNは以下の説明とは異なってRNN以外のANN、あるいはSNNに適用され得る。
下記の実施形態は、デルタネットワークと呼ばれるRNNアーキテクチャーを提案する。デルタネットワークは、上述したDCNに対応する。デルタネットワークでそれぞれのニューロンは、自身の活性化の変化が閾値を超過する時のみに値を出力する。
ビッグデータセットを処理する能力、例えば、GPUのようなコンピュータリソース及びトレーニングアルゴリズムの大きい向上のような因子の結合によって、一時的なシーケンスの処理にRNNを用いてもよい。例えば、RNNを用いて自然語処理、音声認識、及び構造化された予測のための注意(attention)に基づくモデルのようなアプリケーションが実現される。RNNはメモリを装着し、LSTM(long short term memory)のようなゲーティングユニット(gating unit)を用いる。ゲート化されたリカレントユニット(gated recurrent unit:GRU)はRNNのトレーニング過程を大きく向上させることができる。しかし、RNNは、ニューロン活性化をアップデートするためにマトリックス演算に大きく依存することから、RNNを駆動するためには多くのリソースが要求される。
実施形態によれば、RNNを駆動するためのリソースを減少させるために、入力ストリームの特性及び入力ストリームに関する神経表現(neural representation)の特性を用いることができる。ここで、神経表現は前述したニューロンの活性化に対応する。
一般的に、ニューラルネットワークへの入力は時間的自己相関(temporal autocorrelation)が高いレベルを有する。入力が時間に応じて徐々に変化する場合、時間的自己相関が高いものと見なす。例えば、フレーム間の変化が少ないビデオ映像の場合、時間的自己相関が高く現れる。ニューラルネットワークが、時間的自己相関が高いレベルの入力を処理する場合、ニューラルネットワークの状態は徐々に変わる活性化を生成し得る。
図7は、標準ビデオデータセットを処理する標準畳み込みネットワーク(standard convolutional network)の特性を示す図である。図7を参照すると、標準ビデオデータセットを処理する標準畳み込みネットワークの状態は徐々に変わる活性化を生成する。図7において、時間(又は、フレーム)の流れによる活性化は極めてリダンダント(highly redundant)である。
例えば、時間の流れに応じて活性化は変わらない。図7は、場面認識のためのクリップで上位1000個のフレームが標準畳み込みネットワークに印加されるとき、トップレベル特徴ベクトルレイヤの任意の上位50個の特徴が時間の流れに応じてプロットされた結果である。図7において、でピークは時間の経過に応じて相対的に一定に保持される傾向があり、時間に応じてランダムの活性化が現れることよりも、活性化に一貫性を表す。
図8は、時間の経過によるRNN活性化の安定性を示す図である。図8には数字認識データセットが適用されたRNNの活性化特性が示されている。より具体的に、図8に示す上の図面は、音声数字に対するMFCC(mel-frequency cepstral coefficients)特徴を示す。図8に示す下の図面はMFCC特徴に対する応答として、神経ネットワークの活性化を示す。
図8を参照すると、神経入力を処理するリカレントニューラルネットワークの算出でも徐々に変わる活性化特徴を示す。例えば、入力において長くて安定の表現が存在すれば、時間の経過による活性化に変化が徐々に発生し、時間の流れに応じて活性化に高いレベルの安定性を表す。
<デルタネットワークの概念>
デルタネットワークの目的は、加重値マトリックス(weight matrix)及び状態ベクトル(state vector)のように密集したマトリックス-ベクトルの積を完全和(full addition)と結合した希少マトリックス-ベクトルの積に変換したものである。この変換によって、メモリアクセス及び演算が減少し得る。この変換を示すためにマトリックス-ベクトルの積が数式(4)のように定義される。
Figure 0007037143000004
数式(4)において、rはリカレントニューラルネットワークのパラメータのうちリセットゲートの値を示す。以下ではデルタネットワークの概念についてrを参照して説明するが、以下の説明は、リカレントニューラルネットワークの他のパラメータにも適用され得る。数式(4)によりサイズn×nのマトリックスW及びサイズnのベクトルxが算出されるため、n2回の演算が使用され、n2+n回の読み出し動作が実行され、n回の書き込み動作が実行される。長い入力ベクトルシーケンスxtのために複数のマトリックス-ベクトルの積が考慮される。ここで、tは1、2、...、nである。複数のマトリックス-ベクトルの積は数式(5)により回帰的に算出される。
Figure 0007037143000005
数式(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個の値を格納することに基づいて決定される。
xに小さい変化がある場合であっても算出コストが節約されるという点について明確にするため、閾値の使い方について説明する。実施形態に係る算出コストは数式(6)のように示すことができる。
Figure 0007037143000006
また、メモリコストは数式(7)のように示すことができる。
Figure 0007037143000007
占有率が10%であれば、数式(7)によってCdense/Csparce≒n2/0.1n2≒10xである。したがって、演算速度が10倍増加する。
Δ=xt-xt-1によって算出される0の数により速度増加が与えられる。実際に、速度増加はデータストリームによって決定される。例えば、速度増加はxt及びxt-1間にどれほどの多い値が同一に留まるかによって決定される。RNNの入力、中間活性化値、及び出力を示すベクトルxがタイムステップごとに徐々に変わる場合、入力値xt及びxt-1は極めてリダンダントになり、低い占有率s及びこれに対応する増加した速度増加が行われ得る。
<デルタネットワークGRUs>
GRUにおいて、デルタネットワーク演算に代替されるマトリックス-ベクトルの積演算が数回発生してもよい。以下ではデルタネットワークがGRUに適用される場合をRNNに関する実施形態として説明するが、デルタネットワークはLSTMのような他の方式のRNNにも適用され得る。数式(8)はGRUのパラメータを示す。具体的に、数式(8)でrはリセットゲート値を示し、zはアップデートゲート値を示し、cは出力隠れ状態ベクトルを示し、hはアップデートされた隠れ状態ベクトルを示す。また、数式(8)において、太く表示された部分はマトリックス-ベクトルの積演算を示す。数式(8)でW及びxは任意に前置される。
Figure 0007037143000008
数式(8)において、Wxr、Wxu、Wxcはそれぞれ入力ベクトルxのための加重値を示し、Whr、Whu、Whcはそれぞれ隠れ状態ベクトルhのための加重値を示す。以下で、Wxr、Wxu、WxcはWxとして代表され、Whr、Whu、WhcはWhとして代表される。tはタイムスタンプを示す。数式(8)において、太く表示された部分は数式(5)で定義されたデルタアップデートに代替されてもよく、これは数式(9)のように示すことができる。
Figure 0007037143000009
数式(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が決定される。
数式(9)において、zxr、zxu、zxc、zhr、zhu、zhcは入力又は隠れ状態のための以前の算出の格納された結果として回帰的に定義される。例えば、zxrは数式(10)のように示すことができる。
Figure 0007037143000010
数式(10)による演算はzxu、zxc、zhr、zhu、zhcに類似に適用され得る。x0での初期条件はz0:=0である。また、上述した数式に示すように、格納された完全-ランク(full-rank)以前-活性化(pre-activation)状態及びバイアスを含む、複数の追加的なタームが1つの値に併合され得る。併合された1つの値は、ゲートタイプごとに単なる1つあるいは2つの格納されたベクトル値に示される。例えば、格納されたベクトル値は数式(11)のように示すことができる。
Figure 0007037143000011
最終的に、上述した初期状態の条件により、格納された値Mは補正されたバイアスに初期化される。例えば、Mr、0=br、Mu、0=bu、Mxc、0=bc、andMhr、0=0であり、これによってデルタネットワークGRUのために数式(12)が定義される。
Figure 0007037143000012
<デルタネットワークでの近似算出>
上述した数式は、ネットワークで最初の算出としての正確に同じ答を与えるために設計される。例えば、t-1における入力ベクトル及びtにおける入力ベクトル間の差が予め決定された閾値よりも大きい場合、t-1における入力ベクトル及びtにおける入力ベクトル間の差が入力デルタベクトルに決定され、t-1における入力ベクトル及びtにおける入力ベクトル間の差が予め決定された閾値よりも小さい場合、ゼロベクトルが入力デルタベクトルに決定される。隠れ状態デルタベクトルも同じ方式で決定される。
上述した数式によって応用的なアクセスが可能である。例えば、活性化の変化が0である場合、ベクトル-積演算が省略される代わりに、活性化の変化が任意の閾値Θよりも小さい場合にベクトル-積演算が省略される。ここで、活性化の変化は前述したデルタベクトルに対応する。これは正確に同じ結果を生成することはないものの、近似的に正確な結果を生成することができる。
図9は、デルタネットワークを介して取得された算出結果を示す。図9において、0ではない値は黒色に表示される。デルタベクトルの加重値行列及び希少性によって、希少性の効果を把握することができる。図9に示す実施形態において、デルタベクトルが約20%の占有率を有すれば、加重値行列の約20%だけ引き出される。加重値行列が20%の占有率を有することをさらに考慮すれば、本来の加重値行列の4%だけ実際の算出に使用されることが明らかになる。
0ではない閾値が用いられる場合、様々なタイムステップの間にエラーが蓄積される。例えば、入力値xtがタイムステップごとの間にほとんどΘだけ増加する場合、活性化の重大な変化が蓄積されるにも関わらず、変化が発生しないことがある。したがって、以前のタイムステップのメモリは、単に最近タイプステップからの差を格納することではなく、閾値を上回る変化を引き起こす最近値を格納するよう設定される。このような動作は数式(13)のように定義される。
Figure 0007037143000013
数式(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に決定される。
言い換えれば、入力デルタベクトルΔxi,tを算出するとき、入力xi,tの現在の値及びデルタベクトルx^i,t-1の最近値の間の差を用いることができる。ここで、iは時間tでベクトルの成分を示し、x^i,t-1は0ではない値を有する。また、デルタ変化が所定の閾値Θ未満であれば、デルタ変化は0に設定され、十分に大きい変化が0ではないアップデートを生成するとき矯正される小さい近似誤差を生成する。同様に、数式(13)によって隠れ状態デルタベクトルΔhi、tを求めることができる。
以下、デルタネットワークモデルを算出するトレーニング方法及び最適化方式を説明する。トレーニング過程に制約条件を追加すれば、強力で加速化されるデルタネットワークが算出される。制約条件については後述する。
<トレーニング方法>
a)四捨五入(rounding)ネットワークの活性化:上述した閾値デルタネットワークの算出は、部分的に算出された状態の四捨五入に類似の機能を行う。Δタームは小さい差として0に設定されるが、大きい差でネットワークはアップデートされてもよい。トレーニング過程で四捨五入を行う場合に発生し得る小さい四捨五入エラー(small rounding error)に対し、ネットワークを強化する様々な方法が考えられる。より正確性を高めるために、活性化四捨五入を行うこともある。この場合、ネットワークが確実に訓練され得るため、このような小さい四捨五入エラーに堅固である。また、低い精密度算出は電力消費をより減少させ得る。
言い換えれば、m個の整数ビット及びf個の分数ビットを有する符号がある固定小数点形式Qm.fの低解像度パラメータθLは決定性及び傾き-保存型ラウンディング(gradient-preserving rounding)を使用して高解像度パラメータθから生成される。低解像度パラメータθLは数式(14)のように示すことができる。
Figure 0007037143000014
数式(14)において、θLは[-2m+f-1、2m+f-1]の範囲でクリッピングされた(clipped)2f・θと数式(15)のような四捨五入関数によって求められる。
Figure 0007037143000015
数式(15)において、∇は傾き演算子を示す。フォワードパスで、低解像度パラメータθLはより低い精密度の影響を考慮する出力を生成するため用いられ、小さい傾きのアップデートは高解像度パラメータθで時間によって累積される。訓練が終了すれば、θは捨てられてθLが用いられる。シミュレーション結果のパラメータが活性化される。
b)ネットワーク活性化にガウスノイズを追加:一応閾値が導入されれば、ネットワークは小さい変化の非伝番(non-propagation)に堅固すべきであり、大きい変化は重く考慮しなければならない。小さい変化に対して堅固性を提供する他の方法は、閾値デルタ活性化を有する全ての位置にガウスノイズを追加することにある。ガウスノイズは数式(16)のように追加される。
Figure 0007037143000016
数式(16)において、η~N(μ、σ)はそれぞれのη∈{ηxr、ηhr、ηxu、ηhu、ηxc、ηhc}及び各ベクトルの各構成要素に対して平均μと分散σを有するガウス分布からサンプルηのベクトルを決定することを意味する。典型的に、値μは0に設定されて期待値がバイアスされないようにする。例えば、E[xt+ηxr]=E[xt]である。分散σはアップデートされないことによる一般的な四捨五入エラーを評価するよう設定される。
<デルタネットワークモデルでの直接算出>
ガウスノイズを追加する作業は、閾値デルタネットワークで行う切断作業とは依然として同一ではない。これを補完するために、モデルをデルタネットワークで直接にトレーニングすることができる。テストモデルで直接トレーニングすることで、ネットワークは、閾値デルタネットワークが一般的に作るエラータイプに対して堅固になる。
<希薄性コストに発生する活性化の変化>
ネットワークがデルタネットワークモデルを使用して訓練されることによって、コストはデルタ条件と関わり、かつ全体のコストに追加される。一括処理(batch)でΔhのためのL1標準(norm)は平均絶対値変化として算出され、L1標準は加重因子βによって調整される。希少コストLは、損失関数に加えて含まれてもよい。数式(17)は希少コストLを示す。
Figure 0007037143000017
ここで、L1標準はΔhの希少値を決定するために用いられることから、少ないデルタアップデートが求められる。実施形態によれば、訓練中にΔが最適化されないため、ΔxはL1のターゲットではない。したがって、関係式にΔxが含まれないことがある。
<最適化方法>
重さ希薄性(weight sparsity)の影響:トレーニング後に深層ネットワークの加重値行列で希薄性の量は算出コストの節減及び速度向上に影響を及す。トレーニングされた低い精密ネットワークで加重値行列の希薄性は極めて大きいことがある。0はデルタベクトルと倍数的に(multiplicatively)作用して必要な積-累積(multiply-accumulate)をはるかに少なく生成する。したがって、アップデート回数に対する加重値希薄性の影響を考慮することで、追加的な正確度が損失されることなく速度の向上を取得できる。
図10は、一実施形態に係る電子装置を示すブロック図である。図10を参照すると、電子装置1000はプロセッサ1010及びメモリ1020を含む。先に説明したニューラルネットワークは電子装置1000として実現される。
プロセッサ1010は、図1~図9によって上述した少なくとも1つの装置を含んでもよく、図1~図9によって上述した少なくとも1つの方法を行うことができる。例えば、プロセッサ1010は上述した人工ニューロンの動作を処理する。より具体的に、プロセッサ1010は、ニューラルネットワークに含まれたそれぞれのニューロンに関し、以前の活性化及び入力シナプスによって受信される入力信号に基づいて現在の活性化を決定するための動作、現在の活性化及び以前に発生したイベントに対応する活性化に基づいて活性化の変化量を決定するための動作、活性化の変化量及び閾値に基づいて新しいイベントの発生の有無を決定するための動作、新しいイベントの発生により出力シナプスに新しいイベントに対応する出力信号を送信するための動作を処理する。
メモリ1020は、コンピュータで読み出し可能な命令語を格納する。メモリ1020に格納された命令語がプロセッサ1010で実行されれば、プロセッサ1010は、上述した人工ニューロンの動作を処理する。また、メモリ1020は、上述したニューラルネットワークに関するデータを格納する。例えば、メモリ1020は、人工ニューロンの活性化及びシナプスの加重値などを格納する。メモリ1020は、揮発性メモリ又は不揮発性メモリであり得る。
プロセッサ1010はプログラムを実行し、電子装置1020を制御する。電子装置1020は、入出力装置(図示せず)によって外部装置(例えば、パーソナルコンピュータ又はネットワーク)に接続されてデータを交換する。電子装置1020は、携帯電話機、スマートフォン、PDA、タブレットコンピュータ、ラップトップコンピュータなどのモバイル装置、パーソナルコンピュータ、タブレットコンピュータ、ネットブックなどのコンピューティング装置、又は、テレビ、スマートテレビ、ゲート制御のためのセキュリティー装置などの電子製品などの様々な電子装置を含む。その他に、電子装置1000について上述した内容が適用され、より詳細な説明は省略する。
図11は、他の実施形態に係る電子装置を示す図である。図11を参照すると、電子装置1100は、人工ニューロンに対応するプロセッシングユニットを含む。
プロセッシングユニットは、上述したニューラルネットワークの人工ニューロンに一対一に対応する。プロセッシングユニットそれぞれは、自身と対応する人工ニューロンのための動作を処理し、自身と対応する人工ニューロンのためのデータを格納する。プロセッシングユニットは、互いにリンクによって接続される。リンクは、上述したシナプスに対応して特定のビット幅を有するように制限される。プロセッシングユニットのそれぞれは、コンピュータで読み出し可能な命令語を格納するメモリ及びプロセッサを含む。例えば、プロセッシングユニットそれぞれに含まれたプロセッサはA、LU(arithmetic logic unit)で実現できる。プロセッシングユニットそれぞれは、完全接続ネットワークのように他のレイヤの全てのプロセッシングユニットに接続され、畳み込みネットワークのように制限された空間の接続の可能性を有する。
メモリに格納された命令語がプロセッサで実行されれば、プロセッサは以前の活性化及び入力リンクによって受信される入力信号に基づいて現在の活性化を決定し、現在の活性化及び以前に発生したイベントに対応する活性化に基づいて活性化の変化量を決定し、活性化の変化量及び閾値に基づいて新しいイベントの発生の有無を決定し、新しいイベントの発生により出力リンクで新しいイベントに対応する出力信号を送信する。メモリは、自身と対応する人工ニューロンの現在の活性化を格納する。その他に、電子装置1100に関しては上述した内容が適用でき、より詳細な説明は省略する。
図12は、一実施形態に係る人工ニューロンの動作方法を示した動作フローチャートである。図12を参照すると、ステップS1210において、人工ニューロンは、人工ニューロンの以前の活性化及び人工ニューロンの入力シナプスによって受信される入力信号に基づいて人工ニューロンの現在の活性化を決定する。ステップS1220において、人工ニューロンは、現在の活性化及び人工ニューロンによって以前に発生したイベントに対応する活性化に基づいて活性化の変化量を決定する。ステップS1230において、人工ニューロンは、活性化の変化量及び閾値に基づいて、新しいイベントの発生の有無を決定する。ステップS1240において、人工ニューロンは、新しいイベントの発生により出力シナプスに新しいイベントに対応する出力信号を送信する。その他に、人工ニューロンの動作方法については上述した内容が適用され、より詳細な説明は省略する。
以上で説明した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現される。例えば、実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、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)のような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、又はこれらのうちの1つ以上の組合せを含み、希望通りに動作するように処理装置を構成し、独立的又は結合的に処理装置に命令する。ソフトウェア及び/又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するためのあらゆる類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、或いは送信される信号波を介して永久的又は一時的に具現化される。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散され、分散された方法で格納されるか又は実行される。ソフトウェア及びデータは1つ以上のコンピュータ読み取り可能な記録媒体に格納される。
本実施形態による方法は、多様なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明の動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
上述したように実施形態をたとえ限定された図面によって説明したが、当技の術分野で通常の知識を有する者であれば、前記に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順序で実行されたり、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組合わせられたり、他の構成要素又は均等物によって置き換えたり置換されても適切な結果を達成することができる。
100 ニューラルネットワーク
105 人工ニューロン
110 入力レイヤ
120~140 中間レイヤ又は隠れレイヤ
150 出力レイヤ

Claims (25)

  1. ニューラルネットワークを用いて実行される方法であって、
    人工ニューロンの以前の活性化及び前記人工ニューロンの入力シナプスによって受信される入力信号に基づいて、前記人工ニューロンの現在の活性化を決定するステップと、
    前記決定された現在の活性化及び前記人工ニューロンによって以前に発生したイベントに対応する第2活性化に基づいて、第1活性化の変化量を決定するステップと、
    前記決定された第1活性化の変化量及び第1閾値に基づいて、新しいイベントの発生の有無を決定するステップと、
    前記新しいイベントの発生に応答して出力シナプスに前記新しいイベントに対応する出力信号を送信するステップと、
    を含む方法。
  2. 前記新しいイベントは、前記決定された第1活性化の変化量が前記第1閾値を上回る又は下回ることにより発生する、請求項1に記載の方法。
  3. 前記出力信号は、前記決定された第1活性化の変化量と前記第1閾値の大小関係を示す符号ビットを含む、請求項1又は2に記載の方法。
  4. 前記入力シナプスによって接続された以前レイヤに対応する第2閾値を受信するステップをさらに含み、
    前記現在の活性化を決定するステップは、前記以前の活性化、前記入力信号、及び前記第2閾値に基づいて前記現在の活性化を決定するステップを含む、請求項1ないし3のうち何れか一項に記載の方法。
  5. 前記出力信号は、予め決定されたビットの精密度で近似化された前記決定された第1活性化の変化量を含む、請求項1ないし4のうち何れか一項に記載の方法。
  6. 前記ビットの精密度は、要求正確度及び可用リソースのうち少なくとも1つにより調整される、請求項5に記載の方法。
  7. 前記第1閾値は、単位時間の間に発生するイベントの数に応じて調整される、請求項1ないし6のうち何れか一項に記載の方法。
  8. 前記第1閾値は、前記単位時間の間に発生する前記イベントの数が予め決定された第3閾値を超過することにより増加し、前記単位時間の間に発生する前記イベントの数が予め決定された第4閾値未満であることにより減少し、前記第3閾値は前記第4閾値よりも大きい、請求項7に記載の方法。
  9. 前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第1閾値をアップデートするステップをさらに含む、請求項1ないし8のうち何れか一項に記載の方法。
  10. 前記第1閾値は、固定間隔、ログ間隔、又は、桁数に応じて調整される、請求項9に記載の方法。
  11. 前記決定された現在の活性化を格納するステップをさらに含む、請求項1ないし10のうち何れか一項に記載の方法。
  12. 予め決定された動作モードを指示する制御信号を受信するステップと、
    前記入力シナプスによって前記動作モードに対応してフレーム化された入力信号を受信するステップと、
    前記フレーム化された入力信号に基づいて前記現在の活性化を決定するステップと、
    をさらに含む、請求項1ないし11のうち何れか一項に記載の方法。
  13. 前記ニューラルネットワークは、人工ニューラルネットワーク、完全接続ネットワーク、深層畳み込みネットワーク、リカレントニューラルネットワーク、及びスパイキングニューラルネットワークのいずれか1つである、請求項1ないし12のうち何れか一項に記載の方法。
  14. 請求項1ないし請求項13のいずれか一項に記載の方法を電子装置のコンピュータに実行させるコンピュータプログラム。
  15. 人工ニューロンに対応するプロセッシングユニットを含む電子装置であって、
    前記プロセッシングユニットそれぞれは、コンピュータで読み込むことのできる命令語を格納するメモリ及びプロセッサを含み、
    前記命令語が前記プロセッサで実行されることにより、前記プロセッサは、以前の活性化及び入力リンクによって受信される入力信号に基づいて現在の活性化を決定し、前記決定された現在の活性化及び以前に発生したイベントに対応する第2活性化に基づいて第1活性化の変化量を決定し、前記決定された第1活性化の変化量及び第1閾値に基づいて新しいイベントの発生の有無を決定し、前記新しいイベントの発生に応答して出力リンクで前記新しいイベントに対応する出力信号を送信する、電子装置。
  16. 前記新しいイベントは、前記決定された第1活性化の変化量が前記第1閾値を上回る又は下回ることにより発生する、請求項15に記載の電子装置。
  17. 前記出力信号は、前記決定された第1活性化の変化量と前記第1閾値の大小関係を示す符号ビットを含む、請求項15又は16に記載の電子装置。
  18. 前記プロセッサは、前記入力リンクによって接続された以前レイヤに対応する第2閾値をさらに受信し、前記以前の活性化、前記入力信号、及び前記第2閾値に基づいて前記現在の活性化を決定する、請求項15ないし17のうちの何れか一項に記載の電子装置。
  19. 前記出力信号は、予め決定されたビットの精密度で近似化された前記決定された第1活性化の変化量を含む、請求項15ないし18のうちの何れか一項に記載の電子装置。
  20. 前記ビットの精密度は、要求正確度及び可用リソースのうち少なくとも1つにより調整される、請求項19に記載の電子装置。
  21. 前記第1閾値は、単位時間の間に発生するイベントの数に応じて調整される、請求項15ないし20のうちの何れか一項に記載の電子装置。
  22. 前記第1閾値は、前記単位時間の間に発生する前記イベントの数が予め決定された第3閾値を超過することにより増加し、前記単位時間の間に発生する前記イベントの数が予め決定された第4閾値未満であることにより減少し、前記第3閾値は前記第4閾値よりも大きい、請求項21に記載の電子装置。
  23. 前記プロセッサは、前記出力信号の送信後に、前記決定された現在の活性化に基づいて前記第1閾値をアップデートする、請求項15ないし22のうち何れか一項に記載の電子装置。
  24. 前記第1閾値は、固定間隔、ログ間隔、又は、桁数に応じて調整される、請求項23に記載の電子装置。
  25. 前記メモリは、前記決定された現在の活性化を格納する、請求項15ないし24のうちの何れか一項に記載の電子装置。
JP2017132072A 2016-07-13 2017-07-05 ニューラルネットワークのための方法及び電子装置 Active JP7037143B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021156767A JP7290256B2 (ja) 2016-07-13 2021-09-27 ニューラルネットワークのための方法
JP2021156768A JP7237122B2 (ja) 2016-07-13 2021-09-27 ニューラルネットワークのための方法

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201662361626P 2016-07-13 2016-07-13
US62/361,626 2016-07-13
KR20160113039 2016-09-02
KR10-2016-0113039 2016-09-02
US201662429146P 2016-12-02 2016-12-02
US62/429,146 2016-12-02
KR1020170053543A KR102399548B1 (ko) 2016-07-13 2017-04-26 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
KR10-2017-0053543 2017-04-26

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2021156767A Division JP7290256B2 (ja) 2016-07-13 2021-09-27 ニューラルネットワークのための方法
JP2021156768A Division JP7237122B2 (ja) 2016-07-13 2021-09-27 ニューラルネットワークのための方法

Publications (2)

Publication Number Publication Date
JP2018010633A JP2018010633A (ja) 2018-01-18
JP7037143B2 true JP7037143B2 (ja) 2022-03-16

Family

ID=59227625

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2017132072A Active JP7037143B2 (ja) 2016-07-13 2017-07-05 ニューラルネットワークのための方法及び電子装置
JP2021156768A Active JP7237122B2 (ja) 2016-07-13 2021-09-27 ニューラルネットワークのための方法
JP2021156767A Active JP7290256B2 (ja) 2016-07-13 2021-09-27 ニューラルネットワークのための方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2021156768A Active JP7237122B2 (ja) 2016-07-13 2021-09-27 ニューラルネットワークのための方法
JP2021156767A Active JP7290256B2 (ja) 2016-07-13 2021-09-27 ニューラルネットワークのための方法

Country Status (3)

Country Link
US (3) US10949737B2 (ja)
EP (1) EP3270330B1 (ja)
JP (3) JP7037143B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US10403266B2 (en) * 2017-10-18 2019-09-03 Intel Corporation Detecting keywords in audio using a spiking neural network
US10504507B2 (en) * 2017-12-28 2019-12-10 Syntiant Always-on keyword detector
US10431207B2 (en) 2018-02-06 2019-10-01 Robert Bosch Gmbh Methods and systems for intent detection and slot filling in spoken dialogue systems
WO2019199313A1 (en) * 2018-04-12 2019-10-17 Landmark Graphics Corporation Recurrent neural network model for bottomhole pressure and temperature in stepdown analysis
US11030518B2 (en) * 2018-06-13 2021-06-08 United States Of America As Represented By The Secretary Of The Navy Asynchronous artificial neural network architecture
KR20200010640A (ko) * 2018-06-27 2020-01-31 삼성전자주식회사 모션 인식 모델을 이용한 자체 운동 추정 장치 및 방법, 모션 인식 모델 트레이닝 장치 및 방법
FR3085217B1 (fr) * 2018-08-23 2021-06-25 Idemia Identity & Security France Procede de determination de pose et d'identification d'une vue tridimensionnelle de visage
US11010132B2 (en) 2018-09-28 2021-05-18 Tenstorrent Inc. Processing core with data associative adaptive rounding
EP3839829A1 (en) * 2019-12-17 2021-06-23 GrAl Matter Labs S.A.S. Neural network processor and method of neural network processing
US20210271965A1 (en) * 2020-02-28 2021-09-02 Intuit Inc. Method and system for optimizing results of a function in a knowledge graph using neural networks
CN111709514A (zh) * 2020-05-08 2020-09-25 北京百度网讯科技有限公司 神经网络模型的处理方法和装置
US20220067509A1 (en) * 2020-09-02 2022-03-03 Alibaba Group Holding Limited System and method for learning from partial compressed representation
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
JP7164239B1 (ja) * 2021-11-26 2022-11-01 株式会社オイコス ジェルネイルステッカー及びその製造方法、ジェルネイルステッカーを用いた施術方法
JP7164238B1 (ja) * 2021-11-26 2022-11-01 株式会社オイコス ジェルネイルステッカー及びその製造方法、ジェルネイルステッカーを用いた施術方法
WO2023144396A1 (en) 2022-01-28 2023-08-03 Spinncloud Systems Gmbh Method and hardware architecture for event-based classification of electrocardiogram (ecg) signals
US11960985B2 (en) * 2022-09-08 2024-04-16 Micron Technology, Inc. Artificial neural network computation using integrated circuit devices having analog inference capability

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69504316T2 (de) 1994-03-08 1999-01-21 Preben Alstrom Neuronales netzwerk
IT1280816B1 (it) * 1995-03-22 1998-02-11 Cselt Centro Studi Lab Telecom Metodo per velocizzare l'esecuzione di reti neurali per il trattamento di segnali correlati.
JP2003076976A (ja) 2001-08-31 2003-03-14 Mitsui Eng & Shipbuild Co Ltd パターンマッチング方法
KR100442434B1 (ko) 2002-03-07 2004-07-30 엘지전자 주식회사 학습된 신경망 설계를 위한 어레이 구조 연산 방법
EP2360629A3 (en) 2005-05-07 2012-04-11 Stephen L. Thaler Device for the autonomous bootstrapping of useful information
JP4728055B2 (ja) 2005-06-24 2011-07-20 エルピーダメモリ株式会社 人工神経回路
US8224759B2 (en) * 2007-05-01 2012-07-17 Evolved Machines, Inc. Regulating activation threshold levels in a simulated neural circuit
KR100919684B1 (ko) 2007-07-16 2009-10-06 (주)엔인포메이션시스템즈 데이터 마이닝 방법
US8127075B2 (en) * 2007-07-20 2012-02-28 Seagate Technology Llc Non-linear stochastic processing storage device
JP5393589B2 (ja) 2010-05-17 2014-01-22 本田技研工業株式会社 電子回路
US9092736B2 (en) 2010-07-07 2015-07-28 Qualcomm Incorporated Communication and synapse training method and hardware for biologically inspired networks
US9460387B2 (en) * 2011-09-21 2016-10-04 Qualcomm Technologies Inc. Apparatus and methods for implementing event-based updates in neuron networks
US9412064B2 (en) * 2011-08-17 2016-08-09 Qualcomm Technologies Inc. Event-based communication in spiking neuron networks communicating a neural activity payload with an efficacy update
US9146546B2 (en) * 2012-06-04 2015-09-29 Brain Corporation Systems and apparatus for implementing task-specific learning using spiking neurons
US8903746B2 (en) 2012-03-22 2014-12-02 Audrey Kudritskiy System and method for viewing, modifying, storing, and running artificial neural network components
US9753959B2 (en) 2013-10-16 2017-09-05 University Of Tennessee Research Foundation Method and apparatus for constructing a neuroscience-inspired artificial neural network with visualization of neural pathways
US20150269481A1 (en) 2014-03-24 2015-09-24 Qualcomm Incorporated Differential encoding in neural networks
US9373058B2 (en) 2014-05-29 2016-06-21 International Business Machines Corporation Scene understanding using a neurosynaptic system
US20150372805A1 (en) * 2014-06-23 2015-12-24 Qualcomm Incorporated Asynchronous pulse modulation for threshold-based signal coding
US10474949B2 (en) 2014-08-19 2019-11-12 Qualcomm Incorporated Knowledge-graph biased classification for data
US10366158B2 (en) * 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US10509862B2 (en) * 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Garen Arevian, et al.,"Optimising the Hystereses of a Two Context Layer RNN for Text Classification",Proceedings of International Joint Conference on Neural Networks 2007,2007年08月17日,Pages 1-6,<DOI: 10.1109/IJCNN.2007.4371427>.

Also Published As

Publication number Publication date
JP2021192321A (ja) 2021-12-16
JP2018010633A (ja) 2018-01-18
US10949737B2 (en) 2021-03-16
US20210166113A1 (en) 2021-06-03
EP3270330B1 (en) 2020-10-28
US20180018558A1 (en) 2018-01-18
US20210166112A1 (en) 2021-06-03
JP2021192322A (ja) 2021-12-16
EP3270330A1 (en) 2018-01-17
JP7290256B2 (ja) 2023-06-13
JP7237122B2 (ja) 2023-03-10

Similar Documents

Publication Publication Date Title
JP7037143B2 (ja) ニューラルネットワークのための方法及び電子装置
KR102399548B1 (ko) 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
EP3739499A1 (en) Grammar transfer using one or more neural networks
JP6605259B2 (ja) ニューラルネットワーク構造拡張方法、次元縮小方法、及びその方法を用いた装置
US11544549B2 (en) Method and apparatus with neural network
US11902705B2 (en) Video prediction using one or more neural networks
US20220004935A1 (en) Ensemble learning for deep feature defect detection
KR20210029785A (ko) 활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법
US20210132688A1 (en) Gaze determination using one or more neural networks
US20190354865A1 (en) Variance propagation for quantization
US20210067735A1 (en) Video interpolation using one or more neural networks
US20210118166A1 (en) Pose determination using one or more neural networks
KR20190098671A (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
KR20200076461A (ko) 중첩된 비트 표현 기반의 뉴럴 네트워크 처리 방법 및 장치
Park et al. Speculative backpropagation for CNN parallel training
Wuraola et al. Efficient activation functions for embedded inference engines
Safa et al. Neuromorphic near-sensor computing: from event-based sensing to edge learning
US20230108177A1 (en) Hardware-Aware Progressive Training Of Machine Learning Models
US20230153604A1 (en) Performing simulations using machine learning
JP7310927B2 (ja) 物体追跡装置、物体追跡方法及び記録媒体
Yuan et al. Trainable Spiking-YOLO for low-latency and high-performance object detection
Xu et al. Deep Learning in Image Classification: An Overview
KR20230071719A (ko) 이미지 처리용 신경망 훈련 방법 및 전자 장치
WO2023143707A1 (en) Training a neural network to perform a machine learning task
Lebdeh et al. Efficient Processing of Spiking Neural Networks via Task Specialization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210927

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220224

R150 Certificate of patent or registration of utility model

Ref document number: 7037143

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150