JP7087079B2 - 深層学習アプリケーションのための堅牢な勾配重み圧縮方式 - Google Patents

深層学習アプリケーションのための堅牢な勾配重み圧縮方式 Download PDF

Info

Publication number
JP7087079B2
JP7087079B2 JP2020529245A JP2020529245A JP7087079B2 JP 7087079 B2 JP7087079 B2 JP 7087079B2 JP 2020529245 A JP2020529245 A JP 2020529245A JP 2020529245 A JP2020529245 A JP 2020529245A JP 7087079 B2 JP7087079 B2 JP 7087079B2
Authority
JP
Japan
Prior art keywords
gradient
residual
vector
current
weights
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
JP2020529245A
Other languages
English (en)
Other versions
JP2021505993A5 (ja
JP2021505993A (ja
Inventor
チェン、チア-ユ
アグラワル、アンカー
ブラント、ダニエル
ゴパラクリシュナン、カイラッシュ
チェ、ジンウク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021505993A publication Critical patent/JP2021505993A/ja
Publication of JP2021505993A5 publication Critical patent/JP2021505993A5/ja
Application granted granted Critical
Publication of JP7087079B2 publication Critical patent/JP7087079B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/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/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、一般に、深層学習ネットワークの訓練に関し、より詳細には、深層機械学習アプリケーションのための堅牢な残差勾配(residual gradient)圧縮方式に関する。
「機械学習」というフレーズは、概して、データから学習することができる電子システムの機能を説明する。機械学習システム、エンジン、またはモジュールは、現在未知の、入力と出力の間の機能的関係を学習するために、外部クラウド環境などにおいて、訓練されることが可能な機械学習アルゴリズムを含むことができる。
本発明は、深層学習ニューラル・ネットワーク(DNN:deep learning neural network)の訓練に適応性のある残差勾配圧縮のためのコンピュータ実装方法等を提供することを目的とする。
本発明の実施形態は、深層学習ニューラル・ネットワーク(DNN:deep learning neural network)の訓練に適応性のある残差勾配圧縮のためのコンピュータ実装方法を提供する。方法の非限定的な例は、複数の学習器のうちの第1の学習器のプロセッサによって、DNNのニューラル・ネットワーク層のための現在の勾配ベクトルを取得することであって、現在の勾配ベクトルが、訓練データのミニ・バッチから計算されるニューラル・ネットワーク層のパラメータの勾配重み(gradient weight)を含む、現在の勾配ベクトルを取得することを含む。ミニ・バッチのための残差勾配重みを含む現在の残差ベクトル(residue vector)が生成され、現在の残差ベクトルを生成することは、以前の残差ベクトルと現在の勾配ベクトルを合計することを含む。圧縮された現在の残差ベクトルが生成され、圧縮された現在の残差ベクトルは、現在の残差ベクトルの残差勾配重みを一様な大きさの複数のビンに分割すること、および複数のビンのうちの1つまたは複数のビンの残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて生成される。残差勾配重みのサブセットを量子化することは、ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、ビンの一様な大きさは、DNNのハイパー・パラメータである。圧縮された現在の残差ベクトルは、次に、複数の学習器のうちの第2の学習器に伝送される。
本発明の実施形態は、DNNの訓練に適応性のある残差勾配圧縮のためのシステムを提供する。本発明のいくつかの実施形態において、システムは、複数の学習器を含み、複数の学習器のうちの少なくとも第1の学習器は、方法を行うように構成される。方法の非限定的な例は、DNNのニューラル・ネットワーク層のための現在の勾配ベクトルを取得することであって、現在の勾配ベクトルが、訓練データのミニ・バッチから計算されるニューラル・ネットワーク層のパラメータの勾配重みを含む、現在の勾配ベクトルを取得することを含む。ミニ・バッチのための残差勾配重みを含む現在の残差ベクトルが生成され、現在の残差ベクトルを生成することは、以前の残差ベクトルと現在の勾配ベクトルを合計することを含む。圧縮された現在の残差ベクトルが生成され、圧縮された現在の残差ベクトルは、現在の残差ベクトルの残差勾配重みを一様な大きさの複数のビンに分割すること、および複数のビンのうちの1つまたは複数のビンの残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて生成される。残差勾配重みのサブセットを量子化することは、ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、ビンの一様な大きさは、DNNのハイパー・パラメータである。圧縮された現在の残差ベクトルは、次に、プロセッサによって、複数の学習器のうちの第2の学習器に伝送される。
本発明の実施形態は、DNNの訓練に適応性のある残差勾配圧縮のためのコンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を含む。プログラム命令は、第1の学習器が方法を行うように、複数の学習器のうちの少なくとも第1の学習器のプロセッサによって実行可能である。方法の非限定的な例は、DNNのニューラル・ネットワーク層のための現在の勾配ベクトルを取得することであって、現在の勾配ベクトルが、訓練データのミニ・バッチから計算されるニューラル・ネットワーク層のパラメータの勾配重みを含む、現在の勾配ベクトルを取得することを含む。ミニ・バッチのための残差勾配重みを含む現在の残差ベクトルが生成され、現在の残差ベクトルを生成することは、以前の残差ベクトルと現在の勾配ベクトルを合計することを含む。圧縮された現在の残差ベクトルが生成され、圧縮された現在の残差ベクトルは、現在の残差ベクトルの残差勾配重みを一様な大きさの複数のビンに分割すること、および複数のビンのうちの1つまたは複数のビンの残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて生成される。残差勾配重みのサブセットを量子化することは、ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、ビンの一様な大きさは、DNNのハイパー・パラメータである。圧縮された現在の残差ベクトルは、次に、複数の学習器のうちの第2の学習器に伝送される。
本発明の実施形態は、適応性のある残差勾配圧縮を介してDNNを訓練するためのコンピュータ実装方法を提供する。方法の非限定的な例は、複数の学習器を備えるシステムによって、1つまたは複数のニューラル・ネットワーク層を使用してDNNの訓練のための訓練データを受信することを含む。ニューラル・ネットワーク層のための現在の勾配ベクトルは、訓練データのミニ・バッチから、複数の学習器のうちの各学習器において生成され、現在の勾配ベクトルは、訓練データのミニ・バッチから計算されるニューラル・ネットワーク層のパラメータの勾配重みを含む。現在の残差ベクトルは、ミニ・バッチから、複数の学習器のうちの各学習器において生成され、現在の残差ベクトルを生成することは、以前の残差ベクトルと現在の勾配ベクトルを合計することを含む。圧縮された現在の残差ベクトルは、複数の学習器のうちの各学習器において生成され、圧縮された現在の残差ベクトルは、現在の残差ベクトルの残差勾配重みを一様な大きさの複数のビンに分割すること、および複数のビンのうちの1つまたは複数のビンの残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて生成される。残差勾配重みのサブセットを量子化することは、ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、ビンの一様な大きさは、DNNのハイパー・パラメータである。圧縮された現在の残差ベクトルは、次に、複数の学習器の間で交換される。圧縮された現在の残差ベクトルは、複数の学習器のそれぞれにおいて解凍される。ニューラル・ネットワーク層のパラメータの勾配重みは、次に、複数の学習器のそれぞれにおいて更新される。
本発明の実施形態は、適応性のある残差勾配圧縮を介して深層学習ニューラル・ネットワーク(DNN)を訓練するためのシステムを提供する。本発明のいくつかの実施形態において、システムは、複数の学習器を含み、システムは、方法を行うように構成される。方法の非限定的な例は、システムによって、1つまたは複数のニューラル・ネットワーク層を使用してDNNの訓練のための訓練データを受信することを含む。ニューラル・ネットワーク層のための現在の勾配ベクトルは、訓練データのミニ・バッチから、複数の学習器のうちの各学習器において生成され、現在の勾配ベクトルは、訓練データのミニ・バッチから計算されるニューラル・ネットワーク層のパラメータの勾配重みを含む。現在の残差ベクトルは、ミニ・バッチから、複数の学習器のうちの各学習器において生成され、現在の残差ベクトルを生成することは、以前の残差ベクトルと現在の勾配ベクトルを合計することを含む。圧縮された現在の残差ベクトルは、複数の学習器のうちの各学習器において生成され、圧縮された現在の残差ベクトルは、現在の残差ベクトルの残差勾配重みを一様な大きさの複数のビンに分割すること、および複数のビンのうちの1つまたは複数のビンの残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて生成される。残差勾配重みのサブセットを量子化することは、ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、ビンの一様な大きさは、DNNのハイパー・パラメータである。圧縮された現在の残差ベクトルは、次に、複数の学習器の間で交換される。圧縮された現在の残差ベクトルは、複数の学習器のそれぞれにおいて解凍される。ニューラル・ネットワーク層のパラメータの勾配重みは、次に、複数の学習器のそれぞれにおいて更新される。
追加の技術的特徴および利益は、本発明の技術を通じて実現される。本発明の実施形態および態様は、本明細書において詳細に説明され、特許請求の範囲の主題の一部と見なされる。さらなる理解のために、詳細な説明および図面を参照する。
本圧縮方式は、種々の訓練方式(時間ドメイン)と統合することが可能であり、種々の層(空間ドメイン)において適用されることが可能である。例えば、圧縮方式は、最初のいくつかのエポック、またはニューラル・ネットワークの最後および最初の層には適用されない。
本明細書において説明される排他的な権利の細目は、本明細書の結論における特許請求の範囲において具体的に指摘され、明確に請求される。本発明の実施形態の前述および他の特徴および利点は、添付の図面に関して行われる以下の詳細な説明から明らかである。
本発明の1つまたは複数の実施形態によるクラウド・コンピューティング環境を示す図である。 本発明の1つまたは複数の実施形態による抽象化モデルの階層を示す図である。 本発明の1つまたは複数の実施形態を実行することができる例示的なコンピュータ・システムを示す図である。 本発明の1つまたは複数の実施形態による畳み込みニューラル・ネットワークの簡略化されたブロック図である。 本発明の1つまたは複数の実施形態による訓練データを使用して訓練されているニューラル・ネットワークの実施例の畳み込み層を示す図である。 本発明の1つまたは複数の実施形態による深層学習ニューラル・ネットワークの訓練に適応性のある残差勾配圧縮を行うための環境のブロック図である。 本発明の1つまたは複数の実施形態によるニューラル・ネットワークを訓練するための実施例の流れ図である。 本発明の1つまたは複数の実施形態による圧縮された現在の残差ベクトルを生成するための実施例の方法を示す流れ図である。
本明細書において示される図は例証的なものである。本発明の範囲を逸脱することなく、説明される図または動作に対する多くの変形形態があることが可能である。例えば、アクションは、異なる順序で行われることが可能であり、またはアクションは、追加、削除、もしくは変更が行われることが可能である。また、用語「連結された」およびその変形物は、2つの要素間に通信経路があることを表現するが、要素間に要素/接続が介在しない要素間の直接接続を意味しない。これらの変形形態の全てが、本明細書の一部と見なされる。
本開示の実施形態の添付の図および以下の詳細な説明において、図の中で示された様々な要素は、2桁または3桁の参照番号で示される。わずかな例外として、各参照番号の一番左の桁は、図の要素が最初に示される図に対応する。
関連図面を参照しながら、本発明の様々な実施形態が本明細書において説明される。本発明の代替実施形態は、本発明の範囲から逸脱することなく考え出されることが可能である。様々な接続および位置関係(例えば、上(over)、下(below)、隣(adjacent)、等)は、以下の説明、および図面において、要素間に示される。これらの接続または位置関係あるいはその両方は、別途指定されない限り、直接的または間接的であることが可能であり、本発明は、この点に限定することを意図するものではない。したがって、エンティティの連結は、直接的または間接的連結を指すことが可能であり、エンティティ間の位置関係は、直接的または間接的位置関係であることが可能である。その上、本明細書において説明される様々なタスクおよび処理ステップは、本明細書において詳細に説明されない追加のステップまたは機能を有する、より包括的な手順または処理に組み込まれることが可能である。
特許請求の範囲および本明細書の解釈のために、以下の定義および省略形が使用されることになる。本明細書において使用されるように、用語「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、「含んでいる(including)」、「有する(has)」、「有している(having)」、「収める(contains)」、もしくは「収めている(containing)」、または他の任意のこれらの変形物は,排他的でない包含を含むことを意図するものである。要素の一覧を含む、例えば、構成、混合、処理、方法、項目、または装置は、これらの要素だけに必ずしも限定されず、明確に挙げられていない他の要素、または、このような構成、混合、処理、方法、項目、または装置に固有の他の要素を含むことができる。
追加として、用語「例示的な」は、「実施例、事例、または例証として機能すること」を意味するように、本明細書において使用される。「例示的な」ものとして本明細書において説明されるいずれかの実施形態または設計は、他の実施形態または設計より好ましいもの、または有利なものとして、必ずしも解釈されることにはならない。用語「少なくとも1つ」および「1つまたは複数」は、1以上、すなわち1、2、3、4等の任意の整数を含むものと理解されてよい。用語「複数の」は、2以上、すなわち2、3、4、5等の任意の整数を含むものと理解されてよい。用語「接続」は、間接的「接続」と直接的「接続」の両方を含むことができる。
用語「約(about)」、「かなり(substantially)」、「およそ(approximately)」、およびこれらの変形物は、本出願の提出時に利用可能な機器に基づく特定の量の測定値と関連付けられたある程度の誤差を含むことを意図するものである。例えば、「約」は、所与の値の±8%もしくは5%、または2%の範囲を含む可能性がある。
簡潔さのために、本発明の態様を行うことおよび使用することに関する従来の技術は、本明細書において詳細に説明されることもあれば、されないこともある。特に、本明細書において説明される様々な技術的特徴を実行するためのコンピューティング・システムおよび特定のコンピュータ・プログラムの様々な態様は、よく知られている。したがって、簡潔さのために、多くの従来の実装形態の詳細は、本明細書において簡単に言及されるにすぎないか、よく知られたシステムまたは処理あるいはその両方の詳細を示さずに、全面的に省略される。
本開示は、クラウド・コンピューティングについての詳細な説明を含んでいるが、本明細書において列挙される教示の実装形態は、クラウド・コンピューティング環境に限定されるものではないということが理解されよう。むしろ、本発明の実施形態は、今知られているか、後で開発されるコンピューティング環境の他の任意のタイプと共に実行されることが可能である。
クラウド・コンピューティングは、サービスの提供者との最低限の管理活動または対話によって、急速に提供されること、および解放されることが可能な、設定変更可能コンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの配置モデルを含むことができる。
特性は、以下のようなものである。
オンデマンド・セルフ・サービス:クラウド利用者は、サービスの提供者との人的対話を必要とせず自動的に必要に応じて、サーバ時刻およびネットワーク・ストレージなどのコンピューティング能力を一方的に提供することができる。
ブロード・ネットワーク・アクセス:能力は、ネットワーク上で利用可能であり、ヘテロジニアスなシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を推進する標準機構を通じてアクセスされる。
リソース・プーリング:提供者のコンピューティング・リソースは、マルチ・テナント・モデルを使用して複数の利用者に供給するためにプールされ、種々の物理リソースおよび仮想リソースは、需要に応じて動的に割当ておよび再割当てが行われる。利用者は一般に、提供されたリソースの正確な位置に対する制御権または知識がないが、抽象化のより高いレベル(例えば、国、州、またはデータセンタ)において位置を特定できる可能性があるということに位置独立の意味がある。
迅速な伸縮性(Rapid elasticity):能力は、素早くスケール・アウトするように迅速かつ伸縮自在に、場合によっては自動的に提供され、素早くスケール・インするように迅速に解放される。利用者に対して、提供するのに利用可能な能力は、無制限のように見えることが多く、いつでも任意の量で購入されることが可能である。
サービス測定(Measured service):クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)にふさわしい抽象化のいくつかのレベルでメータリング能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース利用率は、監視、制御、およびレポートされることが可能であり、利用されるサービスの提供者と利用者の両者に透明性をもたらす。
サービス・モデルは、以下のようなものである。
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上で動く提供者のアプリケーションを使用するためのものである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブベースの電子メール)などのシン・クライアント・インターフェースを通じて様々なクライアント・デバイスからアクセス可能である。利用者は、限定されたユーザ固有アプリケーションの構成設定を例外とする可能性はあるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個人のアプリケーション能力さえも含む、基礎となるクラウド・インフラストラクチャを管理することも制御することもない。
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、提供者によってサポートされるプログラミング言語およびツールを使用して作り出された、利用者が作り出したか獲得したアプリケーションを、クラウド・インフラストラクチャ上に配置するためのものである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎となるクラウド・インフラストラクチャを管理することも制御することもないが、配置されたアプリケーション、および場合によっては、環境構成をホストするアプリケーションに対する制御権がある。
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、ストレージ、ネットワーク、ならびに、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを利用者が配置すること、および動かすことができる他の基本的なコンピューティング・リソース、を提供するためのものである。利用者は、基礎となるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、配置されたアプリケーションに対する制御権、および場合によっては、ネットワーク構成要素(例えば、ホスト・ファイアウォール)を選択する限定的な制御権がある。
配置モデルは、以下のようなものである。
プライベート・クラウド:クラウド・インフラストラクチャは、組織のために単に運用される。クラウド・インフラストラクチャは、組織またはサード・パーティによって管理されることが可能であり、敷地内または敷地外にあることが可能である。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有された懸念(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンスの考慮)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、組織またはサード・パーティによって管理されることが可能であり、敷地内または敷地にあることが可能である。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大きい業界団体に対して利用可能にされ、クラウド・サービスを売る組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーションに可搬性(例えば、クラウド間の負荷分散のためのクラウド・バースティング)を与える標準化技術または独自の技術によって互いに結び付けられる2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の構成である。
クラウド・コンピューティング環境は、無国籍、疎結合、モジュラリティ、および意味論的相互運用性に重点を置くサービス指向のものである。相互接続ノードのネットワークを含むインフラストラクチャが、クラウド・コンピューティングの中心にある。
これから図1を参照すると、例証的なクラウド・コンピューティング環境50が示されている。示されているように、クラウド・コンピューティング環境50は、例えば、パーソナル・デジタル・アシスタント(PDA)もしくはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどの、クラウド利用者によって使用されるローカル・コンピューティング・デバイスが通信できる1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。これらは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどの、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化されることが可能である(図示せず)。これは、クラウド利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド・コンピューティング環境50が提供できるようにする。図1において示されたコンピューティング・デバイス54A~54Nのタイプは、例証的なものにすぎないことを意図するものであるということ、ならびに、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、(例えば、ウェブ・ブラウザを使用して)任意のタイプのネットワーク、またはネットワーク・アドレス可能接続、あるいはその両方で、任意のタイプのコンピュータ化されたデバイスと通信することができるということ、が理解される。
ここから図2を参照すると、クラウド・コンピューティング環境50(図1)によって提供される機能的抽象化層のセットが示される。図2において示された構成要素、層、および機能は、例証的なものにすぎないことを意図するものであり、本発明の実施形態は、これらに限定されないということが予め理解されよう。図示されるように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベース・サーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーク構成要素66を含む。いくつかの実施形態において、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75という仮想エンティティの例が提供されることが可能な抽象化層を提供する。
1つの例において、管理層80は、下記に説明される機能を提供することができる。リソース提供81は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を行う。メータリングおよびプライシング82は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、および、これらのリソースの利用量に対する請求またはインボイスを行う。1つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド利用者およびタスクに対する本人確認、ならびにデータおよび他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセス権を、利用者およびシステム・アドミニストレータに与える。サービス・レベル管理84は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割当ておよび管理を行う。サービス・レベル契約(SLA)の計画立案およびフルフィルメント85は、SLAに従って将来要求されることが予想されるクラウド・コンピューティング・リソースの事前配列および調達を行う
ワークロード層90は、クラウド・コンピューティング環境が利用されることが可能な機能の例を提供する。この層から提供されることが可能なワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ分析処理94、トランザクション処理95、ならびに勾配圧縮処理96を含む。
本発明の態様に、より具体的に関係のある技術の全体像にこれから移ると、DNNの高度に分散した訓練は、通信が制限されることが多い。この限界を克服するために、コンピュータ的に使いやすく、DNNにおいて見られる多種多様な層に適用でき、ネットワーク・アーキテクチャおよびこれらのハイパー・パラメータにおける変化に適応できる、新しい勾配圧縮技術が必要である。
本明細書において前述されたように、「機械学習」というフレーズは、概して、データから学習する電子システムの機能を表現する。機械学習システム、エンジン、またはモジュールは、現在未知の、入力と出力の間の機能的関係を学習するために、外部クラウド環境などにおいて訓練されることが可能な訓練可能機械学習アルゴリズムを含むことができる。機械学習機能は、現在未知の機能を行うように訓練される能力がある人工ニューラル・ネットワーク(ANN:artificial neural network)を使用して実行されることが可能である。機械学習および認知科学において、ANNは、特に脳といった、動物の生物学的ニューラル・ネットワークから着想を受けた統計学的学習モデルの一群である。ANNは、大量の入力によって決まるシステムおよび機能を推定または概算するために使用されることが可能である。ANNは、模擬「ニューロン」として作用し、電子信号の形で互いの間で「メッセージ」を交換する、相互接続プロセッサ要素のいわゆる「神経形態学的」システムとして具現化されることが可能である。生物学的ニューロンの間でメッセージを運ぶシナプス神経伝達物質の接続のいわゆる「可塑性」と同様に、模擬ニューロンの間で電子メッセージを運ぶANNにおける接続は、所与の接続の強さまたは弱さに対応する数字の重みを与えられる。重みは、経験に少なくとも部分的に基づいて調節され、調和されることが可能であり、ANNを入力に適応性のあるものにし、学習できるものにする。例えば、手書き認識のためのANNは、入力画像のピクセルによって活性化されることが可能な入力ニューロンのセットによって定義される。ネットワークの設計者によって決定された機能によって重み付けされ、変換された後、これらの入力ニューロンの活性化は、次に、しばしば「隠れた」ニューロンと呼ばれる下流の他のニューロンに進む。この処理は、出力ニューロンが活性化されるまで繰り返される。活性化された出力ニューロンは、どのキャラクタが読み込まれたかを決定する。
機械学習は、デジタル・データ間の推論または関係あるいはその両方を判定するために、非常に多くの技術によって用いられることが多い。例えば、機械学習技術、信号処理技術、画像処理技術、データ分析技術、または他の技術、あるいはその組合せは、機械学習モデルを用いて、デジタル・データの分析、デジタル・データの処理、デジタル・データからの推論の判定、またはデジタル・データ間の関係の判定、あるいはその組合せを行う。
ディープ・ニューラル・ネットワーク(DNN)は、入力層と出力層との間に複数の隠れた層がある一種のANNである。DNNは、複雑な非線形関係をモデル化することができる。DNNアーキテクチャは、基本要素の層構成としてオブジェクトが表現される構成モデルを生成する。追加の層は、より低い層からの特徴を構成することができ、同様に行うシャロー・ネットワークよりも少ないユニットで複雑なデータをモデル化できる可能性がある。いくつかのDNNは、ループ・バックせずに入力層から出力層にデータが流れるフィードフォワード・ネットワークである。回帰型ニューラル・ネットワーク(RNN:recurrent neural network)は、データが任意の方向に流れる、さらなるタイプのDNNである。RNNは、言語モデリングなどの用途のために使用されることがある。長短期記憶(LSTM)ネットワークは、別のタイプのDNNである。
特に畳み込み層を伴うニューラル・ネットワークの使用は、深層学習の進歩を推進してきた。このようなニューラル・ネットワークは、畳み込みニューラル・ネットワーク(CNN)と呼ばれる。CNNにおいて、カーネルは、視野内の重複領域を畳み込み、したがって、特徴を検出する際の空間的位置の重要性を強調する。CNNの畳み込み層の計算では、典型的には、90%を超える計算時間が、ニューラル・ネットワークの訓練および推論に占められる。訓練時間は、例えば、使用されている訓練データセットの大きさによって決まり、1週間以上になることがある。単一ノード・システムに対する訓練時間を改善するために、分散システムは、複数の中央処理装置(CPU:central processing unit)または画像処理装置(GPU:graphics processing unit)に訓練データを分散させるように開発されてきた。リング・ネットワーク内のシステムにおけるアクセラレータまたは学習器あるいはその両方を接続することによって、アクセラレータ間の帯域幅の最大化を試みるために、リング・ベースのシステム・トポロジが提案されてきた。アクセラレータは、次に、ローカル・ミニ・バッチから隣のアクセラレータに直接、または集中型パラメータ・サーバによって、アクセラレータが計算した重み勾配を輸送する。しかし、利用される学習器の数が増加するにつれて、大きなスケーリング条件の下でミニ・バッチ・データを分散させると、各学習器に必要なフロップが比例して減少することで、重い計算による通信の不安定を引き起こすと同時に、学習器間の通信帯域幅の需要を著しく増加させるという逆効果をもたらす。このようにして、圧縮によってCNNの訓練を加速させることが、本明細書における技術的解決策の例によって説明されるように、望ましい改善である。
本発明の態様の全体像にこれから移ると、本発明の1つまたは複数の実施形態は、アクセラレータ間で交換されるデータ量を最小化するのを支援する新しい圧縮技術を提供することによって従来技術の上述の欠点に対処する。特に、勾配残差の局所的な選択を利用する適応性のある残差勾配圧縮方式が提供され、残差勾配圧縮方式は、局所活動に基づいて圧縮率を自動的に調整することができる。例えば、特徴を入力する活動と、いずれかの層における残差勾配との間に相関性がない可能性があるので、本発明のいくつかの実施形態において、圧縮方式は、各層に対して残差ベクトル全体をいくつかのビンに一様に分割することによって層全体にわたる残差を捉えるように構成され、このようにして、固定長ビン・サイズLを有する新しいハイパー・パラメータを作り出す。各ビンにおいて、圧縮アルゴリズムは、残差の絶対値の最大値を最初に見つける。この値に加えて、圧縮アルゴリズムは、規模が比較的似ている他の残差をこの最大値に送る。残差は、以前の残差と、逆伝搬から取得された最新の勾配値との合計として、各ミニ・バッチに対して計算される。この最新の勾配を加えたこの以前の残差とスケール・ファクタとの合計が、ビンにおける最大値を超過する場合、これらの追加の残差は、送ること、または中心的に更新すること、あるいはその両方が行われるように値のセットに含まれる。本発明の1つまたは複数の実施形態による様々な適切なスケール・ファクタが使用されることが可能である。例えば、本発明のいくつかの実施形態において、スケール・ファクタは、約1.5から約3に及ぶ。本発明のいくつかの実施形態において、スケール・ファクタは2である。
残差は、経験的に勾配より大きい可能性があるので、本発明の上述の態様の1つまたは複数は、極大値に近い重要な残差の送信を可能にする圧縮方式を提供することによって従来技術の欠点に対処する。本発明の1つまたは複数の実施形態による、圧縮された残差ベクトルの量子化によって、全体的な圧縮率が向上する可能性がある。圧縮方式は、各学習器におけるあらゆる層に別々に適用されることが可能である。本発明のいくつかの実施形態において、各学習器は、圧縮された疎ベクトルに加えてスケール・ファクタを送信する。本発明のいくつかの実施形態において、疎と量子化の両方を活用することによって、完全接続層および回帰層に対する約200倍、ならびに畳み込み層に対する40倍の終端間の圧縮率は、モデルの正確さを著しく低下させずに(例えば、<1%の低下)達成されることが可能である。以前の方法は、大規模ネットワークに対する約1.6%など、著しく低下させていた。本発明の1つまたは複数の実施形態において、圧縮方式は、ソート、またはソートに似ているものである必要がないので、圧縮方式は、高性能システムにとって計算的に効率的(O)(N))である可能性がある。
本発明の態様のより詳細な説明にこれから移ると、図3は、本発明の1つまたは複数の実施形態を実行するのに有用なコンピュータ・ベース・システム300の例を示す高レベルのブロック図を示す。1つの例示的なコンピュータ・システム300が示されるが、コンピュータ・システム300は、コンピュータ・システム300をさらなるシステムに接続し、インターネット、イントラネット、またはワイヤレス通信ネットワーク、あるいはその組合せなどの1つまたは複数の広域ネットワーク(WAN)またはローカル・エリア・ネットワーク(LAN)あるいはその両方を含むことができる通信経路326を含む。コンピュータ・システム300およびさらなるシステムは、(例えば、これらの間でデータを通信するために)通信経路326を介して通信状態にある。
コンピュータ・システム300は、プロセッサ302などの1つまたは複数のプロセッサを含む。プロセッサ302は、通信インフラストラクチャ304(例えば、通信バス、クロス・オーバー・バー、またはネットワーク)に接続される。コンピュータ・システム300は、ディスプレイ・ユニット308に表示するために通信インフラストラクチャ304から(または図示されていないフレーム・バッファから)、グラフィックス、テキスト、および他のデータを転送するディスプレイ・インターフェース306を含むことができる。コンピュータ・システム300は、好ましくはランダム・アクセス・メモリ(RAM)といったメイン・メモリ310も含み、2次メモリ312を含むこともできる。2次メモリ312は、例えば、ハードディスク・ドライブ314、または、例えば、フロッピー(R)・ディスク・ドライブ、磁気テープ・ドライブ、もしくは光ディスク・ドライブを示す取外し可能ストレージ・ドライブ316、あるいはその両方を含むことができる。取外し可能ストレージ・ドライブ316は、当業者によく知られた方法で、取外し可能ストレージ・ユニット318との間で、読み取ること、または書き込むこと、あるいはその両方を行う。取外し可能ストレージ・ユニット318は、取外し可能ストレージ・ドライブ316によって読み込まれ、書き込まれる、例えば、フロッピー(R)・ディスク、コンパクト・ディスク、磁気テープ、または光ディスク、等を示す。正しく認識されるように、取外し可能ストレージ・ユニット318は、コンピュータ・ソフトウェアまたはデータあるいはその両方が格納されたコンピュータ可読媒体を含む。
本発明のいくつかの代替実施形態において、2次メモリ312は、コンピュータ・プログラムまたは他の命令がコンピュータ・システムにロードされるのを可能にするための他の類似の手段を含むことができる。このような手段は、例えば、取外し可能ストレージ・ユニット320およびインターフェース322を含むことができる。このような手段の例は、(ビデオ・ゲーム・デバイスにおいて見つかるものなどの)プログラム・パッケージおよびパッケージ・インターフェース、(EPROMまたはPROMなどの)取外し可能メモリ・チップおよび関連付けられたソケット、ならびに、他の取外し可能ストレージ・ユニット320、および取外し可能ストレージ・ユニット320からコンピュータ・システム300にソフトウェアおよびデータが移送されるのを可能にするインターフェース322を含むことができる。
コンピュータ・システム300は、通信インターフェース324も含むことができる。通信インターフェース324は、コンピュータ・システムと外部デバイスとの間でソフトウェアおよびデータが移送されるのを可能にする。通信インターフェース324の例は、モデム、(イーサネット(R)・カードなどの)ネットワーク・インターフェース、通信ポート、またはPCM-CIAスロットおよびカード、等を含むことができる。通信インターフェース324を介して移送されるソフトウェアおよびデータは、通信インターフェース324によって受信されることが可能な、例えば、電子信号、電磁気信号、光信号、または他の信号であることが可能な信号の形式である。これらの信号は、通信経路(すなわち、チャネル)326を介して通信インターフェース324に送られる。通信経路326は信号を搬送し、ワイヤもしくはケーブル、光ファイバ、電話線、セルラー・フォン・リンク、RFリンク、または他の通信チャネル、あるいはその組合せを使用して実行されることが可能である。
本開示において、用語「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ可読媒体」は、一般に、メイン・メモリ310および2次メモリ312、取外し可能ストレージ・ドライブ316、ならびにハードディスク・ドライブ314に取り付けられたハードディスクなどの媒体を指すために使用される。(コンピュータ制御ロジックとも呼ばれる)コンピュータ・プログラムは、メイン・メモリ310または2次メモリ312あるいはその両方に格納される。コンピュータ・プログラムは、通信インターフェース324を介して受信されることが可能である。このようなコンピュータ・プログラムは、実行されると、本明細書において論じられるような本開示の特徴をコンピュータ・システムが行えるようにする。特に、コンピュータ・プログラムは、実行されると、コンピュータ・システムの特徴をプロセッサ302が行えるようにする。したがって、このようなコンピュータ・プログラムは、コンピュータ・システムのコントローラに相当する。
図4は、本開示の1つまたは複数の実施形態による実施例のニューラル・ネットワークのブロック図を示し、サンプル入力マップ400を解釈している。この特定の例は、手書き文字「w」を入力マップとして使用するが、入力マップの他のタイプが可能であるということがわかる。示された例において、入力マップ400は、入力層410または「層-1」のための値のセットを作り出すために使用される。本発明のいくつかの実施形態において、層-1は、ピクセルが特定の属性を示すかどうかに応じてニューロンが1または0を示すべく、サンプル入力マップ400のピクセルを、層-1における特定のニューロンに直接マッピングすることによって生成される。値をニューロンに割り当てる別の実施例の方法は、畳み込みニューラル・ネットワークを参照しながら下記において論じられる。ニューラル・ネットワークの予期せぬ変化、および解決のために作り出される問題に応じて、ネットワークの各層は、異なる数のニューロンを有することができ、これらは、入力データの特定の品質に関するものであることもあれば、そうでないこともある。
図4を参照すると、層-1 410におけるニューロンは、次の層である層-2 420におけるニューロンに接続される。ニューラル・ネットワークにおいて、ニューロンのそれぞれは、特定の層において、次の層におけるニューロンに接続される。この例において、層-2におけるニューロンは、層-1におけるニューロンのそれぞれから入力値を受け取る。入力値は次に合計され、この合計は、バイアスと比較される。特定のニューロンに対するバイアスを値が超過する場合、このニューロンは、次に、ニューロンの次の層におけるニューロンへの入力として使用されることが可能な値を保持する。この計算は、図4において「出力」と呼ばれる最終層460に計算が達するまで、ニューラル・ネットワークの様々な層430~450を通じて継続する。キャラクタ認識のために使用されるニューラル・ネットワークの例において、層における各値は、特定のキャラクタに割り当てられる。本発明のいくつかの実施形態において、ネットワークは、1つのニューロンにおいてただ1つの大きな正の値を有する出力層で終わるように構成され、次に、どのキャラクタを最も可能性のある手書き入力キャラクタであると、ネットワークが計算したかを示す。
本発明のいくつかの実施形態において、ニューラル・ネットワークにおける各層に対するデータ値は、ベクトルまたは行列(またはいくつかの例において、テンソル)として表現され、計算は、ベクトル計算または行列計算として行われる。行列のインデックス(または大きさあるいはその両方)は、図4において示されるように、層およびネットワークによって変化する。異なる実装形態は、コンピュータ・メモリにそれぞれ、行列を置き、または行列をマッピングする。図4において示された実施例のニューラル・ネットワークにおいて、各レベルは、ニューラル・ネットワークの各層に対する行列次元によるニューロン値の行列である。層における行列内の値は、変換行列の中にある接続の強さを乗じられる。この行列の乗算は、接続の強さに従って以前の層における各値をスケーリングし、次に、合計される。次のレベルにおける各ニューロンの閾値を考慮するために、次に、結果として生じる積の行列にバイアス行列が追加される。次に活性化関数がそれぞれの結果の値に適用され、結果として生じる値は、次の層のための行列内に置かれる。例において、活性化関数は、線形ユニット、シグモイド、またはtanh()に修正されることが可能である。各層の間の接続、およびしたがってネットワーク全体は、一連の行列として表現されることが可能である。ニューラル・ネットワークを訓練することは、これらの行列に対する固有値を見つけることを含む。
完全に接続されたニューラル・ネットワークは、正しく訓練されると、手書きなどの入力パターンを認識することができるが、入力に対して演算するときに形状および近接性を利用できないことがある。例えば、あらゆるピクセルは独立して演算されるので、ニューラル・ネットワークは、隣接ピクセルを無視する可能性がある。CNNは、比較すると、単一の値ではなく値の配列を各ニューロンと関連付けることによって演算する。概念上、配列は、入力パターンのサブセット、または訓練データの他の部分である。その後の層のためのニューロン値の変換は、畳み込みを使用して行われる。このようにして、CNNにおいて、接続の強さは、完全なネットワークにおけるようなスカラ値ではなく、畳み込みカーネルである。
図5は、本発明の1つまたは複数の実施形態による、入力マップ510および畳み込みカーネル520を含む訓練データを使用して訓練されるCNNにおける実施例の畳み込み層500を示す。入力マップ510は、例えばN個の入力マップといった複数の入力パターンを含む。各入力マップは、大きさn×nの正方行列などの行列である。入力マップは、大きさn-k+1×n-k+1のM個の出力マップ530を生み出すために、図示のような大きさk×kの畳み込みカーネル520で畳み込まれる。各畳み込みは、N個の入力マップを含む3Dの畳み込みである。入力マップ、カーネル、および出力マップは、正方形である必要はないということに留意されたい。CNNは、複数のこのような層を含むことができ、ここで、以前の層からの出力マップ530は、その後の層のための入力マップ510として使用される。逆伝搬アルゴリズムは、k×k×M×N個のフィルタの重み値を学習するために使用されることが可能である。
例えば、本発明のいくつかの実施形態において、入力マップ510は、対応する出力マップを生成するために、各フィルタ・バンクで畳み込まれる。例えば、手書きを識別するためにCNN500が訓練されている場合、入力マップ510は、縦線を表す畳み込みカーネルを含むフィルタ・バンクと結合される。結果として生じる出力マップ530は、入力マップ510において提示することが可能な縦線を識別する。さらに、別のフィルタ・バンクは、右上に進むなど、対角線を表す畳み込みカーネルを含むことができる。第2のフィルタ・バンクによって入力マップ510の畳み込みから生じる出力マップ530は、対角線を収める訓練データのサンプルを識別する。2つの出力マップ530は、ピクセルの隣接を維持しながらキャラクタについての異なる情報を示す。これは、キャラクタ認識がより効率的になる可能性がある。
図6は、本発明の1つまたは複数の実施形態による深層学習ニューラル・ネットワークの訓練に適応性のある残差勾配圧縮を行うためのシステム600のブロック図を示す。システム600は、例えば、非凸最適化問題の実例として、ディープ・ネットワーク学習を前もって形成することを担う複数の学習処理システム610、620、630、640を含む。これは、大きいデータセット上の大量のパラメータでディープ・ニューラル・ネットを訓練するのに有用である可能性がある。例えば、本発明のいくつかの実施形態において、複数のワーカ(例えば、複数の学習処理システム610、620、630、640)が、1つのニューラル・ネットワークを訓練するとき、各ワーカは、訓練データのサブセットを計算し、ワーカ間の通信が必要とされる可能性があり、これは、通常、データ並列処理と呼ばれる。通信帯域幅を節約するために、各ワーカは、一部の勾配値を送信し、残りの残差をローカルに保持する。システム600は、アクセラレータ間で交換されるデータ量を最小化するのを支援する圧縮技術を提供する。特に、システム600は、勾配残差の局所的選択を利用する適応性のある残差勾配圧縮方式を用い、圧縮方式は、各層のための残差ベクトル全体をいくつかのビンに一様に分割することによって、層全体にわたって残差を取り込むように構成され、固定長ビン・サイズLは、新しいハイパー・パラメータである。各ビンにおいて、残差の絶対値の最大値は、複数の学習処理システム610、620、630、640の間で識別して交換すること、またはパラメータ・サーバに伝送すること、あるいはその両方が行われる。この最大値に大きさが比較的似ている他の残差も、複数の学習処理システム610、620、630、640の間で交換すること、またはパラメータ・サーバに伝送すること、あるいはその両方が行われる。例えば、本発明のいくつかの実施形態において、残差は、以前の残差と、逆伝搬から取得された最新の勾配値とを合計することによって各ミニ・バッチのために計算される。この最新の勾配を加えたこの以前の残差と、スケール・ファクタとの合計が、ビンにおける最大値を超過する場合、これらの追加の残差は、パラメータ・サーバなどのサーバにおいて送信すること、または、中心的に更新すること、あるいはその両方が行われることになる値のセットに含まれる。4つの学習処理システム610、620、630、640が、図6において示されているが、本技術は、任意の適切な数の学習処理システムによって利用されることが可能であるということが理解されよう。本発明のいくつかの実施形態において、複数のワーカ(例えば、複数の学習処理システム610、620、630、640)が、1つのニューラル・ネットワークを訓練するとき、各ワーカは、訓練データのサブセットを計算し、ワーカ間の通信が必要とされ、これは、通常、データ並列処理と呼ばれる。通信帯域幅を節約するために、各ワーカは、一部の勾配値を送信し、残りの残差をローカルに保持する。
図7は、本発明の1つまたは複数の実施形態による1つまたは複数の畳み込み層500を含むCNNなどのDNNを訓練するための実施例の処理フロー700を示す。実施例のロジックは、CPU、GPU、デジタル・シグナル・プロセッサ(DSP)、もしくは他の任意のプロセッサ、またはこれらの組合せなどの1つまたは複数のプロセッサによって実行されることが可能である。702において、CNNは初期化される。本発明のいくつかの実施形態において、CNNは、ランダムの重みで初期化される。704において、CNN500のための訓練データが受信される。本発明のいくつかの実施形態において、CNNは、一致した結果および効率的な結果をもたらすように洗練されることが可能な、サンプルの畳み込みカーネルおよびバイアスでプリセットされる。本発明のいくつかの実施形態において、訓練データは、例えば、何万ものオーダーの入力訓練サンプル400などの複数の入力訓練サンプル400を含む。入力訓練サンプル400は、予想出力460と関連付けられる。本発明のいくつかの実施形態において、入力400は手書きサンプルであり、予想出力460は、各手書きサンプルを解釈するための正しいキャラクタを示すものである。
本発明のいくつかの実施形態において、DNNの訓練は、複数の訓練エポックを介して訓練することを含む。例えば、本発明のいくつかの実施形態において、各エポックは、いくつかのミニ・バッチを含む。したがって、本発明のいくつかの実施形態において、ブロック706において示されるように、処理は、(例えば、学習処理システム610、620、630、640によって)訓練データを受信することによって訓練エポックのミニ・バッチにおいて始まる。入力マップ510および畳み込みカーネル520を使用して、出力マップ530は、(例えば、学習処理システム610、620、630、640によって)ブロック708において示されるように、本明細書において説明されるように生成される。出力マップ530を生成することは、一般に、「フォワード・パス」と呼ばれる。710において、予想に対して、CNNのどれだけ近くにあるか、または遠くにあるかについて、出力マップ530に基づいて決定される。ブロック712において、CNNを構成する行列またはベクトルあるいはその両方のそれぞれに関する誤差の程度は、勾配降下を使用して判定される。相対的な誤差を判定することは、(例えば、学習処理システム610、620、630、640によって)「バックワード・パス」と呼ばれる。
ブロック714において、現在の勾配ベクトルが、(例えば、学習処理システム610、620、630、640によって)システムの各学習器によって層毎に取得される。本発明のいくつかの実施形態において、それぞれの所与のニューラル・ネットワーク層に対する現在の勾配ベクトルは、所与のニューラル・ネットワーク層のパラメータの勾配重みを含む。下記においてさらに詳細に論じられるように、本発明のいくつかの実施形態において、勾配重みは、訓練データ全体から計算されるのとは対照的に、訓練データのミニ・バッチから計算される。
ブロック716において、現在の残差ベクトル、および圧縮された現在の残差ベクトルは、(例えば、学習処理システム610、620、630、640によって)システムの各学習器によって、それぞれの所与の層に対して生成される。本発明のいくつかの実施形態において、圧縮された現在の残差ベクトルは、層方向またはチャンク方向に圧縮された現在の残差ベクトルである。本発明のいくつかの実施形態において、現在の残差ベクトルは、ミニ・バッチの所与の層に対する残差勾配重みを含む。本発明のいくつかの実施形態において、現在の残差ベクトルは、現在の勾配ベクトルを以前の残差ベクトル(例えば、以前のミニ・バッチの残差ベクトル)と合計することによって生成される。本発明のいくつかの実施形態において、以前の残差ベクトルは、空ベクトルであるか、ヌル値を有し、実行が最初に初期化されるときに発生することが可能である。したがって、本発明のいくつかの実施形態において、現在の勾配ベクトルと以前の残差ベクトルとの合計は、現在の勾配ベクトルと同じ、取得された現在の残差ベクトルになる。
本発明のいくつかの実施形態において、ブロック716において生成される圧縮された現在の残差ベクトルは、一様な大きさの複数のビンに、現在の残差ベクトルの残差勾配重みを分割すること、および、次に、複数のビンのうちの1つまたは複数のビンの残差勾配重みのサブセットを量子化すること、に少なくとも部分的に基づいて生成され、一様な大きさは、ニューラル・ネットワークのハイパー・パラメータである。本発明のいくつかの実施形態において、残差勾配重みのサブセットの量子化は、ミニ・バッチのスケーリング・パラメータを計算すること、および各ビンの極大値を計算すること、に少なくとも部分的に基づく。
ブロック718において、圧縮された現在の残差ベクトルは、(例えば、学習処理システム610、620、630、640によって)システムの各学習器の間で交換すること、またはパラメータ・サーバに伝送すること、あるいはその両方が行われる。本発明のいくつかの実施形態において、交換は、システムの各学習器が、圧縮された現在の残差ベクトルを複数の学習器のうちの他の学習器に伝送することを含む。ブロック720において、圧縮された現在の残差ベクトルは、(例えば、学習処理システム610、620、630、640によって)複数の学習器のうちの各学習器において解凍される。解凍後、ブロック722において、複数の学習器のうちの各学習器は、(例えば、学習処理システム610、620、630、640によって)解凍されたベクトルの勾配をローカルに平均する。
本発明のいくつかの実施形態において、行列は、次に、ブロック724において示されるように、解凍されたベクトルに基づいて、誤差を調節するように修正される。例えば、本発明のいくつかの実施形態において、畳み込みカーネル520は、出力誤差情報に基づいて修正され、次に、修正されたカーネルは、各ニューラル・ネットワーク行列の修正を判定するために使用され、これは、「アップデート・パス」と呼ばれる。本発明のいくつかの実施形態において、修正された畳み込みカーネル520は、調節後、ブロック726において示されるように、訓練が完了したものと見なされない限り、訓練の次のミニ・バッチまたはエポックのために使用される。本発明のいくつかの実施形態において、1つのミニ・バッチによって修正された畳み込みカーネル520は、その後のミニ・バッチにおいて使用される。例えば、所定の誤差の閾値による予想出力に従って入力をCNNが識別する場合、訓練は、完了したものと見なされてよい。訓練がまだ完了していない場合、修正された畳み込みカーネルを使用して、別の訓練エポックが行われる。
本発明のいくつかの実施形態において、「フォワード・パスおよびバックワード・パス」の各反復は、訓練データ全体を使用する。代替として、訓練データは、ミニ・バッチ、またはサブセットに分割されることが可能である。バッチ化された訓練処理において、CNNは、ブロック708において示されるように、ミニ・バッチの出力を決定するために、フォワード・パスで伝搬される。誤差関数は、ブロック710において示されるように、バッチの予想出力からCNNがどれだけ遠くにあったかを計算するために使用される。勾配関数は、誤差関数に対して決定される。勾配関数は、例において、誤差についての、各ニューラル・ネットワーク行列の各エントリに対する偏導関数を含む。勾配関数は、勾配降下法に従って、各行列をどれだけ調節するかを表す。プロセッサは、ブロック724において示されるように、勾配関数に従って、畳み込みカーネルおよびバイアスを含む行列を後で修正する。ブロック728において示されるように、「フォワード・パス/バックワード・パス」は、より多くのミニ・バッチがある、または、CNNが訓練されない、あるいはその両方である限り繰り返される。ミニ・バッチは、訓練エポックを完了するのに必要な入力サンプルの総数のうちのいずれかの小部分を含むことができる。
図8は、本発明の1つまたは複数の実施形態による、圧縮された現在の残差ベクトルを生成するためのブロック716の実施例のロジックを示す。ブロック802において、スケーリングされた現在の残差ベクトルが、システムの各学習器において生成される。スケーリングされた現在の残差ベクトルは、所与のミニ・バッチのためのスケーリングされた残差勾配重みを含む。スケーリングされた現在の残差ベクトルは、現在の勾配ベクトルにスケーリング・パラメータを乗じ、次に、乗じた勾配ベクトルと以前の残差ベクトルを合計することによって生成される。本発明のいくつかの実施形態において、スケーリング・パラメータは、L2正規化に従って量子化誤差を最小化することによって計算される。
ブロック804において、現在の残差ベクトルの残差勾配重みは、一様な大きさの複数のビンに一様に分割することであり、一様な大きさは、ニューラル・ネットワークのハイパー・パラメータである。ブロック806において、それぞれの所与のビンのそれぞれの所与の残差勾配重みに対する極大値が識別される。本発明のいくつかの実施形態において、所与のビンの極大値は、所与のビンの残差勾配重みの最大絶対値である。
ブロック808において、所与のビンの極大値を超過する対応するスケーリングされた残差勾配重みを所与の残差勾配重みが有するかどうかが、それぞれの所与のビンのそれぞれの所与の残差勾配重みに対して判定される。ブロック810において、対応するスケーリングされた残差勾配重みを有する残差勾配重みが、所与のビンの極大値を超過することを判定すると、所与の残差勾配重みに対する量子化値が生成され、現在の残差ベクトルが更新される。本発明のいくつかの実施形態において、現在の残差ベクトルは、現在の残差ベクトルの所与の残差勾配重みを量子化値で置換することによって更新される。ブロックにおいて、および次に、現在の残差ベクトルの所与の残差勾配重みを量子化値で置換することによって現在の残差ベクトルを更新する。
以下の擬似コードは、処理フロー700を実行するために使用されることが可能な2つのアルゴリズムを記述している。
Figure 0007087079000001
Figure 0007087079000002
アルゴリズム1は、本発明の1つまたは複数の実施形態による、実施例の勾配重み通信方式を示す。アルゴリズム2は、(「AdaComp」と簡潔に呼ばれる)本発明の1つまたは複数の実施形態による実施例の圧縮方式を示す。アルゴリズム1は、アルゴリズム2の圧縮アルゴリズムをテストするために使用されることが可能な勾配重み通信方式である。アルゴリズム2は、アルゴリズム2のpack()およびunpack()関数の中にカプセル化される。これらの2つの関数は、例えば、処理フロー700のバックワード・パス・ステップ712と重み更新ステップ722との間に挿入されることが可能である。pack/unpack関数は、exchange()関数と関係なく実行されることが可能である。使用されるexchange()関数は、(例えば、リング・ベースvsパラメータ・サーバ・ベースといった)CNNの特定のトポロジに依存する可能性がある。
アルゴリズム2は、圧縮方式において利用されることが可能な量子化関数の1つの例を示す。符号ビットは、元の数字を表現するためにスケール値と共に使用される。この例において、単一のスケール値がそれぞれの所与の層のために使用され、スケール値は、所与の層のためのゲーム・ベクトルにおける全ての要素の絶対値の平均である。他の適切な量子化関数またはスケール値あるいはその両方は、本発明の1つまたは複数の実施形態において利用されることが可能である。
本発明のいくつかの実施形態において、アルゴリズム2は、50個から500個の要素間のビンの大きさ(L)に対する疎を通じて、各ビンの中の10個から100個までの要素をそれぞれ選択する。本発明のいくつかの実施形態において、8ビットのスパース・インデックス表現が、40個未満の要素のLの大きさに対して使用される。本発明のいくつかの実施形態において、16ビット表現は、(例えば、500個以上の要素、または10000個までの要素、あるいはその両方といった)大きいLの大きさに対して使用される。本発明のいくつかの実施形態において、8ビット表現または16ビット表現のうちの2ビットは、3進数化された(ternarized)データ値を表現するために使用される。
従来の32ビット浮動小数点表現と比較すると、アルゴリズム2は、畳み込み層に対しておよそ40倍、ならびに完全接続層および回帰層に対しておよそ200倍の効果的な圧縮率を達成することができる。アルゴリズム2を堅牢な圧縮技術にする1つの要因は、アルゴリズム2が自己調節可能な閾値を利用するというものである。アルゴリズム2は、各ビンにおける極大値に近い追加の残差勾配を送信する圧縮方式を適用するので、ミニ・バッチにおける重要な勾配の数に基づいて自動的に適応させることができる。
本発明は、統合の任意の可能な技術詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであることが可能である。コンピュータ・プログラム製品は、プロセッサが本発明の態様を実行するためのコンピュータ可読プログラム命令を保持するコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納することができる有形デバイスであることが可能である。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せであることが可能であるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝内***構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書において使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの、それ自体が一時的な信号であると解釈されるべきではない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から個々のコンピューティング・デバイス/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング・デバイス/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個々のコンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路機器のための構成データ、または、Smalltalk(R)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであることが可能である。コンピュータ可読プログラム命令は、スタンド・アロン・ソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で実行することができ、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されることが可能であり、または、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに対して行われることが可能である。いくつかの実施形態において、例えば、プログラマブル・ロジック回路機器、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用して、電子回路機器を個別化することによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書において説明される。流れ図またはブロック図あるいはその両方の各ブロック、ならびに流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行されることが可能であるということが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実行するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為の態様を実行する命令を含む製品を保持するべく、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の手法で機能するように指示することができるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実行するべく、コンピュータ実装処理を生み出すために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図およびブロック図の中の各ブロックは、指定された論理機能を実行するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部に相当することが可能である。いくつかの代替実装形態において、ブロック内に記された機能は、図中に記された順序とは異なる順序で発生することが可能である。例えば、連続して示された2つのブロックは、実際に、実質的に並行に実行されることが可能であり、またはブロックは時には、含まれる機能に応じて、逆の順序で実行されることが可能である。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定された機能または行為を行うか、専用ハードウェアとコンピュータ命令の組合せを行う、専用ハードウェア・ベースのシステムによって実行されることが可能であるということにも留意されたい。
本発明の様々な実施形態の説明は例証のために提示されてきたが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。説明された実施形態の範囲および思想から逸脱することなく、多くの変更および改変が当業者には明らかになる。本明細書において使用される専門用語は、実施形態の原理、実用的な用途、もしくは市場において見つかる技術に対する技術改良を最も良く説明するように、または、本明細書において説明される実施形態を当業者が理解できるように、選ばれた。

