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

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

▶ ディープキューブ リミテッドの特許一覧

特許7068533ニューラルネットワークの活動のヒートマップに基づくニューラルネットワークの部分活性化
<>
  • 特許-ニューラルネットワークの活動のヒートマップに基づくニューラルネットワークの部分活性化 図1
  • 特許-ニューラルネットワークの活動のヒートマップに基づくニューラルネットワークの部分活性化 図2
  • 特許-ニューラルネットワークの活動のヒートマップに基づくニューラルネットワークの部分活性化 図3
  • 特許-ニューラルネットワークの活動のヒートマップに基づくニューラルネットワークの部分活性化 図4
  • 特許-ニューラルネットワークの活動のヒートマップに基づくニューラルネットワークの部分活性化 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-06
(45)【発行日】2022-05-16
(54)【発明の名称】ニューラルネットワークの活動のヒートマップに基づくニューラルネットワークの部分活性化
(51)【国際特許分類】
   G06N 3/08 20060101AFI20220509BHJP
【FI】
G06N3/08
【請求項の数】 30
【外国語出願】
(21)【出願番号】P 2021102518
(22)【出願日】2021-06-21
(65)【公開番号】P2022013765
(43)【公開日】2022-01-18
【審査請求日】2021-09-15
(31)【優先権主張番号】16/916,543
(32)【優先日】2020-06-30
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521271705
【氏名又は名称】ディープキューブ リミテッド
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100205659
【弁理士】
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100126000
【弁理士】
【氏名又は名称】岩池 満
(74)【代理人】
【識別番号】100185269
【弁理士】
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】デイヴィッド エリ
(72)【発明者】
【氏名】ルビン エリ
【審査官】中村 信也
(56)【参考文献】
【文献】米国特許第10515306(US,B1)
【文献】特開2020-008993(JP,A)
【文献】特開平07-319509(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-3/12
G06N 7/08-99/00
G06N 5/00-7/06
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークの訓練又は予測のための方法であって、
ニューラルネットワーク内の複数のシナプス又はフィルタのそれぞれの現在の値を格納する工程と、
1つ以上の過去の反復の間に、各個別若しくはグループの1つ以上の前記シナプス又はフィルタに対して、独立して履歴的な活動のメトリックを決定する工程と、
前記ニューラルネットワークの複数の部分活性化を反復的に実行する工程であって、各部分活性化の反復は、前記ニューラルネットワーク内の前記複数のシナプス又はフィルタのサブセットを活性化し、各個別若しくはグループのシナプス又はフィルタは、その個別若しくはグループのシナプス又はフィルタに対して独立して決定された前記履歴的な活動のメトリックに比例する反復の総数の一部で活性化される工程と、
前記ニューラルネットワークの前記複数の部分活性化に基づいて、前記ニューラルネットワークの訓練又は予測を実行する工程と
を含む方法。
【請求項2】
前記履歴的な活動のメトリックが、各個別若しくはグループのシナプス又はフィルタが1つ以上の過去の反復において活性化された頻度、1つ以上の過去の反復における前記シナプス又はフィルタの重みの大きさ、1つ以上の過去の誤差補正反復における前記シナプス又はフィルタの重みの変化の大きさ、それらの測定値のいずれかの平均中央値又は標準偏差、及びそれらのいずれかの個別又は組み合わせから導かれる値からなる群から選択される請求項1に記載の方法。
【請求項3】
前記履歴的な活動のメトリックを定期的に、反復ごとに、又は個別若しくはグループのシナプス若しくはフィルタが活性化されるごとに動的に更新する工程を含む請求項1に記載の方法。
【請求項4】
動的に更新された前記履歴的な活動のメトリックを1つ以上のそれぞれの反復のシーケンスにわたって視覚化するフレームのシーケンスを含むヒートマップの動画像を表示する工程を含む請求項3に記載の方法。
【請求項5】
訓練の間、複数のバックワードパス誤差補正反復を実行して、各個別若しくはグループの活性化されたシナプス又はフィルタを補正する工程を含む請求項1に記載の方法。
【請求項6】
訓練又は予測の間、
複数のフォワードパス推論反復を実行して、複数の部分出力をそれぞれ生成する工程であって、各個別若しくはグループのシナプス又はフィルタが、推論反復の総数の一部で計算される工程と、
前記複数の部分出力を集約して、前記ニューラルネットワークのすべてのシナプス又はフィルタの単一のインスタンスを実行することによって、前記ニューラルネットワークを完全に活性化することによって生成される出力に近似した集約された出力を生成する工程と
を含む請求項1に記載の方法。
【請求項7】
前記複数の推論反復で活性化された前記シナプス又はフィルタが、複数の残りの前記シナプス又はフィルタが活性化されないように、前記ニューラルネットワークのすべての前記シナプス又はフィルタのサブセットのみに累積的に及ぶ請求項6に記載の方法。
【請求項8】
前記ニューラルネットワークへの入力に基づいて、活性化するべき前記複数のシナプス又はフィルタの前記サブセットを決定する工程を含む請求項1に記載の方法。
【請求項9】
シナプス又はフィルタが、入力層から出力層までのシナプス又はフィルタの連続したシーケンスをつなぐニューラルネットワーク経路を形成するシナプス又はフィルタのシーケンス、それぞれがニューロンに直接接続されたシナプスのグループ、及びそれぞれが畳み込みニューラルネットワーク内のニューロンのグループに直接接続されたフィルタのグループからなる群から選択される別々のグループにおいて活性化される請求項1に記載の方法。
【請求項10】
異なる反復、層、フィルタ、チャネル又は動作モードに対して、前記ニューラルネットワークを部分的に活性化すること及び完全に活性化することのハイブリッドな組み合わせを実行する工程を含む請求項1に記載の方法。
【請求項11】
所定のスケジュールに従って、前記ニューラルネットワークを部分的に活性化することと完全に活性化することとを交互に行うことを含む請求項10に記載の方法。
【請求項12】
誤差又は精度の測定値が閾値を超えたときに、前記ニューラルネットワークを部分的に活性化することと完全に活性化することとを切り替えることを含む請求項10に記載の方法。
【請求項13】
閾値を超える時間又は反復回数で不活性である個別若しくはグループのシナプス又はフィルタを再活性化する工程を含む請求項1に記載の方法。
【請求項14】
前記ニューラルネットワークのすべてのシナプス又はフィルタを完全に活性化し、閾値未満の履歴的な活動のメトリックを持つ個別若しくはグループのシナプス又はフィルタを段階的に不活性化することによって訓練又は予測を開始する工程を含む請求項1に記載の方法。
【請求項15】
前記ニューラルネットワークのシナプス若しくはフィルタのランダム又は半ランダムなサブセットを部分的に活性化し、閾値を超える履歴的な活動のメトリックを持つ追加のシナプス又はフィルタを活性化し、閾値未満の履歴的な活動のメトリックを持つシナプス又はフィルタを不活性化することによって訓練又は予測を開始する工程を含む請求項1に記載の方法。
【請求項16】
閾値未満の履歴的な活動のメトリック若しくは閾値を超える不活性化された反復数を持つシナプス若しくはフィルタを剪定又は排除することによって、スパースなニューラルネットワークを生成する工程を含む請求項1に記載の方法。
【請求項17】
前記個別若しくはグループのシナプス又はフィルタが活性化される部分活性化の反復の前記総数前記一部を調整する工程を含む請求項1に記載の方法。
【請求項18】
訓練の間のみ前記ニューラルネットワークを部分的に活性化し、予測の間のみ前記ニューラルネットワークを完全に活性化する工程、
予測の間のみ前記ニューラルネットワークを部分的に活性化し、訓練モードの間のみ前記ニューラルネットワークを完全に活性化する工程、又は
訓練及び予測の間の両方で前記ニューラルネットワークを部分的に活性化する工程
を含む請求項1に記載の方法。
【請求項19】
ニューラルネットワークの訓練又は予測のためのシステムであって、
前記ニューラルネットワーク内の複数のシナプス又はフィルタのそれぞれの現在の値を格納するための1つ以上のメモリと、
1つ以上のプロセッサであって、
1つ以上の過去の反復の間に、各個別又はグループの1つ以上の前記シナプス又はフィルタに対して、独立して履歴的な活動のメトリックを決定することと、
前記ニューラルネットワークの複数の部分活性化を反復的に実行することであって、各部分活性化の反復は、前記ニューラルネットワーク内の複数のシナプス又はフィルタのサブセットを活性化し、各個別若しくはグループのシナプス又はフィルタは、その個別若しくはグループのシナプス又はフィルタに対して独立して決定された前記履歴的な活動のメトリックに比例する反復の総数の一部で活性化されることと、
前記ニューラルネットワークの前記複数の部分活性化に基づいて、前記ニューラルネットワークを用いて訓練又は予測することと
を行うように構成されている1つ以上のプロセッサと
を含むシステム。
【請求項20】
前記履歴的な活動のメトリックが、各個別若しくはグループのシナプス又はフィルタが1つ以上の過去の反復において活性化された頻度、1つ以上の過去の反復における前記シナプス又はフィルタの重みの大きさ、1つ以上の過去の誤差補正反復における前記シナプス又はフィルタの重みの変化の大きさ、それらの尺度のいずれかの平均中央値又は標準偏差、及びそれらのいずれかの個別又は組み合わせから導かれる値からなる群から選択される請求項19に記載のシステム。
【請求項21】
前記1つ以上のプロセッサが、前記履歴的な活動のメトリックを定期的に、反復ごとに、又は個別若しくはグループのシナプス若しくはフィルタが活性化されるごとに動的に更新するように構成されている請求項19に記載のシステム。
【請求項22】
前記1つ以上のプロセッサが、1つ以上のそれぞれの反復のシーケンスにわたって動的に更新された前記履歴的な活動のメトリックを示すフレームのシーケンスを含むヒートマップの動画像を、表示装置上に視覚化するように構成されている請求項19に記載のシステム。
【請求項23】
前記1つ以上のプロセッサが、訓練の間、複数のバックワードパス誤差補正反復を実行して、各個別若しくはグループの活性化されたシナプス又はフィルタを補正するように構成されている請求項19に記載のシステム。
【請求項24】
前記1つ以上のプロセッサが、訓練又は予測の間、
複数のフォワードパス推論反復を実行して、各個別若しくはグループの活性化されたシナプス又はフィルタの計算に基づいて複数の部分出力をそれぞれ生成することと、
前記複数の部分出力を集約して、前記ニューラルネットワークのすべてのシナプス又はフィルタの単一のインスタンスを実行することによって、前記ニューラルネットワークを完全に活性化することによって生成される出力に近似した集約された出力を生成することと
を行うように構成されている請求項19に記載のシステム。
【請求項25】
前記1つ以上のプロセッサが、前記ニューラルネットワークへの入力に基づいて、活性化するべき前記複数のシナプス又はフィルタの前記サブセットを決定するように構成されている請求項19に記載のシステム。
【請求項26】
前記1つ以上のプロセッサが、入力層から出力層までのシナプス又はフィルタの連続したシーケンスをつなぐニューラルネットワーク経路を形成するシナプス又はフィルタのシーケンス、それぞれがニューロンに直接接続されたシナプスのグループ、及びそれぞれが畳み込みニューラルネットワーク内のニューロンのグループに直接接続されたフィルタのグループからなる群から選択される別々のグループにおいて、前記シナプス又はフィルタを活性化するように構成されている請求項19に記載のシステム。
【請求項27】
前記1つ以上のプロセッサが、異なる反復、層、フィルタ、チャネル又は動作モードに対して、前記ニューラルネットワークを部分的に活性化することと完全に活性化することとのハイブリッドな組み合わせを実行するように構成されている請求項19に記載のシステム。
【請求項28】
前記1つ以上のプロセッサが、閾値未満の履歴的な活動のメトリック若しくは閾値を超える不活性化された反復数を持つシナプス若しくはフィルタを剪定又は排除することによって、スパースなニューラルネットワークを生成するように構成されている請求項19に記載のシステム。
【請求項29】
前記1つ以上のプロセッサが、個別若しくはグループのシナプス又はフィルタが活性化される部分活性化の反復の前記総数前記一部を調整するように構成されている請求項19に記載のシステム。
【請求項30】
前記1つ以上のプロセッサが、
訓練の間のみ前記ニューラルネットワークを部分的に活性化し、予測の間のみ前記ニューラルネットワークを完全に活性化すること、
予測の間のみ前記ニューラルネットワークを部分的に活性化し、訓練モードの間のみ前記ニューラルネットワークを完全に活性化すること、又は
訓練及び予測の間の両方で前記ニューラルネットワークを部分的に活性化すること
を行うように構成されている請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、機械学習による人工知能(AI)の分野に関する。特に、本発明の実施形態は、ニューラルネットワークを用いた深層学習に関する。
【背景技術】
【0002】
人工ニューラルネットワーク、又は単に「ニューラルネットワーク」(NN)は、ニューロンの生物学的ネットワークに類似したコンピュータモデルであり、機械学習によって訓練される。従来のニューラルネットワークは、入力層、複数の中間層又は隠れ層、及び出力層を有する。各層は、複数(例えば、数100~数1000個)の人工「ニューロン」を有する。層(N)の各ニューロンは、人工「シナプス」によって、前の(N-1)層及び後の(N+1)層の一部又はすべてのニューロンに接続され、「部分的に接続された」又は「完全に接続された」ニューラルネットワークが形成されてもよい。各シナプス接続の強さは、重みで表される。従って、ニューラルネットワークは、ネットワーク内のすべての重みのセットによって表されてもよい。
【0003】
ニューラルネットワークは、学習データセットに基づいて訓練され、各シナプスの接続の強さを示す各シナプスの重みを解くか又は学習する。シナプスの重みは、一般に、例えばランダムに初期化される。訓練は、サンプルデータセットをニューラルネットワークに繰り返し入力し、ニューラルネットワークを順方向に伝搬させて、そのデータセットに適用されたニューラルネットワークの結果を出力し、期待される(例えば、目標の)出力と実際の出力との間の誤差を計算し、ニューラルネットワークを逆方向に伝搬させて、誤差を最小化するための誤差補正アルゴリズム(例えば、誤差逆伝播法(バックプロパゲーション))を用いてニューラルネットワークの重みを調整することによって行われる。訓練は、誤差が最小化されるか、又は収束するまで繰り返されてもよい。通常、訓練セットを複数回(例えば、数十回又は数百回)通過させることが行われる(例えば、各サンプルが複数回ニューラルネットワークに入力される)。訓練データセット全体を完全に通過させることはそれぞれ、1つの「エポック」と呼ばれる。
【0004】
最先端のニューラルネットワークは、通常、数百万から数十億の重みを有し、その結果、訓練とランタイム(予測や推論としても知られる)の両方のフェーズで特別のハードウェア(例えば、GPU)が必要になる。そのため、ほとんどのエンドポイントデバイス(例えば、IoTデバイス、モバイルデバイス、あるいは専用のアクセラレータハードウェアを持たないノート型コンピュータ及びデスクトップ型コンピュータ)では、予測モードであっても深層学習(ディープラーニング)モデルを実行することは現実的ではない。限られた処理速度及び/又は限られたメモリしか利用できないデバイスで深層学習モデルを効果的に実行することは、現在も重要な課題となっている。
【0005】
ハードウェアの容量が限られているという問題に対処するために、現在ではほとんどの深層学習の予測はリモートサーバやクラウド上で行われている。例えば、スマートアシスタント(例えば、Alexa(商標))が情報(例えば、音声信号)をクラウドに送信し、クラウドで専用のハードウェアを使って遠隔(リモート)で深層学習予測が行われ、応答がローカルデバイスに返送される。従って、これらのエンドポイントデバイスは、それがクラウドから切り離されている場合、入力率(入力速度)が非常に高くてクラウドと継続的に通信することが不可能な場合、又は専用ハードウェアでも今日では十分な速度が得られない非常に高速な予測が必要な場合(例えば、高頻度取引のための深層学習)には、深層学習に基づく結果を提供することができない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
従って、当該技術分野では、訓練モード及び/又は予測モードでニューラルネットワークを用いた深層学習を実行するコンピュータの効率及び処理速度を向上させることが求められている。
【課題を解決するための手段】
【0007】
本発明の実施形態では、各パスにおいてニューラルネットワーク全体のすべてのニューロン、シナプス、及び/又はフィルタを活性化する(「完全に活性化された」ニューラルネットワーク)代わりに、「ヒートマップ」に符号化された前の反復における活動の履歴的なパターンに基づいて、各現在又は将来の反復においてそれらのニューロン/シナプス/フィルタの部分的なサブセットのみを活性化する(「部分的に活性化された」ニューラルネットワーク)ことにより、ニューラルネットワークを実行する際の処理速度及び効率を大幅に向上させ、消費電力を削減する装置、システム、及び方法が提供される。ヒートマップは、各個別又はグループのニューロン/シナプス/フィルタについての過去の活動又は履歴的な活動のレベルを記録してもよい。履歴的な活動のレベルは、例えば、図1Aのヒートマップ100における対応するカラー若しくはグレースケールのレベル、又は図1Bのヒートマップ110における重み付け(weight thickness)レベルによって表示されてもよい。ニューロン/シナプス/フィルタは、将来の訓練又は予測の反復において、その履歴的な活性化頻度に相応する、例えばそれに比例した反復割合又は頻度で活性化されてもよい。従って、履歴的に高活動のニューロン/シナプス/フィルタ(ヒートマップ上の「ホットスポット」)は、履歴的に低活動のニューロン/シナプス/フィルタ(ヒートマップ上の「コールドスポット」)よりも高い頻度で、将来の反復において活性化されてもよい。訓練又は予測のフェーズの期間中に活動レベルが変化するにつれて、履歴的な活動のメトリックが動的に調整されてもよい。履歴的な活動パターンに相応する頻度でニューロン/シナプス/フィルタを活性化することで、ニューロン/シナプス/フィルタの過剰な活性化又は過小な活性化が防がれ、コンピュータの効率及びニューラルネットワークの精度が最適化される。
【0008】
本発明のいくつかの実施形態によれば、ニューラルネットワークの訓練又は予測のためのデバイス、システム及び方法が提供される。ニューラルネットワーク内の複数のシナプス又はフィルタのそれぞれについて、現在の値が格納されてもよい。履歴的な活動のメトリックは、1つ以上の過去の反復の間に、各個別若しくはグループの1つ以上のシナプス又はフィルタに対して、独立して決定されてもよい。ニューラルネットワークの複数の部分活性化が反復的に実行されてもよい。各部分活性化の反復は、ニューラルネットワーク内の複数のシナプス又はフィルタのサブセットを活性化してもよい。各個別若しくはグループのシナプス又はフィルタは、その個別若しくはグループのシナプス又はフィルタに対して独立して決定された履歴的な活動のメトリックに比例する反復の総数の一部で活性化されてもよい。ニューラルネットワークの訓練又は予測は、ニューラルネットワークの複数の部分活性化に基づいて実行されてもよい。
【図面の簡単な説明】
【0009】
本発明とみなされる主題は、明細書の結論部分で特に指摘され、明確に主張されている。しかしながら、本発明は、その目的、特徴、及び利点とともに、組織及び動作方法の両方について、添付の図面と一緒に読めば、以下の詳細な説明を参照して最もよく理解されるであろう。
【0010】
図1図1A及び図1Bは、本発明のいくつかの実施形態に係る、ニューラルネットワークの一部についてのニューロン又はシナプスの履歴的な活動レベルのヒートマップの模式図である。
図2図2Aは、本発明のいくつかの実施形態に係る、履歴的な活動のヒートマップに関連付けられた例示的なニューラルネットワーク領域の模式図である。図2B及び図2Cは、本発明のいくつかの実施形態に係る、関連する履歴的な活動のヒートマップに従った図2Aのニューラルネットワークの第1及び第2のそれぞれの部分活性化の模式図である。
図3図3は、本発明のいくつかの実施形態に係る、履歴的な活動のヒートマップに従って畳み込みニューラルネットワークを部分的に活性化することの模式図である。
図4図4は、本発明のいくつかの実施形態に係る、履歴的な活動のヒートマップに従ってニューラルネットワークを部分的に活性化するためのシステムの模式図である
図5図5は、本発明のいくつかの実施形態に係る、履歴的な活動のヒートマップに従ってニューラルネットワークを部分的に活性化する方法のフローチャートである。
【0011】
図解を簡単かつ明確にするために、図に示された要素は必ずしも縮尺通りに描かれていないことが理解されるであろう。例えば、いくつかの要素の寸法は、明確にするために他の要素に比べて誇張されている場合がある。さらに、適切と思われる場合には、対応する要素又は類似の要素を示すために、複数の図中で参照番号が繰り返されることがある。
【発明を実施するための形態】
【0012】
本発明の実施形態は、ニューロン/シナプス/フィルタの履歴的な活動(活性)のメトリック(指標、metric)の「ヒートマップ」に基づいて、ニューラルネットワークのニューロン、シナプス、及び/又はフィルタのサブセットを各パスにおいて部分的に活性化する。このヒートマップは、ニューロン/シナプス/フィルタの各個別又はグループについて、現在の重みや値だけでなく、1つ以上の過去の反復からの履歴的な活動のメトリックを記録してもよい。履歴的な活動のメトリックは、例えば、各個別若しくはグループのニューロン/シナプス/フィルタが活性化される頻度、関連するシナプス/フィルタの重み若しくは値の大きさ、誤差補正中のシナプス/フィルタの重み若しくは値の変化の大きさ、それらの尺度のうちのいずれかの平均中央値若しくは標準偏差、それらのメトリックの経時的な変化の方向の微分若しくは二次微分(例えば、変化の速度、変化の勢い等)、若しくはネットワークの最終的な出力への貢献度、又はそれらの指標の個々又は組み合わせから誘導されるその他の値であってもよい。ニューロン、シナプス、及び/又はフィルタは、単一のニューロン/シナプス/フィルタごとに独立して、又は複数のニューロン/シナプス/フィルタのグループで一緒に、履歴的な活動のメトリックについて測定されてもよく、かつ/又は活性化されてもよい。グループには、入力層を出力層につなぐ経路に沿ったニューロン/シナプス/フィルタの連続したシーケンス、各ニューロンに直接接続されたすべてのシナプス、畳み込みニューラルネットワーク内のニューロンの各グループに直接接続されたすべてのフィルタ等が含まれてもよい。グループは、1つのニューロン/シナプス/フィルタが複数のグループに属するように、重なり合っていてもよいし、1つのニューロン/シナプス/フィルタが複数のグループに属さないように、重なり合っていなくてもよい。ニューロン/シナプス/フィルタは、例えば、フォワードパス(順方向)の間に予測のための計算に寄与し、又はバックワードパス(逆方向)の間に訓練(学習)のための誤差補正に寄与し、そしてそれがゼロではない、閾値を超える、又は有意である(例えば、すべての又は隣接するニューロン/シナプス/フィルタの平均寄与度の5~10%よりも大きい)ときに、「活性化された」と考えられてもよい。活性化閾値は、例えば、ニューラルネットワークの精度のリアルタイム監視、ハードウェアリソースの利用可能性等に基づいて、固定数であるように設定又はチューニングされてもよいし、動的に調整されてもよい。部分活性化は、訓練及び/若しくは予測のフェーズの間、及び/又はニューラルネットワークのバックワードパス及び/若しくはフォワードパスの間に実施されてもよい。
【0013】
本発明の実施形態によれば、NN内のすべてのニューロン/シナプス/フィルタを等しい頻度で活性化する代わりに、NNはそれらの活動の履歴的なパターンを学習し、それらの履歴パターンに従ってそれらを活性化する。相対的に高い重み又は頻度で活性化されたニューロン/シナプス/フィルタ(ヒートマップ上の「ホットスポット」)は、相対的に低い重み又は頻度で活性化されたニューロン/シナプス/フィルタ(ヒートマップ上の「コールドスポット」)よりも頻繁に活性化されてもよい。このようにして、相対的に低活動のニューロン/シナプス/フィルタは過剰に活性化されず(最小限の貢献に対し計算リソースを浪費せず)、比較的高活動のニューロン/シナプス/フィルタは過小に活性化されない(最小限の計算の節約で有意な変化を見逃さない)。ニューロン/シナプス/フィルタの過去と未来の頻度/重みの関係は、一定若しくは1対1(例えば、過去の活性化頻度と同じ未来の活性化頻度を使用する)であってもよく、加速若しくは1:N(例えば、過去の活性化頻度よりも大きな未来の活性化頻度を使用する)であってもよく、又は減速若しくはN:1(例えば、過去の活性化頻度よりも低い未来の活性化頻度を使用する)であってもよい。ニューロン/シナプス/フィルタを、その履歴的な活性化頻度及び/又は大きさに相応する、例えば比例した反復頻度で活性化することにより、重要な活性化のためにネットワークリソースが最大化され、取るに足らない又はあまり重要でない活性化についてはネットワークリソースが最小化される。
【0014】
本発明の実施形態は、ヒートマップに表されたそれらの履歴的な活動に基づいて、ニューラルネットワークのニューロン、シナプス、及び/又はフィルタのサブセットのみを活性化することにより、完全活性化ニューラルネットワークを近似する「部分的活性化」ニューラルネットワークを実装することによって、ニューラルネットワークを実行する速度及び効率を大幅に向上させる。部分活性化は、スキップされたニューロン/シナプス/フィルタの数に比例した量だけ、計算回数を減らし、訓練及び/又は予測の速度を向上させ、NNの消費電力を削減する。例えば、NNのニューロン/シナプス/フィルタの10%を部分的に活性化することで、完全に活性化されたNNの10倍の速度で実行される可能性がある。訓練フェーズにおいて、フォワードパス及びバックワードパスの両方で部分的に活性化すると、その2倍の速度が達成される。NNのヒートマップを測定及び記録する(例えば、活動レコードごとにいくつかの、例えば8個の、ボットを格納し、N反復ごとに処理レコードを格納する)ために追加の処理及びメモリリソースが消費されるが、これらのリソースは、部分的に活性化されたNNの有意な利得に比べてわずかである。いくつかの実施形態では、ヒートマップレコードは、その履歴的な活動メトリックの値の順(例えば、最高から最低へ)に格納されてもよく、あるいは、閾値超及び閾値未満のバッチにセグメント化されて、上位又は閾値超のレコードのみが評価され、それによって、活性化されるべきではないニューロン/シナプス/フィルタの閾値未満の履歴的な活動メトリックの処理を排除してもよい。
【0015】
部分活性化ニューラルネットワークによって活性化されたニューロン、シナプス、又はフィルタの総数は、
【数1】
であってもよく、上記式中、iはニューラルネットワーク中の全M個のニューロン又はシナプスのうちのi番目のものを表し、Xはi番目のニューロン/シナプス/フィルタの活性化頻度を表し、Yは訓練又は予測時の反復の総数を表す。効率を上げるために、活性化頻度XはYの反復の総数よりも著しく小さく(例えば、1~10%)、X<<Yであってもよく、また、部分活性化ニューラルネットワークによって活性化されるニューロン/シナプス/フィルタの総数は、ニューラルネットワークの全N個のシナプスの数よりも小さく(例えば、10~50%)、
【数2】
である。例えば、部分活性化ニューラルネットワークは、ニューラルネットワーク内のシナプスの合計10%を活性化してもよい。部分活性化ニューラルネットワークの中の活性化されたニューロン/シナプス/フィルタの数が大きいほど、部分活性化ニューラルネットワークが完全活性化ニューラルネットワークを近似する精度は高くなるが、より多くの計算が解かれる。従って、部分活性化ニューラルネットワークで活性化されるニューロン/シナプス/フィルタの割合は、各システム又はアプリケーションにおける速度と精度の間の優先順位のトレードオフに応じて設定されてもよい。1つの例では、N個のシナプスのうち合計10%を活性化させた例示の部分活性化ニューラルネットワークは、従来の完全活性化ニューラルネットワークの99%の精度及び10倍の速度という性能を発揮したことが実験で示されている。
【0016】
加えて、部分活性化ニューラルネットワークで活性化されるニューロン/シナプス/フィルタの総数が同じであれば、サイズの大きい経路を少なく実行するよりも、サイズの小さい経路を多く実行することによって精度が向上することが実験で示されている。例えば、ある実験では、10回の実行の各々で1%のニューロンを活性化させた部分活性化ニューラルネットワークの方が、1回の実行で10%のニューロンを活性化させた部分活性化ニューラルネットワークよりも良好な結果を与えることが判明した。このような傾向についての理由は、より小さなグループのニューロン/シナプス/フィルタをより多く繰り返し実行することで、全体的な多様性がより高い状態でニューロン/シナプス/フィルタが活性化され、これにより、ニューラルネットワーク全体の検索空間が広がることである。これは、ニューラルネットワークの1つの領域に主に集中している反復回数の少ないニューロン/シナプス/フィルタの大きなクラスタと比較して、各切断されたグループがニューラルネットワークのより遠くの部分に到達できるためである。逆に、サイズの大きいニューロン/シナプス/フィルタのグループが少ないと、ニューラルネットワークの同じ領域の周りに局在するシナプスが多く追加され、通常は重複した結果が得られ、リターンが減少する。各グループのシナプスが独立していて、多様性があり、切断されているほど、部分的に活性化されたシナプスの射程が広くなり、典型的には、部分活性化ニューラルネットワークがより良好に完全活性化ニューラルネットワークに近似する。従って、様々な実施形態において、反復の数及び反復ごとのシナプスの数は、ネットワークの多様性を最適化するように調整されてもよい。
【0017】
様々な実施形態において、部分活性化ニューラルネットワークにおける活性化頻度X、反復数Y、活性化されたニューロン/シナプス/フィルタの総数
【数3】
、及び/又は、過去の活動に対する未来の活動の割合は、固定であっても動的であってもよい。いくつかの実施形態では、各個別又はグループのニューロン/シナプス/フィルタの活性化頻度Xは、履歴的な活動メトリック(例えば、過去の頻度又は大きさ)の固定数又は固定割合になるように設定又は調整され、誤差を閾値未満に保つように動的に調整され、誤差に反比例して動的に調整され、活性化の総数
【数4】
を閾値(例えば、ニューラルネットワーク内のニューロン/シナプス/フィルタの総数)未満に保つように動的に調整され、予測の複数の反復において予測結果が収束又は発散する際に、又は訓練中に誤差がゼロに収束又はゼロから発散する際に、それぞれ漸近的に減少又は増加するように動的に調整される。いくつかの実施形態では、活性化頻度Xは、例えば、プロセッサ速度、利用可能なメモリ空間、残りのバッテリ寿命等のハードウェアリソース、及び/又は他のハードウェア若しくはソフトウェアのリソースの利用可能性を監視する等、リアルタイムデータに基づいて動的に調整されてもよい。
【0018】
総反復回数Yに関して、いくつかの実施形態では、予測結果が収束するか、又は訓練データセットに関して訓練結果の精度が所定の閾値を超える(すなわち、誤差が所定の閾値未満であることと等価)になるまで、可変の反復回数Yを実行してもよい。いくつかの実施形態では、計算時間又は決定時間に達するまで、可変の反復回数Yを実行してもよい。リアルタイムアプリケーションでは、プロセッサは、決定を行うための持続時間しか持たなくてもよい。例えば、車両が停止するかどうかを決定する時間は1秒であってもよく、システムはその時間内に可能な限り多くの反復処理を実行してもよい。部分活性化は、反復ごとに少ない計算を使用したので、同じニューラルネットワークの完全な活性化と比較して、ニューラルネットワークのより多くの部分的な実行が、一定の時間内に実行されてもよく、従って、一定の時間内に出力の精度が向上する可能性がある。
【0019】
ニューラルネットワークは、最初の反復において、完全活性化ニューラルネットワーク(すべてのニューロン/シナプス/フィルタを活性化する)として開始されてもよく、その後、後続の反復において、相対的に低活動のニューロン/シナプス/フィルタが段階的に不活性化される(より低い頻度で活性化される)。あるいは、ニューラルネットワークは、部分活性化ニューラルネットワークとして開始されてもよく(最初の反復において「シード」ニューロン/シナプス/フィルタのサブセットを活性化する)、その後、後続の反復において、相対的に高活動のニューロン/シナプス/フィルタが段階的に活性化され(より高い頻度で活性化され)、相対的に低活動のニューロン/シナプス/フィルタが段階的に不活性化される(より低い頻度で活性化さる)。いくつかの実施形態では、初期反復の「シード」ニューロン/シナプス/フィルタの部分的なサブセットは、例えば、ニューラルネットワーク全体におけるシードニューロン/シナプス/フィルタの多様性を最大化し、均等な分布を維持するために、完全にランダムに又は半ランダムに選択されてもよく、それによって、各領域のニューロン/シナプス/フィルタに、活性化頻度を増加又は減少させる実質的に等しい機会を提供する。いくつかの実施形態では、初期反復の「シード」ニューロン/シナプス/フィルタの部分的なサブセットは、例えば、入力に基づいて最良の推測として選択されてもよく、その場合、様々な入力又は入力パターンは、部分活性化ニューロン/シナプス/フィルタのパターンと最適に相関してもよい。
【0020】
いくつかの実施形態では、ニューラルネットワークを部分的に活性化することと完全に活性化することのハイブリッドな組み合わせを、異なる反復、層、フィルタ、チャネル、又は動作モードに対して実行してもよい。いくつかの実施形態は、所定のスケジュールに従って、ニューラルネットワークを部分的に活性化することと完全に活性化することとを交互に行ってもよい。加えて又はあるいは、いくつかの実施形態は、誤差又は精度の測定値が閾値を超えたときに、ニューラルネットワークを部分的に活性化することと完全に活性化することとを切り替えてもよい。様々な実施形態において、部分活性化は、予測モード(ニューラルネットワークの前方伝搬(後方伝搬ではない))の間のみ、訓練モード(ニューラルネットワークの前方及び/若しくは後方伝搬)の間のみ、又は予測モード及び訓練モードの両方の間に使用されてもよい。加えて又はあるいは、部分活性化は、ニューラルネットワークの一部のみ、例えば、特定のニューラルネットワークの層、領域、チャネル、反復等のみにわたって使用されてもよい。部分活性化が実装されない場合、ニューラルネットワーク全体のすべてのシナプスの完全活性化が起動されてもよい。このように、いくつかの実施形態では、本発明の部分活性化ニューラルネットワーク法を完全活性化ニューラルネットワーク法と組み合わせて、ニューラルネットワークの異なる層、領域、チャネル、反復、モード等に対して各方法をそれぞれ使用するハイブリッド法を創出してもよい。
【0021】
訓練時には、ニューロン/シナプス/フィルタは、その履歴的な活性化に相応する頻度で誤差を補正するために活性化されるため、ニューロン/シナプス/フィルタの訓練更新が個々の反復でスキップされることがあるが、それらの更新は単に後の反復に延期されるだけであり、この後の反復は、平均して完全活性化時と同じ頻度で発生する(そうでない場合は、発生頻度の低い更新が蓄積され、それによって欠落した更新が補償される)。従って、部分的に活性化されたNNを用いた訓練の精度は、通常は、完全に活性化されたNNを用いた訓練と実質的に同じになる。予測の際には、NNに対して低いか又は閾値未満の影響しか有さないニューロン/シナプス/フィルタがスキップされるため、部分的に活性化されたNNを用いた予測は、完全に活性化されたNNを用いた予測と実質的に同じになる可能性がある。さらに、各部分活性化パスは完全活性化パスよりも高速に実行されるため、従来の完全活性化NNと比較して、同じ合計訓練時間又は予測時間内に、部分活性化NNにおいてより多くのパスが実行される可能性がある。これにより、ニューラルネットワークは、より多くのより小さな部分的なパスに分割されてもよく、これは、ニューラルネットワークを完全に活性化する場合と比較して大幅に削減された処理時間で、完全活性化ニューラルネットワークの精度を良好に近似することが実験的に示されており、それにより、より高速で効率的な訓練及び予測が得られる。
【0022】
処理時間及び計算の複雑さを低減することにより、基本的なハードウェアを有するデバイス(例えば、図4のエンドポイントデバイス450)が、クラウド(例えば、ネットワーク420を介して接続されたリモートサーバ(複数可)410)に依存することなく、ローカルでニューラルネットワークを効率的に実行することができる可能性がある。訓練及び/又は予測(推論)がローカルデバイスで実行されるかクラウドで実行されるかにかかわらず、その訓練及び/又は予測は、従来の訓練及び/又は予測と比較して、同じ時間及び精度のためにより低品質の(従って、より安価な)ハードウェア(例えば、より低い処理速度を有する)を使用して、又は同じ品質のハードウェアを使用してより優れた性能で実行されてもよい。
【0023】
本発明の実施形態は、例えば、部分結合型ニューラルネットワーク、完全接続型ニューラルネットワーク(例えば、図1A及び図2Aに示す)、畳み込みニューラルネットワーク(CNN)(例えば、図3に示す)、リカレントニューラルネットワーク(RNN)、制限付きボルツマンマシン(RBM)、又は一般に、ニューロン、フィルタ、及び/又は重みの組み合わせを含む任意のニューラルネットワークモデルを含む、あらゆるタイプのニューラルネットワークで使用されてもよい。
【0024】
本発明のいくつかの実施形態に係る、ニューラルネットワーク内のニューロン102及び112、又は/又はシナプス104及び114の履歴的な活動レベルを記録した、それぞれヒートマップ100及び110の模式図である図1A及び図1Bを参照する。明確にするために、図1A及び図1Bに示す例示的なヒートマップ100及び110は、より大きなニューラルネットワーク(例えば、図中の層の前、後、又は間にある追加の層)に関連するより大きなヒートマップのクローズアップ又は部分的な図である。ヒートマップ100及び110は、メモリに格納されたデータ、及び/又は、表示装置のコンピュータ画面(例えば、ローカルデバイス450の画面428又はリモートサーバ410の画面)上でユーザに表示される視覚化内容を表してもよい。
【0025】
ヒートマップ100及び110は、例えば、図1Aのカラー又はグレースケールレベルのグラデーションを用いて、及び/又は図1Bのニューロン又はシナプスの接続太さのグラデーションを用いて、関連するニューロン又はシナプスの履歴的な活動レベルを視覚化する。その他にも、例えば、ニューロンの大きさ、明るさ、半透明度、パターン等の追加又は代替のグラデーションを使用して、履歴的な活動レベルの変化を表現してもよい。図1Aは、グレースケールレベルと履歴的な活動レベルとの間の相関関係を、例えば、各ニューロン又はシナプスが過去の複数の反復において活性化された反復のパーセント又は割合として示すための検索表(キー)を含む。
【0026】
ヒートマップ100及び110は、例えば、リアルタイムで動的に更新され、ニューロン/シナプス/フィルタの活動の経時的な変化パターンを視覚化してもよい。動的に更新されたヒートマップは、1つ以上のそれぞれの反復のシーケンスのそれぞれについてのフレームのシーケンスの動画像に似ていてもよい。ユーザは、ヒートマップの動画像をリアルタイムで、又は訓練若しくは予測の後に見て、ニューラルネットワークが経時的にどのように振る舞い、進化するかを学習することができる。ニューラルネットワーク活動の進化のその視覚情報は、ネットワークアーキテクチャ、ランタイム、活動若しくは収束閾値、又は他のニューラルネットワークパラメータを最適化するための洞察をユーザに与える可能性がある。いくつかの実施形態では、どの領域がより多くの活動を有するかを視覚化することにより、ユーザは、低活動のニューロン/シナプス/フィルタ又は領域全体を手動で剪定(整理、縮小)し、アーキテクチャを調整し(例えば、低活動の層、列、行、領域等を排除する)、視覚化された活性化密度等に相応するレベル又はパーセンテージ(百分率)のスパース化を選択することができる。例えば、異なる入力に対して活性化される異なる領域を視覚化することで、ユーザは入力に応じてニューラルネットワークをさらに剪定することができ、与えられた入力に対してどの領域を活性化する必要があるかを事前に知ることができる。これにより、ニューラルネットワークにおける情報の流れをよりよく理解し、(例えば、層の数、各層におけるニューロン/フィルタの数等の点で)より改良されたアーキテクチャを設計することができる。ニューラルネットワークの内部構造は十分に理解されていないため、ニューラルネットワークにおける訓練及び予測の活動のメカニズムの内部並びにその経時変化を見ることができることは、データサイエンティストにニューラルネットワークの操作及び設計に関する貴重な洞察を提供する。
【0027】
本発明のいくつかの実施形態に係る、履歴的な活動のヒートマップに関連付けられた例示的なニューラルネットワーク200のクローズアップ部分の模式図である図2Aを参照する。
【0028】
ニューラルネットワーク200は、複数の人工ニューロン202を含む。人工ニューロン202は、複数の層の階層に配置されてもよい。ニューラルネットワーク200は、入力層(例えば、ニューロン1~4)、1つ以上の中間層又は隠れ層(例えば、ニューロン5~8)、及び出力層(例えば、ニューロン9~12)、並びに/又は図中の層の前、後、又は間に追加の層を含んでもよい。各層の各ニューロン202は、人工シナプス接続204によって、隣接する層の一部のニューロン(部分的に接続されている)又はすべてのニューロン(完全に接続されている)に接続されている。入力層のニューロン(1~4)は後続の上位層のニューロンに接続され、中間層のニューロン(5~8)は前後の層の両方のニューロンに接続され、出力層のニューロン(9~12)は前の下位層のニューロンに接続される。図2Aに示す例では、ニューラルネットワーク200は、合計N=48個のシナプス204によって接続された16個のニューロン202を有する。ニューラルネットワーク200は、それぞれの複数のシナプス接続204の強度を表す複数の重みで表現されてもよい。
【0029】
図2Aは完全に接続されたニューラルネットワーク200を示しているが、ニューラルネットワーク200は代替的に、部分的に接続されたニューラルネットワーク(一部のシナプスを除去)、リカレントニューラルネットワーク(同じ層のニューロン間に自己接続シナプスを追加)、又は畳み込みニューラルネットワーク(ニューロンをチャネルに、シナプスをフィルタに置き換える)であってもよい。
【0030】
ニューラルネットワーク200内の各ニューロン202又はシナプス204は、その現在の重み値、及び過去の活性化頻度、過去のニューロン/シナプスの大きさ、過去の変化ニューロン/シナプス/フィルタの大きさ等、過去又は履歴的な活動メトリックのヒートマップデータと関連付けられている。ヒートマップデータ及びNNニューロン/シナプスデータは、同じデータ構造に一緒に格納されてもよいし、又は異なるデータ構造(複数可)に別々に格納されてもよい(例えば、1つ以上のシーケンス、テーブル(表)、マトリクス(行列)等に)。ヒートマップ及びニューロン/シナプスデータは、例えば、インデックス、固有の識別子、メモリ位置のマッピング、テーブル(複数可)若しくはマトリクス(複数可)等の同じ若しくは異なるデータ構造(複数可)における順序、又は任意の他のデータ構造若しくは関係によって互いに関連付けられてもよい。
【0031】
従来のシステムは、各実行において、ニューラルネットワーク200のN個のシナプスすべてを完全に活性化する。ニューラルネットワーク200の各完全に活性化された実行において、プロセッサは、ネットワークの全てのN個のシナプスを計算するために、ニューラルネットワーク200を順方向に1回の伝搬を実行し(予測モード)、及び/又は誤差補正のために全てのN個のシナプスを再計算するために、ニューラルネットワーク200を逆方向に追加の1回の伝搬を実行する(訓練モード)。図2Aでは、分かりやすくするために小さなニューラルネットワーク(例えば、N=48個のシナプス)が示されているが、現在のほとんどのニューラルネットワークは、数百万若しくは数十億のシナプス又はフィルタを有しており、各完全に活性化された実行は、計算的に困難で時間のかかる作業となる。
【0032】
本発明の実施形態によれば、ニューラルネットワーク200を部分的に活性化して、かなり速い時間で高精度に完全活性化ニューラルネットワークを近似するシステム及び方法が提供される。ニューラルネットワーク200の各部分活性化実行において、プロセッサは、ニューラルネットワーク200の複数の部分活性化を順方向及び/又は逆方向に実行してもよく、この際に、各i番目のニューロン/シナプスは、その履歴的な活動メトリックに比例するXの活性化頻度で、かつ反復の総数Y未満で活性化される。いくつかの実施形態では、恒久的に活性化されたニューロン/シナプス又は不活性化/削除/剪定されたニューロン/シナプスのサブセットが存在してもよい。例えば、完全活性化ニューラルネットワークの同じ反復回数Yで実行された全てのシナプスの総数Nの一部のサブセットでしかなくかつそれよりも少ない数である、活性化されたニューロン/シナプスの総数
【数5】
が計算されてもよい。従って、部分活性化の間に活性化されなかった残りのシナプスのかなりの数、
【数6】
は計算されず、そのニューラルネットワークの完全な活性化と比較して、ニューラルネットワークの部分活性化のために実行される計算の減少をもたらす。いくつかの実施形態では、バラバラ又は不連続のニューロン/シナプスは出力をもたらさないので、ニューロン/シナプスは、入力層から出力層につながるニューロン又はシナプスの連続した経路又はシーケンスで活性化されてもよい。このように、いくつかの個々の低活動のニューロン/シナプスが活性化されて、高活動のニューロン/シナプスが連結されてもよい。従って、個々のニューロンの活性化は、隣接するニューロン/シナプスのヒートマップデータに依存してもよく、かつ/又は、例えば連続した入力から出力への経路を形成するニューロン/シナプスのグループについてまとめて評価されてもよい。1つの例では、部分活性化ニューラルネットワークは、4つのそれぞれ最高の集合的な履歴的な活動メトリックを有する4つの連続した経路を含む。各経路には3つのシナプスがあり、合計12個のシナプス(全N=48シナプスの25%、従来の完全活性化ニューラルネットワークと比較して4倍のスピードアップ)が得られる。同様に、訓練モードでは、順方向伝搬に加えて、シナプスの同じサブセットの逆方向伝搬が実行され、ニューラルネットワークの部分的に活性化された訓練(順方向及び逆方向)の各実行で実行される計算が、ニューラルネットワークの完全に活性化された訓練の実行と比較して2分の1に削減される。従って、先の例では、部分活性化ニューラルネットワークは、従来の完全活性化ニューラルネットワークよりも8倍速く訓練される。
【0033】
本発明のいくつかの実施形態に係る、図2Aのニューラルネットワーク200の第1及び第2のそれぞれの部分活性化を模式的に図示した図2B及び図2Cを参照する。図2B及び図2Cでは、スペースの制限のために2つの部分活性化反復のみが図示されているが、省略記号は、より多くの数Yの部分活性化反復が使用されてもよいことを示している(例えば、Y=3、...、10、...、100、...、1000、...、1,000,000、...、1,000,000,000、...)。
【0034】
図2B及び図2Cに示す複数の部分経路は、入力層(例えば、下層)の単一のニューロンと出力層(例えば、上層)の単一のニューロンとを連続的に結ぶシナプスの異なるそれぞれのシーケンスを含む。1つの実施形態では、各部分経路は、入力ニューロンから出力ニューロンまで切断されない(例えば、伝搬経路を描くペンが紙から浮き上がることがない)ネットワークを伝搬する線又は経路によって接続されたシナプスの連続的又は途切れないシーケンスを含んでもよい。図2B及び図2Cに示す例では、部分経路は線形(隣接する層における1対1のシナプス接続)であるが、分岐(隣接する層における1対多のシナプス接続)、スキップパス、リカレントパス、ウィービングパス、又はこれらの組み合わせ等、他の経路パターンが使用されてもよい。ニューロン/シナプスの他のグループやクラスタが使用されてもよい。
【0035】
いくつかの実施形態では、ニューラルネットワークの一部の領域、層、チャネル、反復、訓練対予測等のモードが部分的に活性化され、他の領域が完全に活性化される「ハイブリッド」の部分活性化及び完全活性化のニューラルネットワークが使用されてもよい。例えば、1つの実施形態では、訓練モード(例えば、通常はオフラインで実行される)は完全に活性化されてもよい一方で、予測モード(例えば、通常はリアルタイムで実行される)は部分的に活性化される。これは、通常は、訓練の間よりも予測の間のほうが速度がより重要であるからである。他の実施形態では、訓練モードは、(例えば、訓練モードは相対的により多くの時間を要する作業であるため)部分的に活性化されてもよい一方で、予測モードは、(予測モードは相対的により少ない時間しか必要としない作業であるため)完全に活性化されてもよい。他の実施形態は、所定のスケジュール(例えば、N回の部分活性化ごとに1回の完全活性化)に従って、又は誤差又は精度の測定値が閾値を超えたときに、部分活性化と完全活性化とを交互に行ってもよい。他の実施形態では、最大不活性化期間が設けられてもよく、その期間後に、閾値を超える時間又は反復回数で不活性化されていたニューロン/シナプスが再活性化される。これにより、以前は低活動であった、又は廃れたニューロン/シナプスを定期的に再導入して、訓練中に行われた何らかの変更によって今ではそれらニューロン/シナプスの重要性が増し、ネットワークに再導入する価値があるかどうかをテストすることができる。
【0036】
加えて又はあるいは、部分活性化は完全なニューラルネットワークの近似にすぎないため、初期段階(例えば、最初のP回の反復、又は予測中に出力が収束するか、若しくは訓練中に誤差が閾値内に収束するまで)で部分活性化が使用されてもよく、その後、完全活性化ニューラルネットワークが実行されて(例えば、次の若しくは最後のQ回の反復、又は出力が収束するか、若しくは誤差がゼロに収束するまで)、初期の部分近似が確認されてもよい。加えて又はあるいは、部分活性化が特定の層(例えば、最終的な結果への直接的な影響がより少ないことが多い中間層の深い部分)で使用されてもよく、完全接続ネットワークが残りの層(例えば、最終的な結果への直接的な影響がより大きいことが多い入力層及び出力層の近くの層)で使用されてもよい。部分活性化ニューラルネットワークと完全活性化ニューラルネットワークとの他のハイブリッドな組み合わせが使用されてもよい。
【0037】
図2Bを参照すると、第1の部分活性化反復は、例えばランダムに、又は入力に基づいて最良の推測として選択されたニューロン/シナプスの「シード(種)」又は開始グループ(例えば、ニューロン「1」)によって初期化されてもよい。各ニューロン/シナプスの活動(非ゼロ若しくは閾値を超える寄与)又は不活動(ゼロ若しくは閾値未満の寄与)は、各反復について記録されて、その履歴的な活動メトリックとして集約されてもよい。様々な実施形態において、活動は、すべての反復において等しく重み付けされてもよいし、又はより最近の反復についてより高く(例えば、経時的に直線的又は対数的に)重み付けされてもよい。
【0038】
図2Cを参照すると、第2の部分活性化反復は、図2Bの前の第1の反復におけるその履歴的な活動メトリックに基づいて、ニューロン/シナプスを活性化してもよい。後続の各i番目の反復は、前の(例えば、i-1回の)反復のうちの1つ以上におけるそれらの履歴的な活動メトリックに基づいて、ニューロン/シナプスを活性化してもよい。
【0039】
本発明のいくつかの実施形態に係る、履歴的な活動のヒートマップに従って畳み込みニューラルネットワーク300を部分的に活性化することを模式的に示す図3を参照する。
【0040】
畳み込みニューラルネットワーク300は、入力層301と、1つ以上の畳み込み層302及び303(例えば、示されていない追加の層)と、1つ以上の出力層とを含む。CNN300の各層301、302、303、...は、1つ又は複数のチャネルを有していてもよい。図3に示す例では、入力層301は、カラー画像を表し、3つのカラーチャネル304、306及び308(例えば、赤、緑、青の各チャネル)を有する。第1の畳み込み層302は、複数(例えば10個)のチャネル(例えばC1~C10)を有し、第2の畳み込み層303は、複数(例えば8個)のチャネル(例えばC1~C8)を有する。各畳み込みチャネルは、エッジ、ライン、サークル、又はリンゴ、ハンマー等のより上位層のより複雑なオブジェクト等の特徴の特徴マップを表してもよい。これらの特徴のチャネルは、通常、ニューラルネットワークの訓練プロセスから完全に生まれる(そして、手動で指定されることはない)。
【0041】
完全接続型CNNでは、1つの層の各チャネルは、畳み込みフィルタ314によって後続の層の各チャネルに接続されてもよい。例えば、入力層301の各色チャネル304、306又は308は、畳み込みフィルタ314によって、第1の畳み込み層302の各畳み込みチャネルC1~C10に接続されてもよく、この畳み込みチャネルC1~C10が次に、畳み込みフィルタ314によって、第2の畳み込み層303の各畳み込みチャネルC1~C8に接続されてもよい。図3の例では、入力層301には3つのチャネル304~308があり、第1の畳み込み層302には10個のチャネルC1~C10があり、第2畳み込み層303には8個のチャネルC1~C8があり、その結果、入力層と畳み込み層301、302、303、...からのチャネルのすべてのペアを接続するフィルタ314は合計N=240個になる。CNN300は通常、図示されているよりもさらに多くの畳み込み層及び/又は他の(例えば、マックス・プーリング)層を有しており、これにより、フィルタ314の数が指数関数的に増加する(例えば、数千、数百万、又は数十億のフィルタ314になる)。
【0042】
畳み込みニューラルネットワーク300内の各チャネル又はフィルタは、その現在の重み値と、過去の活性化頻度、過去のニューロン/シナプスの大きさ、過去の変化ニューロン/シナプス/フィルタの大きさ等の過去の又は履歴的な活動メトリックとに関連付けられてもよい。
【0043】
本発明の実施形態は、各反復において、畳み込みニューラルネットワーク300のすべてのN個のフィルタ314のサブセットのみに累積的に及ぶ高活動フィルタ316及び318(閾値を超える履歴的な活動メトリックを有する)を反復的に実行することによって、図3の畳み込みニューラルネットワーク300を部分的に活性化してもよい。複数の反復にわたって、各i番目のフィルタは、その履歴的な活動メトリックに比例し、反復の総数Y未満の活性化頻度Xで活性化されてもよい。いくつかの実施形態では、恒久的に活性化されたフィルタ又は不活性化/削除/剪定されたフィルタのサブセットがあってもよい。例えば、完全に活性化された畳み込みニューラルネットワーク300の同じ反復回数Yで実行されたすべてのフィルタの総数Nの一部のサブセットでしかなくかつそれよりも少ない数である、活性化されたフィルタの総数
【数7】
が計算されてもよい。従って、部分活性化の間に活性化されなかった残りのフィルタ314のかなりの数、
【数8】
は計算されず、畳み込みニューラルネットワークの完全な活性化と比較して、畳み込みニューラルネットワーク300の部分活性化のために実行される計算の減少をもたらす。図を不明瞭にしないように、フィルタ316及び318のサブセットを部分的に活性化する1つの反復のみが図3に示されているが、さらにより多くのフィルタ及び反復が使用されてもよい。いくつかの実施形態では、例えば、予測の間、すべての部分活性化の反復における活性化されたフィルタの総数は、CNNにおけるすべてのフィルタの総数Nよりも少なくてもよい。いくつかの実施形態では、例えば、訓練の間、Y回のすべての部分活性化反復における活性化されたフィルタの総数は、同じ数のY回の反復におけるすべてのフィルタの総数Nよりも少なくてもよい。
【0044】
CNNでは、フィルタは2次元(2D)又は3次元(3D)であってもよい。2Dフィルタは、第1の層の各単一のチャネルを第2の層の単一のチャネルと接続し、3Dフィルタは、第2の層の各単一のチャネルを第1の層の複数のチャネルと接続する。例えば、図3に示す畳み込みニューラルネットワーク300は、入力層及び第1の畳み込み層を、30個の2Dフィルタ、又は10個の3Dフィルタで接続してもよい。部分活性化は、CNNにおいて、2Dフィルタ又は3Dフィルタ、又はそれらの任意の組み合わせを選択的に活性化(及び不活性化若しくはスキップ)してもよい。
【0045】
一般に、図3の畳み込みニューラルネットワーク300におけるフィルタ314の部分活性化は、図2のニューラルネットワーク200におけるニューロン202又はシナプス204の部分活性化を参照して説明した同じ又は異なる実施形態を、当業者に理解されるような関連する変更を伴って使用してもよい。
【0046】
本発明のいくつかの実施形態に係る、その履歴的な活動のヒートマップに従ってニューラルネットワークを部分的に活性化するためのシステム400を模式的に示す図4を参照する。システム400は、図1A図1B図2A図2C図3及び図5を参照して説明するように、ニューラルネットワーク及びその関連する履歴的な活動のヒートマップを格納(記憶)及び/又は生成してもよく、ニューラルネットワークの部分活性化によって訓練及び/又は予測を行ってもよい。例えば、図2A図2Cを参照すると、システム400は、図2B図2Cの第1及び第2の部分活性化反復を用いて、図2Aのニューラルネットワーク200を部分的に活性化してもよい。別の例では、図3を参照すると、システム400は、部分活性化反復においてフィルタサブセット316及び318を使用して、畳み込みニューラルネットワーク300を部分的に活性化してもよい。
【0047】
システム400は、1つ以上のローカルエンドポイントデバイス450と、ネットワーク及び/又はコンピューティングクラウド420を介してローカルデバイスにアクセス可能な1つ以上のリモートサーバ410とを含んでもよい。典型的には、ニューラルネットワークは、リモートサーバ410によって訓練され、1つ以上のローカルエンドポイントデバイス450で予測のために実行されるが、リモートサーバ410及び/又はローカルエンドポイントデバイス450のいずれかが、本発明の実施形態に係る部分活性化を使用してニューラルネットワークを訓練及び/又は予測してもよい。特に、ニューラルネットワークを部分的に活性化することは、従来の完全活性化ニューラルネットワークと比較して、予測及び訓練のための計算労力を大幅に削減し、その結果、典型的に非常に限られたメモリ及び処理能力しか有さないローカルエンドポイントデバイス450がこのような予測及び/又は訓練を迅速かつ効率的に実行できるようにする。ローカルエンドポイントデバイス450が訓練及びランタイム予測を実行するとき、リモートサーバ410は取り除かれてもよい。
【0048】
リモートサーバ410は、ニューラルネットワーク及び関連する履歴的な活動のヒートマップを格納及び検索するためのメモリ416及びプロセッサ414を有してもよい。リモートサーバ410は、(例えば、図2Aのニューラルネットワークの抜粋200又は図3のニューラルネットワークの抜粋300について)完全なニューラルネットワークを格納してもよく、リモートプロセッサ414は、訓練及び/又は予測のためにニューラルネットワークを部分的に活性化してもよい。いくつかの実施形態では、リモートサーバ410は、ニューラルネットワーク/ヒートマップを格納するための大規模なメモリ416と、特殊なプロセッサ414(例えば、GPU)とを含む特殊なハードウェアを有してもよい。メモリ416は、訓練データセットと、ニューラルネットワークのシナプス又はフィルタの複数の重み、及び関連する履歴的な活動のヒートマップを表すデータとを含めたデータ418を格納してもよい。データ418は、例えば、本発明の実施形態に係るデータ418の格納(保存)及び検索を可能にするコード(例えば、ソフトウェアコード)又はロジックも含んでよい。
【0049】
ローカルエンドポイントデバイス(複数可)450はそれぞれ、本発明のいくつかの実施形態で提供されるニューラルネットワーク(例えば、図2Aの200、又は図3の300)を格納するための1つ以上のメモリ426を含んでもよい。メモリ426は、ニューラルネットワークのシナプス又はフィルタの複数の重みのそれぞれと、1つ以上の関連する履歴的な活動メトリックとを格納してもよい。ローカルエンドポイントデバイス(複数可)450はそれぞれ、メモリ426に格納されたニューラルネットワークのシナプス又はフィルタの重み及び履歴的な活動メトリックに基づいて、訓練及び/又は予測のためにニューラルネットワークを部分的に活性化するための1つ以上のプロセッサ424を含んでもよい。予測の間、ニューラルネットワークは一度だけ順方向に実行される。訓練の間、ニューラルネットワークは、出力を生成するために順方向に1回、誤差補正(例えば、誤差逆伝播法)のために逆方向に1回、計2回実行される。ニューラルネットワークが実行されるたびに、計算の数は、部分活性化によって横断されたシナプス又はフィルタの数に基づいており、ニューラルネットワークの部分活性化によって計算されないシナプス又はフィルタの数の減少に比例して速度が増加する。
【0050】
リモートプロセッサ414及び/又はローカルプロセッサ424は、ニューラルネットワーク内の複数のシナプス又はフィルタのサブセットを反復的に活性化することによって(例えば、図2図2B図2Cの第1及び第2の部分活性化の反復、又は図3のフィルタ316及び318の部分活性化の反復等)、ニューラルネットワークを部分的に活性化してもよい。リモートプロセッサ414及び/又はローカルプロセッサ424は、各個別若しくはグループのシナプス又はフィルタを、その個別若しくはグループのシナプス又はフィルタに対して独立して決定された履歴的な活動のメトリックに比例する反復の総数の一部で実行してもよい。訓練中、リモートプロセッサ414及び/又はローカルプロセッサ424は、複数のバックワードパス(後進)誤差補正反復を実行してもよい。予測の間、リモートプロセッサ414及び/又はローカルプロセッサ424は、複数のそれぞれの部分パスに対する複数の部分出力を生成してもよく、ニューラルネットワークのすべてのシナプス又はフィルタの単一のインスタンス(例)を実行することによって、ニューラルネットワークを完全に活性化することによって生成される出力を近似するために、複数の部分出力を集約(例えば、平均)してもよい。実験的に示されるように、N個のシナプスの総数の10%を横断することによって例示的なニューラルネットワークを部分的に活性化したプロセッサ(例えば、リモートプロセッサ及び/又はローカルプロセッサ(複数可)414及び/又は424)は、ニューラルネットワークを完全に活性化するプロセッサの99%の精度及び10倍の速度で実行した。
【0051】
ローカルエンドポイントデバイス(複数可)450は、スマートデバイス、パーソナルコンピュータ、デスクトップ型コンピュータ、モバイルコンピュータ、ラップトップコンピュータ、及びノート型コンピュータ、又は、携帯電話、パーソナルデジタルアシスタント(PDA)、ビデオゲームコンソール等の他の適切なデバイスを含んでもよく、有線若しくは無線による接続又はモデムを含んでもよい。ローカルエンドポイントデバイス(複数可)450は、ユーザからの入力(例えば、ニューロン、シナプス及び層の数、サイズ、寸法並びに構成、活性、精度、誤差、収束又は訓練閾値、Y個の部分活性化反復数、部分活性化ニューラルネットワークにおける活性化されたシナプス又はフィルタの総数又は割合
【数9】
、部分活性化されたニューラルネットワークにおける活性化されたニューロン、シナプス、フィルタ又は経路の分布、シナプス又はフィルタのパターン又はグループ等、などのニューラルネットワークパラメータ)を受信するための1つ以上の入力デバイス422を含んでもよい。ローカルエンドポイントデバイス(複数可)450は、ローカルエンドポイントデバイス(複数可)450又はリモートサーバ410によって生成されたデータをユーザに表示するための1つ以上の出力デバイス428(例えば、モニタ又は画面)を含んでもよい。
【0052】
様々なアプリケーションにおいて、ローカルエンドポイントデバイス(複数可)450は、画像認識、コンピュータビジョン、仮想現実又は拡張現実、音声認識、テキスト理解、又は深層学習の他のアプリケーションのためのシステムの一部である。顔認識のアプリケーションでは、デバイスは、部分活性化を使用して、顔認識を効率的に実行し、一致が検出されたときに自身又は物理的なドアのロックを解除するようにデバイスをトリガしてもよい。セキュリティのアプリケーションでは、セキュリティカメラシステムは、部分活性化を使用して、セキュリティ違反を効率的に検出し、アラームやその他のセキュリティ対策を鳴らしてもよい。自動運転のアプリケーションでは、車両コンピュータは、部分活性化を使用して、例えば、検出された物体を回避するために舵を切る等、運転操作を制御してもよい。
【0053】
ローカルエンドポイントデバイス(複数可)450とリモートサーバ410を接続するネットワーク420は、インターネット等の任意のパブリックネットワーク又はプライベートネットワークであってもよい。ネットワーク420へのアクセスは、ワイヤライン、地上ワイヤレス、衛星、又は当該技術分野で周知の他のシステムを介してもよい。
【0054】
ローカルエンドポイントデバイス(複数可)450及びリモートサーバ410は、本発明の実施形態に係る操作を実行するための、それぞれ1つ以上のコントローラ又はプロセッサ414及び424と、データ418及び/又はプロセッサ(複数可)によって実行可能な命令(例えば、本発明の実施形態に係る方法を適用するためのソフトウェア)を格納(記憶)するための、それぞれ1つ以上のメモリユニット416及び426とを含んでもよい。プロセッサ(複数可)414及び424は、例えば、中央処理装置(CPU)、グラフィック処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、マイクロプロセッサ、コントローラ、チップ、マイクロチップ、集積回路(IC)、又は他の任意の適切な汎用の又は特定用途向けのプロセッサ若しくはコントローラを含んでもよい。メモリユニット(複数可)416及び426は、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、フラッシュメモリ、揮発性メモリ、不揮発性メモリ、キャッシュメモリ、バッファ、短期メモリユニット、長期メモリユニット、又は他の適切なメモリユニット若しくはストレージユニットを含んでもよい。
【0055】
他のデバイス及び構成が使用されてもよく、例えば、データ418がメモリ426にローカルに保存され、別のサーバ410が使用されなくてもよい。
【0056】
本発明のいくつかの実施形態に係る、ニューラルネットワークの履歴的な活動のヒートマップに従ってニューラルネットワークを部分的に活性化する方法のフローチャートである図5を参照する。図5の操作は、メモリ(例えば、図4の1つ以上のメモリユニット416及び/又は426)に格納されたデータを使用して、プロセッサ(例えば、図4の1つ以上のプロセッサ414及び/又は424)によって実行されてもよい。
【0057】
操作500において、プロセッサは、複数のN個のシナプス又はフィルタのそれぞれの現在の重み値を含むニューラルネットワーク(例えば、2Aの200又は図3の300)をメモリに格納してもよい。CNNは、2D及び/又は3Dであるフィルタを有してもよい。
【0058】
操作510において、プロセッサは、1つ以上の過去の反復の間に、各個別若しくはグループの1つ以上のシナプス又はフィルタについて独立して、1つ以上の履歴的な活動のメトリックを決定してもよい。履歴的な活動のメトリックは、各個別若しくはグループのシナプス若しくはフィルタが1つ以上の過去の反復において活性化された頻度、1つ以上の過去の反復におけるシナプス若しくはフィルタの重みの大きさ、1つ以上の過去の誤差補正反復におけるシナプス若しくはフィルタの重みの変化の大きさ、それらの測定値のいずれかの平均中央値若しくは標準偏差、又はそれらのいずれかの個別若しくは組み合わせから導かれる値を含んでもよい。シナプス又はフィルタのグループは、例えば、入力層から出力層までのシナプス又はフィルタの連続したシーケンスをつなぐニューラルネットワーク経路を形成するシナプス又はフィルタのシーケンス、それぞれがニューロンに直接接続されたシナプスのグループ、及び/又は、それぞれが畳み込みニューラルネットワーク内のニューロンのグループに直接接続されたフィルタのグループを含んでもよい。
【0059】
履歴的な活動のメトリックは、ディスプレイ(例えば、ローカルデバイス450の428又はリモートサーバ410の画面)上のヒートマップ(例えば、図1Aの100又は図1Bの110)で視覚化されてもよい。履歴的な活動のメトリックは、例えば、スケジュールに従って定期的に、1回以上の反復ごとに、又はシナプス若しくはフィルタの個別若しくはグループが活性化される1回以上ごとに、動的に更新されてもよい。いくつかの実施形態では、ヒートマップは、部分活性化反復のそれぞれのシーケンスに対する履歴的な活動のメトリックを表すフレームのシーケンスの動画像を視覚化してもよい。動画像を再生することで、訓練及び/又は予測のフェーズの期間にわたってニューラルネットワーク内に分布する活動の変化を視覚化してもよい。
【0060】
操作520において、プロセッサは、ニューラルネットワークの複数の部分活性化を反復的に実行することにより、ニューラルネットワークを部分的に活性化してもよい。各部分活性化の反復は、ニューラルネットワーク内の複数のシナプス又はフィルタのサブセットを活性化してもよい。各個別若しくはグループのシナプス又はフィルタは、その個別若しくはグループのシナプス又はフィルタに対して独立して決定された履歴的な活動のメトリックに比例する反復の総数の一部で活性化されてもよい。
【0061】
最初の部分活性化反復において、プロセッサは、ニューラルネットワークのすべてのシナプス又はフィルタを完全に活性化し、相対的に低い若しくは閾値未満の履歴的な活動のメトリックを持つ個々若しくはグループのシナプス又はフィルタを段階的に不活性化し、不活性化されたが閾値を超える履歴的な活動のメトリックを持つシナプス又はフィルタを再活性化することによって、訓練又は予測を開始してもよい。他の実施形態では、部分活性化反復は、(例えば、ランダムに又は入力データに基づいて選択された)部分活性化ニューラルネットワークから始まってもよく、その後、シナプス又はフィルタが段階的に活性化又は不活性化される。
【0062】
いくつかの実施形態では、プロセッサは、個別若しくはグループのシナプス又はフィルタが活性化される総反復の一部を調整してもよい。様々な実施形態において、調整された部分は、固定数、誤差を閾値未満に保つように動的に調整されたもの、誤差に反比例して動的に調整されたもの、総計算量を閾値未満に保つように動的に調整されたもの、予測の複数の反復において予測結果が収束若しくは発散するにつれて、又は訓練中に誤差がゼロに収束又はゼロから発散するにつれて、それぞれ漸近的に減少及び増加するように動的に調整されたもの、ハードウェアリソースの監視されたリアルタイムの利用可能性に基づいて動的に調整されたもの、等である。
【0063】
プロセッサは、ニューラルネットワークを部分的に活性化することと完全に活性化することのハイブリッドな組み合わせを実行してもよい。ニューラルネットワークは、ニューラルネットワークの異なる層、フィルタ、チャネル、反復、又は動作モードに対して、部分的又は完全に活性化されてもよい。いくつかの実施形態では、プロセッサは、所定のスケジュールに従って定期的に、及び/又は誤差若しくは精度の測定値が閾値を超えたときに、ニューラルネットワークを部分的に活性化することと完全に活性化することとを交互に行ってもよい。いくつかの実施形態では、プロセッサは、訓練モードでのみニューラルネットワークを部分的に活性化し、予測モードでのみニューラルネットワークを完全に活性化してもよいし、又は予測モードでのみニューラルネットワークを部分的に活性化し、訓練モードでのみニューラルネットワークを完全に活性化してもよいし、又は訓練モード及び予測モードの両方でニューラルネットワークを部分的に活性化してもよい。
【0064】
いくつかの実施形態では、個別若しくはグループのシナプス又はフィルタが閾値を超える時間又は反復回数で不活性であると、(訓練中に行われた何らかの変更がそれらのニューロン/シナプスを今では意義あるものにするようになった場合、そのシナプス又はフィルタのテストを再導入するために)そのシナプス又はフィルタが再活性化されてもよい。いくつかの実施形態では、個別若しくはグループのシナプス又はフィルタが、閾値を超える時間又は反復回数で不活性化されていたり、履歴的な活動のメトリックが閾値未満になったりすると、そのシナプスやフィルタは恒久的に不活性になったり、削除されたり、剪定されたりすることがある。ニューラルネットワークのシナプス又はフィルタのかなりの割合(例えば、少なくとも50%~99%)を剪定することで、スパースな(疎な)ニューラルネットワークが生成されてもよい。このスパースなニューラルネットワークは、例えば、全体が参照により本明細書に組み込まれる2019年7月30日に発行された米国特許第10,366,322号明細書に開示されているように、ニューラルネットワークの速度を向上させ、メモリ使用量を低減するために使用されてもよい。
【0065】
操作530では、プロセッサは、ニューラルネットワークの複数の部分活性化に基づいて、ニューラルネットワークの訓練又は予測を実行してもよい。
【0066】
訓練の間、プロセッサは、複数のバックワードパス誤差補正反復を実行してもよく、その際、各個別若しくはグループのシナプス又はフィルタは、誤差補正反復の総数の一部で補正される。訓練は、誤差逆伝播法、(例えば、全体が参照により本明細書に組み込まれる2019年7月2日に発行された米国特許第10,339,450号明細書に開示されているような)進化的モデリング、又は任意の他の誤差補正若しくは訓練方法によって実行されてもよい。
【0067】
予測の間、プロセッサは、複数のフォワードパス推論反復を実行して、複数の部分出力をそれぞれ生成してもよい。各個別若しくはグループのシナプス又はフィルタは、推論反復の総数の一部で計算されてもよい。複数の部分的な出力は、すべてのシナプス又はフィルタの単一のインスタンスがニューラルネットワークに対して実行されているかのように、ニューラルネットワークを完全に活性化することによって生成される出力に近似した集約された出力を生成するために集約されてもよい。複数の推論反復で活性化されたシナプス又はフィルタは、複数の残りのシナプス又はフィルタが活性化されないように、ニューラルネットワークのすべてのシナプス又はフィルタのサブセットのみに累積的に及んでもよい。
【0068】
いくつかの実施形態では、複数のシナプス又はフィルタの活性化されるサブセットは、ニューラルネットワークへの入力に基づいて選択されてもよい。例えば、入力を分析して、例えば、ルックアップテーブル、又は入力と最適な部分活性化パターンを相関させるように訓練された第2のニューラルネットワークに基づいて、最適な活性化サブセットが決定されてもよい。各層の活性化は、入力層、1つ前の層、及び/又は前の層のすべて若しくは任意の組み合わせの累積に基づいていてもよい。
【0069】
他の操作又は操作の順序が使用されてもよい。いくつかの実施形態では、様々な操作を組み合わせたり、並列に又は連続して実行したり、又はその他の方法で順列化したりしてもよい。例えば、複数の部分活性化反復を反復的に実行すること(操作520)は、ニューラルネットワークを訓練又は予測(操作530)することの一部と考えられてもよい。
【0070】
前述の説明では、本発明の様々な態様が説明されている。本発明の完全な理解を提供するために、説明の目的のために、特定の構成及び詳細が示されている。しかしながら、本発明は、本明細書中に提示された特定の詳細がなくても実施されてよいことも、当業者には明らかであろう。さらには、周知の特徴は、本発明を不明瞭にしないために、省略又は簡略化されてもよい。
【0071】
特に明記しない限り、以下の議論から明らかなように、本明細書全体にわたる議論において、「処理」、「計算」、「算出」、「決定」等の用語を利用することは、コンピューティングシステムのレジスタ及び/又はメモリ内の例えば電子的な物理量として表されたデータを、コンピューティングシステムのメモリ、レジスタ、又は他のこのような情報を保存、送信、又は表示するデバイス内の物理量として同様に表された他のデータに操作及び/又は変換するコンピュータ若しくはコンピューティングシステム、又は同様の電子コンピューティングデバイスのアクション及び/又はプロセスを指すことが理解される。
【0072】
上述のフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム及び方法の可能な実装のアーキテクチャ、機能、及び動作を図示する。これに関連して、フローチャート又はブロック図の各ブロックは、コードのモジュール、セグメント、又はコードの一部分を表してもよく、このコードは、指定された論理機能(複数可)を実装するための1つ以上の実行可能な命令を含んでいてもよい。いくつかの代替の実施態様では、ブロックに記載されている機能は、図に記載されている順序で行われなくてもよく、又は異なるモジュールによって行われてもよい。明示的に記載されていない限り、本明細書に記載されている方法の実施形態は、特定の順序又はシーケンスに拘束されない。加えて、説明した方法の実施形態又はその要素のいくつかは、同じ時点で発生し又は実行されてもよい。ブロック図及び/又はフローチャートの説明図の各ブロック、及びブロック図及び/又はフローチャートの説明図のブロックの組み合わせは、指定された機能若しくは行為を実行する特別目的のハードウェアベースのシステム、又は特別目的のハードウェアとコンピュータ命令との組み合わせによって実装することができる。
【0073】
本発明の実施形態は、部分経路の階層を含んでもよい。例えば、ニューラルネットワークを分類する場合には、最高レベルの超級分類を予測するために最も性能の良い経路である部分経路の初期セットが使用されてもよい。最高レベルの分類が予測されると、この特定の超級のクラス間の次の最高レベルの分類を予測するための最高性能の経路である後続の部分経路のセットが使用されてもよい。このプロセスは、階層内の各分類レベルについて、新たに最適化された部分経路のセットを用いて反復してもよい。これらの部分経路のセットは、訓練データで複数の実験を行い、各分類に対して最高性能の経路のセットを選択することにより作成することができる。上記のセットは、手動で選択することもでき、両方のアプローチを組み合わせることもできる。
【0074】
本発明の実施形態は、特定の部分経路の順方向において出力層の一部のみが活性化された場合に、ある層からの信号の減少を補償するために、その層の出力を正規化することを含んでもよい。いくつかの実施形態では、値は、ニューロンごとに、層ごとに、経路全体ごとに、又はそれらの任意の組み合わせで正規化されてもよい。
【0075】
本発明の実施形態は、最初の層のセットがそれらの層のニューロンのすべてを使用して実行され、その後、最後のそのような層からの結果が保存され、ネットワークの残りの部分経路の実行のすべてへの入力として使用されうる実装を含んでもよい。
【0076】
本発明の実施形態は、プロセッサ又はコントローラ(例えば、図4のプロセッサ(複数可)414及び/又は424)によって実行されると本明細書に開示された方法を実施する命令、例えばコンピュータ実行可能な命令を符号化、含める又は格納する、例えばメモリ(例えば、図4のメモリユニット(複数可)416及び/又は426)、ディスクドライブ、又はUSBフラッシュメモリ等のコンピュータ若しくはプロセッサの非一過性の可読媒体、又はコンピュータ若しくはプロセッサの非一過性の記憶媒体等の物品を含んでもよい。
【0077】
上記の説明では、実施形態は、本発明の一例又は実施態様である。「1つの実施形態」、「一実施形態」、又は「いくつかの実施形態」の様々な登場は、必ずしもすべてが同じ実施形態を指すものではない。本発明の様々な特徴は、単一の実施形態の文脈で説明されることがあるが、実施形態の特徴は、別個に又は任意の適切な組み合わせで提供されてもよい。逆に、本発明が、明確にするために別個の実施形態の文脈で本明細書中で説明されることがあるが、本発明は単一の実施形態で実施されてもよい。本明細書における「いくつかの実施形態」、「一実施形態」、「1つの実施形態」、又は「他の実施形態」への言及は、その実施形態に関連して記載された特定の特徴、構造、又は特性が、本発明の、必ずしもすべての実施形態ではないが、少なくとも一部の実施形態に含まれることを意味する。さらに、本明細書に記載された発明の態様は、本発明の実施形態において組み合わせられたり、その他の様相で共存したりしてもよいということが認識されるであろう。
【0078】
特許請求の範囲及び明細書に提示された説明、例、方法及び材料は、限定的なものとして解釈されるものではなく、むしろ例示的なものとしてのみ解釈されるものである。本明細書では、本発明の特定の特徴を図示及び説明してきたが、多くの改変、置換、変更、及び等価物が当業者に思い浮かびうる。それゆえ、添付の特許請求の範囲は、本発明の真の趣旨に沿うようなすべてのそのような改変及び変更を包含することが意図されていることを理解されたい。
【0079】
本発明を限られた数の実施形態に関して説明してきたが、これらは本発明の範囲に対する制限として解釈されるべきではなく、むしろ好ましい実施形態のいくつかを例示するものである。他の可能な変形、改変、及び応用も本発明の範囲内である。本明細書では、異なる実施形態が開示されている。特定の実施形態の特徴は、他の実施形態の特徴と組み合わせられてもよく、従って、特定の実施形態は、複数の実施形態の特徴の組み合わせであってもよい。
図1
図2
図3
図4
図5