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

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

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

特許7111908ニューラルネットワークにおける複数の経路の部分活性化
<>
  • 特許-ニューラルネットワークにおける複数の経路の部分活性化 図1
  • 特許-ニューラルネットワークにおける複数の経路の部分活性化 図2
  • 特許-ニューラルネットワークにおける複数の経路の部分活性化 図3
  • 特許-ニューラルネットワークにおける複数の経路の部分活性化 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-25
(45)【発行日】2022-08-02
(54)【発明の名称】ニューラルネットワークにおける複数の経路の部分活性化
(51)【国際特許分類】
   G06N 3/08 20060101AFI20220726BHJP
【FI】
G06N3/08
【請求項の数】 60
(21)【出願番号】P 2021549512
(86)(22)【出願日】2020-02-13
(65)【公表番号】
(43)【公表日】2022-02-03
(86)【国際出願番号】 IL2020050168
(87)【国際公開番号】W WO2020174458
(87)【国際公開日】2020-09-03
【審査請求日】2021-10-29
(31)【優先権主張番号】16/288,866
(32)【優先日】2019-02-28
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/722,639
(32)【優先日】2019-12-20
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521271705
【氏名又は名称】ディープキューブ リミテッド
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100205659
【弁理士】
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100126000
【弁理士】
【氏名又は名称】岩池 満
(74)【代理人】
【識別番号】100185269
【弁理士】
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】デイヴィッド エリ
(72)【発明者】
【氏名】ルビン エリ
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2015-210747(JP,A)
【文献】特開平7-200512(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを近似するための方法であって、
N個のシナプスまたはフィルタを備えるニューラルネットワークを記憶するステップと、
前記ニューラルネットワークの複数のM個の部分経路を反復的に実行することによって、前記ニューラルネットワークを部分活性化し、M個の部分出力を生成するステップであって、前記M個の部分経路は、入力層を出力層にリンクするシナプスまたはフィルタのM個の異なる連続シーケンスをそれぞれ備え、前記M個の部分経路は、前記ニューラルネットワークの前記N個のシナプスまたはフィルタのサブセットのみに累積的に及ぶので、残りの前記N個のシナプスまたはフィルタのうちの複数のシナプスまたはフィルタが計算されない、ステップと、
前記複数のM個の部分経路の前記M個の部分出力を集約して、前記ニューラルネットワークのN個のシナプスまたはフィルタ全ての単一のインスタンスを実行することによって、前記ニューラルネットワークを完全活性化することによって生成された出力を近似する集約出力を生成するステップと、
前記集約出力に基づいて、前記ニューラルネットワークの訓練または予測を実行するステップと、
を含む、方法。
【請求項2】
前記M個の部分経路を実行することによって部分活性化されるシナプスまたはフィルタの総数が、前記ニューラルネットワーク内の全てのシナプスまたはフィルタの総数Nより少ない、請求項1に記載の方法。
【請求項3】
前記M個の部分経路を前記複数のニューラルネットワークの間で分割することによって、前記複数のニューラルネットワークのアンサンブルを近似するステップを含む、請求項1に記載の方法。
【請求項4】
前記複数のM個の部分経路は、N個のレベルの階層に配置され、前記ニューラルネットワークは、前記N個のそれぞれのレベルに対してN個の複数のフェーズで部分活性化され、比較的高いレベルに対するステージで部分経路を実行する前記部分出力は、比較的低いレベルに対する後続のステージでどの部分経路を実行するかを決定するために使用される、請求項1に記載の方法。
【請求項5】
前記ニューラルネットワークにおける前記複数のM個の部分経路を、ランダムに、セミランダムに、またはランダムとセミランダムとのハイブリッドもしくは両方で選択することを含む、請求項1に記載の方法。
【請求項6】
前記複数のM個の部分経路のうちの1つ以上が、遺伝的アルゴリズムを使用して互いに対して異なる経路を競合することによって部分経路を選択する進化的制約、部分経路の部分出力の試験された精度に基づいて最適な部分経路を選択する発見的制約、特定の最終結果のために出力信号を最大化する最適な部分経路を選択する発見的制約、前記シナプスまたはフィルタ距離に比例する部分経路に沿ってシナプスまたはフィルタを活性化する確率、ランダム性の柱状パターン、および様々なシナプスまたはフィルタ重みの強度からなる群から選択される選択因子に少なくとも部分的に基づいてセミランダムに選択される、請求項5に記載の方法。
【請求項7】
選択された前記M個の部分経路に沿ったシナプスを除く前記ニューラルネットワークの全ての非活性化シナプスをプルーニングまたは除去することによってスパースニューラルネットワークを生成するステップと、前記プルーニングされていないニューラルネットワークによって占有されるよりも小さいメモリ空間に前記スパースニューラルネットワークを記憶するステップとを含む、請求項1に記載の方法。
【請求項8】
部分活性化された前記ニューラルネットワークの前記集約出力が完全活性化された前記ニューラルネットワークの出力に最も近似するように、部分経路の数Mおよび経路あたりのシナプスまたはフィルタの数を調整するステップを含む、請求項1に記載の方法。
【請求項9】
前記M個の部分経路のそれぞれにおけるシナプスまたはフィルタの数は、固定数である、請求項1に記載の方法。
【請求項10】
前記M個の部分経路のそれぞれにおける前記固定数のシナプスまたはフィルタは、一定であり、その結果、前記集約出力が、前記M個の部分経路の前記M個の部分出力の平均になる、請求項9に記載の方法。
【請求項11】
シナプスまたはフィルタの前記固定数は、前記M個の部分経路のそれぞれの連続する1つに対して増加または減少し、その結果、前記集約出力は、前記M個の部分経路のうちの対応する1つにおいてそれぞれ実行されるシナプスまたはフィルタの割合に基づいて重み付けされた、前記M個の部分出力の重み付き平均になる、請求項9に記載の方法。
【請求項12】
前記M個の部分経路のそれぞれにおけるシナプスまたはフィルタの数は、動的に調整される、請求項1に記載の方法。
【請求項13】
シナプスまたはフィルタの前記動的な数は、予測モードにおいて予測結果が複数のランで収束すること、または発散することにつれ、あるいは訓練モードにおいて誤差がゼロに収束すること、またはゼロから発散するにつれて、それぞれ漸近的に減少および増加するように調整される、請求項12に記載の方法。
【請求項14】
シナプスまたはフィルタの前記動的な数は、監視されたハードウェアリソースのリアルタイム入手性に基づいて調整される、請求項12に記載の方法。
【請求項15】
前記M個の部分経路が、順番または並行に実行される、請求項1に記載の方法。
【請求項16】
訓練モードにおいてのみ前記ニューラルネットワークを部分活性化し、予測モードにおいてのみ前記ニューラルネットワークを完全活性化するステップ、
予測モードにおいてのみ前記ニューラルネットワークを部分活性化し、訓練モードにおいてのみ前記ニューラルネットワークを完全活性化するステップ、または
訓練モードおよび予測モードの両方において前記ニューラルネットワークを部分活性化するステップ
を含む、請求項1に記載の方法。
【請求項17】
前記ニューラルネットワークの部分活性化と完全活性化との組合せを実行するステップを含み、前記ニューラルネットワークが、前記ニューラルネットワークの異なる層、フィルタ、チャネル、反復、または動作モードに対して部分活性化または完全活性化される、請求項1に記載の方法。
【請求項18】
ニューラルネットワークを近似するためのシステムであって、
N個のシナプスまたはフィルタを備えるニューラルネットワークを記憶するための1つ以上のメモリと、
1つ以上のプロセッサであって、
前記ニューラルネットワークの複数のM個の部分経路を反復的に実行することによって、前記ニューラルネットワークを部分活性化し、M個の部分出力を生成することであって、前記M個の部分経路は、入力層を出力層にリンクするシナプスまたはフィルタのM個の異なる連続シーケンスをそれぞれ備え、前記M個の部分経路は、前記ニューラルネットワークの前記N個のシナプスまたはフィルタのサブセットのみに累積的に及ぶので、残りの前記N個のシナプスまたはフィルタのうちの複数のシナプスまたはフィルタが計算されない、ことと、
前記複数のM個の部分経路の前記M個の部分出力を集約して、前記ニューラルネットワークのN個のシナプスまたはフィルタ全ての単一のインスタンスを実行することによって、前記ニューラルネットワークを完全活性化することによって生成された出力を近似する集約出力を生成することと、
前記集約出力に基づいて、前記ニューラルネットワークの訓練または予測を実行することと、
を行うように構成された、1つ以上のプロセッサと、
を含む、システム。
【請求項19】
前記1つ以上のプロセッサは、前記ニューラルネットワーク内の全てのシナプスまたはフィルタの総数Nより少ない、前記M個の部分経路内のシナプスまたはフィルタの総数を部分活性化するように構成される、請求項18に記載のシステム。
【請求項20】
前記1つ以上のプロセッサは、前記M個の部分経路を前記複数のニューラルネットワークの間で分割することによって、前記複数のニューラルネットワークのアンサンブルを近似するように構成される、請求項18に記載のシステム。
【請求項21】
前記1つ以上のプロセッサは、前記ニューラルネットワークにおける前記複数のM個の部分経路を、ランダムに、セミランダムに、またはランダムとセミランダムとのハイブリッドもしくは両方で選択するように構成される、請求項18に記載のシステム。
【請求項22】
前記1つ以上のプロセッサは、部分活性化された前記ニューラルネットワークの前記集約出力が完全活性化された前記ニューラルネットワークの出力に最も近似するように、部分経路の数Mおよび経路あたりのシナプスまたはフィルタの数を調整するように構成される、請求項18に記載のシステム。
【請求項23】
前記1つ以上のプロセッサは、前記M個の部分経路のそれぞれにおける固定数のシナプスまたはフィルタを部分活性化するように構成される、請求項18に記載のシステム。
【請求項24】
前記M個の部分経路のそれぞれにおける前記固定数のシナプスまたはフィルタは、前記M個の部分経路の異なる経路に対して同じであるか、または異なる、請求項23に記載のシステム。
【請求項25】
前記1つ以上のプロセッサは、前記M個の部分経路のそれぞれにおいて部分活性化されるシナプスまたはフィルタの数を動的に調整するように構成される、請求項18に記載のシステム。
【請求項26】
前記1つ以上のプロセッサは、シナプスまたはフィルタの数を、予測モードにおいて予測結果が複数のランで収束すること、または発散することにつれ、あるいは訓練モードにおいて誤差がゼロに収束すること、またはゼロから発散するにつれて、それぞれ漸近的に減少および増加するように調整するように構成される、請求項25に記載のシステム。
【請求項27】
前記1つ以上のプロセッサは、監視されたハードウェアリソースのリアルタイム入手性に基づいて、シナプスまたはフィルタの数を動的に調整するように構成される、請求項25に記載のシステム。
【請求項28】
前記1つ以上のプロセッサは、前記M個の部分経路をシーケンスまたは並列で実行するように構成される、請求項18に記載のシステム。
【請求項29】
前記1つ以上のプロセッサは、
訓練モードにおいてのみ前記ニューラルネットワークを部分活性化し、予測モードにおいてのみ前記ニューラルネットワークを完全活性化すること、
予測モードにおいてのみ前記ニューラルネットワークを部分活性化し、訓練モードにおいてのみ前記ニューラルネットワークを完全活性化すること、または
訓練モードおよび予測モードの両方において前記ニューラルネットワークを部分活性化すること
を行うように構成される、請求項18に記載のシステム。
【請求項30】
前記1つ以上のプロセッサは、前記ニューラルネットワークの部分活性化と完全活性化との組合せを実行するように構成され、前記ニューラルネットワークが、前記ニューラルネットワークの異なる層、フィルタ、チャネル、反復、または動作モードに対して部分活性化または完全活性化される、請求項18に記載のシステム。
【請求項31】
ニューラルネットワークを近似するための方法であって、
複数のシナプスまたはフィルタを備えるニューラルネットワークを記憶するステップと、
複数の部分経路を生成するために、前記複数のニューラルネットワークの一部にわたる選択的経路に沿って前記複数のシナプスまたはフィルタのサブセットを複数回実行し、前記複数の部分経路の一部ではない前記ニューラルネットワークの前記複数のシナプスまたはフィルタの残りのサブセットを実行しないことによって、前記ニューラルネットワークを部分活性化するステップと、
全てのシナプスまたはフィルタが単一パスでニューラルネットワーク全体にわたって実行される前記ニューラルネットワークの完全活性化の出力を近似するために、部分活性化された前記ニューラルネットワークの前記複数の部分経路の出力を集約するステップであって、部分活性化された前記ニューラルネットワークによって活性化されるシナプスまたはフィルタの総数は、前記ニューラルネットワーク内の全てのシナプスまたはフィルタの数より少ない、ステップと、
を含む、方法。
【請求項32】
集約された前記出力に基づいて、前記ニューラルネットワークの訓練または予測を実行するステップを含む、請求項31に記載の方法。
【請求項33】
前記複数の部分経路を前記複数のニューラルネットワークの間で分割することによって、前記複数のニューラルネットワークのアンサンブルを近似するステップを含む、請求項31に記載の方法。
【請求項34】
前記複数の部分経路は、N個のレベルの階層に配置され、前記ニューラルネットワークは、前記N個のそれぞれのレベルに対してN個の複数のフェーズで部分活性化され、比較的高いレベルに対するステージで部分経路を実行する前記出力は、比較的低いレベルに対する後続のステージでどの部分経路を実行するかを決定するために使用される、請求項31に記載の方法。
【請求項35】
前記ニューラルネットワークへの各入力の個々の特性に基づいて、前記複数の部分経路のうちの1つ以上を選択するステップを含む、請求項31に記載の方法。
【請求項36】
実行すべき最適な部分経路または部分経路の最適な実行確率を学習することによって、訓練フェーズ中に前記複数の部分経路のうちの1つ以上を選択するステップを含む、請求項31に記載の方法。
【請求項37】
前記ニューラルネットワークにおける前記複数の部分経路を、ランダムに、セミランダムに、またはランダムとセミランダムとのハイブリッドもしくは両方で選択するステップを含む、請求項31に記載の方法。
【請求項38】
前記複数の部分経路のうちの1つ以上が、遺伝的アルゴリズムを使用して互いに対して異なる経路を競合することによって部分経路を選択する進化的制約、部分経路の部分出力の試験された精度に基づいて最適な部分経路を選択する発見的制約、特定の最終結果のために出力信号を最大化する最適な部分経路を選択する発見的制約、前記シナプスまたはフィルタ距離に比例する部分経路に沿ってシナプスまたはフィルタを活性化する確率、ランダム性の柱状パターン、および様々なシナプスまたはフィルタ重みの強度からなる群から選択される選択因子に少なくとも部分的に基づいてセミランダムに選択される、請求項37に記載の方法。
【請求項39】
選択された前記複数の部分経路に沿ったシナプスまたはフィルタを除く前記ニューラルネットワークの全ての非活性化シナプスまたはフィルタをプルーニングまたは除去することによってスパースニューラルネットワークを生成するステップと、前記プルーニングされていないニューラルネットワークによって占有されるよりも小さいメモリ空間に前記スパースニューラルネットワークを記憶するステップとを含む、請求項31に記載の方法。
【請求項40】
部分活性化された前記ニューラルネットワークの集約された前記出力が完全活性化された前記ニューラルネットワークの出力に最も近似するように、前記複数の部分経路の数および経路あたりのシナプスまたはフィルタの数を調整するステップを含む、請求項31に記載の方法。
【請求項41】
前記複数の部分経路のそれぞれにおけるシナプスまたはフィルタの数は、固定数である、請求項31に記載の方法。
【請求項42】
前記複数の部分経路のそれぞれにおけるシナプスまたはフィルタの前記固定数は、一定であり、その結果、集約された前記出力が前記複数の部分経路の部分出力の平均になるか、あるいはシナプスまたはフィルタの前記固定数は、前記複数の部分経路のそれぞれの連続する1つに対して増加または減少し、その結果、集約された前記出力が、前記複数の部分経路のうちの対応する1つにおいてそれぞれ実行されるシナプスまたはフィルタの割合に基づいて重み付けされた、前記複数の部分出力の重み付き平均になる、請求項41に記載の方法。
【請求項43】
前記複数の部分経路のそれぞれにおけるシナプスまたはフィルタの数は、動的に調整される、請求項41に記載の方法。
【請求項44】
シナプスまたはフィルタの前記動的な数は、予測モードにおいて予測結果が複数のランで収束すること、または発散することにつれ、あるいは訓練モードにおいて誤差がゼロに収束すること、またはゼロから発散するにつれて、それぞれ漸近的に減少および増加するように調整されるか、あるいはシナプスまたはフィルタの前記動的な数は、監視されるハードウェアリソースのリアルタイム入手性に基づいて調整される、請求項43に記載の方法。
【請求項45】
前記複数の部分経路が、シーケンスまたは並列で実行される、請求項31に記載の方法。
【請求項46】
訓練モードにおいてのみ前記ニューラルネットワークを部分活性化し、予測モードにおいてのみ前記ニューラルネットワークを完全活性化するステップ、
予測モードにおいてのみ前記ニューラルネットワークを部分活性化し、訓練モードにおいてのみ前記ニューラルネットワークを完全活性化するステップ、または
訓練モードおよび予測モードの両方において前記ニューラルネットワークを部分活性化するステップ
を含む、請求項31に記載の方法。
【請求項47】
前記ニューラルネットワークの部分活性化と完全活性化との組合せを実行するステップを含み、前記ニューラルネットワークが、前記ニューラルネットワークの異なる層、フィルタ、チャネル、反復、または動作モードに対して部分活性化または完全活性化される、請求項31に記載の方法。
【請求項48】
ニューラルネットワークを近似するためのシステムであって、
複数のシナプスまたはフィルタを備えるニューラルネットワークを記憶するための1つ以上のメモリと、
1つ以上のプロセッサであって、
複数の部分経路を生成するために、前記複数のニューラルネットワークの一部にわたる選択的経路に沿って前記複数のシナプスまたはフィルタのサブセットを複数回実行し、前記複数の部分経路の一部ではない前記ニューラルネットワークの前記複数のシナプスまたはフィルタの残りのサブセットを実行しないことによって、前記ニューラルネットワークを部分活性化することと、
全てのシナプスまたはフィルタが単一パスでニューラルネットワーク全体にわたって実行される前記ニューラルネットワークの完全活性化の出力を近似するために、部分活性化された前記ニューラルネットワークの前記複数の部分経路の出力を集約することであって、部分活性化された前記ニューラルネットワークによって活性化されるシナプスまたはフィルタの総数は、前記ニューラルネットワーク内の全てのシナプスまたはフィルタの数より少ない、こと
を行うように構成された、1つ以上のプロセッサと、
を含む、システム。
【請求項49】
前記1つ以上のプロセッサは、集約された前記出力に基づいて、前記ニューラルネットワークの訓練または予測を実行するように構成される、請求項48に記載のシステム。
【請求項50】
前記1つ以上のプロセッサは、前記複数の部分経路を前記複数のニューラルネットワークの間で分割することによって、前記複数のニューラルネットワークのアンサンブルを近似するように構成される、請求項48に記載のシステム。
【請求項51】
前記1つ以上のプロセッサは、前記ニューラルネットワークにおける前記複数の部分経路を、ランダムに、セミランダムに、またはランダムとセミランダムとのハイブリッドもしくは両方で選択するように構成される、
請求項48に記載のシステム。
【請求項52】
前記1つ以上のプロセッサは、前記ニューラルネットワークへの各入力の個々の特性に基づいて、前記複数の部分経路のうちの1つ以上を選択するように構成される、請求項48に記載のシステム。
【請求項53】
前記1つ以上のプロセッサは、実行すべき最適な部分経路または部分経路の最適な実行確率を学習することによって、訓練フェーズ中に前記複数の部分経路のうちの1つ以上を選択するように構成される、請求項48に記載のシステム。
【請求項54】
前記1つ以上のプロセッサは、部分活性化された前記ニューラルネットワークの集約された前記出力が完全活性化された前記ニューラルネットワークの出力に最も近似するように、前記複数の部分経路の数および経路あたりのシナプスまたはフィルタの数を調整するように構成される、請求項48に記載のシステム。
【請求項55】
前記1つ以上のプロセッサは、前記複数の部分経路のそれぞれにおける固定数のシナプスまたはフィルタを部分活性化するように構成され、前記複数の部分経路のそれぞれにおける前記固定数のシナプスまたはフィルタは、前記複数の部分経路の異なる経路に対して同じであるか、または異なる、請求項48に記載のシステム。
【請求項56】
前記1つ以上のプロセッサは、前記複数の部分経路のそれぞれにおいて部分活性化されるシナプスまたはフィルタの数を動的に調整するように構成される、請求項48に記載のシステム。
【請求項57】
前記1つ以上のプロセッサは、シナプスまたはフィルタの数を、予測モードにおいて予測結果が複数のランで収束すること、または発散することにつれ、または訓練モードにおいて誤差がゼロに収束すること、またはゼロから発散するにつれて、それぞれ漸近的に減少および増加するように調整するように構成され、あるいは前記1つ以上のプロセッサは、監視されたハードウェアリソースのリアルタイム入手性に基づいて、シナプスまたはフィルタの数を動的に調整するように構成される、請求項56に記載のシステム。
【請求項58】
前記1つ以上のプロセッサは、前記複数の部分経路をシーケンスまたは並列で実行するように構成される、請求項48に記載のシステム。
【請求項59】
前記1つ以上のプロセッサは、
訓練モードにおいてのみ前記ニューラルネットワークを部分活性化し、予測モードにおいてのみ前記ニューラルネットワークを完全活性化すること、
予測モードにおいてのみ前記ニューラルネットワークを部分活性化し、訓練モードにおいてのみ前記ニューラルネットワークを完全活性化すること、または
訓練モードおよび予測モードの両方において前記ニューラルネットワークを部分活性化すること
を行うように構成される、請求項48に記載のシステム。
【請求項60】
前記1つ以上のプロセッサは、前記ニューラルネットワークの部分活性化と完全活性化との組合せを実行するように構成され、前記ニューラルネットワークが、前記ニューラルネットワークの異なる層、フィルタ、チャネル、反復、または動作モードに対して部分活性化または完全活性化される、請求項48に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、機械学習による人工知能(AI)の分野に関する。特に、本発明の実施形態は、ニューラルネットワークを使用する深層学習に関する。
【背景技術】
【0002】
人工ニューラルネットワーク、すなわち、単に「ニューラルネットワーク」(NN)は、ニューロンの生物学的ネットワークに似たコンピュータモデルであり、このモデルは、機械学習によって訓練される。従来のニューラルネットワークは、入力層、複数の中間層または隠れ層、および出力層を有する。各層は、複数(例えば、数百~数千)の人工「ニューロン」を有する。層(N)内の各ニューロンは、人工的な「シナプス」によって、前の層(N-1)と後続の層(N+1)の一部または全部のニューロンに接続され、「部分接続された」または「完全接続された」ニューラルネットワークを形成することができる。各シナプス接続の強度は、重みによって表される。したがって、ニューラルネットワークは、ネットワーク内の全ての重みのセットによって表すことができる。
【0003】
ニューラルネットワークは、学習データセットに基づいて訓練され、その接続の強度を示す各シナプスの重みを解決または学習する。シナプスの重みは、一般に、例えば、ランダムに初期化される。訓練は、試料データセットをニューラルネットワークに反復的に入力するステップと、ニューラルネットワークを介して順伝播して、データセットに適用されたニューラルネットワークの結果を出力するステップと、期待される(例えば、ターゲット)出力と実際の出力との間の誤差を計算するステップと、ニューラルネットワークを介して逆伝播して、誤差を最小限に抑えるために誤差訂正アルゴリズム(例えば、逆伝播)を使用してニューラルネットワークの重みを調整するステップとによって実行される。訓練は、誤差が最小化されるまで、あるいは収束するまで繰り返され得る。典型的には、訓練セットを介する複数のパス(pass)(例えば、数十または数百)を実行する(例えば、各サンプルを、ニューラルネットワークに複数回入力する)。訓練データセット全体にわたる各完全なパスは、1つの「エポック」と呼ばれる。
【0004】
最先端のニューラルネットワークは、典型的には、数百万から数十億の重みを有し、その結果、訓練フェーズおよびランタイム(別名、予測または推論)フェーズの両方で、特殊化されたハードウェア(例えば、GPU)を必要とする。したがって、予測モードであっても、ほとんどのエンドポイント装置(例えば、IoT装置、モバイル装置、または専用アクセラレータハードウェアを有さないラップトップおよびデスクトップでも)で深層学習モデルを実行することは実用的ではない。処理速度および/またはメモリ可用性に制限がある装置上で、深層学習モデルを効果的に実行することは、今日も、依然として重要な課題である。
【0005】
ハードウェア容量に制限があるという課題に対処するために、現在では、ほとんどの深層学習予測がリモートサーバまたはクラウド上で実行されている。例えば、スマートフォンアシスタント(例えば、Alexa(登録商標))は、情報(例えば、音声信号)をクラウドに送信し、深層学習予測は、専用ハードウェア上のクラウドで遠隔的に実行され、応答は、ローカル装置に返信される。したがって、これらのエンドポイント装置は、それらがクラウドから切り離されている場合、入力レートが非常に高いためクラウドと連続的に通信することができない場合、または専用ハードウェアでさえ今日十分に高速でない場合(例えば、高頻度取引のための深層学習)には、非常に高速な予測が必要とされる場合に、深層学習ベースの結果を提供することができない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
したがって、当技術分野では、訓練モードおよび/または予測モードでニューラルネットワークを使用して、深層学習を実行するコンピュータの効率および処理速度を向上させる必要がある。
【課題を解決するための手段】
【0007】
ニューラルネットワークを実行する処理速度および効率を著しく向上させる装置、システム、および方法が提供される。これは、単一パスにおけるニューラルネットワークでニューラルネットワーク全体にわたって全てのニューロンを活性化する(「完全活性化」ニューラルネットワーク)代わりに、本発明の実施形態で、ニューラルネットワークの一部にわたる選択的経路に沿ってニューロンのサブセットのみを複数回活性化すること(「部分活性化」ニューラルネットワーク)によって行われる。これにより、ニューラルネットワークは、多くのより小さな部分ランに分割され、これは、高速で効率的な機械学習のために、著しく短縮された処理時間で完全活性化ニューラルネットワークを厳密に近似することが実験的に示されている。したがって、当技術分野における前述の問題は、基本ハードウェアを有する装置、例えばエンドポイント装置が、クラウドに依存することなく、ニューラルネットワークをローカルに効率的に実行できるようにすることで、克服される。訓練および/または予測(推論)がローカル装置上で実行されるか、またはクラウド内で実行されるかにかかわらず、その訓練および/または予測は、従来の訓練および/または予測と比較して、より低い品質(したがって、より安価である)ハードウェアを使用して(例えば、より遅い処理速度で)、同じ時間および精度で、または同じ品質のハードウェアを使用して、より良好な性能で実行され得る。
【0008】
本発明のいくつかの実施形態によれば、ニューラルネットワークを近似するための装置、システム、および方法が提供される。N個のシナプスまたはフィルタを備えるニューラルネットワークを記憶することができる。ニューラルネットワークの複数のM個の部分経路を反復的に実行することによって、ニューラルネットワークを部分活性化し、M個の部分出力を生成することができ、M個の部分経路は、入力層を出力層にリンクするシナプスまたはフィルタのM個の異なる連続するシーケンスをそれぞれ備え、M個の部分経路は、ニューラルネットワークのN個のシナプスまたはフィルタのサブセットのみに累積的に及ぶので、残りのN個のシナプスまたはフィルタのうちの著しい数のシナプスまたはフィルタは計算されない。複数のM個の部分経路のM個の部分出力は集約されて、ニューラルネットワークのN個のシナプスまたはフィルタ全ての単一のインスタンスを実行することによって、ニューラルネットワークを完全活性化することによって生成された出力を近似する集約出力を生成することができる。ニューラルネットワークの訓練または予測は、集約出力に基づいて実行することができる。
【0009】
本発明と見なされる主題は、本明細書の最後の部分において、特に指摘され、明確に特許請求がなされる。しかしながら、本発明は、その目的、特徴、および利点とともに、構成および動作方法の両方に関して、以下の詳細な説明を参照して、添付の図面と一緒に読まれるときに、最もよく理解することができる。
【図面の簡単な説明】
【0010】
図1図1Aは、本発明のいくつかの実施形態に従って、複数のN個のシナプスを有する例示的なニューラルネットワークの概略図である。図1Bおよび図1Cは、本発明のいくつかの実施形態に従って、ニューラルネットワークを部分活性化するための、図1Aのニューラルネットワークのそれぞれ第一および第二の部分経路の概略図である。
図2】本発明のいくつかの実施形態に従って、畳み込みニューラルネットワークを部分活性化する概略図である。
図3】本発明のいくつかの実施形態に従って、複数の部分経路を使用してニューラルネットワークを部分活性化するためのシステムの概略図である。
図4】本発明のいくつかの実施形態に従って、複数の部分経路を使用してニューラルネットワークを部分活性化するための方法のフローチャートである。
【発明を実施するための形態】
【0011】
説明を簡略で明確にするために、図面に示す要素は、必ずしも一定の縮尺で描かれていないことが理解されるであろう。例えば、いくつかの要素の寸法は、明確にするために、他の要素に対して誇張されていることがある。さらに、適切であると考えられる場合、参照番号は、対応または類似する要素を示すために、図面の間で繰り返されることもある。
【0012】
本発明の実施形態は、ニューラルネットワークの一部にわたる選択的経路に沿ってニューロンまたはフィルタのサブセットのみを複数回活性化することによって、ニューラルネットワークに近似する「部分活性化」ニューラルネットワークを実装することによって、ニューラルネットワークを実行する速度および効率を著しく向上させる。複数の部分経路は、フルランダムに、またはセミランダムに(semi randomly)、例えば、事前に規定された発見的手法(例えば、あるニューロンからその距離に比例する別のニューロンへの活性化の確率、ランダム性の柱状パターンなど)に基づいて選択され得る。部分活性化ニューラルネットワークの複数の部分パスの結果は、完全活性化ニューラルネットワークの結果に近似するために集約され得るが、それは、著しく少ないシナプス(重み)または計算するニューロンのみで行われる。一実施形態では、セミランダムな選択は、選択されたルートが、例えば、頻繁で主要なメモリスキップを伴わないルートの活性化を優先することによって、メモリアクセスを最適化するようなものである(したがって、フルランダムな実装よりもメモリキャッシュミスの数が少なくなる)。
【0013】
N個のシナプスを有するニューラルネットワークに対して、従来のシステムは、完全活性化ニューラルネットワークの各パスにおいてN個のシナプス全てを活性化するが、本発明の実施形態は、部分活性化ニューラルネットワークにおいてX個のそれぞれのシナプスのM個の部分経路のみを活性化する。部分活性化ニューラルネットワークによって活性化されるシナプスの総数は、それゆえ、
【数1】
となる。M個の経路のそれぞれで同じ数のシナプスXが活性化された場合、部分活性化ニューラルネットワークで活性化されたシナプスの総数はX・Mである。効率を上げるために、各経路Xのシナプスの数は、ニューラルネットワークのシナプスの数Nよりも有意に少なく、X<<N(例えば、0.1~1%)であり、部分活性化ニューラルネットワークによって活性化されるシナプスの総数は、ニューラルネットワークのシナプスの総数Nよりも少なく、
【数2】
である(例えば、10~50%)。例えば、部分活性化ニューラルネットワークは、ニューラルネットワーク内のシナプスの合計20%を活性化することができる。部分活性化ニューラルネットワークにおいて活性化されたシナプスの数が多ければ多いほど、部分活性化ニューラルネットワークが完全活性化ニューラルネットワークを近似する精度は高くなるが、より多くのシナプス重み計算を解決する必要がある。したがって、部分活性化ニューラルネットワークにおいて活性化されるシナプスの割合は、各システムまたはアプリケーションにおける速度と精度との間の優先度のトレードオフに応じて設定され得る。一例では、実験は、N個のシナプスの合計10%を活性化する例示的な部分活性化ニューラルネットワークが、従来の完全活性化ニューラルネットワークの速度の99%の精度および10倍の速度で実行されることを示す。
【0014】
さらに、実験から、部分活性化ニューラルネットワークにおいて活性化されるシナプスの総数が同じであれば、大きなサイズの少ない経路よりも、小さなサイズの多くの経路を実行することで精度が向上することが示されている。例えば、ある実験では、ニューロンの1%が10回のランのそれぞれで活性化された部分活性化ニューラルネットワークの方が、ニューロンの10%が1回のランで活性化された部分活性化ニューラルネットワークよりも良い結果を得られることが分かった。この傾向の理由は、小さな経路で多くの反復多く実行することにより、全体的なダイバーシティのより大きいニューロンが活性化され、それにより、ニューラルネットワーク全体の探索空間が広がるからである。これは、主としてニューラルネットワークの1つの領域に集中し、反復の少ない大きな経路と比較して、それぞれの切り離された経路が、ニューラルネットワークのより遠い部分に到達できるからである。逆に、サイズの大きい経路が少ないほど、ニューラルネットワークの同じ領域の周りに局在化されたシナプスが増え、これは、典型的には、重複した結果が得られ、その結果、収穫逓減が生じる。それぞれの経路において、シナプスが独立し、多様で、切断されているほど、部分活性化されたシナプスの到達範囲が広くなり、典型的には、部分活性化ニューラルネットワークの方が完全活性化ニューラルネットワークをより良く近似するようになる。したがって、様々な実施形態では、反復および反復当たりのシナプスの数は、ネットワークダイバーシティを最適化するように調整され得る。
【0015】
様々な実施形態において、部分活性化ニューラルネットワークにおける、部分経路Mの数、経路当たりに活性化されたシナプスの数X、および/またはN個の活性化されたシナプスの総数
【数3】
もしくは割合は、固定されていても動的であってもよい。いくつかの実施形態では、シナプスの割合は、同数のX個のシナプスがニューラルネットワークの各ランにおいて実行され、ランの結果が等しく平均化されるように固定される。他の実施形態では、シナプスの割合は、ニューラルネットワークの各連続ランで、シナプスの数の増加または減少が実行されるように固定され、ランの結果は、各ランで実行されるシナプスの数に比例して重み付けされる。いくつかの実施形態では、シナプスの割合は、(予測モードにおいて)予測結果が複数のランで収束すること、または発散することにつれ、あるいは(訓練モードにおいて)誤差がゼロに収束すること、またはゼロから発散するにつれて、それぞれ、漸近的に減少および増加するように動的に調整される。いくつかの実施形態では、シナプスの割合は、リアルタイムデータに基づいて動的に調整され、これらのデータは、例えば、プロセッサ速度、利用可能なメモリ空間、残存バッテリ寿命、および/または他のハードウェアなどのハードウェアリソースまたはソフトウェアリソースの利用可能性を監視する。
【0016】
部分経路の数Mに関して、いくつかの実施形態では、予測結果が収束するまで、または訓練結果の精度が訓練データセットに関して所定の閾値を上回る(または、同等になる、誤差が所定の閾値を下回る)まで、可変数M個の部分経路を反復的に実行することができる。いくつかの実施形態では、計算時間または決定時間に達するまで、可変数M個の部分経路を反復的に実行することができる。リアルタイムアプリケーションでは、プロセッサは、意思決定を行うための継続時間しか有さない場合がある。例えば、車両は、停止すべきか否かを決定するために1秒を有することがあり、システムは、その時間内で可能な限り多くの部分経路を実行することができる。部分活性化はラン当たりに使用する計算が少ないので、ニューラルネットワークのより多くの部分ランは、固定時間で実行されてもよく、したがって、出力の精度は、同じニューラルネットワークの完全活性化と比較して、固定時間で向上することがある。
【0017】
様々な実施形態において、部分活性化ニューラルネットワークのM個の経路は、フルランダムに選択されても、あるいはセミランダムに選択されてもよい。例えば、第一の「シード」ニューロンまたはシナプスをフルランダムに選択することができるが、一方で、各後続のシードニューロンまたはシナプスをセミランダムに選択して、各経路のシードニューロンのダイバーシティを最大にし、その均一な分布を維持することができ、それにより、ニューラルネットワークを部分活性化する性能を最適化することができる。同様に、後続の各ニューロン、シナプス、または経路の選択は、M個の経路の均一な分布を優先するために、セミランダムに選択することができる。モンテカルロまたは他のランダムサンプリング技術を使用することができる。
【0018】
いくつかの実施形態では、ニューラルネットワークへの各入力の個々の特性に基づいて、複数の部分経路を選択することができる。そのような場合、各入力は、特性プロファイルを有してもよく、経路は、その特性プロファイルに基づいて、各異なる入力サンプルについて異なるように選択することができる。特性プロファイルおよび得られる選択された経路は、一意であっても、一意でなくてもよい(同様の入力についても同じ)。一例では、犬を含む入力画像は、猫を含む入力画像とは異なる経路の活性化をもたらすことがある。これらの経路の選択は、決定論的(例えば、ニューラルネットワークへの入力が、いくつかのシナプスまたはフィルタのみを活性化し、次いで、他のシナプスまたはフィルタを活性化する)、または確率論的(例えば、セミランダム)のいずれかであり得、例えば、経路の選択に依然としてランダム性が存在するが、各経路の確率は、入力の特性によって決定される。選択確率は、方程式(例えば、異なる位置におけるシナプス/フィルタの入力および活性化の強度)によって定義することも、あるいはニューラルネットワークの訓練フェーズの間に、または遺伝的アルゴリズムもしくは進化的アルゴリズムのような別の学習方法を使用して学習することもできる。
【0019】
いくつかの実施形態では、ニューラルネットワークは、最適な結果を達成するために(部分活性化ニューラルネットワークのM個の経路を最適に選択するために)、どのM個の経路を実行すべきかを、または各経路の実行確率を学習するように訓練されてもよい。いくつかの実施形態では、各経路の確率は、特定の入力、入力タイプ、またはその特性プロファイルに基づいて決定されてもよい。ニューラルネットワークは、最大のニューラルネットワーク・ダイバーシティを達成し、および/または完全活性化ニューラルネットワークに最も厳密に一致する部分活性化のための最適パラメータを決定するように訓練されてもよい。例えば、ニューラルネットワークは、M回の反復の最適数、反復ごとに活性化されたシナプスの数X、活性化ニューロンの総数
【数4】
、活性化ニューロンまたは経路の分布、収束閾値などを決定するように訓練され得る。様々な実施形態では、訓練は、ニューラルネットワーク自体、または部分活性化ニューラルネットワークの上の別個の「選択」ニューラルネットワーク上で実行されてもよい。
【0020】
いくつかの実施形態は、複数のN個の異なるニューラルネットワークは、同じタスクを予測するために訓練または使用される「アンサンブルネットワーク」を提供することができる。アンサンブルネットワークは、N個のニューラルネットワークの全てを実行し、次いで、それらのN個の出力を平均化する。アンサンブルネットワークによって、一般に、精度が改善されるが、典型的には、単一のニューラルネットワークと比較して、実行が非常に遅くなる(例えば、N倍遅くなる)。いくつかの実施形態では、部分的起動は、アンサンブルのN個のネットワークの間でM個の部分経路を分割することができる。部分経路は、例えば、性能特性に基づいて、N個のネットワークの間で、均等に、または優先的に分割されてもよい。したがって、本発明の実施形態は、アンサンブルネットワークの精度から利益を得ることができる一方で、速度に関するそれらの欠点を最小限に抑えることができる。
【0021】
様々なパターンを経路に対して実施することができる。一実施形態では、「線形」経路は、一対一に接続されたニューロンの鎖を備え、各層の単一のニューロンは、例えば、それらの層の間で最大の重みを有する単一のシナプスを活性化することによって、後続の層の単一ニューロンのみに接続される。別の実施形態では、「分岐」経路は、一対多または多対一に接続されたニューロンの鎖を備え、層の単一のニューロンは、そのシナプスの複数(閾値重みを超える全てまたは複数)を活性化することによって、後続の層または前の層の複数のニューロンに接続される。RNNの場合、部分経路は、層内のニューロンから同じ層にループバックするシナプスを含むこともできる。スキップ(層ジャンプ)経路、回帰(ループ)経路、織り経路、またはそれらの組合せなど、任意の他の経路パターンを使用することができる。
【0022】
様々な実施形態では、ニューラルネットワークのM個の部分経路は、シーケンスで(一度に1つの経路が実行される)、並列で(M個全ての部分経路が同時に実行される)、または半並列で(部分経路のサブグループが同時に実行される)実行されてもよい。
【0023】
様々な実施形態では、部分経路方法は、予測モード(ニューラルネットワークのみを介する順伝播)中のみ、訓練モード(ニューラルネットワークを介する順伝播および逆伝播)中のみ、または予測モードおよび訓練モードの両方の間に使用することができる。追加または代替として、部分経路方法は、ニューラルネットワークの一部のみにわたって、例えば、特定のニューラルネットワーク層、領域、チャネル、反復などのみにわたって使用することができる。部分経路の部分活性化が実施されない場合、ニューラルネットワーク全体の全てのシナプスの完全活性化が活性化されることがある。したがって、いくつかの実施形態では、本発明の部分活性化ニューラルネットワーク方法を、完全活性化ニューラルネットワーク方法と組み合わせて、ハイブリッド方法を作成することができ、各方法は、ニューラルネットワークの異なる層、領域、チャネル、反復、モードなどにそれぞれ使用される。
【0024】
部分経路方法は、例えば、部分接続されたニューラルネットワーク、完全接続されたニューラルネットワーク(例えば、図1Aに示される)、畳み込みニューラルネットワーク(CNN)(例えば、図2に示される)、回帰ニューラルネットワーク(RNN)、制限付きボルツマンマシン(RBM)、または一般にニューロン、フィルタ、および/または重みの組合せを含む任意のニューラルネットワークモデルを含め、全てのタイプのニューラルネットワークを近似するために使用され得る。
【0025】
図1Aを参照すると、この図は、本発明のいくつかの実施形態に従って、例示的なニューラルネットワーク100を概略的に示す。
【0026】
ニューラルネットワーク100は、複数の人工ニューロン102を含む。人工ニューロン102は、複数の層の階層に配置されてもよい。ニューラルネットワーク100は、入力層(ニューロン1~4)と、1つ以上の中間層または隠れ層(ニューロン5~8)と、出力層(ニューロン9~12)とを含むことができる。各層の各ニューロン102は、人工シナプス接続104によって、隣接する層の一部のニューロン(部分的に接続されている)または全部のニューロン(完全に接続されている)に接続されている。入力層のニューロン(1~4)はその後の高層のニューロンと接続され、中間層のニューロン(5~8)は前後の両方の層のニューロンと接続され、出力層のニューロン(9~12)は前の低層のニューロンと接続されている。図1Aに示す例では、ニューラルネットワーク100は、全部でN=48個のシナプス104によって接続された16個のニューロン102を有する。ニューラルネットワーク100は、それぞれの複数のシナプス接続104の強度を表す複数の重みによって表すことができる。
【0027】
図1Aは、完全に接続されたニューラルネットワーク100を示しているが、ニューラルネットワーク100は、代替として、部分接続されたニューラルネットワーク(いくつかのシナプスを除去)、回帰ニューラルネットワーク(同じ層のニューロン間で自己接続シナプスを追加)、または畳み込みニューラルネットワーク(ニューロンをチャネルおよびシナプスとフィルタで置換)であってもよい。
【0028】
従来のシステムは、各ランにおいて、ニューラルネットワーク100のN個のシナプス全てを完全活性化する。ニューラルネットワーク100の各完全活性化された実行において、プロセッサは、順方向にニューラルネットワーク100を介する単一の伝播を実行して、(予測モードにおいて)ネットワークのN個のシナプス全てを計算し、オプションとして、逆方向にニューラルネットワーク100を介する追加の単一の伝播を実行して、(訓練モードにおいて)誤差訂正のためにN個のシナプス全てを再計算する。明確にするために、図1Aには小さなニューラルネットワーク(例えば、N=48個のシナプス)を示しているが、最新のニューラルネットワークは、数百万または数十億ものシナプスまたはフィルタを有するので、各完全活性化された実行は、計算的に困難で時間のかかるタスクになっている。
【0029】
本発明の実施形態によれば、ニューラルネットワーク100を部分活性化して、完全活性化ニューラルネットワークを著しく速い時間で高精度に近似するためのシステムおよび方法が提供される。ニューラルネットワーク100の各部分活性化されたランにおいて、プロセッサは、順方向にニューラルネットワーク100を介して伝播する複数のM個の部分経路を実行することができ、各M番目の部分経路は、X個のそれぞれのシナプスを通って伝播し、部分活性化ニューラルネットワークの各ランにおいて、全部で
【数5】
個のシナプスを計算する。部分活性化ニューラルネットワークの各ランで計算されたシナプスの総数
【数6】
は、完全活性化ニューラルネットワークの各ランで実行された全てのシナプスの総数Nの部分サブセットに過ぎず、それよりも少ない。したがって、M個の部分経路の一部ではないかなりの数
【数7】
の残りのシナプスが計算されず、ニューラルネットワークの完全活性化された予測ランと比較して、ニューラルネットワークの部分活性化された予測(順方向)ランのそれぞれに対して実施される計算が削減される。一例では、部分活性化ニューラルネットワークには、経路ごとに3つのシナプスを有する4つの線形経路(M=4)が含まれ(X=3)、合計12のシナプスが得られる(全N=48個のシナプスの25%、従来の完全活性化ニューラルネットワークと比較して4倍高速にするため)。同様に、訓練モードでは、順伝播に加えて、
【数8】
個のシナプスの同じサブセットの逆伝播が実行され、ニューラルネットワークの完全活性化された訓練ランと比較して、ニューラルネットワークの各部分活性化された訓練(順方向および逆方向)ランに対して実行される計算が半分に削減される。したがって、先の例では、部分活性化ニューラルネットワークは、従来の完全活性化ニューラルネットワークよりも8倍速く訓練される。
【0030】
図1Bおよび図1Cを参照すると、これらの図は、本発明のいくつかの実施形態に従って、図1Aの部分活性化ニューラルネットワーク100のM個の部分経路の第一および第二を概略的に示す。図1Bおよび図1Cでは、スペースの制約によって、2つの部分経路だけしか示されていないが、省略は、より大きな数M個の部分経路が使用され得ることを示す(例えば、M=3、…、10、…、100、…、1000、…、1,000,000、…、1,000,000、…)。
【0031】
図1Bおよび図1Cに示す複数の部分経路は、入力層(例えば、最下層)の単一ニューロンを出力層(例えば、最上層)の単一ニューロンに連続的に連結するシナプスの異なるそれぞれのシーケンスを含む。一実施形態では、各部分経路は、入力ニューロンから出力ニューロンに切断されていないネットワークを伝播する線または経路によって接続されたシナプスの連続シーケンスまたは中断されていないシーケンスを含むことができる(例えば、伝播経路を描くペンは、紙から決して持ち上げられない)。図1Bおよび図1Cに示す例では、部分経路は線状(隣接する層で一対一のシナプス接続)であるが、分岐(隣接する層における一対多のシナプス接続)、スキップ経路、回帰経路、織り経路、またはそれらの組合せなどの他の経路パターンを使用することができる。
【0032】
いくつかの実施形態では、ニューラルネットワークのいくつかの領域、層、チャネル、反復、訓練対予測などのモードが部分活性化され、他の領域が完全活性化される場合に、部分活性化と完全活性化との「ハイブリッド」ニューラルネットワークを使用することができる。例えば、一実施形態では、訓練モード(例えば、通常、オフラインで実行される)は、完全活性化されてもよく、一方、予測モード(例えば、通常、リアルタイムで実行される)は、速度が、通常、訓練中よりも予測中により重要であるため、部分活性化される。追加または代替として、部分活性化は、完全ニューラルネットワークの近似に過ぎないので、部分活性化は、初期段階(例えば、最初のP回のラン、または出力が閾値内に収束するまで)で使用されてもよく、その後、初期部分パス近似を確認するために、完全活性化ニューラルネットワークが実行されてもよい(例えば、次または最後のQ回のラン、または出力が閾値内に収束するまで)。追加または代替として、部分経路は、特定の層(例えば、最終結果にあまり直接的な影響を及ぼさないことが多い深い中間層)を接続することができ、一方、完全に接続されたネットワークは、残りの層(例えば、最終結果により直接的な影響を及ぼすことが多い入力層および出力層に近い層)に使用することができる。部分活性化と完全活性化ニューラルネットワークとの他のハイブリッド型組み合わせが使用されてもよい。
【0033】
図1Bを参照すると、一実施形態では、第一の部分経路は、フルランダムに選択された入力層内の「シード」または開始ニューロン(例えば、「1」)またはシナプス(例えば、1→5)によって初期化され得る。第一の部分経路のその後のニューロンまたはシナプスは、フルランダムに、またはセミランダムに選択され得る。例えば、セミランダム選択は、選択係数に基づいて特定のオプションを好むように重み付けされたオプションに対してランダム選択を実行することによって実行されてもよい。選択因子は、例えば、様々なシナプス重みの強度(例えば、より強い重みを有するシナプスを優先する)、ジャンプサイズまたはニューロン間の距離(例えば、ダイバーシティを高めるためにジャンプサイズが大きなシナプスを優先する、または出力の信頼性を高めるために、ジャンプサイズを小さなシナプスを優先する)、進化的制約などを含むことができる。
【0034】
図1Cを参照すると、第二の部分経路は、フルランダムまたはセミランダムに選択される入力層内のシードニューロン(例えば、「3」)またはシナプス(例えば、3→8)によって初期化されてもよく、例えば、前述の選択因子および/または、一部または全部の以前の(例えば、第一の)部分経路のニューロン、シナプスまたは経路に対する現在の第二の部分経路のニューロン、シナプスまたは経路の間の距離または差を最大にする「ダイバーシティ」選択因子を考慮する。経路のダイバーシティを最大化することにより、M個の部分経路が完全なニューラルネットワーク100に近似する精度を高めることができる。代替または追加として、追加の選択ニューラルネットワークは、部分活性化ニューラルネットワーク内の経路を選択することができ、選択ニューラルネットワークは、部分活性化ニューラルネットワークの訓練データセットがそれらの完全活性化された対応するニューラルネットワークを近似する精度を最適化するように予め訓練されている。ランダムサンプリングは、例えば、モンテカルロ、または他のランダム化方法を使用して実施されてもよい。
【0035】
図2を参照すると、この図は、本発明のいくつかの実施形態に従って、畳み込みニューラルネットワーク200の部分活性化が概略的に示されている。
【0036】
畳み込みニューラルネットワーク200は、入力層201と、1つ以上の畳み込み層202および203と、1つ以上の出力層とを含む。CNN200の各層201、202、203、…は、1つ以上のチャネルを有することができる。図2に示す例では、入力層201は、カラー画像を表し、3つのカラーチャネル204~208(例えば、赤、緑、および青のチャネル)を有する。第一の畳み込み層202は、複数(例えば、10)のチャネル(例えば、C1~C10)を有し、第二の畳み込み層203は、複数(例えば、8つ)のチャネル(例えば、C1~C8)を有する。各畳み込みチャネルは、エッジ、線、円、あるいはリンゴ、ハンマーなどのより高層のより複雑な物体などの特徴の特徴マップを表すことができる。これらの特徴のチャネルは、典型的には、ニューラルネットワークの訓練プロセスから完全に現れる(手動で指定されない)。
【0037】
完全に接続されたCNNでは、層内の各チャネルは、畳み込みフィルタ204によって後続の層内の各チャネルに接続することができる。例えば、入力層201の各カラーチャネル204~208は、第一の畳み込み層202内の各畳み込みチャネルC1~C10に接続されてもよく、次いで、第二の畳み込み層203内の各畳み込みチャネルC1~C8に接続されてもよい。図2の例では、入力層201に3つのチャネル204~208があり、第一の畳み込み層202に10のチャネルC1~C10があり、第二の畳み込み層203に8つのチャネルC1~C8があり、その結果、入力層201、畳み込み層202、203、…からのチャネルのペアごとに接続する総数は、N=240個のフィルタ204となる。CNN200は、典型的には、図示されたよりも多くの畳み込み層および/または他の(例えば、最大プーリング)層を有し、これにより、指数関数的にフィルタの数が(例えば、数千、数百万、または数十億のフィルタ204に)増える。
【0038】
本発明の実施形態は、畳み込みニューラルネットワーク200の全てのN個のフィルタ204のサブセットのみに累積的に及ぶ複数のM個の部分経路206および208を反復的に実行することによって、図2の畳み込みニューラルネットワーク200を部分活性化することができる。それによって生成されたM個の部分出力は、ニューラルネットワークのN個のフィルタ全てを完全活性化する出力を近似するために集約され得るが、プロセッサの労力も計算時間も著しく少なくなる。図を不明瞭にしないために、2つの部分経路206および208だけしか示されていないが、全ての部分経路におけるフィルタの総数がネットワークにおける全てのフィルタの総数Nよりも少ない限り、より多くの部分経路を使用することができる。
【0039】
CNNにおいて、フィルタは、二次元(2D)であっても、あるいは三次元(3D)であってもよい。2Dフィルタは、第一の層の各単一チャネルを第二の層の単一チャネルに接続し、3Dフィルタは、第二の層の各単一チャネルを第一の層の複数のチャネルに接続する。例えば、図2に示す畳み込みニューラルネットワーク200は、入力および第一の畳み込み層を30個の2Dフィルタ、または10個の3Dフィルタに接続することができる。部分活性化は、CNNにおいて、2Dもしくは3Dフィルタ、またはそれらの任意の組合せを選択的に活性化(およびスキップ)し得る。
【0040】
図3を参照すると、この図は、本発明のいくつかの実施形態に従って、複数のM個の部分経路を使用してニューラルネットワークを部分活性化するためのシステム300を概略的に示す。システム300は、図1A図1C図2および図4を参照して説明したように、データ構造を記憶および/または生成し、ニューラルネットワークの部分活性化によって訓練および/または予測することができる。例えば、図1A図1Cを参照すると、システム300は、図1B図1Cの第一および第二の部分経路を使用して、図1Aのニューラルネットワーク100を部分活性化することができる。別の例では、図2を参照すると、システム300は、部分経路206および208を使用して、畳み込みニューラルネットワーク200を部分活性化することができる。
【0041】
システム300は、ネットワークおよび/または演算クラウド320を介してローカル装置にアクセス可能な1つ以上のローカルエンドポイント装置350および1つ以上のリモートサーバ310を含むことができる。典型的には、ニューラルネットワークは、リモートサーバ310によって訓練され、1つ以上のローカルエンドポイント装置350で予測のために実行されるが、リモートサーバ310および/またはローカルエンドポイント装置350のいずれかが、本発明の実施形態による部分活性化を使用してニューラルネットワークを訓練および/または予測することができる。特に、ニューラルネットワークを部分活性化することは、従来の完全活性化ニューラルネットワークと比較して、予測および訓練のための計算労力を大幅に低減するので、典型的には非常に限定されたメモリおよび処理能力を有するローカルエンドポイント装置350が、そのような予測および/または訓練を迅速かつ効率的に実行することを可能にする。ローカルエンドポイント装置350が訓練およびランタイム予測を実行するとき、リモートサーバ310は除去されてもよい。
【0042】
リモートサーバ310は、ニューラルネットワークを記憶するためのメモリ316と、ニューラルネットワークに基づいて訓練および/または予測するためのプロセッサ314とを有することができる。リモートサーバ310は、完全なニューラルネットワーク(例えば、図1Aの100または図2の200)を記憶することができ、リモートプロセッサ314は、ニューラルネットワークを部分活性化することができる。いくつかの実施形態では、リモートサーバ310は、ニューラルネットワークを記憶するための大きなメモリ316と、特殊化されたプロセッサ314(例えば、GPU)とを含む特殊化されたハードウェアを有することができる。メモリ316は、訓練データセットと、ニューラルネットワークのシナプスまたはフィルタの複数の重みを表すデータとを含むデータ318を記憶することができる。データ318は、また、例えば、本発明の実施形態に従って、データ318の記憶および検索を可能にするために、コード(例えば、ソフトウェアコード)または論理を含んでもよい。
【0043】
ローカルエンドポイント装置350は、それぞれ、本発明のいくつかの実施形態で提供されるニューラルネットワーク(例えば、図1Aの100または図2の200)を記憶するための1つ以上のメモリ326を含むことができる。メモリ326は、ニューラルネットワークのシナプスまたはフィルタの複数の重みのそれぞれを記憶することができる。ローカルエンドポイント装置350は、それぞれ、メモリ326に記憶されたニューラルネットワークのシナプスまたはフィルタの重みに基づいて、訓練および/または予測のためにニューラルネットワークを部分活性化するための1つ以上のプロセッサ324を含むことができる。予測の間に、ニューラルネットワークは、順方向に1回実行される。訓練の間に、ニューラルネットワークは、2回実行される。それは、出力を生成するために順方向に1回、誤差訂正(例え、逆伝播)のために逆方向に1回である。ニューラルネットワークが実行されるたびに、計算の回数は、M個の部分経路が横切るシナプスの数に基づき、速度は、ニューラルネットワークの部分活性化によって計算されない重みの数の減少に比例して増加する。
【0044】
リモートプロセッサ314および/またはローカルプロセッサ324は、ニューラルネットワークを通るM個の部分経路(例えば、図1B図1Cの第一および第二の部分経路、または図2の部分経路206および208)を反復的に選択し、実行することによって、ニューラルネットワークを部分活性化し得る。リモートプロセッサ314および/またはローカルプロセッサ324は、乱数発生器を実行して、M個の部分経路の選択をランダム化することができる。リモートプロセッサ314および/またはローカルプロセッサ324は、M個の部分経路によってそれぞれ生成されたM個の部分出力を集約して、従来の動作プロセッサよりも著しく短い時間で完全なニューラルネットワークの単一ランを近似することができる。実験的に示されるように、N個のシナプスの総数の10%を横断することによって例示的なニューラルネットワークを部分活性化するプロセッサ(例えば、リモートおよび/またはローカルプロセッサ314および/または324)は、99%の精度で、かつニューラルネットワークを完全活性化するプロセッサの速度の10倍で実行される。
【0045】
ローカルエンドポイント装置350は、スマート装置、パーソナルコンピュータ、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータ、およびノートブックコンピュータ、またはセルラ電話、パーソナルデジタルアシスタント(PDA)、ビデオゲームコンソールなどの他の適切な装置を含み、有線接続もしくは無線接続、またはモデムを含むことができる。ローカルエンドポイント装置350は、ユーザからの入力(例えば、ニューロン、シナプス、および層の数、サイズ、寸法、および構成などのニューラルネットワークパラメータ、精度または訓練の閾値、M個の部分活性化反復または部分経路の数、反復または経路ごとに活性化されたシナプスの数X、部分活性化ニューラルネットワークで活性化されたシナプスまたはフィルタの総数
【数9】
または割合、活性化されたニューロン、シナプス、フィルタ、または経路の分布、部分活性化ニューラルネットワークにおけるシナプス、フィルタ、または経路のパターン、部分経路のパターンなど)を受信するために、1つ以上の入力装置含むことができる。ローカルエンドポイント装置350は、ローカルエンドポイント装置350またはリモートサーバ310によって生成されたデータをユーザに表示するための1つ以上の出力装置328(例えば、モニタまたは画面)を含んでもよい。
【0046】
種々の用途において、ローカルエンドポイント装置350は、画像認識、コンピュータビジョン、仮想または拡張現実、音声認識、テキスト理解、または深層学習の他のアプリケーションのためのシステムの一部である。顔認識の適用において、装置は、マッチングが検出されたときに、装置自体または物理的なドアをロック解除するように装置をトリガするように、顔認識を効率的に実行するために部分活性化」を使用することができる。セキュリティの適用において、セキュリティカメラシステムは、セキュリティ侵害を効率的に検出し、アラームまたは他のセキュリティ手段を鳴らすために部分活性化を使用することができる。自動運転の適用において、車両コンピュータは、例えば、検出された物体を避けるように運転操作を制御するために、部分活性化を使用することができる。
【0047】
ローカルエンドポイント装置350およびリモートサーバ310を接続するネットワーク320は、インターネットのような任意のパブリックまたはプライベートネットワークであってもよい。ネットワーク320へのアクセスは、有線回線、地上無線、衛星または当技術分野で周知の他のシステムを介して行うことができる。
【0048】
ローカルエンドポイント装置350およびリモートサーバ310は、それぞれ、本発明の実施形態による動作を実行するための1つ以上のコントローラまたはプロセッサ314および324と、プロセッサによって実行可能なデータ318および/または命令を記憶するための1つ以上のメモリユニット316および326(例えば、本発明の実施形態による方法を適用するためのソフトウェア)とを含むことができる。プロセッサ314および324は、例えば、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、マイクロプロセッサ、コントローラ、チップ、マイクロチップ、集積回路(IC)、または任意の他の適切な多目的または特定のプロセッサもしくはコントローラを含むことができる。メモリユニット316および326は、例えば、ランダムアクセスメモリ、ダイナミックRAM、フラッシュメモリ、揮発性メモリ、不揮発性メモリ、キャッシュメモリ、バッファ、短期メモリユニット、長期メモリユニット、または他の適切なメモリユニットもしくは記憶ユニットを含むことができる。
【0049】
他の装置および構成を使用することもでき、例えば、データ318はメモリ326内にローカルに記憶することもでき、別個のサーバ310は使用されなくてもよい。
【0050】
図4を参照すると、この図は、本発明のいくつかの実施形態に従って、複数のM個の部分経路を使用して、ニューラルネットワークを部分活性化することによってニューラルネットワークを近似するための方法のフローチャートである。図4の操作は、メモリ(例えば、図3の1つ以上のメモリユニット316および/または326)に記憶されたデータを使用して、プロセッサ(例えば、図3の1つ以上のプロセッサ314および/または324)によって実行され得る。
【0051】
操作400において、プロセッサは、総数N個のシナプスまたはフィルタを含むニューラルネットワーク(例えば、図1Aまたは図2の200)をメモリに記憶することができる。CNNは、2Dおよび/または3Dであるフィルタを有してもよい。
【0052】
操作410において、プロセッサは、経路「シード」をランダムに選択して、ニューラルネットワークを横断する第一の部分経路を開始することができる。
【0053】
操作420において、プロセッサは、ニューラルネットワークの複数のM個の部分経路を反復的に実行することによって、ニューラルネットワークを部分活性化し、M個の部分出力を生成することができる。M個の部分経路は、それぞれ、入力層を出力層にリンクするシナプスまたはフィルタのM個の異なる連続シーケンスを含むことができる。M個の部分経路は、ニューラルネットワークのN個のシナプスまたはフィルタのサブセットのみに累積的に及ぶことができるので、残りのN個のシナプスまたはフィルタのうちの著しい数が計算されない。いくつかの実施形態では、M個の部分経路を実行することによって部分活性化されるシナプスまたはフィルタの総数
【数10】
は、ニューラルネットワーク内の全てのシナプスまたはフィルタの総数Nよりも著しく少ない。M個の部分経路の形状は、線形(例えば、各シナプスまたはフィルタを単一の他のシナプスまたはフィルタのみに接続する)、分岐(例えば、複数のシナプスまたはフィルタの各々を複数の他のシナプスまたはフィルタに接続する)、同じ層からそれ自体にループする回帰経路、織り経路、またはそれらの組み合わせであってもよい。
【0054】
いくつかの実施形態では、ニューラルネットワークは、複数のニューラルネットワークのアンサンブルのうちの1つであり、その出力は、同じ結果を訓練または予測するために集約または平均化される。そのような実施形態では、M個の部分経路は、アンサンブル内の複数のニューラルネットワークの間で(例えば、等しく、または優先的に/等しくないように)分割されてもよい。プロセッサは、M個の部分経路をシーケンスまたは並列で実行することができる。
【0055】
いくつかの実施形態では、ニューラルネットワークは、それぞれが意思決定の異なるフェーズに対応するN個のレベルの階層として構造化されてもよい。階層型ニューラルネットワークは、N個の複数のフェーズ、ステージ、またはパスで部分活性化されてもよく、そのそれぞれは、ネットワーク階層のN個のそれぞれのレベルの異なる1つに対応する。比較的高いレベルに対して比較的早いステージで部分経路を実行する部分出力を使用して、比較的低いレベルに対して後続のステージでどの部分経路を実行するかを決定することができる。例えば、第一のステージでは、大まかな解が生成されることがあり、この解は、後続の各ステージでさらに繰り返し精緻化することができる。
【0056】
いくつかの実施形態では、プロセッサは、ニューラルネットワークへの各入力の個々の特性に基づいて、ニューラルネットワーク内の複数のM個の部分経路を選択することができる。いくつかの実施形態では、プロセッサは、実行すべき最適な部分経路または部分経路の最適な実行確率を学習することによって、訓練フェーズ中にニューラルネットワーク内の複数のM個の部分経路を選択することができる。
【0057】
様々な実施形態では、プロセッサは、ニューラルネットワーク内の複数のM個の部分経路を、ランダムに、セミランダムに、またはランダムとセミランダムとのハイブリッドもしくは両方で選択することができる。一実施形態では、プロセッサは、第一のニューロン、シナプス、またはフィルタをフルランダムに選択し、その後、後続のニューロン、シナプス、またはフィルタをセミランダムに選択して、M個の部分経路におけるそれらのダイバーシティを最大にすることができる。一実施形態では、プロセッサは、より効率的なメモリ転送のために、メモリアクセスにおける主要なメモリスキップを最小限に抑える部分経路を優先的に選択することによって、複数のM個の部分経路をセミランダムに選択することができる。一実施形態では、プロセッサは、部分活性化ニューラルネットワークの訓練データセットが対応する完全活性化ニューラルネットワークを近似する精度を最適化するように以前に訓練された別個の選択ニューラルネットワークを実行することによって、M個の部分経路を選択することができる。いくつかの実施形態では、プロセッサは、発見的手法または確率論に基づいて、例えば、各経路の出力精度に基づいて、複数のM個の部分経路をセミランダムに選択することができる。例えば、プロセッサは、経路の性能を決定またはランク付けするために、各経路の出力の精度を測定することができる。プロセッサは、性能ランキングの高い経路が、性能ランキングの低い経路よりも優先的に選択され得るように、フィードバックループを実装し得る。いくつかの実施形態では、プロセッサは、進化的制約に基づいて、複数のM個の部分経路をセミランダムに選択することができる。進化的制約(例えば、遺伝的アルゴリズム)を用いると、異なる経路を互いに競合させて優先的な経路を進化させ、ますます良く機能する経路を徐々に選択できるようにすることができる。いくつかの実施形態では、階層型ニューラルネットワークおよび/またはマルチステージアプローチを使用する場合、遺伝的アルゴリズムが実行されて、階層内の各ステージまたは各レベルについて最適な実行部分経路を選択することができる。
【0058】
いくつかの実施形態では、訓練中にM個の部分経路が選択された後、選択されたM個の部分経路に沿ったシナプスを除く全ての非活性化シナプスを排除、削除、またはゼロにするために、ニューラルネットワークをプルーニングすることができる。したがって、ニューラルネットワークは、選択されたM個の部分経路のみを使用して予測することができる(すなわち、各推論は、これらのM個の経路を正確に使用することになる)。したがって、当初緻密(例えば、完全に接続された)ニューラルネットワークを、元のニューラルネットワークのシナプスまたは重みが著しく少ない(例えば、50%未満)スパースニューラルネットワークに変換することができる。このスパースニューラルネットワークは、ニューラルネットワークの速度を上げ、メモリ使用量を減らすために使用することができるが、これは、例えば、2018年7月20日に出願された米国特許出願第16/041,497号に開示されているとおりで、その全体は、参照により本明細書に組み込まれる。
【0059】
プロセッサは、部分活性化ニューラルネットワークの集約された出力が完全活性化ニューラルネットワークの出力に最も近似するように、部分経路の数Mおよび経路当たりのシナプスまたはフィルタの数を調整することができる。いくつかの実施形態では、M個の部分経路の各々におけるシナプスまたはフィルタの数は、固定数であってもよい。その固定数は、一定であってもよく、その結果、集約出力は、M個の部分経路のM個の部分出力の平均になる。あるいは、固定数は、1つ以上の連続する経路に対して増加または減少し得、その結果、集約出力は、M個の部分経路のうちの対応する1つにおいてそれぞれ実行されるシナプスまたはフィルタの割合に基づいて重み付けされた、M個の部分出力の重み付き平均になる。いくつかの実施形態では、プロセッサは、M個の部分経路のそれぞれにおけるシナプスまたはフィルタの数を動的に調整することができる。いくつかの実施形態では、動的な数は、予測モードにおいて予測結果が複数のランで収束すること、または発散することにつれ、あるいは訓練モードにおいて誤差がゼロに収束すること、またはゼロから発散するにつれて、それぞれ、漸近的に減少および増加するように調整されてもよい。いくつかの実施形態では、プロセッサは、監視されたハードウェアリソースのリアルタイム入手性に基づいて、シナプスまたはフィルタの動的な数を調整することができる。
【0060】
プロセッサは、ニューラルネットワークの部分活性化と、完全活性化とのハイブリッドな組合せを実行することができる。ニューラルネットワークは、ニューラルネットワークの異なる層、フィルタ、チャネル、反復、または動作モードについて、部分活性化または完全活性化することができる。いくつかの実施形態では、プロセッサは、訓練モードでのみニューラルネットワークを部分活性化し、予測モードでのみニューラルネットワークを完全活性化することができ、または予測モードでのみニューラルネットワークを部分活性化し、訓練モードでのみニューラルネットワークを完全活性化することができ、または訓練モードおよび予測モードの両方でニューラルネットワークを部分活性化することができる。
【0061】
操作430において、プロセッサは、ニューラルネットワークのN個のシナプスまたはフィルタ全てを実行することなく、M個の部分出力を集約して、完全活性化出力に近似する集約された部分活性化出力を生成することができる。
【0062】
操作440において、ニューラルネットワークの部分活性化を複数のQ回繰り返した後、プロセッサは、Q回のランの累積出力を使用して、集約された出力に基づいてニューラルネットワーク(またはニューラルネットワークの集合)を予測または訓練することができる。
【0063】
他の操作または操作の順序が使用されてもよい。
【0064】
上述の説明では、本発明の様々な態様について記載がなされている。説明することを目的として、本発明の完全な理解を提供するために、特定の構成および詳細を説明してきた。しかしながら、当業者には、本発明が、本明細書に提示される特定の詳細なしに、実施されてもよいことも明らかであろう。さらに、周知の特徴は、本発明を曖昧にしないために、省略または簡略化されることもある。
【0065】
特に明記しない限り、以下の説明から明らかなように、本明細書の説明全体にわたって、「処理する」、「演算する」、「計算する」、「決定する」などの用語を利用する説明は、コンピュータまたは演算システム、あるいは演算システムのレジスタおよび/またはメモリ内の電子的量などの物理的量として表されたデータを操作し、および/またはそれを演算システムのメモリ、レジスタまたは他のそのような情報格納、伝達もしくは表示装置内の物理的量として同様に表される他のデータに変換する同様な電子的演算装置のアクションおよび/またはプロセスをいうことが理解される。
【0066】
前述のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステムおよび方法の可能な実装のアーキテクチャ、機能、および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つ以上の実行可能な命令を備えることができるモジュール、セグメント、またはコードの一部を表すことができる。一部の代替的な実装では、ブロックに記載されている機能は、図面に記載されている順序から外れて、または異なるモジュールによって発生する可能性がある。明示的に述べられていない限り、本明細書で説明される方法の実施形態は、特定の順序またはシーケンスに制約されない。さらに、記載された方法の実施形態またはその要素のいくつかは、同じ時点で発生または実行することができる。ブロック図および/またはフローチャート図の各ブロックと、ブロック図および/またはフローチャート図のブロックの組合せとは、指定された機能または動作を実行する専用ハードウェアベースのシステム、または専用ハードウェアとコンピュータ命令との組合せによって実施することができる。
【0067】
本発明の実施形態は、部分経路の階層を含むことができる。例えば、ニューラルネットワークを分類する場合、最高レベルのスーパークラス分類を予測するための最良のパフォーマンスの経路である部分経路の初期セットを使用することができる。最高レベルの分類が予測されると、この特定のスーパークラス内のクラス間で次に高いレベルの分類を予測するための最良のパフォーマンスの経路である部分経路の後続のセットを使用することができる。このプロセスは、階層内の各分類レベルについて、部分経路の新しい最適化されたセットを用いて繰り返すことができる。部分経路のこれらのセットは、訓練データ上で複数の実験を実行し、各分類について経路の最良のパフォーマンスのセットを選択することによって作成することができる。それらのセットは、また、手動で選択することも、あるいは両方のアプローチを組み合わせることもできる。
【0068】
本発明の実施形態は、出力層の一部のみが特定の部分経路の順方向で活性化されるとき、層の出力を正規化し、その層からの減少した信号を補償することを含むことができる。
いくつかの実施形態では、値は、ニューロンごとに、層ごとに、経路全体ごとに、またはそれらの任意の組合せごとに正規化されてもよい。
【0069】
本発明の実施形態は、第一のセットの層が、それらの層内の全てのニューロンを使用して実行し、次いで、最後のそのような層からの結果を保存し、ネットワークの残りの部分経路ランの全てへの入力として使用することができる実装を含むことができる。
【0070】
本発明の実施形態は、非一時的コンピュータまたはプロセッサ可読媒体、プロセッサまたはコントローラ(例えば、図3のプロセッサ314および/または324)によって実行されると、本明細書で開示される方法を実行する命令、例えば、コンピュータ実行可能命令を符号化、含有、または記憶するメモリ(例えば、図3のメモリユニット316および/または326)、ディスクドライブ、またはUSBフラッシュメモリなどのコンピュータまたはプロセッサ非一時的記憶媒体などの物品を含むことができる。
【0071】
以上の説明において、一つの実施形態は本発明の一例または実現例である。「一実施形態」、「一つの実施形態」、または「他の実施形態」などの様々な表現は、必ずしも全てが同じ実施形態を指すとは限らない。本発明の様々な特徴が単一の実施形態の文脈で説明されている場合でも、その実施形態のそれらの特徴を別々にまたは任意の適切な組み合わせで提供することもできる。あるいは、明瞭化のために別々の実施形態の文脈で本発明が説明されている場合でも、本発明を単一の実施形態で実施することもできる。本明細書において、「いくつかの実施形態」、「一実施形態」、「一つの実施形態」、および「他の実施形態」などは、それらの実施形態に関連して説明されている特定の特徴、構造、または特性が少なくともいくつかの実施形態において含まれていることを意味し、必ずしも本発明の全ての実施形態に含まれていることを意味しない。上記の本発明の態様は、本発明の実施形態において組み合わされ得るか、さもなければ共存され得ることがさらに認識されるであろう。
【0072】
特許請求の範囲および明細書に記載した説明、実施例、方法および材料は、限定として解釈されるべきでなく、単に例示として解釈されるべきである。本発明の特定の特徴が本明細書に例示および記載されているが、多くの修正、置換、変更、および同等物が当業者には想起され得る。したがって、添付の特許請求の範囲は、本発明の真の精神に該当するような全てのそのような修正および変更を網羅することを意図していることを理解すべきである。
【0073】
本発明を限定された数の実施形態に関して説明してきたが、これらは本発明の範囲を限定するものではなく、むしろ、好ましい実施形態のいくつかの例示として解釈されるべきである。他の可能な変形、変更、および適用もまた本発明の範囲内に含まれる。異なる実施形態が本明細書に開示されている。特定の実施形態の特徴は、他の実施形態の特徴と組み合わせることができ、したがって、特定の実施形態は、複数の実施形態の特徴の組み合わせであり得る。
図1
図2
図3
図4