Claims (9)

  1. 深層学習ニューラル・ネットワーク(DNN)の訓練に適応性のある残差勾配圧縮のためのコンピュータ実装方法であって、
    複数の学習器のうちの第1の学習器のプロセッサによって、前記DNNのニューラル・ネットワーク層のための現在の勾配ベクトルを取得することであって、前記現在の勾配ベクトルが、訓練データのミニ・バッチから計算される前記ニューラル・ネットワーク層のパラメータの勾配重みを含む、前記現在の勾配ベクトルを取得することと、
    前記プロセッサによって、前記ミニ・バッチのための残差勾配重みを含む現在の残差ベクトルを生成することであって、以前の残差ベクトルと前記現在の勾配ベクトルを合計することを含む、前記現在の残差ベクトルを生成することと、
    前記プロセッサによって、前記現在の残差ベクトルの前記残差勾配重みを一様な大きさの複数のビンに分割すること、および前記複数のビンのうちの1つまたは複数のビンの前記残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて、圧縮された現在の残差ベクトルを生成することであって、前記残差勾配重みの前記サブセットを量子化することが、前記ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、前記ビンの前記一様な大きさが、前記DNNのハイパー・パラメータである、前記圧縮された現在の残差ベクトルを生成することと、
    前記プロセッサによって、前記圧縮された現在の残差ベクトルを前記複数の学習器のうちの第2の学習器に伝送することと
    を含む、コンピュータ実装方法。
  2. 前記圧縮された現在の残差ベクトルを生成することが、
    前記プロセッサによって、前記ミニ・バッチのためのスケーリングされた残差勾配重みを含むスケーリングされた現在の残差ベクトルを生成することであって、前記現在の勾配ベクトルに前記スケーリング・パラメータを乗じること、および前記乗じた勾配ベクトルと前記以前の残差ベクトルを合計することを含む、前記スケーリングされた現在の残差ベクトルを生成することと、
    前記現在の残差ベクトルの前記残差勾配重みを前記一様な大きさの前記複数のビンに分割することと、
    前記複数のビンの各ビンについて、前記ビンの前記残差勾配重みの絶対値の極大値を識別することと、
    各ビンの各残差勾配重みについて、前記スケーリングされた残差ベクトルの対応するスケーリングされた残差勾配重みが前記ビンの前記極大値を超過することを判定することと、
    各ビンの各残差勾配重みについて、前記スケーリングされた残差ベクトルの前記対応するスケーリングされた残差勾配重みが前記ビンの前記極大値を超過することを識別すると、所与の残差勾配重みに対する量子化値を生成し、前記現在の残差ベクトルの前記残差勾配重みを前記量子化値で置換することによって前記現在の残差ベクトルを更新することと
    を含む、請求項1に記載のコンピュータ実装方法。
  3. 前記スケーリング・パラメータが、L2正規化に従って量子化誤差を最小化することによって計算される、請求項2に記載のコンピュータ実装方法。
  4. 前記DNNが、1つまたは複数の畳み込みネットワーク層を含み、
    前記複数のビンの前記大きさが、前記1つまたは複数の畳み込み層に対して50にセットされる、
    請求項2に記載のコンピュータ実装方法。
  5. 前記DNNが、少なくとも1つまたは複数の完全に接続された層を含み、
    前記ビンの前記大きさが、前記1つまたは複数の完全に接続された層に対して500にセットされる、
    請求項2に記載のコンピュータ実装方法。
  6. 深層学習ニューラル・ネットワーク(DNN)の訓練に適応性のある残差勾配圧縮のためのシステムであって、複数の学習器を備え、前記複数の学習器のうちの少なくとも1つの学習器が、
    前記DNNのニューラル・ネットワーク層のための現在の勾配ベクトルを取得することであって、前記現在の勾配ベクトルが、訓練データのミニ・バッチから計算される前記ニューラル・ネットワーク層のパラメータの勾配重みを含む、前記現在の勾配ベクトルを取得することと、
    前記ミニ・バッチのための残差勾配重みを含む現在の残差ベクトルを生成することであって、以前の残差ベクトルと前記現在の勾配ベクトルを合計することを含む、前記現在の残差ベクトルを生成することと、
    前記現在の残差ベクトルの前記残差勾配重みを一様な大きさの複数のビンに分割すること、および前記複数のビンのうちの1つまたは複数のビンの前記残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて、圧縮された現在の残差ベクトルを生成することであって、前記残差勾配重みの前記サブセットを量子化することが、前記ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、前記ビンの前記一様な大きさが、前記DNNのハイパー・パラメータである、前記圧縮された現在の残差ベクトルを生成することと、
    前記圧縮された現在の残差ベクトルを前記複数の学習器のうちの第2の学習器に伝送することと
    を含む方法を行うように構成される、システム。
  7. 深層学習ニューラル・ネットワーク(DNN)の訓練に適応性のある残差勾配圧縮のためのコンピュータ・プログラムであって、複数の学習器のうちの少なくとも第1の学習器のプロセッサに、
    前記DNNのニューラル・ネットワーク層のための現在の勾配ベクトルを取得することであって、前記現在の勾配ベクトルが、訓練データのミニ・バッチから計算される前記ニューラル・ネットワーク層のパラメータの勾配重みを含む、前記現在の勾配ベクトルを取得することと、
    前記ミニ・バッチのための残差勾配重みを含む現在の残差ベクトルを生成することであって、以前の残差ベクトルと前記現在の勾配ベクトルを合計することを含む、前記現在の残差ベクトルを生成することと、
    前記現在の残差ベクトルの前記残差勾配重みを一様な大きさの複数のビンに分割すること、および前記複数のビンのうちの1つまたは複数のビンの前記残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて、圧縮された現在の残差ベクトルを生成することであって、前記残差勾配重みの前記サブセットを量子化することが、前記ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、前記ビンの前記一様な大きさが、前記DNNのハイパー・パラメータである、前記圧縮された現在の残差ベクトルを生成することと、
    前記圧縮された現在の残差ベクトルを前記複数の学習器のうちの第2の学習器に伝送することと
    実行させるためのコンピュータ・プログラム。
  8. 適応性のある残差勾配圧縮を介して深層学習ニューラル・ネットワーク(DNN)を訓練するためのコンピュータ実装方法であって、
    複数の学習器を備えるシステムによって、1つまたは複数のニューラル・ネットワーク層を使用して前記DNNの訓練のための訓練データを受信することと、
    前記複数の学習器のうちの各学習器において、前記訓練データのミニ・バッチからニューラル・ネットワーク層のための現在の勾配ベクトルを生成することであって、前記現在の勾配ベクトルが、前記ニューラル・ネットワーク層のパラメータの勾配重みを含む、前記現在の勾配ベクトルを生成することと、
    前記複数の学習器のうちの各学習器において、前記ミニ・バッチのための残差勾配重みを含む現在の残差ベクトルを生成することであって、以前の残差ベクトルと前記現在の勾配ベクトルを合計することを含む、前記現在の残差ベクトルを生成することと、
    前記現在の残差ベクトルの前記残差勾配重みを一様な大きさの複数のビンに分割すること、および前記複数のビンのうちの1つまたは複数のビンの前記残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて、前記複数の学習器のうちの各学習器において、圧縮された現在の残差ベクトルを生成することであって、前記残差勾配重みの前記サブセットを量子化することが、前記ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、前記ビンの前記一様な大きさが、前記DNNのハイパー・パラメータである、前記圧縮された現在の残差ベクトルを生成することと
    前記複数の学習器の間で、前記圧縮された現在の残差ベクトルを交換することと、
    前記複数の学習器のそれぞれにおいて、前記圧縮された現在の残差ベクトルを解凍することと、
    前記複数の学習器のそれぞれにおいて、前記ニューラル・ネットワーク層の前記パラメータの前記勾配重みを更新することと
    を含む、コンピュータ実装方法。
  9. 適応性のある残差勾配圧縮を介して深層学習ニューラル・ネットワーク(DNN)を訓練するためのシステムであって、複数の学習器を備え、
    1つまたは複数のニューラル・ネットワーク層を使用して前記DNNの訓練のための訓練データを受信することと、
    前記複数の学習器のうちの各学習器において、前記訓練データのミニ・バッチからニューラル・ネットワーク層のための現在の勾配ベクトルを生成することであって、前記現在の勾配ベクトルが、前記ニューラル・ネットワーク層のパラメータの勾配重みを含む、前記現在の勾配ベクトルを生成することと、
    前記複数の学習器のうちの各学習器において、前記ミニ・バッチのための残差勾配重みを含む現在の残差ベクトルを生成することであって、以前の残差ベクトルと前記現在の勾配ベクトルを合計することを含む、前記現在の残差ベクトルを生成することと、
    前記現在の残差ベクトルの前記残差勾配重みを一様な大きさの複数のビンに分割すること、および前記複数のビンのうちの1つまたは複数のビンの前記残差勾配重みのサブセットを量子化することに少なくとも部分的に基づいて、前記複数の学習器のうちの各学習器において、圧縮された現在の残差ベクトルを生成することであって、前記残差勾配重みの前記サブセットを量子化することが、前記ミニ・バッチのためのスケーリング・パラメータを計算すること、および各ビンの極大値を計算することに少なくとも部分的に基づき、前記ビンの前記一様な大きさが、前記DNNのハイパー・パラメータである、前記圧縮された現在の残差ベクトルを生成することと、
    前記複数の学習器の間で、前記圧縮された現在の残差ベクトルを交換することと、
    前記複数の学習器のそれぞれにおいて、前記圧縮された現在の残差ベクトルを解凍することと、
    前記複数の学習器のそれぞれにおいて、前記ニューラル・ネットワーク層の前記パラメータの前記勾配重みを更新することと
    を含む方法を行うように構成される、システム。
