JP7235836B2 - クラスタ接続ニューラルネットワーク - Google Patents

クラスタ接続ニューラルネットワーク Download PDF

Info

Publication number
JP7235836B2
JP7235836B2 JP2021181497A JP2021181497A JP7235836B2 JP 7235836 B2 JP7235836 B2 JP 7235836B2 JP 2021181497 A JP2021181497 A JP 2021181497A JP 2021181497 A JP2021181497 A JP 2021181497A JP 7235836 B2 JP7235836 B2 JP 7235836B2
Authority
JP
Japan
Prior art keywords
cluster
neural network
weights
inter
filters
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
JP2021181497A
Other languages
English (en)
Other versions
JP2022077510A (ja
Inventor
エリ デイヴィッド
エリ ルビン
Original Assignee
ディープキューブ リミテッド
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
Application filed by ディープキューブ リミテッド filed Critical ディープキューブ リミテッド
Publication of JP2022077510A publication Critical patent/JP2022077510A/ja
Application granted granted Critical
Publication of JP7235836B2 publication Critical patent/JP7235836B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • 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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/776Validation; Performance evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)
  • Complex Calculations (AREA)

Description

本発明の実施形態は、機械学習による人工知能(AI)の分野に関する。特に、本発明の実施形態は、ニューラルネットワークを使用する深層学習に関する。
人工ニューラルネットワーク、又は単に「ニューラルネットワーク」は、機械学習によって訓練されるニューロンの生物学的ネットワークに似たコンピュータモデルである。従来のニューラルネットワークには、入力層、複数の中間層又は隠れ層、及び出力層がある。各層には、複数(例えば、100~1000)の人工「ニューロン」がある。層(N)の各ニューロンは、人工的な「シナプス」によって、前の(N-1)層と次の(N+1)層のニューロンの一部又は全部に接続され、「部分接続された」又は「完全接続された」ニューラルネットワークを形成する。各シナプスの接続の強度は、重みで表される。したがって、ニューラルネットワークは、ネットワーク内のすべての重みのセットで表すことができる。
ニューラルネットワーク(NN)は、学習データセットに基づいて訓練され、その接続の強度を示す各シナプスの重みを解決又は学習する。シナプスの重みは、通常、例えば、ランダムに初期化される。訓練は、サンプルデータセットをニューラルネットワークに繰り返し入力し、データセットに適用されたニューラルネットワークの結果を出力し、期待される(例えば、ターゲット)出力と実際の出力の間のエラーを計算し、エラーを最小限にするために、エラー修正アルゴリズム(例えば、バックプロパゲーション)を使用してニューラルネットワークの重みを調整することによって実行される。訓練は、エラーが最小化又は収束するまで、繰り返すことができる。通常、訓練セットを介した複数回(例えば、数十回か数百回)のパスが実行される(例えば、各サンプルはニューラルネットワークに複数回入力される)。訓練セット全体の各完全なパスは、1つの「エポック」と呼ばれる。
最先端のニューラルネットワークは、通常、数百万から数十億の重みを有し、その結果、訓練フェーズと実行時(予測)フェーズの両方に専用のハードウェア(通常はGPU)を必要とする。そのため、ほとんどのエンドポイントデバイス(IoTデバイス、モバイルデバイス、さらには専用のアクセラレータハードウェアのないラップトップやデスクトップなど)で、深層学習モデルを実行することは、たとえ、予測モードであっても実用的ではない。処理速度及び/又はメモリの可用性が制限されているデバイスで深層学習モデルを効果的に実行することは、今日でも重要な課題である。
限られたハードウェア容量の問題に対処するために、今日、ほとんどの深層学習予測は、リモートサーバ又はクラウド上で行われる。例えば、スマートアシスタント(Alexaなど)が情報(音声信号など)をクラウドに送信し、深層学習予測が専用ハードウェア上のクラウドで、リモートで実行され、応答がローカルデバイスに返送される。したがって、これらのエンドポイントデバイスは、クラウドから切断されている場合、入力レートが高すぎてクラウドと継続的に通信できない場合、又は専用ハードウェアでさえ今日十分に高速ではない場合に非常に高速な予測が必要な場合(例えば、高頻度取引の深層学習)、深層学習ベースの結果を提供できない。
したがって、当技術分野では、訓練及び/又は予測モードでのニューラルネットワークの深層学習の効率を高め、メモリ要件を減らす必要がある。
本発明のいくつかの実施形態によれば、クラスタの内側で局所的に完全又は密に接続され(例えば、局所的クラスタの内側のクラスタ内重みを奨励する)、クラスタの外側でグローバルに疎に接続される(例えば、クラスタの境界を越えるクラスタ間重みを排除する)「クラスタ接続」ニューラルネットワークを用いて訓練および予測するためのデバイス、システム及び方法が提供される。クラスタは、入力層から出力層に向かって伸びるニューロン活性化の典型的に優勢な方向(例えば、ニューラルネットワーク軸に平行)を奨励し、典型的に優勢でない横方向のニューロン活性化(例えば、ニューラルネットワーク軸に直交)を抑止する、列として形成されてもよい。一例として、それぞれ1000個のニューロンからなる2つの層からなるニューラルネットワークにおいて、層は、完全接続設計では100万個の重み(1,000×1,000)によって接続されるが、列接続設計では、10列(100×100×10)に分割し、残りの少数の疎な列間重みを加えても10万個に過ぎない。これにより、この列接続ニューラルネットワークは、実質的に同じ精度の完全接続ニューラルネットワークと比較して、実行時予測中の計算速度が約10倍になり、新しい疎なインデックス付けによるクラスタ間重みの数の10分の1を格納するためにメモリが約10分の1に削減されることになる。また、この列接続ニューラルネットワークは、実質的に同じ精度の完全接続ニューラルネットワークと比較して、学習速度が向上する。例えば、ニューラルネットワークがクラスタ接続ニューラルネットワークとして初期化される場合、訓練速度の速度アップは、実行時の高速化と同じオーダーで最大となる(例えば、上記のシナリオでは10倍)。別の例では、ニューラルネットワークが完全接続ニューラルネットワークとして初期化される場合、列接続ニューラルネットワークが形成されて、十分な訓練速度アップが達成される(例えば、上記のシナリオで10倍)まで、より多くのシナプスが除去又はプルーニングされるため、訓練の速度は、各シーケンシャル訓練反復で速くなる。
本発明のいくつかの実施形態によれば、クラスタ接続ニューラルネットワークを使用して訓練又は予測するためのデバイス、システム、および方法が提供される。クラスタ接続ニューラルネットワークは、複数のクラスタに分割されてもよい。各クラスタは、異なる複数の人工ニューロン又は畳み込みチャネルから構成されてもよく、ニューロン又はチャネルの各ペアは、重み又は畳み込みフィルタによって一意に接続される。クラスタ接続ニューラルネットワークの各クラスタの内側では、クラスタ内重み又はフィルタの局所的に密なサブネットワークが生成又は維持されてもよく、同じクラスタの内側のニューロン又はチャネルのペアの過半数がクラスタ内重み又はフィルタによって接続され、その結果、各クラスタのニューロン又はチャネルのペアの接続された過半数が、クラスタ接続ニューラルネットワークを用いて訓練中又は予測中に活性化ブロックとして一緒に同時活性化する(are co-activated together)。クラスタ接続ニューラルネットワークの各クラスタの外側では、クラスタ間重み又はフィルタのグローバルに疎なネットワークが生成又は維持されてもよく、異なるクラスタ間でクラスタ境界によって分離されたニューロン又はチャネルの半数未満のペアが、クラスタ間重み又はフィルタによって接続される。クラスタ接続ニューラルネットワークは、訓練及び/又は予測のために実行されてもよい。
本発明とみなされる主題は、本明細書の結論部分において、特に指摘され、明確に主張されている。しかしながら、本発明は、その構成、特徴、及び利点とともに、構成及び動作方法の両方に関して、添付の図面とともに読まれる場合、以下の詳細な説明を参照することによって最もよく理解され得る。
本発明のいくつかの実施形態に従うクラスタ接続ニューラルネットワークの概略図である。 本発明のいくつかの実施形態に従うクラスタ接続畳み込みニューラルネットワークの概略図である。 本発明のいくつかの実施形態に従うクラスタ接続ニューラルネットワークの概略図である。 本発明のいくつかの実施形態に従って、図3のネットワークにクラスタ間重みを格納するためのデータ構造である。 本発明のいくつかの実施形態に従って、クラスタ接続ニューラルネットワークを使用する訓練及び予測のためのシステムの概略図である。 本発明のいくつかの実施形態に従って、クラスタ接続ニューラルネットワークを使用する訓練及び予測のための方法のフローチャートである。
例示を単純で明確にするために、図面に示される要素は、必ずしも一定の縮尺で描かれていないことが理解されよう。例えば、一部の要素の寸法は、明確にするために他の要素に比べて誇張されていることがある。さらに、適切であると考えられる場合、対応又は類似する要素を示すために、参照番号を図面の間で繰り返すことがある。
個々のニューロンの活性化は、その周囲の隣接ニューロンの活性化パターンに依存する。比較的重みの高いニューロンのクラスタに接続されているニューロンは、重みが比較的低いクラスタに接続されている場合よりも活性化される可能性が高くなる。このように、ニューロンは、クラスタで活性化する。本発明の実施形態によるクラスタベースのニューラルネットワークは、活性化が支配的である各クラスタの内側の重み(クラスタ内重み)を強化し、クラスタの外側の重み(クラスタ間重み)を減少又は排除し、しばしばわずかな活性化のみを示す。優勢なクラスタ間重みを奨励し、弱いクラスタ間重みを排除することにより、本発明の実施形態は、ニューロンが各クラスタの中で密に接続され(局所的に密な)、異なるクラスタ間で疎に接続される(グローバルに疎な)クラスタ接続ニューラルネットワークを形成する。クラスタ接続ニューラルネットワークは、最も影響力の大きいクラスタ内ニューロンの活性化に計算の労力を集中させ、重要性の低いクラスタ間ニューロンの活性化の計算の労力を排除又は削減することにより、従来のニューラルネットワークと比較して効率を向上させ、実質的に同じ結果を、大幅に少ない処理量と時間で達成することができる。
ニューロンは、通常、主にニューラルネットワーク軸と同じ方向に(例えば、入力層から出力層に延びる図1の配向ニューラルネットワーク軸110において、層平面に直交する方向に)活性化する。ニューラルネットワークが垂直に配向されている図1に示す例では、ニューロンの活性化が垂直クラスタで優勢であるため、列状クラスタ106が形成される。図1では列状クラスタが使用されているが、他のクラスタ形状は、例えば、高度に接続されたニューロン活性化領域の境界で使用され得る。例えば、ニューロンクラスタの境界の形状は、円、列、行、多角形、不規則形状、及び/又は任意の2D又は3D形状を含み得る。クラスタは、整列していることも、あるいは整列していないこと(例えば、千鳥配列の列))もあり、様々なサイズ(例えば、4×2ニューロン列、3×6ニューロン行など)で、様々な方向で、重複していることも、あるいは重複していないことも、その他のこともある。一部のクラスタは、隣接するニューロンのグループを表し、追加又は代替として、一部のクラスタは、隣接又は近接していないニューロンを表すこと(例えば、近接の代わりに、又は近接に加えて、重み値に基づいて選択されること)がある。一例では、図1のニューラルネットワークの向き110が水平方向に回転された場合、行状クラスタは列状クラスタと同等であり得る。追加又は代替として、図1の図示の向きでは、行クラスタは、ニューロンが同じ層内の他のニューロンに接続されている回帰型ニューラルネットワークに使用され得る。いくつかの実施形態では、列クラスタと行クラスタの組み合わせを使用することができる。例えば、回帰型接続又は層間接続が優勢な領域で行クラスタを使用したり、層間接続が優勢な領域で列クラスタを使用したりする。追加又は代替として、3Dクラスタを3Dニューラルネットワーク(例えば、フィルタの多次元チャネルを備えた畳み込みニューラルネットワーク(CNN)など)に使用することができる。
いくつかの実施形態では、クラスタ形状の最適なパターンを決定するために試験を実施することができる。例えば、クラスタ形状は、最高の集合的なグループ重み(例えば、ニューロンのすべて、局所的なサブセット、又はランダム又は半ランダムサンプリングを試験する)、複数の訓練反復又はエポックにわたって最もレジリエント(例えば、最も遅い変化)重みを有するニューロン、又はニューロンペア又はグループ重みの任意の他の指標をグループ化して定義することができる。試験分析は、エポックごとに1回、定期的に、他の定期的又は不規則な時間間隔で、及び/又は他のイベント又は基準(例えば、重みが閾値を超える)によってトリガーされる場合がある。試験統計量は、訓練計算とは独立して、又は訓練計算の一部として計算できる。いくつかの実施形態では、訓練中にニューロンの重みが変化するにつれて、クラスタのパターン及び形状を動的に調整して、最適なクラスタ化を維持することができる。
クラスタ接続ニューラルネットワークを訓練するために、本発明のいくつかの実施形態は、完全に接続されたニューラルネットワークから開始し、クラスタ間重みをプルーニングすることができる。本発明の他の実施形態は、切断されたクラスタから開始し、選択されたクラスタ間重みを追加することができる。
重み訓練は、クラスタ内重みを強化又は追加し(同じクラスタ内にあるニューロンを接続する)、クラスタ間重みを弱体化又はプルーニングする(異なるクラスタにあるニューロンを接続するためにクラスタの境界を越える)ようにバイアスをかけることができる。クラスタ間重みは、L正則化、L正則化、閾値処理、ランダムゼロ化、新しい重み生成、遺伝的アルゴリズムを使用した重みの進化、及び/又はバイアスベースのプルーニングを使用して減少又はプルーニングできる。いくつかの実施形態では、重み強度は、ニューロン間の距離に反比例してバイアスされ得る。例えば、重みは、接続されたニューロンが互いに近くなるほど強くなり、接続されたニューロンが互いに離れるほど弱くなるようにバイアスされ得る。例えば、L正則化は、ネットワーク内の重みをゼロにプッシュすることができ、例えば、
Figure 0007235836000001
のようになる。ここで、dは重みwijで接続されたi番目とj番目のニューロン間の距離を表す。したがって、ニューロン距離dが大きいほど、L正則化が速くなり、重みwijがゼロに誘導する。ニューロン距離dは、例えば、接続されたi番目及びj番目の2つのニューロンを分離するニューロン、層、クラスタなどの数に基づく、ニューロンの分離又は近接の任意の測定基準であり得る。
すべての可能なクラスタ間重み108のサブセット(例えば、半数未満)を追加又は維持することができる。様々な実施形態において、クラスタ間重み108は、閾値以上の重みを有するもの、クラスタ間重みが最も高い上位N(所定の数)の中にあるもの、最小若しくは閾値以下の距離で、又は他の基準でニューロンを接続するものが追加又は維持され得る。いくつかの実施形態では、クラスタ境界に沿って位置するニューロン(ただし、内部の非境界ニューロンではない)のみが、クラスタ間重みを介して異なるクラスタの中のニューロンに接続することが可能になる。いくつかの実施形態では、各ニューロン(又は境界ニューロンのみ)は、所定の数のクラスタ間重み、又はクラスタ間重みとクラスタ内重みの比率が許可される。
様々な実施形態において、ニューロンは、各クラスタの中で完全接続及び/又は部分接続され得る。いくつかのハイブリッドの実施形態では、様々な領域、層、ニューロン/重みのサブセットなどが、クラスタ接続、非クラスタ接続、完全接続、部分接続、又は他の方法で接続され得る。一実施形態では、完全接続されたクラスタと部分接続されたクラスタとの組み合わせを使用することができる。例えば、様々なタイプのクラスタは、完全接続された列クラスタ(例えば、より重要な層間接続を表す)と部分接続された行クラスタ(例えば、それほど重要ではない回帰型層内接続を表す)とのような様々な接続パターンを使用できる。別のハイブリッドの実施形態は、領域のサブセットにクラスタ接続ニューロンを使用することができ、一方、他の領域は、標準的な接続を使用することができる。
いくつかの実施形態は、疎な畳み込みニューラルネットワーク(CNN)を生成することができる。CNNは、入力層のチャネルを畳み込み層のチャネルに接続する複数のフィルタで表される。フィルタは、ニューロンの各プログレッシブ領域(例えば、N×Nピクセル画像領域を表す)で動作する入力チャネルをスキャンし、各領域の畳み込み又はその他の変換を畳み込みチャネル内の単一のニューロンにマッピングする。複数のニューロンの領域全体を各単一の畳み込みニューロンに接続することによって、フィルタは多対一のニューロン接続を有するシナプスを形成し、これにより、標準的なNNの一対一ニューロン接続と比較してCNNのシナプスの数が減少する。いくつかの実施形態は、チャネルのクラスタをグループ化し、異なるクラスタからのチャネルを接続するクラスタ間フィルタをプルーニング又はゼロ化することによって、クラスタ接続CNNを生成することができる。
CNNでは、フィルタは、二次元(2D)(第一の層の各単一チャネルを第二の層の単一チャネルに接続する)であっても、あるいは三次元(3D)(第二の層の各単一チャネルを第一の層の複数のチャネルに接続する)であってもよい。例えば、図2に示すクラスタ接続CNN200は、入力層と第一の畳み込み層を30個の2Dフィルタ又は10個の3Dフィルタで接続できる。したがって、CNNクラスタ206は、また、図2に示すように、2D(2Dフィルタのグループ化)であっても、あるいは3D(3Dフィルタ、又は2Dフィルタの複数の層のグループ化)であってもよい。したがって、プルーニングは、CNNにおいて、2D又は3D(図2において)、あるいはそれらの任意の組み合わせであるクラスタ間フィルタ208を削除することができる。
本発明の実施形態は、各クラスタの中で密に接続され(例えば、局所的に完全接続されたクラスタ内重み)、クラスタ境界を越えて疎に接続された(例えば、グローバルに疎なクラスタ間重み)クラスタ接続ニューラルネットワークを使用して訓練及び予測するための新規のシステム及び方法を提供する。スパース化は、訓練フェーズ中にクラスタ間重みをプルーニングすることによって、あるいはニューラルネットワークを進化させることによって実現できる(例えば、遺伝的アルゴリズムを使用した突然変異によってクラスタ間重みを削減又は排除するため)。これらの実施形態は、いくつかの重要な改善を提供する。
・ ニューラルネットワークでのスパース性を大幅に向上できる。クラスタ間重みはネットワーク重みの大部分を占め、そのほとんどは遠距離に及びため、局所的なクラスタ内重みほど重要視されない可能性がある。上記の例では、1,000個のニューロンの2つの層をそれぞれ10個の列クラスタに分割すると、重みの数が90%減少し、完全接続設計の100万個の重み(1,000×1,000)から、列接続設計の10万個(100×100×10)になる。残りのいくつかのクラスタ間重みは、疎であり、重みの数の増加はわずかである。
・訓練中にプルーニングすることにより、プルーニングによって引き起こされる差を残りの重みが相殺できるため、プルーニング前(完全接続されたネットワークなど)とプルーニング後(クラスタ接続ネットワークなど)で実質的に同じ予測精度が得られる。
・予測モードと訓練モードの両方で、ニューラルネットワークに誘導されるスパース性の量に正比例する線形スピードアップが得られる。例えば、50%の疎なクラスタ接続ニューラルネットワーク(50%未満又はその重みの半数未満を保持)は、予測と訓練とが2倍(又は200%)高速になる。上記の例では、90%の疎なクラスタ接続ニューラルネットワーク(重みの10%を保持)により、予測と訓練とが10倍(又は1000%)高速になる。一般に、ニューラルネットワークのスパース性が高いほど、予測と訓練との時間が高速になる。
・クラスタベースのインデックス作成により、メモリ使用量をほぼ直線的に削減できる。局所的に密なクラスタは、高速な行列乗算のために、各クラスタ固有の行列に関連付けられたクラスタインデックスによってクラスタ内重みを表すことができる。しかしながら、グローバルに疎なクラスタ間重みの大部分は、非ゼロクラスタ間重みごとに個別にインデックス付けできるため、ゼロのクラスタ間重みを格納する必要がない。ゼロのクラスタ間重みの大部分を排除する一方で、各非ゼロクラスタ間重みの独立したインデックス付け(例えば、値だけでなくインデックスも格納)のために追加の(例えば、2倍の)メモリを使用すると、90%の割合でプルーニングされたクラスタ間重みを格納するためのメモリ消費が2/10、すなわち、5分の1に削減すること(80%減)になる。
・ いかなるハードウェアでも直線的なスピードアップが得られる。例えば、90%が疎なクラスタ接続ニューラルネットワークは、計算デバイスに関係なく、例えば、低速CPUで動作しているか、高速専用GPUで動作しているかに関係なく、完全接続ニューラルネットワークと比較して10倍の速度が得られる。言い換えれば、本発明の実施形態は、(従来のニューラルネットワークを効率的に処理又は格納できない)CPU又はメモリ制限されたデバイス上でネットワークの深層学習を可能にする効率の改善を提供することができるが、同じ実施形態は、高速ハードウェアによって実装されて数桁のスピードアップ及びストレージ削減をもたらすことができる(これは、最速の専用ハードウェアであっても深層学習を用いることは実行不可能なリアルタイムナビゲーションなどの分野で、重要である)。
・ この方法は、ニューラルネットワークのタイプにとらわれず、例えば、完全接続された、部分接続された、畳み込み、回帰型などを含むが、これらに限定されない任意のニューラルネットワークアーキテクチャに適用でき、ネットワークの精度に悪影響を与えることなく、スパース性を著しく向上する。
行列表現は、(多数又は過半数の活性なシナプスを有する)密なニューラルネットワークに対して実装するのに便利かつ効率的であるが、(少数又は半数未満の接続されたシナプスを有する)疎なニューラルネットワークに対して効率的な表現ではない。ニューラルネットワークの予測速度は、ニューラルネットワークの重みの数に比例する。10×20の重みを持つ行列の例の場合、行列は、ほとんどの重みの値をゼロに設定することにより、疎なニューラルネットワークを表す。しかしながら、行列の重みをゼロにしても、行列内のエントリの数は減らないため、ニューラルネットワークで実行される計算の数は減らない。したがって、行列表現のメモリと計算の要件は、疎なニューラルネットワークの場合と密なニューラルネットワークの場合で同じである(ゼロ値は、行列乗算の非ゼロ値と同じように格納及び乗算される)。言い換えると、行列表現で重みをゼロに設定しても、それらの重みがメモリから削除されることも、あるいは関連する計算の数が減ることもない。したがって、クラスタ接続ニューラルネットワークで重みをプルーニングしても、従来の行列表現を使用して、そのメモリが減ることはない。
クラスタ接続ニューラルネットワークの新しいコンパクトな表現は、各クラスタ間重みを独立してインデックス付けする(重みが表すシナプスを独立して定義する)本発明のいくつかの実施形態に従って提供され、これにより、プルーニング又は省略されたシナプスのクラスタ間重みをスキップ又は破棄することが可能になる。従来の行列表現では、各重みは、行列内の位置によってインデックス付けされる(例えば、行i列jの重みは、第一の層のi番目のニューロンを第二の層のj番目のニューロンに接続するシナプスを表す)。追加の行列を使用して、層の各ペアの重みを格納できる。インデックス付けは行列の位置に基づいているため、重みは行列内の他の重みの位置をシフトするため、削除できない。これにより、疎なニューラルネットワークは、ほとんどゼロのエントリの疎な行列で表される。これは、ほとんどゼロの重みを格納するためのメモリと、ゼロの重みを乗算するための計算との両方で無駄である。本発明の実施形態に従って各クラスタ間重みを独立してインデックス付けすることにより、重みのインデックスは互いに依存せず、したがって、プルーニングされた各クラスタ間重みは、他のクラスタ間又はクラスタ内重みのインデックス付けに影響を与えることなく完全に破棄され得る。これにより、この独立したインデックス付けにより、切断されたクラスタ間シナプスのエントリを保存する必要がなくなり(メモリ消費が削減され)、切断されたクラスタ間シナプスに基づいて実行される計算が不要になる(処理速度が向上する)。ニューラルネットワークの実行速度はその中の重みの数に比例するため、クラスタ間重みによって接続されたクロスクラスタニューロン(cross-cluster neurons)の一部のみを有する本発明の実施形態による疎なクラスタ接続ニューラルネットワークは、高密度又は完全接続ニューラルネットワークと同様に、わずかな時間で実行され、訓練されるであろう。
クラスタ接続ニューラルネットワークは、各クラスタの内側に局所的に密な数のクラスタ内重みの配置を有するが、各クラスタの外側のクラスタ間重みのグローバルに疎な配置を有するので、本発明の実施形態は、クラスタ間重みとクラスタ内重みとに異なるインデックス付けをするハイブリッドなインデックス付けシステムを提供する。そのグローバルに疎であることを利用するために、クラスタ間重みは、各クラスタ間重みを一意に独立してインデックス付けする上記の新しいコンパクトなインデックス付けによってインデックス付けすることができ、それによってクラスタ間重みがゼロになるのを回避する。一方、その局所的に密であることを利用するために、各クラスタの内側のクラスタ内重みは、各クラスタの中重みをその位置で表す密な部分行列を組み合わせたクラスタインデックスによってインデックス付けすることができ、クラスタごとの高速な行列乗算の恩恵を受ける。
本発明の実施形態は、各シナプス又は重みに独立してインデックス付けする方法(例えば、図4のトリプレット表現を使用)を含むがこれらに限定されない、疎なニューラルネットワークにインデックスを付ける多くの方法、圧縮疎行(CSR)表現、圧縮疎列(CSC)表現、マップ表現、リスト表現、デュアルアレイ表現(非ゼロ要素を格納する一方のアレイと、それらのインデックスを格納する他方のアレイ)、疎テンソル表現、又は他の任意の疎なニューラルネットワーク又は行列インデックス付けなどを支援している。
図1を参照すると、これは、本発明のいくつかの実施形態に従って、クラスタ接続ニューラルネットワーク100を概略的に示す。
クラスタ接続ニューラルネットワーク100は、(図1のニューロンを接続する矢印によって示される)複数のシナプス接続によって接続された複数の人工ニューロン102を含む。クラスタ接続ニューラルネットワーク100は、それぞれの複数のシナプス接続の強度を表す複数の重みによって表すことができる。シナプス接続は、(同じクラスタの内側の2つのニューロンを接続する)クラスタ内重み104と(クラスタ106の境界(破線の境界ボックス)を越えて、異なるクラスタにまたがって位置するニューロンを接続する)クラスタ間重み108とのいずれかによって接続できる。
人工ニューロン102は、複数の層の階層に配置され得る。ニューラルネットワーク100は、入力層、1つ又は複数の中間層又は隠れ層(1、2、…、N)、及び出力層を含み得る。クラスタ接続ニューラルネットワーク100は、複数のニューロンクラスタ106に分割される。図1に示すニューロンクラスタ106は、列状であるが、他のクラスタ形状を使用することもできる。
各クラスタ106内の各ニューロン102は、クラスタ内重み104によって、そのクラスタ106内の隣接層の内側の(すべての)ニューロンに接続されている(完全接続されている)。しかしながら、各クラスタ106の各ニューロン102は、異なるクラスタ106のほとんどの(又はすべての)ニューロンから切断されている。いくつかの実施形態では、各クラスタ106内のニューロンのサブセット又は半数未満(例えば、クラスタ106の境界の点線に沿って配置された境界ニューロンのみ)は、クラスタ間重み108によってニューロンに接続される。したがって、各クラスタ106の内側は、完全に相互接続されたニューロンの局所的に密なサブネットワークであり、クラスタ106の外側は、ほとんどが疎な切断されたニューロンのグローバルに疎なニューラルネットワークである。
したがって、クラスタ接続ニューラルネットワーク100は、局所的に「密」であり得、各クラスタ106内のニューロン102の過半数、又は閾値パーセンテージ以上が、(例えば、非ゼロ接続の重みを有する)クラスタ内重み104によって接続されている。閾値は、50%超(過半数が接続されている)から100%(「完全接続されている」)までの範囲の任意のパーセンテージであり、通常は90~99%が接続されている。図1に示す例では、各クラスタ106内のすべてのニューロン102は、隣接する層内の他のすべてのニューロンに接続されているので、各クラスタ106は完全接続されている。この例では、4つのニューロンの隣接する層の各ペアには16の可能な接続があり、隣接する層の2つのペアでは、各クラスタ106に32のニューロン接続と、関連するクラスタ内重み104がある。
クラスタ接続ニューラルネットワーク100は、グローバルに「疎」であり得る。ここで、ニューラルネットワーク100全体にわたるニューロン及び/又はクロスクラスタニューロン間のニューロンの半数未満又は閾値パーセンテージ以下が、クラスタ間重み108によって接続されている(又は、クロスクラスタニューロンの過半数又は閾値を超えるパーセンテージが接続されていない)。閾値は、50%未満の範囲内の任意のパーセンテージであり(半数未満が接続)、1~10%接続されていることがある。いくつかの実施形態では、クラスタ間重み108の数又は密度は、例えば、閾値を超える精度を達成する最小の数になるように、精度によって駆動され得る。図1に示す例では、疎なクラスタ間重み108はごくわずかである。
いくつかの実施形態では、クラスタ接続ニューラルネットワーク100は、密なニューラルネットワークとして訓練を開始することができ、過半数又は閾値パーセンテージ以上のクラスタ間重み108をプルーニングすることによって、図1の疎なクラスタ接続ニューラルネットワーク100を生成するように変換することができる。重みは、以前に接続されたニューロンのペアを切断することによってプルーニングできる。クラスタ接続ニューラルネットワーク100は、ニューラルネットワークを進化させる遺伝的アルゴリズム、遺伝的プログラミング、強化学習などの方法を使用して訓練することができる。クラスタ接続ニューラルネットワーク100は、例えば、局所接続、再帰型接続、スキップ接続など、グローバルに疎な表現を有する様々なタイプの接続のハイブリッド混合を有し得る。このような接続の混合を伴うニューラルネットワークの進化は、本発明の実施形態に従うコンパクトな独立したインデックス付けを使用して効率的に実行され、クラスタ間重み108及び/又はクラスタ内重み104にインデックス付けされ得る。追加又は代替として、クラスタ接続ニューラルネットワーク100は、そもそも(プルーニングなしで)疎なネットワークとして生成又は受信されることもある。いくつかの実施形態では、クラスタ接続ニューラルネットワーク100は、クラスタ内重み104のみ(クラスタ間重み108ではない)で開始され得、クラスタ間重み108の疎なサブセットは、訓練中に追加され得る。
従来の行列では、プルーニング又は省略された重みはゼロに設定され、接続された重みと同じように扱われ、プルーニングに対する格納又は処理で著しい利点をもたらさない。本発明の実施形態によれば、新しいデータ構造が図4に示すように提供され、これは、図3のクラスタ接続ニューラルネットワーク300の複数のクラスタ間重み108を、クラスタ間重み108の値(列3)と一意のインデックス(列1~2)とに関連付けられたものによって表現している。クラスタ間重み108は、各データエントリで明示的にインデックス付けされるため、図4の表現におけるデータエントリの順序は、もはやそれらの暗黙のインデックスとして機能せず、重みエントリは、情報を失うことなくシャッフル又は並べ替えることができる。特に、行列表現のようにインデックス付けを維持するためのプレースホルダーとして、クラスタ間重み108の値ゼロを格納する理由はない。したがって、2つのクラスタ間ニューロンが(プルーニングによって)切断されているか、そもそも接続されていない場合、図4のデータ構造は、単にその接続に対するエントリを完全に削除又は省略する(例えば、その接続について、重み又は任意の情報の記録が格納されない)。
ニューロンのペア102間の活性クロスクラスタ接続を表す非ゼロのクラスタ間重み108のみを格納することによって(また、ニューロンのペア間の切断、非活性接続、又は接続なしを表すゼロのクラスタ間重みを格納しないことによって)、図4のデータ構造は、クラスタ間重み108及び/又はネットワーク300全体のスパース性に正比例する量だけ、クラスタ接続ニューラルネットワーク300の疎なクラスタ間重み108を格納するためのメモリを削減することができる。クラスタ間重み108のX%が削除又は省略され、合計重みの100-X%のみが残り、インデックスが重みと同じビット数を使用する場合、重みエントリは、完全接続ニューラルネットワークによる占有よりも、2×(100-X)%の格納を占有することがある。(例えば、99%のスパース性は、密な表現に使用されるメモリの2%のみを必要とするスパース表現、つまり、メモリ使用量が50分の1になる)。
いくつかの実施形態では、密なクラスタ内重み104は、密な重み又は完全に接続された重みを格納するために、より効率的な行列によって格納され得る。クラスタ接続ニューラルネットワーク300全体に対する1つのグローバル行列の追加又は代替として、各クラスタ106は、一意のクラスタインデックスによって表されるサブネットワークとして扱われ得、そのクラスタ内重み104は、対応するクラスタ固有のサブ行列によって表され得る。
ニューラルネットワークを実行する速度は、ニューラルネットワーク内の重みの数に比例する。クラスタ接続ニューラルネットワーク100の接続を除去又は省略すると、スパース性の量に比例して、直接予測が高速化される可能性がある(例えば、クラスタ間シナプスのX%を削除又は省略し、全シナプスの100-X%だけを残した場合、得られるクラスタ接続ニューラルネットワークは、完全接続ニューラルネットワークよりも100/(100-X)倍高速に実行される)。
図2を参照すると、これは、本発明のいくつかの実施形態に従って、クラスタ接続畳み込みニューラルネットワーク100を概略的に示す。
畳み込みニューラルネットワーク200は、入力層201と、1つ又は複数の畳み込み層202及び203と、1つ又は複数の出力層と、を含む。CNN200の各層201、202、203、…は、1つ又は複数のチャネルを有し得る。図2に示される例では、入力層201は、カラー画像を表し、3つのカラーチャネル(例えば、赤、緑、及び青のチャネル)を有する。第1の畳み込み層202は、複数(例えば、10)のチャネル(例えば、C1~C10)を有し、第2の畳み込み層203は、複数(例えば、8つ)のチャネル(例えば、C1~C8)を有する。各畳み込みチャネルは、エッジ、線、円などの特徴の特徴マップ、あるいはリンゴ、ハンマーなどの上位層のより複雑なオブジェクトを表す場合がある。これらの特徴チャネルは、通常、ニューラルネットワークの訓練プロセスから完全に出現する(そして、手動で指定することはない)。
完全接続されたCNNでは、層内の各チャネルは、畳み込みフィルタ204によって後続の層内の各チャネルに接続され得る。各フィルタ204は、1つのチャネルのニューロンの領域(例えば、N×N画素の画像領域を表す)を、(隣接又は非隣接の)畳み込み層のチャネルのニューロンに畳み込む又は変換する、複数の重みのグループを表す。例示的な2D畳み込みフィルタ204は、入力チャネル(例えば、1a+2b+3c+…)内のニューロンの各N×Nグループ(例えば、1、2、3、…NN)を畳み込んで、畳み込みチャネル内の単一の接続された畳み込みニューロンを等しくするように、N×N重みのセット(例えば、a、b、c、…)を含む。N×N重みの同じ単一の畳み込みフィルタ204を使用して、入力チャネル全体でニューロンのすべてのN×Nグループを畳み込む。一般に、畳み込みフィルタ204は、一次元(1D)(例えば、ニューロンの列又は行に作用する1×N行フィルタ又はN×1列フィルタ)、二次元(2D)(例えば、N×Mフィルタ)を含む様々な次元を有し得る。ニューロンの2Dグリッドで動作する)、三次元(3D)(例えば、層内の複数のチャネル上のグリッドで動作するN×M×Pフィルタ)、…、又はN次元(ND)(例えば、上のグリッドで動作する複数のチャネルと複数の層で動作する)を含む様々な次元を有し得る。例えば、入力層201の各カラーチャネルは、第1の畳み込み層202の各畳み込みチャネルC1~C10に接続され得、次いで、第2の畳み込み層203の各畳み込みチャネルC1~C8に接続され得る。図2の例では、その結果、入力層201に3つのチャネル、第1の畳み込み層202に10のチャネルC1~C10、及び第2の畳み込み層203に8つのチャネルC1~C8があり、入力層と畳み込み層201、202、203、…からのチャネルのすべてのペアを接続する完全接続アーキテクチャで、可能なフィルタ204が合計N=240となる。CNN200は、通常、図示されているよりもはるかに多くの畳み込み層及び/又は他の(例えば、最大プーリング)層を有し、これにより、フィルタの数が指数関数的に増加する(例えば、フィルタ204の数が、数千、数百万、又は数十億になる)。
本発明の実施形態は、チャネルを複数の個別のクラスタ206にグループ化し、異なるクラスタに位置するチャネルを接続するために境界を越える多くの又はほとんどのクラスタ間フィルタ208をプルーニング又は省略することによって、疎なクラスタ接続CNN200を作成することができる。チャネルがかなりの数のクラスタ206(例えば、3より多い、好ましくは数十、あるいは数百のクラスタ)によって分割される場合、完全接続されたCNNフィルタの大部分はクラスタ間フィルタ208である。したがって、クラスタ間フィルタ208の疎な配置以外のすべてをプルーニングすることによって、本発明の実施形態は、グローバルに疎なクラスタ接続CNN200を生成する。プルーニング又は省略されたクラスタ間フィルタ208を有するクラスタ接続CNN200を動作させると、それらの関連する畳み込み演算の実行を回避し、クラスタ接続CNN200の訓練及び/又は予測が高速化する。
従来のCNNは、非ゼロフィルタと同じ方法でゼロフィルタを格納及び動作し、これは、プルーニングに有意な格納又は処理の利益をもたらさないが、本発明の実施形態によれば、非ゼロフィルタクラスタ間フィルタ208のみを格納する新しいデータ構造が提供される。新しいデータ構造は、2つのチャネルインデックス(列1~2)が接続された入力/出力チャネルを一意に定義するように、図4のトリプレット表現などのコンパクトな疎なインデックス付け方法を使用でき、その結果、2つのチャネルインデックス(列1~2)がクラスタ間フィルタ208によって接続された入力/出力チャネルを一意に定義し、1つのフィルタ表現(列3)がフィルタの重み値を定義するようになる。クラスタ間フィルタ208は、各データエントリにおいて明示的にインデックス付けされるので、データエントリのマトリックス位置は、もはやそれらの暗黙のインデックスとして機能せず、クラスタ間フィルタエントリは、情報を失うことなく、シャッフル、並べ替え、又は削除され得る。特に、行列表現でインデックス付けを維持するためのプレースホルダーとして、ゼロクラスタ間フィルタ(すべてゼロの重みを有するフィルタ)を格納する理由はない。したがって、ニューロンのチャネルが(プルーニングによって)切断されている場合、あるいは、そもそも接続されていない場合、図4のデータ構造は、関連するフィルタのエントリを完全に削除又は省略する(例えば、そのフィルタについて、任意の重み又は情報の記録が格納されない)。様々な実施形態において、データ構造は、1D、2D、3D、又はNDフィルタを、例えば、事前定義されたものとして、又は完全にゼロ化される最高の次元として省略することができる。CNNでは、フィルタは、二次元(2D)(第一の層の各単一チャネルを第二の層の単一チャネルに接続)であっても、あるいは三次元(3D)(第二の層の各単一チャネルを第一の層の複数のチャネルに接続)であってもよい。例えば、図2に示すクラスタ接続CNN200は、CNNを3Dクラスタ206に分割することができ、したがって、3Dクラスタ間フィルタ208を削除することができるが、クラスタ及びフィルタの任意の次元を使用することができる。
ニューロン間で活性な畳み込みを表す非ゼロクラスタ間フィルタ208のみを格納することによって(またニューロン間の畳み込みがないか、無視できることを表すゼロフィルタを格納しないことによって)、図4のデータ構造は、CNNで削除されたクラスタ間フィルタ208の量に比例する量だけ、疎な畳み込みニューラルネットワーク200を格納するためのメモリを削減することができる。
畳み込みニューラルネットワークを実行する速度は、CNN内のフィルタの数に比例する。クラスタ接続CNN200でフィルタをプルーニング又は省略すると、CNNで省略されたフィルタの数に比例して直接予測が高速化されることがある。
図1~図4のデータ構造の配置は、単なる例であり、ニューロン、接続、フィルタ、チャネル、層、クラスタで、その他の数サイズ、寸法、構成を使用できることは、当業者によって理解されるであろう。
追加の疎なデータ表現:以下の表現は、図4のトリプレット表現の追加又は代替として、非効率的な従来の疎行列表現を置き換えることができる。
圧縮疎行(CRS)データ表現は、疎行列の格納を減らすために、使用することができる。CSRは、3つの(一次元)アレイを使用して行形式で行列を表すことができ、第一のアレイは行列の非ゼロ値を定義し、残りのアレイは行列内のクラスタ間重みのスパース性パターンを表す。疎な畳み込みニューラルネットワークの場合、本発明の実施形態は、四次元(又はそれ以上)の行列を表すための修正されたトリプレット、又はCSRベースのインデックス付け方法、あるいはその2つの組み合わせを、例えば、行列の異なる次元のために、使用することができる。
マップ表現は、従来の行列を、“to”及び“from”ニューロンID(又はフィルタID)が重みwにマッピングされているマップに置き換えることができる。これは、トリプレット表現と同じ量の格納を必要とするが、新しい非ゼロの重みの追加が遅くなる代わりに、個々の重み(ゼロと非ゼロを問わず)へのアクセスを高速化する。
リスト表現は、従来の行列をペアのリスト<“from”,inner_list>に置き換えることができ、一方、内部リストは、形式<“to”、w>のペアを含み、ここで、“to”、“from”、とwは上記のとおりである。上記の変形は、例えば、行列を行数のサイズのリストとして表すために、疎ベクトルのリストを保持している。その要素は<j、w>ペアのリストである(このインデックスのニューロンが接続を有しない場合、空の可能性がある)。リスト表現は、例えば、以下のように、任意の疎ベクトル表現で使用できる。
疎ベクトル表現には、例えば、以下が含まれる。
インデックスによって順序付けられているか、又は順序付けされていないかのいずれかである、<index,value>のペアのリスト。
非ゼロ要素のインデックスが要素にマッピングされる辞書、又はマップ。欠落しているインデックスは、ゼロとして扱われることがある。
2つのアレイ、すべての非ゼロ要素を保持する1つのデータアレイ、及び元のベクトル内の一致するデータ要素のインデックスを保持するインデックスアレイ。
複数の疎ベクトルのうちの1つの疎ベクトルは、各データ要素が別の疎ベクトルである可能な疎ベクトル表現のうちの1つにおいて、従来の行列を疎ベクトルに置き換えることができる。これは、複数のゼロ行/列を有する行列に対して特に有用であり得る。
圧縮疎行(別名、圧縮行ストレージ)表現は、従来の行列を以下の3つのアレイで置き換えることができる。(1)すべての非ゼロの重みを保持する第一のデータアレイ(例えば、行優先順、すなわち、左から右、次いで、上から下)。(2)第二のデータアレイは、行ごとに要素の増分数を表す(したがって、第一の要素は常にゼロで、第二の要素は第一の行の非ゼロ要素の数で、第三の要素は非ゼロ要素の数で、以下同様に、最後の要素まで続く。これは、常に行列全体の非ゼロ要素の総数である)。(3)第三のデータアレイは、各非ゼロ要素の列インデックスj(つまり、ニューロンの“to”識別子)が含まれ、データアレイ内の順序と一致している。
圧縮疎列(別名、圧縮列ストレージ、別名、Harwell-Boeing疎行列)表現は、従来の行列を以下の3つのアレイで置き換えることができる。(1)圧縮疎行と同様に、すべての非ゼロクラスタ間重みを保持する第一のデータアレイ(例えば、列優先順でそーとされた、すなわち、上から下、次いで、左から右)。(2)第二のデータアレイは、値に対応する行インデックスのリストを表す。(3)第三のデータアレイは、新しい各列が始まるデータアレイのインデックスのリストを含む。例えば、[1,2,4]は、データアレイの第一の要素が行列の第一の列に属し、第二と第三の要素が第二の列に属し、第四の要素が第三の列を開始することを意味する。
修正された圧縮疎行:CSR表現を改善して、従来の行列を2つのアレイに置き換えることができる:(1)第一のデータアレイは、最初に対角値を(例えば、対角上にゼロがある場合はゼロを含む)、次に行優先順で残りの非ゼロ要素を保持する(通常のCSRと同じ方法)。(2)第二の(インデックス)データアレイは、第一のデータアレイと同じ長さである。第一のアレイの対角要素に一致する要素は、データアレイのその行の第一の要素を指す(したがって、第一の要素は常に対角線のサイズに1を加えたものになる)が、残りのデータに一致する要素は行列内のそのデータ要素の列インデックスを指定する。例えば、以下の値を有する4×4行列:[[1,2,0,3]、[0,4,5,0]、[0,0,0,6]、[0,0,0,7]]は、第一のデータアレイ[1,4,0,7,2,3,5,6]と、第二のインデックスアレイ[4,6,7,7,1,3,2,3]になる。
修正された圧縮疎列表現は、従来の行列を2つのアレイで置き換えることができる:(1)第一のデータアレイは、最初に対角値(対角上にゼロがある場合は、それを含む)を保持し、次に列優先順で残りの非ゼロ要素を保持する(通常のCSCと同じ方法)。(2)第二の(インデックス)アレイは、第一のアレイと同じ長さである。第一のアレイの対角要素に一致する要素は、データアレイのその列の第一の要素を指す(したがって、第一の要素は常に対角線のサイズに1を加えたものになる)が、残りのデータに一致する要素は行列内のそのデータ要素の行インデックスを指定する。例えば、以下の値(上記と同じ値)を有する4×4行列:[[1,2,0,3]、[0,4,5,0]、[0,0,0,6]、[0,0,0,7]]は、第一のデータアレイ[1,4,0,7,2,5,3,6]と、第二のインデックスアレイ:[4,4,5,6,1,2,3,3]になる。
疎テンソル表現:テンソルは、ベクトル及び行列をより高次元に一般化したものである。例えば、三次元テンソルには3つのインデックス(行列の場合は2つ、ベクトルの場合は1つのインデックスではなく)があり、ベクトルと見なすことができ、その要素が行列である。疎テンソル表現は、以下の2つのカテゴリに分類できる。(1)低次元テンソルの組み合わせ、又は指定された方法の1つの一般化。例えば、3Dテンソルは、上記の形式のいずれかを使用して、各行列が疎行列である行列のベクトルとして表すことができる。(2)代替又は追加として、3Dテンソルは、圧縮疎行の一般化によって表すことができ、データ、インデックス、及び列アレイは以前と同じであるが、インデックスアレイは、行インデックスのペアだけでなく、インデックスのペアを維持する。
クラスタ間重み又はフィルタは、以下の技法のいずれか1つ又は複数を使用して、減少又はプルーニングすることができる。
訓練中のスパース性の誘発:いくつかの実施形態は、L正則化、L正則化、閾値処理、ランダムゼロ化、新しい重み生成、遺伝的アルゴリズムを使用した重みの進化、及びバイアスベースのプルーニングの1つ又は複数の組み合わせを含む、訓練中にスパース性を誘発するために提供される。
正則化:本発明のいくつかの実施形態は、1つ又は複数の反復のそれぞれにおけるニューラルネットワーク訓練中にL正則化を使用してニューロン接続をプルーニングすることができる(例えば、バックプロパゲーションなどの重み補正更新に加えて)。ニューラルネットワークの重みwijは、例えば、以下:
Figure 0007235836000002
のように、各訓練反復で重みwij に更新できる。ここで、dは「重み減衰」パラメータ(通常は非常に小さい数)であり、sgnは符号関数である。重み減衰は、距離の関数であってもよい。言い換えれば、クラスタ間重みが更新されるたびに、クラスタ間重みの値は徐々に減衰するか、ゼロに向かって誘導される。上記の式でクラスタ間重みによって接続されたニューロン間の距離の減衰パラメータ(d)が大きいほど、クラスタ間重みがゼロに近づく速度が速くなり、クラスタ間重みの絶対ゼロになる部分が大きくなり、クロスクラスタニューロン間の切断(接続のプルーニング)を表す。
一実施形態では、プルーニングは、修正されたL正則化を使用して実行することができる。クラスタ間重みがゼロになる(又は符号が変わる)瞬間に、重みのメモリエントリがストレージから(トリプレット表現テーブルから)物理的に除去又は削除され、将来(例えば、将来の任意の時点で、又は設定されたロックアウト期間又は反復回数の間)、非ゼロ値に成長又は再生成することはできない。
正則化:L正則化は、L正則化の拡張であり、ネットワーク内の重みをゼロに「プッシュ」するという望ましい挙動を改善でき、例えば、
Figure 0007235836000003
になる。ここで、dは、クラスタ間ニューロンiとjの間の距離など、ゼロに誘導又はプッシュする速度を表し、pは、L正規化の正規化係数の累乗を表し、その誘導が適用される値の分布を有効に表す値の分布を効果的に表す(例えば、pは正の値)。この例では、pが高いほど、ゼロへの誘導が高い重みの方にシフトし、低い重みにかかる圧力が小さくなる。畳み込み層を正則化する場合、フィルタ全体を1つの単位として一緒に正則化することができる。その場合、上記のL正則化は、例えば、以下:
Figure 0007235836000004
のように修正できる。ここで、pは0~1の間であり、rはカーネル(畳み込み層のフィルタ)の半径であり、例えば、カーネルはサイズ2*r+1の行列である。この修正されたL正則化では、隣接するフィルタがゼロ値を有すれば有するほど、フィルタへの圧力がゼロになる。L正則化により、フレキシブルな動的圧力が可能になる。ここで、pは、例えば、スパース性のパーセンテージに基づいて動的に修正され、クラスタ間重みの導関数/ノルムをゼロにプッシュする。上記の方程式は、重み自体の値、クラスタ間ニューロンの間の距離に基づいて、また畳み込みフィルタの場合は、同じフィルタ内の隣接する重みの重みにも基づいて、クラスタ間重みをゼロにすることを推奨する。
閾値処理:クラスタ間重みとそのエントリは、重み値がゼロではないものの、ゼロに近い閾値を下回ると、物理的に削除されてもよい。
(wij<閾値)の場合 → wij=0
閾値は、訓練中にエラー訂正(バックプロパゲーションなど)を元に戻さないように十分に低くなるように、その一方で、適度に速い速度でプルーニングし、そのエラー訂正が値をゼロから引き離すことを防ぐために十分に高くなるように、バランスをとることができる。閾値の例には、0.1、0.001、0.0001、0.00001などが含まれるが、これらに限定されない。
丸め:浮動小数点以下の事前に指定された桁数以降の値を削除する。例えば、5桁の丸めが与えられた場合、値0.12345678は、0.12345に設定される。重みの値が丸めで許可されている最小値よりも小さい場合、丸めによって重みがゼロになる。そうでなければ、丸めによって重みが直接ゼロにならない場合、バックプロパゲーションによって重みの更新の一部が中断されるため、全体的なスパース性を高める結果になり得る。同様に、丸めで事前に指定された桁数は、エラー訂正がゼロから値を引き離すことを防ぐのに十分な多い一方で、エラー訂正を元に戻さないように十分に少ないようにバランスをとることができる。重みが丸められる浮動小数点以下の任意の整数桁を使用することができる。
ランダムゼロ化:クラスタ間重みは、固定された小さな確率(完全にランダムなゼロ化)又は現在の値に比例する確率(部分的にランダムなゼロ化)のいずれかでゼロに設定できる。部分的にランダムなゼロ化の後者の場合、重みが小さいほど、重みがゼロになる確率が高くなる。
一般に、クラスタ間重みをゼロに設定する、又はクラスタ間重みをゼロに近づけるように減衰する追加又は代替のプルーニング方法をここで使用でき、これには、ランダムなプルーニング、確率的な(例えば、現在の値に比例する確率で)プルーニング、及び/又は数学的又は統計的ヒューリスティックを使用するプルーニングが含まれる。
新しい重みの生成:クラスタ間重みをゼロに設定し、それらをメモリから削除する(プルーニング)ことの追加又は代替として、本発明のいくつかの実施形態は、以前は存在しなかった新しいクラスタ間重み又は接続をランダムに生成(作成)することができる。新しいクラスタ間重みは、ランダムに、確率的に(例えば、2つのニューロンが「一緒に発火」すればするほど、接続される可能性が高くなり、及び/又はその接続の重みが高くなる)、及び/又は数学的又は統計的ヒューリスティックを使用して生成できすることができる。
進化する疎なニューラルネットワーク:遺伝的アルゴリズム(GA)を使用してニューラルネットワークを訓練することができる。GAは、ニューラルネットワークの重みのセットを人工「染色体」として表す。例えば、各染色体は、1つのニューラルネットワークを表す。遺伝的アルゴリズムは、以下のステップ、すなわち、a)各染色体の適合性又は精度を測定するステップ(例えば、訓練セット全体の平均損失が低いほど、適合性は高くなる)と、(b)育種のためのフィッター染色体を選択するステップと、(c)親染色体のペア間で組換え又はクロスオーバーを実行するステップ(例えば、親からランダムに重みを選択して子孫を作成する)と、(d)子を変異させる(例えば、クラスタ間重みを削除又は追加する)ステップを実行することにより、そのような染色体の集団を進化させることができる。GAは、一般に、訓練中の変動性とボラティリティが大きすぎるという問題があるが、ここに開示されている疎なデータ構造のコンパクトで高速な表現は、ニューラルネットワークを効率的に進化させるためのバランスを提供する。代替又は追加として、遺伝的プログラミング(GP)も使用できる。GPはGAと同じように機能するが、ニューラルネットワークを染色体として表すのではなく、「ツリー」として表す点が異なる。したがって、ニューラルネットワークアーキテクチャ(層とその接続)は、GPツリーとして表現及び進化させることができる。GAは、通常、固定数の層とニューロンを想定する(そして、接続のみを進化させる)が、GPは、層の数、ニューロンの数、及び/又はそれらの接続を進化させることがある。ニューラルネットワークアーキテクチャを進化させるためのさらなる追加又は代替の方法として、強化学習を適用することもできる。この場合、全体的な精度を最大化するために、ニューラルネットワークアーキテクチャの単一のインスタンスを確率的に修正する。
バイアスベースのニューロンプルーニング:バイアスユニットは、ニューロンの重みにそれぞれブースト又は減少する一定値を追加することによって、訓練中にニューロンのクラスタ内重みに有利な、クラスタ間重みに不利な「バイアス」をかけることができる。バイアス値が十分に低い場合(例えば、大きな負の値)、バイアスユニットは、ニューロンのクラスタ間重みの一部を負の値にシフトし、それをプルーニングすることができる。
図5を参照すると、これは、本発明のいくつかの実施形態に従って、クラスタ接続ニューラルネットワークを使用する訓練及び予測のためのシステム500を概略的に示す。システム500は、データ構造を格納及び/又は生成し、図1~図4を参照して説明されるニューラルネットワークの訓練及び予測を実装することができる。
システム500は、ネットワーク520又はコンピューティングクラウドを介してローカルデバイスにアクセス可能な1つ又は複数のローカルエンドポイントデバイス550及び1つ又は複数のリモートサーバ510を含み得る。典型的には、クラスタ接続ニューラルネットワークは、リモートサーバ510によって訓練され、1つ又は複数のローカルエンドポイントデバイス550で予測のために実行されるが、リモートサーバ510及び/又はローカルエンドポイントデバイス550は、本発明の実施形態によるクラスタ接続ニューラルネットワークを使用して訓練及び/又は予測することができる。特に、典型的には非常に限られたメモリ及び処理能力を有するローカルエンドポイントデバイス550がクラスタ接続ニューラルネットワークに基づいて訓練及び/又は予測できるように、十分にコンパクトなデータ表現(例えば、図4、CSR、又は別の疎な行列表現)が、クラスタ接続ニューラルネットワークに提供される。ローカルエンドポイントデバイス550が訓練及び実行時間予測を実行するとき、リモートサーバ510は除去され得る。
リモートサーバ510は、クラスタ接続ニューラルネットワークを格納するためのメモリ515と、クラスタ接続ニューラルネットワークに基づいて訓練及び/又は予測するためのプロセッサ516とを有し得る。リモートサーバ510は、クラスタが切断されたニューラルネットワークを初期化し、半数未満のクラスタ間重み又はフィルタを追加することで、あるいは完全接続されたニューラルネットワークを初期化し、クラスタ間重み又はフィルタの過半数をプルーニングすることで、クラスタ接続ニューラルネットワーク(例えば、図1の100又は図2の200)を生成することができる。いくつかの実施形態では、リモートサーバ510は、例えば、密な、又は完全接続されたニューラルネットワークが使用される場合、ニューラルネットワークを格納するための大容量メモリ515及び専用プロセッサ516(例えば、GPU)を含む専用ハードウェアを有し得る。メモリ515は、訓練データセット及びクラスタ接続ニューラルネットワークの複数の重みを表すデータを含むデータ517を格納することができる。データ517は、また、例えば、本発明の実施形態によるデータ517の格納及び検索を可能にするためのコード(例えば、ソフトウェアコード)又は論理を含み得る。
ローカルエンドポイントデバイス550は、本発明のいくつかの実施形態で提供されるデータ表現(例えば、図4、CSR、又は別の疎行列表現)に従って、クラスタ接続ニューラルネットワークを格納するための1つ又は複数のメモリ558をそれぞれ含むことができる。メモリ558は、クラスタ接続ニューラルネットワークの複数の重み(例えば、図4のデータ表現の列3)のそれぞれを、一意のインデックス(例えば、図4のデータ表現の列1及び2)とともに(又は関連付けられて)格納することができる。一意のインデックスは、その重みで表される接続を有する人工ニューロンのペアを一意に識別できる。一実施形態では、各クラスタ間重み又はフィルタは、(1)重み又はフィルタによって接続された第一のクラスタ又は“from”クラスタの中のニューロン又はチャネルを識別する第一のインデックス値、(2)重み又はフィルタによって接続された第二のクラスタ又は“to”クラスタの中のニューロン又はチャネルを識別する第二のインデックス値、及び(3)クラスタ間重み又はフィルタの値を定義するトリプレットによって表すことができる。重み又はフィルタを独立してインデックス付けすることにより、メモリ558は、非ゼロの重み又はフィルタを有する接続のエントリのみを格納することができる(例えば、切断のエントリを削除又は省略するか、又はゼロの重み又はフィルタに関連付けられた接続がない)。クラスタ接続ニューラルネットワークを格納するためのメモリ558の使用量は、完全接続ニューラルネットワークと比較して、X%のスパース性と、各重み又はフィルタエントリのサイズの2倍について、密なニューラルネットワークに使用されるメモリの2×(100-X)%に削減できる(例えば、99%のスパース性のクラスタ接続ニューラルネットワークは、密な表現に使用されるメモリ量の2%のみを使用する。すなわち、メモリ使用量は50分の1になる)。ローカルエンドポイントデバイス550は、それぞれ、メモリ558に格納されたクラスタ接続ニューラルネットワークの重み又はフィルタに基づいて、訓練及び/又は予測実行するための1つ又は複数のプロセッサ556を含み得る。予測中に、クラスタ接続ニューラルネットワークは、順方向に1回実行される。訓練中に、クラスタ接続ニューラルネットワークは、2回実行され、その1回は出力を生成するために順方向に実行され、もう1回はエラー訂正(バックプロパゲーションなど)のために逆方向に実行される。クラスタ接続ニューラルネットワークが実行されるたびに、計算回数が減少し、クラスタ接続ニューラルネットワークの重みの数の減少に比例して速度が増加する。X%のスパース性を有するクラスタ接続ニューラルネットワークの場合、プロセッサ556は、ニューラルネットワークを(100/(100-X))倍速く、(X%少ない計算回数で)実行することができる。クラスタ接続ニューラルネットワークが、クラスタ間接続なしで、又は疎なクラスタ間接続で初期化される場合、高速化は瞬時である。一方、クラスタ接続ニューラルネットワークが、密な、又は完全接続のニューラルネットワークとして初期化し、次いで、プルーニングすると、(100/(100-X)の最大高速化が達成されるまで、時間の経過とともに高速化が進む。
ローカルエンドポイントデバイス550は、スマートデバイス、パーソナルコンピュータ、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータ、及びノートブックコンピュータ、あるいは携帯電話、携帯情報端末(PDA)、ビデオゲームコンソールなどの他の適切なデバイスを含むことができ、有線又は無線接続又はモデムが含むことができる。ローカルエンドポイントデバイス550は、ユーザからの入力(例えば、ニューロン、シナプス、及び層の数、サイズ、寸法及び構成などのニューラルネットワークパラメータ、精度又は訓練閾値など)を受信するための1つ又は複数の入力デバイス552を含むことができる。ローカルエンドポイントデバイス550は、コンピュータ550又はリモートサーバ510によって生成されたユーザにデータを表示するための1つ又は複数の出力デバイス554(例えば、モニタ又はスクリーン)を含むことができる。様々なアプリケーションにおいて、ローカルエンドポイントデバイス550は、画像認識、コンピュータービジョン、仮想又は拡張現実、音声認識、テキスト理解、又はその他の深層学習のアプリケーションのためのシステムの一部である。顔認識のアプリケーションでは、デバイスは、疎なニューラルネットワークを使用して、顔認識を効率的に実行し、一致が検出されたときにデバイスがそれ自体又は物理的なドアのロック解除するようにトリガーすることができる。セキュリティのアプリケーションでは、セキュリティカメラシステムは、疎なニューラルネットワークを使用して、セキュリティ違反を効率的に検出し、アラーム又はその他のセキュリティ対策を鳴らすことができる。自動運転のアプリケーションでは、車両のコンピュータは、疎なニューラルネットワークを使用して、運転動作を制御すること、例えば、検出されたオブジェクトを回避するように操縦することができる。
ローカルエンドポイントデバイス550とリモートサーバ510を接続するネットワーク520は、インターネットなどの任意のパブリック又はプライベートネットワークであり得る。ネットワーク520へのアクセスは、有線、地上無線、衛星、又は当技術分野でよく知られている他のシステムを介して行うことができる。
ローカルエンドポイントデバイス550及びリモートサーバ510は、本発明の実施形態による動作を実行するための1つ又は複数のコントローラ又はプロセッサ556及び516をそれぞれ含むことができ、またデータ517及び/又はプロセッサによって実行可能な命令を格納するための1つ又は複数のメモリユニット558及び515(例えば、本発明の実施形態による方法を適用するためのソフトウェア)をそれぞれ含むことができる。プロセッサ556及び516は、例えば、中央処理装置(CPU)、グラフィカル処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、アプリケーション固有の集積回路(ASIC)、デジタル信号プロセッサ(DSP)、マイクロプロセッサ、コントローラ、チップ、マイクロチップ、集積回路(IC)、又はその他の適切な多目的又は特定のプロセッサ又はコントローラを含むことができる。メモリユニット558及び515は、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、フラッシュメモリ、揮発性メモリ、不揮発性メモリ、キャッシュメモリ、バッファ、短期メモリユニット、長期メモリユニット、又はその他の適切なメモリユニット又はストレージユニットを含むことができる。
他のデバイス及び構成を使用することができ、例えば、データ517をメモリ558に格納してもよく、別個のサーバ510を使用しなくてもよい。
図6を参照すると、これは、本発明のいくつかの実施形態に従って、クラスタ接続ニューラルネットワークを使用する訓練及び予測のための方法のフローチャート600である。図6の動作は、メモリ(例えば、1つ又は複数の図5のメモリユニット515及び/又は558)に格納されたデータを使用して、プロセッサ(例えば、図5の1つ又は複数のプロセッサ516及び/又は556)によって実行され得る。
動作600において、プロセッサは、メモリ内で初期ニューラルネットワークを生成又は受信することができる。初期ニューラルネットワークは、密な、又は完全に接続されたクラスタ間重みで開始され、その後、プルーニングされることも、あるいは疎なクラスタ間重みで、又は追加が全くないクラスタ間重みで開始されることもある。
動作602において、プロセッサは、初期ニューラルネットワークを複数のクラスタに分割することができる。プロセッサは、クラスタ分割ニュートラルネットワークを格納できる。各クラスタは、異なる複数の人工ニューロン又は畳み込みチャネルを含み、ニューロン又はチャネルの複数のペアのそれぞれは、重み又は畳み込みフィルタによって一意に接続される。
動作604において、プロセッサは、クラスタ接続ニューラルネットワークの各クラスタの内側に、クラスタ内重み又はフィルタの局所的に密なサブネットワークを有するクラスタ接続ニューラルネットワークを生成、訓練、又は受信することができる。同じクラスタの内側のニューロン又はチャネルのペアの過半数は、(非ゼロ)クラスタ内重み又はフィルタによって接続される。各クラスタの中のニューロン又はチャネルのペアの接続された過半数は、クラスタ接続ニューラルネットワークを使用した訓練又は予測中に、活性化ブロックとして一緒に同時活性化されることがある(例えば、ニューラルネットワークの同じパス又は実行で全てが活性化される)。各クラスタの中のニューロン又はチャネルは、完全接続されていることも、あるいは部分接続されていることもある。
動作606において、プロセッサは、クラスタ接続ニューラルネットワークの各クラスタの外側(又は異なるクラスタ間)のクラスタ間重み又はフィルタのグローバルに疎なネットワークを有するクラスタ接続ニューラルネットワークを生成、訓練、又は受信することができる。ここで、異なるクラスタにまたがるクラスタ境界によって分離された半数未満のニューロン又はチャネルのペアは、クラスタ間重み又はフィルタによって接続される。クラスタ間ニューロン又はチャネルの切断されたペアの残りの過半数のそれぞれのニューロン又はチャネルは、そのようなニューロン又はチャネルの各ペアが接続されていないため、訓練中又は予測中に一緒に同時活性化されない。
動作600の初期ニューラルネットワークが密な、又は完全接続されたクラスタ間重み又はフィルタを有する場合、プロセッサは、クラスタ間重み又はフィルタの大部分をプルーニングすることによって、クラスタ間重み又はフィルタのグローバルに疎なネットワークを訓練することができる。動作600の初期ニューラルネットワークが疎な、又はクラスタ間重み又はフィルタを有さない場合、プロセッサは、可能性のあるクラスタ間重み又はフィルタの半数未満を追加又は再配置することによって、クラスタ間重み又はフィルタのグローバルに疎なネットワークを訓練することができる。プロセッサは、ニューラルネットワークの訓練フェーズ中及び/又は訓練フェーズ後に、既存のクラスタ間重みをプルーニングすることも、あるいは新しいクラスタ間重みを追加することもできる。プロセッサは、クラスタ内重みに有利なバイアスをかけ、クラスタ間重みに不利なバイアスをかけることによって、訓練フェーズ中にクラスタ間重みをプルーニングすることができる。プロセッサは、L正則化、L正則化、閾値処理、ランダムゼロ化、及びバイアスベースのプルーニングを使用して、クラスタ間重みをプルーニングできる。いくつかの実施形態では、プロセッサは、その重み又はフィルタの強度が、フィルタの重みによって接続されたニューロン又はチャネル間の距離に反比例してバイアスされるように、クラスタ接続ニューラルネットワークを訓練することができる。プロセッサは、重みをランダムに、確率的に、及び/又はヒューリスティックにプルーニングすることができる。プロセッサは、接続の作成によって、クラスタ接続ニューラルネットワークに1つ又は複数の新しいクラスタ間重みを追加することがある。新しい重みは、ランダムに、確率的に、及び/又はヒューリスティックに生成することができる。いくつかの実施形態では、クラスタ接続ニューラルネットワークは、進化的計算(遺伝的アルゴリズム又は遺伝的プログラミング)を使用して、あるいは強化学習を使用して進化させることができる。
プロセッサは、クラスタ接続ニューラルネットワーク内のニューロン又はチャネルの活性化パターンを試験して、その試験から得られた高度にリンクされたニューロン又はチャネルの活性化パターンに最もよも近い最適クラスタ形状を決定することができる。プロセッサは、訓練中に活性化パターンが変化すると、最適クラスタ形状を動的に調整することができる。様々な実施形態において、複数のクラスタのうちの1つ又は複数のクラスタ境界は、列(N×1又はN×M次元)、行(1×N又はM×N次元)、円、多角形、不規則形状、長方形プリズム、円筒、球、多面体、及び/又は任意の二次元、三次元、又はN次元の形状を有し得る。異なる形状の組み合わせを使用することができる。いくつかの実施形態では、クラスタ接続ニューラルネットワークは、クラスタ接続領域と標準的な非クラスタ接続領域とのハイブリッドである。いくつかの実施形態では、クラスタ間接続は、境界ニューロンのみを接続し得、内部ニューロンは接続し得ない。例えば、1つのクラスタの中の境界ニューロン又はチャネルは、クラスタ間重み又はフィルタによって1つ又は複数の異なるクラスタの境界ニューロン又はチャネルに接続され、一方、クラスタ境界から離れた内部ニューロン又はチャネルは、クラスタ内重み又はフィルタによって、同じクラスタの中の他のニューロン又はチャネルに接続されるだけである。クラスタ接続ニューラルネットワークの例は、図1及び図2を参照して説明する。
本発明の実施形態によれば、様々なインデックス付け方法を使用することができる。クラスタ接続ニューラルネットワークのクラスタ間重み又はフィルタの値は、圧縮疎行(CSR)表現、圧縮疎列(CSC)表現、疎テンソル表現、マップ表現、リスト表現、及び/又は疎ベクトル表現、その他の疎行列又はニューラルネットワーク表現を使用して格納できる。いくつかの実施形態では、メモリは、クラスタ接続ニューラルネットワークの各チャネルにクラスタ内重み又はフィルタを、一意のクラスタインデックスに関連付けられて格納し、クラスタのクラスタ内重みを行列の位置によって表されるクラスタ固有の行列を使用することができる。いくつかの実施形態では、メモリは、一意のインデックスに関連付けられた、クラスタ接続ニューラルネットワークの複数のクラスタ間重み又はフィルタのそれぞれを格納することができる。一意のインデックスは、クラスタ間重み又はフィルタによって表される接続を有する人工ニューロン又はチャネルのペアを一意に識別できる。ここで、異なるクラスタの中のニューロン又はチャネルのペア間の接続を表す非ゼロのクラスタ間重み又はフィルタのみが格納され、ニューロン又はチャネルのペア間の接続がないことを表す、ゼロのクラスタ間重み又はフィルタは格納されない。いくつかの実施形態では、メモリは、例えば、図4に示すように、各クラスタ間重み又はフィルタを識別する値のトリプレットを格納することができ、第一のクラスタの中のペアの第一のニューロン又はチャネルを識別するインデックスの第一の値(例えば、図4の列1)、第二の異なるクラスタの中のペアの第二のニューロン又はチャネルを識別するインデックスの第二の値(例えば、図4の列2)、及びクラスタ間重み又はフィルタの値(例えば、図4の列3)を含むことができる。
動作608において、プロセッサは、予測するために、動作600~606において生成、訓練、又は受信されたクラスタ接続ニューラルネットワークを実行することができる。予測モードでは、プロセッサはメモリから取得し、動作604及び606で構成されたクラスタ接続ニューラルネットワークを実行して、非ゼロの重みの半数未満のクラスタ間重み又はフィルタのみに基づいて、(またクラスタ接続ニューラルネットワークのゼロのクラスタ間重み又はフィルタに基づかずに)出力を計算することができる。予測するために、プロセッサは、クラスタ接続ニューラルネットワークの入力層にソースデータを入力し、各層のデータを、その層のニューロンを後続の層に接続する非ゼロの重みのみによって繰り返し動作することによって、データを、疎なニューラルネットワークの複数のニューロン又はチャネル層を介して伝播し、クラスタ接続ニューラルネットワークの最終層の結果を出力する。
いくつかの実施形態では、順方向の訓練又は予測パスのいずれかの間、プロセッサは、クラスタ接続ニューラルネットワークにおける非ゼロのクラスタ間重み又はフィルタの疎な分布に関連付けられたインデックスの非シーケンシャルなパターンに従って、メインメモリ内の非シーケンシャルな場所に格納されているクラスタ間重み又はフィルタをメインメモリからフェッチすることができる。これらのクラスタ間重み又はフィルタは、メインメモリ内の非シーケンシャル位置からフェッチされた後、ローカルメモリ又はキャッシュメモリ内のシーケンシャルなメモリ位置に格納されることがある。
他の動作又は動作の順序を使用することができる。例えば、動作600で初期(非クラスタ接続)ニューラルネットワークから開始し、クラスタ接続ニューラルネットワークを訓練する代わりに、いくつかの実施形態は、完全に訓練されたクラスタ接続ニューラルネットワークを受信し、動作600~608をスキップすることができ、動作610でプロセスを開始して、クラスタ接続ニューラルネットワークを使用して予測を実行することができる。さらに、動作604(各クラスタの内側での訓練)及び動作606(各クラスタの外側での訓練)は、多くの場合、同じ訓練プロセスの一部であり、同じ動作の一部として同時に実行される。いくつかの実施形態では、クラスタの内側で訓練がないことが、例えば、各クラスタの内側が完全接続ネットワークである場合にあり、したがって、動作604をスキップすることができる。
結果:本発明の実施形態をいくつかの深層学習ベンチマークに適用することで、元の精度の99%以上を維持しながら、ニューラルネットワークの重みの数を90~99%削減することができた。これは、ニューラルネットワークの計算速度が10~100倍高速化され(予測モード中だけでなく、訓練の各反復でネットワークが疎になるので、訓練モード中も)、メモリ使用量が1/5~1/50減少することに相当する。
このように、深層学習ネットワークは、クラウド又はネットワーク側のサーバ(例えば、図5のリモートサーバ510)の特別なハードウェアだけでなく、最小限のCPU能力とメモリ利用能力を有するデバイス(例えば、図5のローカルエンドポイントデバイス550)で、これまで不可能であったことを、効率的に実行できる。さらに、重みのコンパクトな(例えば、トリプレット)表現は、任意のハードウェア(CPU、GPUなど)上で容易に並列化でき、処理速度をさらに向上させることができる。
疎なニューラルネットワークのためのコンパクト(例えば、トリプレット)表現を使用して、本発明の実施形態は、クラスタ接続ニューラルネットワークを進化させるために十分な効率を提供することができる。
クラスタ接続畳み込みNNの訓練及び予測を高速化するために、畳み込み演算(例えば、典型的には比較的遅く、複雑である)は、再配置及び重複した項(例えば、典型的には畳み込み演算よりも比較的速く、複雑ではない)に対して実行される行列乗算演算によって等価的に実行されてもよい。この変換は、「img2col」関数と称される。いくつかの実施形態は、疎なCNNに適応した新規でよりコンパクトなimg2col関数を提供する。通常のimg2col関数では、各行及び列の乗算が畳み込み演算を表すように、層によって実行されるすべての畳み込み演算を表すために、2つのカスタム行列が構築される。本発明の実施形態は、修正img2col関数を提供することができ、そこで、カーネルの一部がゼロにされ、これらの行及び列を省略又は削除するように関連する行列が修正され得る。この結果、標準的なimg2col操作と比較して、より少ない乗算演算に関連付けられたよりコンパクトな行列が得られ、同じ畳み込み結果が得られる。
ニューラルネットワークのニューロン及び重みに関連する本発明の実施形態は、畳み込みニューラルネットワークのチャネル及びフィルタにそれぞれ適用することができる。
本発明の実施形態は、クラスタ間重みのための疎なインデックス付けを説明しているが、同じ疎なインデックス付けが、追加又は代替として、クラスタ内重みに適用することもできる。代替として、なインデックス付けを使用しないこともできる。
以上の説明において、本発明の様々な態様を説明した。説明の目的で、本発明を完全に理解するために、特定の構成及び詳細が示されている。しかしながら、本発明は、本明細書に提示された特定の詳細なしに実施され得ることも、当業者には明らかであろう。さらに、よく知られた特徴は、本発明を不明瞭にしないために、省略又は簡略化することがある。
以下の議論から明らかなように、特に別段の記載がない限り、本明細書を通じて、「処理」、「計算」、「算出」、「決定」などの用語を利用する議論は、コンピュータもしくは計算システム、又は同様の電子計算装置の動作及び/又はプロセスで、計算システムのレジスタ及び/又はメモリ内の電子的などの物理量として表されるデータを、計算システムのメモリ、レジスタ又は他の情報記憶、伝送又は表示装置内の物理量として同様に表される他のデータに操作及び/又は変換することを指すものと理解される。
前述のフローチャート及びブロック図は、本発明の様々な実施形態によるシステム及び方法の可能な実装のアーキテクチャ、機能、及び動作を示している。これに関して、フローチャート又はブロック図の各ブロックは、モジュール、セグメント、又はコードの一部を表すことができ、指定された論理機能を実装するための1つ又は複数の実行可能命令を含むことができる。いくつかの代替の実装では、ブロックに示されている機能は、図に示されている順序から外れることも、あるいは異なるモジュールによって行われることもある。本明細書に記載されている方法の実施形態は、明示的に述べられていない限り、特定の順序又はシーケンスに制約されない。さらに、記載された方法の実施形態又はその要素のいくつかは、同じ時点で発生又は実行され得る。ブロック図及び/又はフローチャート図の各ブロックと、ブロック図及び/又はフローチャート図のブロックの組み合わせとは、特定の機能又は行為を実行する特別な目的のハードウェアベースのシステムによって、あるいは特別な目的のハードウェアとコンピュータ命令の組み合わせによって実装することができる。
本発明の実施形態は、非一時的なコンピュータ若しくはプロセッサ可読媒体、又はコンピュータ若しくはプロセッサ非一時的な記憶媒体などの物品、例えば、メモリ(例えば。図5のメモリユニット515又は558)、ディスクドライブ、又はUSBフラッシュメモリであって、命令、例えば、プロセッサ又はコントローラ(例えば、図5のプロセッサ516又は556)により実行されると、本明細書に開示する方法を実行するコンピュータ実行可能命令を符号化、含む、又は記憶するものを含むことができる。
以上の説明において、一つの実施形態は、本発明の一例又は一実装である。「一実施形態」、「一つの実施形態」、又は「いくつかの実施形態」といった様々な表現は、必ずしもすべてが同じ実施形態を指すとは限らない。本発明の様々な特徴は、単一の実施形態の文脈で説明され得るが、実施形態の特徴は、また、別個に提供することも、あるいは任意の適切な組み合わせで提供することもできる。逆に、本発明は、明確にするために別個の実施形態の文脈で本明細書に記載され得るが、本発明はまた、単一の実施形態において実施することもできる。本明細書において、「いくつかの実施形態」、「一つの実施形態」、又は「他の実施形態」への言及は、それらの実施形態に関連して説明されている特定の特徴、構造、又は特性が少なくともいくつかの実施形態において含まれていることを意味し、必ずしも本発明のすべての実施形態に含まれていることを意味しない。さらに、本発明の実施形態において、上記の本発明の態様は、組み合わせることも、さもなければ共存することも可能であることが認識されるであろう。
特許請求の範囲及び明細書に提示された説明、例、方法及び材料は、限定的であると解釈されるべきではなく、むしろ、例示としてのみ解釈されるべきである。本発明の特定の特徴が本明細書で例示及び説明されているが、多くの修正、置換、変更、及び等価物は、当業者であれば容易に想到し得るものである。したがって、添付の特許請求の範囲は、本発明の真の精神に該当するようなすべてのそのような修正及び変更を網羅することを意図していることを理解されたい。
本発明を、限られた数の実施形態に関して説明してきたが、これらの実施形態は、本発明の範囲に対する制限として解釈されるべきではなく、むしろ、いくつかの好ましい実施形態の例示として解釈されるべきである。他の可能な変形、修正、及び用途も、また、本発明の範囲内である。異なる実施形態が本明細書に開示されている。特定の実施形態の特徴は、他の実施形態の特徴と組み合わせることができる。したがって、特定の実施形態は、複数の実施形態の特徴の組み合わせであり得る。

Claims (26)

  1. クラスタ接続ニューラルネットワークを使用する訓練又は予測の方法であって、
    入力層から出力層に延びる方向で且つ複数の中間層に直交する方向にニューラルネットワーク軸を有するニューラルネットワークを格納するステップであって、
    前記ニューラルネットワークは複数のクラスターに分割され、各クラスタは、前記ニューラルネットワーク軸の方向に平行に延びる領域で前記入力層から前記出力層に向かって延びるニューロン活性化の優勢な方向を奨励し、異なる複数の人工ニューロン又は畳み込みチャネルを備え、ニューロン又はチャネルの各ペアは、重み又は畳み込みフィルタによって一意に接続される、ステップと、
    前記クラスタ接続ニューラルネットワークの各クラスタの内側で、クラスタ重み又はフィルタの局所的に密なサブネットワークを生成又は維持するステップであって、同じクラスタの内側のニューロン又はチャネルのペアの過半数がクラスタ重み又はフィルタによって接続され、その結果、各クラスタの中のニューロン又はチャネルの接続されたペアの過半数が、前記クラスタ接続ニューラルネットワークを用いて訓練中又は予測中に活性化ブロックとして一緒に同時活性化される、ステップと、
    前記クラスタ接続ニューラルネットワークの各クラスタの外側で、クラスタ間重み又はフィルタのグローバル疎なネットワークを生成又は維持するステップであって、異なるクラスタ間でクラスタ境界によって分離されたニューロン又はチャネルのペアの半数未満クラスタ間重み又はフィルタによって接続る、ステップと、
    前記クラスタ接続ニューラルネットワークを使用して訓練又は予測するステップと、
    を含む、方法。
  2. 前記クラスタ接続ニューラルネットワーク内のニューロン又はチャネルの活性化パターンを試験して、前記試験から得られたチャネルの活性化パターンに最もよく似ている最適クラスタ形状を決定するステップを含む、請求項1に記載の方法。
  3. 訓練中に活性化パターンが変化すると、前記最適クラスタ形状を動的に調整するステップを含む、請求項2に記載の方法。
  4. 前記複数のクラスタのうちの1つ又は複数の前記クラスタ境界が、列、行、円、多角形、不規則形状、長方形プリズム、円筒、多面体、及び他の二次元、三次元、又はN次元の形状からなる群から選択される形状を有する、請求項1に記載の方法。
  5. 互いに接続されていない複数のクラスタでニューラルネットワークを初期化し、クラスタ間重み又はフィルタを追加することによって、前記クラスタ接続ニューラルネットワークを訓練するステップを含む、請求項1に記載の方法。
  6. 完全接続されたニューラルネットワークを初期化し、前記クラスタ間重み又はフィルタの過半数をプルーニングすることによって、前記クラスタ接続ニューラルネットワークを訓練するステップを含む、請求項1に記載の方法。
  7. 前記プルーニングするステップは、L正則化、L正則化、閾値処理、ランダムゼロ化、及びバイアスベースのプルーニングからなる群から選択される1つ又は複数の技法を使用して実行される、請求項6に記載の方法。
  8. 進化的アルゴリズム又は強化学習を使用して、前記クラスタ接続ニューラルネットワークを訓練するステップを含む、請求項1に記載の方法。
  9. 各クラスタの中の前記ニューロン又はチャネルは、完全接続又は部分接続されている、請求項1に記載の方法。
  10. 前記クラスタ接続ニューラルネットワークは、クラスタ接続領域と非クラスタ接続領域とのハイブリッドである、請求項1に記載の方法。
  11. 前記クラスタ接続ニューラルネットワークの各チャネルにクラスタ内重み又はフィルタを、一意のクラスタインデックスに関連付けて格納するステップと、前記クラスタの中の前記クラスタ内重みをその行列位置によって表されるクラスタ固有の行列を使用するステップと、を含む、請求項1に記載の方法。
  12. 前記クラスタ接続ニューラルネットワークの前記複数のクラスタ間重み又はフィルタのそれぞれを、一意のインデックスに関連付けて格納するステップであって、前記一意のインデックスは、前記クラスタ間重み又はフィルタによって表される接続を有する人工ニューロン又はチャネルのペアを一意に識別する、ステップを含み、異なるクラスタの中のニューロン又はチャネルのペア間の接続を表す非ゼロのクラスタ間重み又はフィルタのみを格納し、ニューロン又はチャネルのペア間の接続なしを表すゼロのクラスタ間重み又はフィルタは格納しない、請求項1に記載の方法。
  13. 各クラスタ間重み又はフィルタを識別する値のトリプレットを格納するステップを含み、前記トリプレットは、
    第一のクラスタの中のニューロン又はチャネルのペアの第一のニューロン又はチャネルを識別する一意のインデックスの第一の値と、
    第二の異なるクラスタの中のニューロン又はチャネルのペアの第二のニューロン又はチャネルを識別する一意のインデックスの第二の値と
    ラスタ間重み又はフィルタの値と、
    を含む、請求項12に記載の方法。
  14. 前記クラスタ接続ニューラルネットワークの非ゼロのクラスタ間重み又はフィルタの疎な分布に関連付けられたインデックスの非シーケンシャルパターンに従って、メインメモリから、前記メインメモリの非シーケンシャル位置に格納されているクラスタ間重み又はフィルタをフェッチするステップと、
    前記メインメモリ内の非シーケンシャル位置からキャッシュメモリ内のシーケンシャル位置にフェッチされた前記クラスタ間重み又はフィルタを格納するステップと、
    を含む、請求項12に記載の方法。
  15. 前記クラスタ接続ニューラルネットワークの前記クラスタ間重み又はフィルタの値は、圧縮疎行(CSR)表現、圧縮疎列(CSC)表現、疎テンソル表現、マップ表現、リスト表現、及び/又は疎ベクトル表現からなる群から選択される1つ又は複数のデータ表現を使用して、前記クラスタ接続ニューラルネットワークの前記クラスタ間重み又はフィルタの値を格納するステップを含む請求項12に記載の方法。
  16. クラスタ接続ニューラルネットワークを使用する訓練又は予測のためのシステムであって、
    入力層から出力層に延びる方向で且つ複数の中間層に直交する方向にニューラルネットワーク軸を有するニューラルネットワークであって、複数のクラスタに分割されたニューラルネットワークを格納するように構成された1つ又は複数のメモリであって、各クラスタは、前記ニューラルネットワーク軸の方向に平行に延びる領域で前記入力層から前記出力層に向かって延びるニューロン活性化の優勢な方向を奨励し、異なる複数の人工ニューロン又は畳み込みチャネルを備え、ニューロン又はチャネルの各ペアは、重み又は畳み込みフィルタによって一意に接続される、1つ又は複数のメモリと、
    1つ又は複数のプロセッサであって、
    前記クラスタ接続ニューラルネットワークの各クラスタの内側で、クラスタ重み又はフィルタの局所的に密なサブネットワークを生成又は維持するステップであって、同じクラスタの内側のニューロン又はチャネルのペアの過半数がクラスタ重み又はフィルタによって接続され、その結果、各クラスタの中のニューロン又はチャネルの接続された前記ペアの過半数が、前記クラスタ接続ニューラルネットワークを用いて訓練中又は予測中に活性化ブロックとして一緒に同時活性化される、ステップと、
    前記クラスタ接続ニューラルネットワークの各クラスタの外側で、クラスタ間重み又はフィルタのグローバルに疎なネットワークを生成又は維持するステップであって、異なるクラスタ間でクラスタ境界によって分離されたニューロン又はチャネルのペアの半数未満クラスタ間重み又はフィルタによって接続る、ステップと、
    前記クラスタ接続ニューラルネットワークを使用して訓練又は予測するステップと、
    を行うように構成される、1つ又は複数のプロセッサと、
    を含む、システム。
  17. 前記1つ又は複数のプロセッサは、前記クラスタ接続ニューラルネットワーク内のニューロン又はチャネルの活性化パターンを試験して、前記試験から得られたチャネルの活性化パターンに最も近い最適クラスタ形状を決定するように構成される、請求項16に記載のシステム。
  18. 前記1つ又は複数のプロセッサは、訓練中に活性化パターンが変化すると、前記最適クラスタ形状を動的に調整するように構成される、請求項17に記載のシステム。
  19. 前記複数のクラスタのうちの1つ又は複数の前記クラスタ境界が、列、行、円、多角形、不規則形状、長方形プリズム、円筒、多面体、及び他の二次元、三次元、又はN次元の形状からなる群から選択される形状を有する、請求項16に記載のシステム。
  20. 前記1つ又は複数のプロセッサは、互いに接続されていない複数のクラスタでニューラルネットワークを初期化し、クラスタ間重み又はフィルタを追加することによって、前記クラスタ接続ニューラルネットワークを訓練するように構成される、請求項16に記載のシステム。
  21. 前記1つ又は複数のプロセッサは、完全接続されたニューラルネットワークを初期化し、前記クラスタ間重み又はフィルタの過半数をプルーニングすることによって、前記クラスタ接続ニューラルネットワークを訓練するように構成される、請求項16に記載のシステム。
  22. 前記1つ又は複数のプロセッサは、前記クラスタ接続ニューラルネットワークの各チャネルにクラスタ内重み又はフィルタを、一意のクラスタインデックスに関連付けて格納して、前記クラスタの中の前記クラスタ内重みをその行列位置によって表現するクラスタ固有の行列を使用するように構成される、請求項16に記載のシステム。
  23. 前記1つ又は複数のプロセッサは、前記クラスタ接続ニューラルネットワークの前記複数のクラスタ間重み又はフィルタのそれぞれを、一意のインデックスに関連付けて格納するように構成され、前記一意のインデックスは、前記クラスタ間重み又はフィルタによって表される接続を有する人工ニューロン又はチャネルのペアを一意に識別し、異なるクラスタの中のニューロン又はチャネルのペア間の接続を表す非ゼロのクラスタ間重み又はフィルタのみは格納し、ニューロン又はチャネルのペア間の接続なしを表すゼロのクラスタ間重み又はフィルタは格納しない、請求項16に記載のシステム。
  24. 前記1つ又は複数のプロセッサは、
    第一のクラスタの中のニューロン又はチャネルのペアの第一のニューロン又はチャネルを識別する一意のインデックスの第一の値と、
    第二の異なるクラスタの中のニューロン又はチャネルのペアの第二のニューロン又はチャネルを識別する一意のインデックスの第二の値と、
    前記クラスタ間重み又はフィルタの値と、
    を含む、各クラスタ間重み又はフィルタを識別する値のトリプレットを格納するように構成される、請求項16に記載のシステム。
  25. 前記1つ又は複数のプロセッサは、
    前記クラスタ接続ニューラルネットワークの非ゼロのクラスタ間重み又はフィルタの疎な分布に関連付けられたインデックスの非シーケンシャルパターンに従って、メインメモリから、前記メインメモリの非シーケンシャル位置に格納されているクラスタ間重み又はフィルタをフェッチするステップと、
    前記メインメモリ内の非シーケンシャル位置からキャッシュメモリ内のシーケンシャル位置にフェッチされた前記クラスタ間重み又はフィルタを格納するステップと、
    を行なうように構成される、請求項16に記載のシステム。
  26. 前記1つ又は複数のプロセッサは、前記クラスタ接続ニューラルネットワークの前記クラスタ間重み又はフィルタの値は、圧縮疎行(CSR)表現、圧縮疎列(CSC)表現、疎テンソル表現、マップ表現、リスト表現、及び/又は疎ベクトル表現からなる群から選択される1つ又は複数のデータ表現を使用して、前記クラスタ接続ニューラルネットワークの前記クラスタ間重み又はフィルタの値を格納するように構成される、請求項16に記載のシステム。
JP2021181497A 2020-11-11 2021-11-05 クラスタ接続ニューラルネットワーク Active JP7235836B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/095,154 2020-11-11
US17/095,154 US11164084B1 (en) 2020-11-11 2020-11-11 Cluster-connected neural network

Publications (2)

Publication Number Publication Date
JP2022077510A JP2022077510A (ja) 2022-05-23
JP7235836B2 true JP7235836B2 (ja) 2023-03-08

Family

ID=78372536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021181497A Active JP7235836B2 (ja) 2020-11-11 2021-11-05 クラスタ接続ニューラルネットワーク

Country Status (8)

Country Link
US (2) US11164084B1 (ja)
EP (1) EP4009243A1 (ja)
JP (1) JP7235836B2 (ja)
KR (1) KR102505059B1 (ja)
CN (1) CN114548359B (ja)
CA (1) CA3139915C (ja)
IL (1) IL288021B2 (ja)
TW (1) TWI831076B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230153625A1 (en) * 2021-11-17 2023-05-18 Samsung Electronics Co., Ltd. System and method for torque-based structured pruning for deep neural networks
US20240048152A1 (en) * 2022-08-03 2024-02-08 Arm Limited Weight processing for a neural network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163808A (ja) 2004-12-07 2006-06-22 Fuji Electric Holdings Co Ltd ニューラルネットワークの構造
JP2011054200A (ja) 2010-11-11 2011-03-17 Fuji Electric Systems Co Ltd ニューラルネットワークの学習方法
US20190188567A1 (en) 2016-09-30 2019-06-20 Intel Corporation Dynamic neural network surgery
US20190205759A1 (en) 2017-12-29 2019-07-04 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for compressing neural network
JP2019159997A (ja) 2018-03-15 2019-09-19 富士通株式会社 最適化装置及び最適化装置の制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421467B1 (en) * 1999-05-28 2002-07-16 Texas Tech University Adaptive vector quantization/quantizer
DE102004053301B4 (de) * 2004-11-04 2014-01-23 Siemens Aktiengesellschaft Verfahren zum Betreiben eines Magnetschwebefahrzeugs mit einer Schaltungsvorrichtung zur Erhöhung der nutzbaren Motorspannung bei einem Langstatorantrieb
US9202178B2 (en) * 2014-03-11 2015-12-01 Sas Institute Inc. Computerized cluster analysis framework for decorrelated cluster identification in datasets
WO2017007990A1 (en) * 2015-07-08 2017-01-12 Convida Wireless, Llc M2m clustering management
KR102399548B1 (ko) * 2016-07-13 2022-05-19 삼성전자주식회사 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
KR101887267B1 (ko) * 2016-08-24 2018-08-09 한국과학기술원 부분구조 학습기법과 영상데이터를 이용한 신경망 학습 방법 및 장치
US11353868B2 (en) * 2017-04-24 2022-06-07 Intel Corporation Barriers and synchronization for machine learning at autonomous machines
US10339450B2 (en) 2017-09-08 2019-07-02 DeepCube LTD. System and method for efficient evolution of deep convolutional neural networks using filter-wise recombination and propagated mutations
US10366322B2 (en) * 2017-10-06 2019-07-30 DeepCube LTD. System and method for compact and efficient sparse neural networks
EP3507783B1 (en) * 2017-11-23 2021-11-10 Beijing Didi Infinity Technology and Development Co., Ltd. System and method for estimating arrival time
WO2019167042A1 (en) * 2018-02-27 2019-09-06 Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. Systems and methods for using and training a neural network
WO2019173315A1 (en) * 2018-03-05 2019-09-12 Mobileye Vision Technologies Ltd. Systems and methods for anonymizing navigation information
US11907854B2 (en) 2018-06-01 2024-02-20 Nano Dimension Technologies, Ltd. System and method for mimicking a neural network without access to the original training dataset or the target model
US11100923B2 (en) * 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US10878321B2 (en) 2019-02-28 2020-12-29 DeepCube LTD. Partial activation of multiple pathways in neural networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163808A (ja) 2004-12-07 2006-06-22 Fuji Electric Holdings Co Ltd ニューラルネットワークの構造
JP2011054200A (ja) 2010-11-11 2011-03-17 Fuji Electric Systems Co Ltd ニューラルネットワークの学習方法
US20190188567A1 (en) 2016-09-30 2019-06-20 Intel Corporation Dynamic neural network surgery
US20190205759A1 (en) 2017-12-29 2019-07-04 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for compressing neural network
JP2019159997A (ja) 2018-03-15 2019-09-19 富士通株式会社 最適化装置及び最適化装置の制御方法

Also Published As

Publication number Publication date
CN114548359B (zh) 2024-01-23
KR102505059B1 (ko) 2023-02-28
JP2022077510A (ja) 2022-05-23
TWI831076B (zh) 2024-02-01
CN114548359A (zh) 2022-05-27
CA3139915C (en) 2022-09-27
TW202234295A (zh) 2022-09-01
KR20220064336A (ko) 2022-05-18
US11164084B1 (en) 2021-11-02
CA3139915A1 (en) 2022-03-30
IL288021B1 (en) 2023-03-01
IL288021B2 (en) 2023-07-01
IL288021A (en) 2022-06-01
US20220147828A1 (en) 2022-05-12
EP4009243A1 (en) 2022-06-08

Similar Documents

Publication Publication Date Title
CN111247537B (zh) 有效存储稀疏神经网络和稀疏卷积神经网络的方法及系统
Swaminathan et al. Sparse low rank factorization for deep neural network compression
Sze et al. Efficient processing of deep neural networks: A tutorial and survey
Lopes et al. Towards adaptive learning with improved convergence of deep belief networks on graphics processing units
JP7235836B2 (ja) クラスタ接続ニューラルネットワーク
Chen et al. Extreme learning machine and its applications in big data processing
CN115485695A (zh) 用于分层权重稀疏卷积处理的方法和系统
US11763150B2 (en) Method and system for balanced-weight sparse convolution processing
CN114742210A (zh) 混合神经网络训练方法、交通流预测方法、设备和介质
CN116384471A (zh) 模型剪枝方法、装置、计算机设备、存储介质和程序产品
WO2023273934A1 (zh) 一种模型超参数的选择方法及相关装置
WO2022095984A1 (en) Method and system for convolution with workload-balanced activation sparsity
EP3679511A1 (en) System and method for efficient evolution of deep convolutional neural networks using filter-wise recombination and propagated mutations
Bhalgaonkar et al. Model compression of deep neural network architectures for visual pattern recognition: Current status and future directions
Crowley et al. Substituting convolutions for neural network compression
Dong et al. An optimization method for pruning rates of each layer in CNN based on the GA-SMSM
KR20200141663A (ko) 컨볼루션 신경망 모델에 기초한 컴퓨팅 장치 및 그 동작 방법
Wikén An Investigation of Low-Rank Decomposition for Increasing Inference Speed in Deep Neural Networks With Limited Training Data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220308

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220614

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221114

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: 20230124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230224

R150 Certificate of patent or registration of utility model

Ref document number: 7235836

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350