JP2020529245A 2017-12-04 2018-11-30 深層学習アプリケーションのための堅牢な勾配重み圧縮方式 Active JP7087079B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/830,170 2017-12-04
US15/830,170 US11295208B2 (en) 2017-12-04 2017-12-04 Robust gradient weight compression schemes for deep learning applications
PCT/IB2018/059516 WO2019111118A1 (en) 2017-12-04 2018-11-30 Robust gradient weight compression schemes for deep learning applications

Publications (3)

Publication Number Publication Date
JP2021505993A JP2021505993A (ja) 2021-02-18
JP2021505993A5 JP2021505993A5 (ja) 2021-04-01
JP7087079B2 true JP7087079B2 (ja) 2022-06-20

Family

ID=66659264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020529245A Active JP7087079B2 (ja) 2017-12-04 2018-11-30 深層学習アプリケーションのための堅牢な勾配重み圧縮方式

Country Status (5)

Country Link
US (1) US11295208B2 (ja)
JP (1) JP7087079B2 (ja)
DE (1) DE112018006189T5 (ja)
GB (1) GB2582232A (ja)
WO (1) WO2019111118A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11195096B2 (en) * 2017-10-24 2021-12-07 International Business Machines Corporation Facilitating neural network efficiency
US11216719B2 (en) * 2017-12-12 2022-01-04 Intel Corporation Methods and arrangements to quantize a neural network with machine learning
US11961000B2 (en) * 2018-01-22 2024-04-16 Qualcomm Incorporated Lossy layer compression for dynamic scaling of deep neural network processing
US10698766B2 (en) * 2018-04-18 2020-06-30 EMC IP Holding Company LLC Optimization of checkpoint operations for deep learning computing
CN108665067B (zh) * 2018-05-29 2020-05-29 北京大学 用于深度神经网络频繁传输的压缩方法及***
CN112149706B (zh) * 2019-06-28 2024-03-15 北京百度网讯科技有限公司 模型训练方法、装置、设备和介质
US11402233B2 (en) * 2019-07-23 2022-08-02 Mapsted Corp. Maintaining a trained neural network in magnetic fingerprint based indoor navigation
GB2581546B (en) * 2019-08-22 2021-03-31 Imagination Tech Ltd Methods and systems for converting weights of a deep neural network from a first number format to a second number format
CN110659725B (zh) * 2019-09-20 2023-03-31 字节跳动有限公司 神经网络模型的压缩与加速方法、数据处理方法及装置
US11461645B2 (en) * 2019-12-02 2022-10-04 International Business Machines Corporation Initialization of memory networks
CN110995488B (zh) * 2019-12-03 2020-11-03 电子科技大学 一种基于分层参数服务器的多机构协同学习***及方法
KR20210076687A (ko) * 2019-12-16 2021-06-24 삼성전자주식회사 뉴럴 프로세싱 장치 및 뉴럴 프로세싱 장치에서 뉴럴 네트워크를 처리하는 방법
CN113297128B (zh) * 2020-02-24 2023-10-31 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
US11875256B2 (en) 2020-07-09 2024-01-16 International Business Machines Corporation Dynamic computation in decentralized distributed deep learning training
US11886969B2 (en) * 2020-07-09 2024-01-30 International Business Machines Corporation Dynamic network bandwidth in distributed deep learning training
US11977986B2 (en) 2020-07-09 2024-05-07 International Business Machines Corporation Dynamic computation rates for distributed deep learning
US11900640B2 (en) 2020-07-15 2024-02-13 Tencent America LLC Method and apparatus for substitutional neural residual compression
CN116711249A (zh) * 2020-12-29 2023-09-05 高通股份有限公司 用于无线通信***中的联合学习的梯度向量的信令
CN113193999B (zh) * 2021-04-29 2023-12-26 东北大学 一种基于深度确定性策略梯度的虚拟网络映射方法
CN113780461B (zh) * 2021-09-23 2022-08-05 中国人民解放军国防科技大学 基于特征匹配的鲁棒神经网络训练方法
US20240104346A1 (en) * 2022-09-15 2024-03-28 Huawei Technologies Co., Ltd. Method and device for compressing generative pre-trained language models via quantization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598972A (zh) 2015-01-22 2015-05-06 清华大学 一种大规模数据回归神经网络快速训练方法
US20170098171A1 (en) 2015-10-02 2017-04-06 International Business Machines Corporation Asynchronous stochastic gradient descent

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926804A (en) 1994-07-01 1999-07-20 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Discriminant neural networks
KR100364753B1 (ko) * 1999-11-19 2002-12-16 엘지전자 주식회사 칼라 히스토그램의 빈값 양자화 방법
US9235799B2 (en) 2011-11-26 2016-01-12 Microsoft Technology Licensing, Llc Discriminative pretraining of deep neural networks
US9483728B2 (en) 2013-12-06 2016-11-01 International Business Machines Corporation Systems and methods for combining stochastic average gradient and hessian-free optimization for sequence training of deep neural networks
US20180075347A1 (en) * 2016-09-15 2018-03-15 Microsoft Technology Licensing, Llc Efficient training of neural networks
US20180107926A1 (en) * 2016-10-19 2018-04-19 Samsung Electronics Co., Ltd. Method and apparatus for neural network quantization
US10685285B2 (en) * 2016-11-23 2020-06-16 Microsoft Technology Licensing, Llc Mirror deep neural networks that regularize to linear networks
US11062215B2 (en) * 2017-03-17 2021-07-13 Microsoft Technology Licensing, Llc Using different data sources for a predictive model

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598972A (zh) 2015-01-22 2015-05-06 清华大学 一种大规模数据回归神经网络快速训练方法
US20170098171A1 (en) 2015-10-02 2017-04-06 International Business Machines Corporation Asynchronous stochastic gradient descent

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHEN Chia-Yu et al.,AdaComp : Adaptive Residual Gradient Compression for Data-Parallel Distributed Training,arXiv.org [online],2017年12月07日,[2022年5月25日検索], インターネット<URL : https://arxiv.org/abs/1712.02679v1>

Also Published As

Publication number Publication date
US20190171935A1 (en) 2019-06-06
DE112018006189T5 (de) 2020-09-03
US11295208B2 (en) 2022-04-05
GB202009717D0 (en) 2020-08-12
JP2021505993A (ja) 2021-02-18
WO2019111118A1 (en) 2019-06-13
GB2582232A (en) 2020-09-16

Similar Documents

Publication Publication Date Title
JP7087079B2 (ja) 深層学習アプリケーションのための堅牢な勾配重み圧縮方式
US20180240062A1 (en) Collaborative algorithm development, deployment, and tuning platform
US11263052B2 (en) Determining optimal compute resources for distributed batch based optimization applications
CN110580197A (zh) 大型模型深度学习的分布式计算架构
US11681914B2 (en) Determining multivariate time series data dependencies
US11429434B2 (en) Elastic execution of machine learning workloads using application based profiling
JP7398482B2 (ja) ニューラル・ネットワークのデータセット依存の低ランク分解
US20230359899A1 (en) Transfer learning based on cross-domain homophily influences
WO2020148588A1 (en) Machine learning framework for finding materials with desired properties
US11915121B2 (en) Simulator-assisted training for interpretable generative models
CN112446498A (zh) 在线部分奖励学习
WO2022022571A1 (en) Resource allocation for tuning hyperparameters of large-scale deep learning workloads
JP2023540879A (ja) ゼロショット言語間転移学習
WO2024002753A1 (en) Thermal and performance management
US20220366230A1 (en) Markov processes using analog crossbar arrays
AU2021271202B2 (en) Matrix sketching using analog crossbar architectures
JP2022181195A (ja) 方法、連合学習システム、およびコンピュータプログラム(圧縮埋め込みを用いた垂直連合学習)
US11574196B2 (en) Dynamic management of weight update bit length
JP2023545299A (ja) ゲート・リカレント・ニューラル・ネットワークのためのゲート・ユニット
WO2019136178A1 (en) Collaborative algorithm development, deployment, and tuning platform
US20220398452A1 (en) Supervised similarity learning for covariate matching and treatment effect estimation via self-organizing maps
US20230385599A1 (en) Parallel and distributed processing of propositional logical neural networks
US20230214705A1 (en) Model-agnostic input transformation for neural networks
US20240020528A1 (en) Training a neural network using an accelerated gradient with shuffling

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210128

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210423

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220608

R150 Certificate of patent or registration of utility model

Ref document number: 7087079

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150