(57)【要約】  本開示の態様は、非一貫性確率的勾配降下（ＩＳＧＤ）アルゴリズムを使用して畳み込みニューラルネットワークをトレーニングする手法を記述する。ＩＳＧＤアルゴリズムによって使用されるトレーニングバッチのトレーニングの労力は、特定のトレーニングバッチに対して決定された損失に従って動的に調整され、２つの下位状態（十分にトレーニングされているか、または十分にトレーニングされていない）に分類される。ＩＳＧＤアルゴリズムは、十分にトレーニングされているバッチに対する反復を減らしながら、十分にトレーニングされていないバッチに対する反復を増やす。
2019509550.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのコンピューティングデバイスによって、トレーニングデータセットを使用して非一貫性確率的勾配降下（ＩＳＧＤ）アルゴリズムで畳み込みニューラルネットワーク（ＣＮＮ）をトレーニングすることを含み、
前記トレーニングが、ある反復回数だけ前記ＩＳＧＤアルゴリズムを実行することを含む、方法。
【請求項２】
前記コンピューティングデバイスが複数のプロセッサを含み、前記方法が、前記少なくとも１つのコンピューティングデバイスによって、前記非一貫性確率的勾配降下アルゴリズムの任意の計算の少なくとも一部を前記複数のプロセッサ上で並列化することをさらに含む、請求項１に記載の方法。
【請求項３】
トレーニングデータのバッチを使用して前記ＣＮＮをトレーニングすることと、損失の決定に基づいて、前記バッチを十分にトレーニングされていない状態または十分にトレーニングされている状態として分類することとをさらに含む、請求項２に記載の方法。
【請求項４】
十分にトレーニングされていないとして分類されたバッチを、前記バッチの決定された損失が所定のしきい値を下回るか、または所定の反復回数に達するまで、継続的にトレーニングすることをさらに含む、請求項３に記載の方法。
【請求項５】
特定のバッチのトレーニング状態に関してバッチ間でトレーニングの労力をリバランスすることをさらに含む、請求項３に記載の方法。
【請求項６】
前記継続されるトレーニングが、次の問題
【数１】
2019509550.tif 000064
によって定義され、ｎwが前記ネットワーク内のウェイトパラメータの数であり、εが前記第２の項のパラメータであり、前記第１の項が現在の十分にトレーニングされていないバッチｄtの前記損失と管理限界の間の差を最小化する、請求項４に記載の方法。
【請求項７】
前記損失が
【数２】
2019509550.tif 000065
によって定義された管理限界よりも大きい場合に、バッチが十分にトレーニングされていないとして分類される、請求項３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、本明細書において詳細に記載されているかのように、参照によって包含される、２０１６年２月５日に出願された米国特許仮出願第62/291,554号の恩恵を請求する。
【０００２】
本開示は、概して、畳み込みニューラルネットワークおよび畳み込みニューラルネットワークで構成されるシステムに関する。より具体的には、本開示は、非一貫性確率的勾配降下を採用して畳み込みニューラルネットワークをトレーニングする、改善された方法に関する。
【背景技術】
【０００３】
周知のように、大規模なニューラルネットワークは、自然言語処理、ビデオ動作分析、意思決定システム、および薬物設計を含む、多数の技術分野において広範囲に適用可能であるということが分かっている。ニューラルネットワークの性能にとって特に重要なことは、トレーニングである。
【０００４】
しかし、非線形性で満たされた大規模なニューラルネットワークのトレーニングが困難であるということは有名である。例えば、１０億個のパラメータを有するネットワークのトレーニングを完了するには、１０，０００個の中央処理装置（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）コアを使用して数日かかることがある。
【０００５】
この重要性および困難さを考えると、ニューラルネットワークのトレーニングの効率を改善するシステムおよび方法は、従来技術にとって望ましい追加となる。
【発明の概要】
【０００６】
従来技術における改善が、非一貫性確率的勾配降下（ＩＳＧＤ：ｉｎｃｏｎｓｉｓｔｅｎｔ  ｓｔｏｃｈａｓｔｉｃ  ｇｒａｄｉｅｎｔ  ｄｅｓｃｅｎｔ）アルゴリズムを使用して畳み込みニューラルネットワークをトレーニングする手法を対象にする本開示の態様に従って行われる。ＩＳＧＤアルゴリズムによって使用されるトレーニングバッチのトレーニングの労力は、特定のトレーニングバッチに対して決定された損失に従って動的に調整され、２つの下位状態（十分にトレーニングされているか、または十分にトレーニングされていない）に分類される。
【０００７】
従来技術のトレーニング方法とは際立って対照的に、ＩＳＧＤアルゴリズムは、十分にトレーニングされているバッチに対する反復を減らしながら、十分にトレーニングされていないバッチに対する反復を増やす。その結果、ＩＳＧＤは、従来技術の方法よりも非常に速く収束し、精度を改善し、大きいバッチサイズをサポートする。
【図面の簡単な説明】
【０００８】
本開示のさらに完全な理解が、次の添付の図面を参照することによって実現されてよい。
【０００９】
【図１】図１は、本開示の態様に従う、ニューラルネットワークのトレーニング方式を示す概略ブロック図である。
【図２】図２は、本開示の態様に従う、バッチに対するトレーニングおよび学習パラメータの更新を示す概略ブロック図である。
【図３】図３は、本開示の態様に従う、アルゴリズム１（非一貫性確率的勾配降下手法）の疑似コードのリストである。
【図４】図４は、本開示の態様に従う、アルゴリズム２（十分にトレーニングされていないバッチを高速化するために、保守的な下位問題（ｃｏｎｓｅｒｖａｔｉｖｅ  ｓｕｂｐｒｏｂｌｅｍ）を解く方法）の疑似コードのリストである。
【図５】図５は、本開示の態様に従う、本開示の方法が動作してよいコンピュータシステムの例の概略ブロック図である。
【図６Ａ】図６Ａは、本開示の態様に従う、２つの制御された実験における、１０個の単一クラスのバッチおよびｉｉｄバッチの損失トレース（ｌｏｓｓ  ｔｒａｃｅｓ）のプロットであって、単一クラスのバッチを示す（ｂｉはＣＩＦＡＲ−１０の各カテゴリからのランダムに取得された１００個の画像である）図である。
【図６Ｂ】図６Ｂは、本開示の態様に従う、２つの制御された実験における、１０個の単一クラスのバッチおよびｉｉｄバッチの損失トレース（ｌｏｓｓ  ｔｒａｃｅｓ）のプロットであって、独立同一分布（ｉｉｄ：ｉｎｄｅｐｅｎｄｅｎｔ  ｉｄｅｎｔｉｃａｌｌｙ  ｄｉｓｔｒｉｂｕｔｅｄ）バッチを示す図である。
【図７】図７は、本開示の態様に従う、ＣＩＦＡＲ−１０に対するネットワークのトレーニングの損失分布を示すプロットであり、損失が、エポック別に配置されていることを説明する図である。
【図８】図８は、本開示の態様に従う、リアルタイムでの十分にトレーニングされていないバッチの識別を示すプロットである。
【図９】図９は、本開示の態様に従う、ＩＳＧＤにおけるデータの並列化を示す概略ブロック図である。
【図１０】図１０は、本開示の態様に従う、異なるバッチサイズでの、２つのシステム構成の下での予測トレーニング時間を示すグラフである。
【図１１Ａ】図１１Ａは、本開示の態様に従う、ＣＩＦＡＲに対するトレーニングを示すプロットであって、ＩＳＧＤの損失分布をエポック別に示す。
【図１１Ｂ】図１１Ｂは、本開示の態様に従う、ＣＩＦＡＲに対するトレーニングを示すプロットであって、ＳＧＤの損失分布をエポック別に示す。
【図１１Ｃ】図１１Ｃは、本開示の態様に従う、ＣＩＦＡＲに対するトレーニングを示すプロットであって、バッチの損失分布のＳＴＤを示す。
【図１１Ｄ】図１１Ｄは、本開示の態様に従う、ＣＩＦＡＲに対するトレーニングを示すプロットであって、２０個のバッチの平均損失を示す。
【図１１Ｅ】図１１Ｅは、本開示の態様に従う、ＣＩＦＡＲに対するトレーニングを示すプロットであって、検証精度を示す。
【図１２Ａ】図１２Ａは、本開示の態様に従う、検証精度およびトレーニング損失（ｔｒａｉｎｉｎｇ  ｌｏｓｓ）を示すプロットであって、ＭＮＩＳＴテストの精度を示す。
【図１２Ｂ】図１２Ｂは、本開示の態様に従う、検証精度およびトレーニング損失（ｔｒａｉｎｉｎｇ  ｌｏｓｓ）を示すプロットであって、ＣＩＦＡＲテストの精度を示す。
【図１２Ｃ】図１２Ｃは、本開示の態様に従う、検証精度およびトレーニング損失（ｔｒａｉｎｉｎｇ  ｌｏｓｓ）を示すプロットであって、ＩｍａｇｅＮｅｔのＴＯＰ  ５精度（Ｔｏｐ  ５  ａｃｃｕｒａｃｙ）を示す。
【図１２Ｄ】図１２Ｄは、本開示の態様に従う、検証精度およびトレーニング損失（ｔｒａｉｎｉｎｇ  ｌｏｓｓ）を示すプロットであって、ＭＮＩＳＴのトレーニング誤差を示す。
【図１２Ｅ】図１２Ｅは、本開示の態様に従う、検証精度およびトレーニング損失（ｔｒａｉｎｉｎｇ  ｌｏｓｓ）を示すプロットであって、ＣＩＦＡＲのトレーニング誤差を示す。
【図１２Ｆ】図１２Ｆは、本開示の態様に従う、検証精度およびトレーニング損失（ｔｒａｉｎｉｎｇ  ｌｏｓｓ）を示すプロットであって、ＩｍａｇｅＮｅｔのトレーニング誤差を示す。
【図１３Ａ】図１３Ａは、本開示の態様に従う、合計トレーニング時間に対するバッチサイズの影響を示すプロットであって、ＭＮＩＳＴを示す。
【図１３Ｂ】図１３Ｂは、本開示の態様に従う、合計トレーニング時間に対するバッチサイズの影響を示すプロットであって、ＣＩＦＡＲを示す。
【図１３Ｃ】図１３Ｃは、本開示の態様に従う、合計トレーニング時間に対するバッチサイズの影響を示すプロットであって、ＩｍａｇｅＮｅｔを示す。
【図１４Ａ】図１４Ａは、本開示の態様に従う、Ｎｅｓｔｅｒｏｖの加速勾配降下を使用してトレーニングされた、ＩｍａｇｅＮｅｔに対する検証精度およびトレーニング損失の進行を示すプロットであって、ＩｍａｇｅＮｅｔのトレーニング誤差を示す。
【図１４Ｂ】図１４Ｂは、本開示の態様に従う、Ｎｅｓｔｅｒｏｖの加速勾配降下を使用してトレーニングされた、ＩｍａｇｅＮｅｔに対する検証精度およびトレーニング損失の進行を示すプロットであって、ＩｍａｇｅＮｅｔのＴＯＰ  １精度（ｔｏｐ  １  ａｃｃｕｒａｃｙ）を示す。
【図１５】図１５は、複数の異なるシナリオに関してＩＳＧＤの性能を示す表である。
【００１０】
これらの図および詳細な説明によって、実施形態例についてさらに完全に説明する。ただし、本開示に従う実施形態は、さまざまな形態で具現化されてよく、図面および詳細な説明において説明された特定の実施形態または例示的実施形態に限定されない。
【発明を実施するための形態】
【００１１】
以下では、単に、本開示の原理について説明する。したがって、本明細書において明示的に説明されていたり、示されていたりしないが、本開示の原理を具現化する、本開示の思想および範囲に含まれるさまざまな構成を、当業者が考案できるであろうということが、理解されるであろう。
【００１２】
さらに、本明細書において挙げられたすべての例および条件付き言語は、本開示の原理および本発明者によって従来技術の改善に対して貢献された概念を理解することにおいて読者を支援するために、主に教育のみを目的としていることが明確に意図されており、そのような具体的に挙げられた例および条件に限定されないと解釈されるべきである。
【００１３】
また、本開示の原理、態様、および実施形態、ならびそれらの特定の例を列挙する本明細書におけるすべての記述は、それらと構造的に同等のものおよび機能的に同等のものの両方を包含するよう意図されている。加えて、そのような同等のものが、現在知られている同等のものと、将来開発される同等のもの（すなわち、構造に関わらず同じ機能を実行する、開発される任意の要素）の両方を含むことが意図されている。
【００１４】
したがって、例えば、本明細書におけるすべてのブロック図が、本開示の原理を具現化する回路の例の概念図を表しているということが、当業者によって理解されるであろう。同様に、任意のフローチャート、フロー図、遷移状態図、疑似コードなどがさまざまなプロセスを表し、これらが、コンピュータ可読媒体内で実質的に表されてよく、そのためコンピュータまたはプロセッサが明示的に示されているかどうかに関わらず、コンピュータまたはプロセッサによって実行されてよいということが、理解されるであろう。
【００１５】
「プロセッサ」というラベルの付いたすべての機能ブロックを含む、図面に示されているさまざまな要素の機能は、専用ハードウェア、および適切なソフトウェアと共にソフトウェアを実行できるハードウェアを使用することによって、提供されてよい。機能は、プロセッサによって提供される場合、単一の専用プロセッサによって提供されるか、単一の共有プロセッサによって提供されるか、または一部が共有されてよい複数の個別のプロセッサによって、提供されてよい。さらに、「プロセッサ」または「コントローラ」という用語の明示的使用は、ソフトウェアを実行できるハードウェアのことを排他的に指していると解釈されるべきではなく、デジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）ハードウェア、ネットワークプロセッサ、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ソフトウェアを格納するための読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、および不揮発性ストレージを暗黙的に含んでよいが、これらに限定されない。その他の、従来および／またはカスタムのハードウェアが含まれてもよい。
【００１６】
ソフトウェアモジュール（または、ソフトウェアであることが暗示される、単にモジュール）は、本明細書では、プロセスのステップおよび／またはテキストの説明の実行を示すフローチャートの要素またはその他の要素の任意の組み合わせとして表されてよい。そのようなモジュールは、明示的または暗黙的に示されているハードウェアによって実行されてよい。
【００１７】
本明細書において特に明示的に規定されない限り、図面を構成する各図は、正確な縮尺率ではない。
【００１８】
さらに背景の目的で、テラフロップス（ＴＦＬＯＰｓ：ｔｅｒａ−ｆｌｏａｔｉｎｇ−ｐｏｉｎｔ−ｏｐｅｒａｔｉｏｎｓ−ｐｅｒ−ｓｅｃｏｎｄ）を実現する計算技術が、ニューラルネットワークの開発およびその適用を著しく加速したということに留意する。具体的には、前述したように、大規模なニューラルネットワークが、自然言語処理、ビデオ動作分析、意思決定システム、および創薬に関連するシステムを大幅に改善した。しかし、そのような改善および適用可能性にもかかわらず、非線形性で満たされた大規模なニューラルネットワークをトレーニングすることは、依然として非常に困難である。例えば、１０億個のパラメータを有するネットワークのトレーニングを完了するには、１０，０００個のＣＰＵコアを使用して最大で数日かかる。このような計算の課題は、従来技術において広く使用されている勾配に基づくトレーニング方法の効率を改善することの重要性を浮き彫りにした。
【００１９】
当業者によって容易に理解されるように、ニューラルネットワークのトレーニングは、有限なトレーニングセットに対して、定義された目的関数（ｉｎｔｅｎｄｅｄ  ｆｕｎｃｔｉｏｎ）を近似するための最適なパラメータを検索する、最適化問題の一種である。トレーニングの注目するべき側面は、豊富なネットワークパラメータによって定義された広大な解超空間（ｓｏｌｕｔｉｏｎ  ｈｙｐｅｒｓｐａｃｅ）である。例として、最近のＩｍａｇｅＮｅｔコンテストでは、畳み込みニューラルネットワークのパラメータサイズｎが１０９に増加する例が見られた。このような規模の最適化問題を解くことは、必要な１０９ｘ１０９のサイズのヘッシアン行列が現在のコンピュータアーキテクチャによって取り組まれるには大きすぎるため、二次最適化手法（ｓｅｃｏｎｄ  ｏｒｄｅｒ  ｏｐｔｉｍｉｚａｔｉｏｎ  ｍｅｔｈｏｄｓ）にとっては法外に難しい。そのため、大規模なニューラルネットワークをトレーニングするために、一次の勾配降下（ｆｉｒｓｔ  ｏｒｄｅｒ  ｇｒａｄｉｅｎｔ  ｄｅｓｃｅｎｔ）が広く使用されている。
【００２０】
当業者によってさらに理解されるように、標準的な一次の完全な勾配降下（ＧＤ：Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ）は、データセット全体を使用して勾配を計算する。完全な傾斜降下の好ましい線形収束率（Ｏ（ρk），ρ＜１）にもかかわらず、反復における計算は、データセットのサイズと共に線形に増加する。そのため、この手法は、莫大な量のラベル付きデータを使用してトレーニングされるニューラルネットワークには適していない。
【００２１】
この問題に対処するために、トレーニング例の間に大量の冗長性が存在するという観察から、確率的勾配降下（ＳＧＤ：Ｓｔｏｃｈａｓｔｉｃ  Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ）手法が開発された。ＳＧＤは、ランダムなサンプルのバッチを使用してデータセットを近似することによって動作し、バッチから計算された確率的勾配を使用してモデルを更新する。ＳＧＤの収束率
【００２２】
【数１】
2019509550.tif 000003
（ここで、ｂはバッチサイズ）は、ＧＤよりも遅いが、ＳＧＤは、ある期間内に、ＧＤよりも非常に高速にモデルを更新する（すなわち、ｋが大きい）。そのため実際には、ＳＧＤでは、ＧＤと比べて高速な収束が観察できる。特に、ＳＧＤは、良好なシステム利用率と高速な勾配の更新との間の「スイートスポット」にヒットする。したがって、ＳＧＤは、大規模なニューラルネットワークをトレーニングするための一般的で効果的な方法になった。
【００２３】
ＳＧＤにおける１つの重要な動作は、データセットからランダムなバッチを取得することである。そのような動作は数学的に単純であるように思えるが、それにもかかわらず、例えばＩｍａｇｅＮｅｔのデータセットなどの大規模なデータセットに対して実行することは、簡単ではない。当業者によって容易に理解されるように、最先端の技術的近似は、固定サイクル疑似ランダム（ＦＣＰＲ：Ｆｉｘｅｄ  Ｃｙｃｌｅ  Ｐｓｅｕｄｏ  Ｒａｎｄｏｍ）サンプリング（本明細書において後で定義される）であり、このサンプリングは、リング、例えば、ｄ0→ｄ１→ｄ2→ｄ0→ｄ1→．．．（ここで、ｄiはバッチを示す）のように、事前に並べ替えられたデータセットから、バッチを取得する。
【００２４】
この場合、１つのバッチが１つのエポックにおいて正確に１回ネットワークを更新するため、各バッチは同じトレーニングの相互作用を受ける。この技術的単純化によって、バッチがネットワークに反復的に流れ込むことができるようになり、これが統計学におけるランダムサンプリングとは異なっているということに注意されたい。一方、トレーニングでは、勾配の分散がバッチを差別化するということ、および損失の大きいバッチからの勾配の更新が、損失の小さいバッチよりも大きく寄与するということが知られている。
【００２５】
本明細書では、バッチ間でトレーニングの労力を再バランス調整するための、非一貫性確率的勾配降下（ＩＳＧＤ）と呼ぶ手法を開示する。この非一貫性には、バッチでの不均一な勾配の更新が反映される。ＩＳＧＤは、バッチのトレーニングの状態を、関連する損失によって測定する。ＩＳＧＤは、任意の反復ｔで、反復［ｔ−ｎb，ｔ］における損失をトレースする。ここで、ｎbはデータセット内の個別のバッチの数である。これらの損失は、トレーニング時に、十分にトレーニングされていないバッチを識別するための動的上側しきい値（ｄｙｎａｍｉｃ  ｕｐｐｅｒ  ｔｈｒｅｓｈｏｌｄ）の作成に役立つ。あるバッチの損失がしきい値を超えた場合、ＩＳＧＤは、現在のバッチの損失と平均値の間の相違を最小限に抑えるという新しい下位問題を解くことによって、このバッチに対するトレーニングを加速する。この下位問題は、パラメータの変化を抑制することによってオーバーシュートを回避するために、保守的な制約も含んでいる。
【００２６】
この下位問題の１つの重要な側面は、現在のネットワークのパラメータに近接した状態に留まりながら、十分にトレーニングされていないバッチに対する追加の勾配の更新を可能にするということである。経験的実験は、ＩＳＧＤが、特に最終段階において、さまざまな主流のデータセットおよびネットワークに対して、ベースライン手法であるＳＧＤよりも非常に良い実行結果をもたらすということを示している。
【００２７】
実用上の検討のために、他のシステム要因を考慮して、収束率に対するバッチサイズの影響についても調査する。バッチサイズを大きくすると、収束が早まるが、反復における計算が線形に増加する。単一のノードのトレーニングを含むシナリオでは、頻繁な勾配の更新を保証するために、小さいバッチが好ましい。複数のノードのトレーニングを含むシナリオでは、反復ごとに、ノード間の重い同期処理が伴う。勾配の更新が多いほど、同期処理のコストが高くなる。この場合、適度な大きさのバッチによって、全体的な通信を減らし、システムの飽和および利用可能な並列性も改善する。
【００２８】
ここで図１を参照すると、本開示の態様に従って、方法の概要を示す概略ブロック図が示されている。前述したように、繰り返す価値がある。ＳＧＤは、ＣＮＮのトレーニングに広く使用されている。ＳＧＤでは、データセット全体がバッチのセットに分割される。ＳＧＤは、すべてのバッチを同様に扱い、各バッチをエポック内で反復的にトレーニングする。特に、個々のバッチをトレーニングするコストは、サンプリングバイアス、画像の本質的相違などに（部分的に）起因して、全く異なる。したがって、ＳＧＤは非常に非効率的である。
【００２９】
際立って対照的に、本出願の非一貫性確率的勾配降下（ＩＳＧＤ）手法は、バッチのトレーニングの反復回数を動的に変更する。ＩＳＧＤでは、バッチが２つの状態（十分にトレーニングされているか、または十分にトレーニングされていない）に分類される。その後、ＩＳＧＤは、十分にトレーニングされているバッチに対する反復を減らしながら、十分にトレーニングされていないバッチに対する反復を増やす。
【００３０】
特に、ＩＳＧＤは、ＳＧＤよりも非常に早く収束する。さらに、ＩＳＧＤは、十分にトレーニングされていないバッチに対してより多くのトレーニングを適用するため、精度を向上させる。最後に、ＩＳＧＤは大きいバッチサイズをサポートし、このことは、下で示すように、マルチＧＰＵシステムで非常に役立つ。
【００３１】
再び図１を参照すると、ブロック１０１で、トレーニング対象の画像データおよびネットワークが入力されていることが観察できる。トレーニングエポックの最大数が指定された後、ブロック１０２および１０３で、このトレーニングエポックの最大数が完了する。
【００３２】
この時点で、本明細書ではいくつかの用語が使用されているため、それらの用語を定義することは有益である。知られており、本明細書において使用されているように、エポックは、すべてのトレーニング例の１つのフォワードパスおよび１つのバックワードパスである。バッチサイズは、１つのフォワードパス／バックワードパスにおけるトレーニング例の数である。バッチサイズが大きいほど、多くのメモリが必要になる。最後に、反復はパスであり、反復回数はパスの数である。各パスは、［バッチサイズ］の数の例を使用する。明確にするために、１つのパスは１つのフォワードパスおよび１つのバックワードパスである。フォワードパスおよびバックワードパスは、独立してカウントされない。
【００３３】
トレーニングが進行するにつれて、トレーニングがバッチに適用され、適切な学習パラメータが更新される。完了時に、別のバッチが取得され、トレーニングがそのバッチにも適用される。このプロセスが、処理対象のバッチがなくなるまで継続する。
【００３４】
ブロック１０３で、学習したパラメータが、テストデータを使用してテストされ、このプロセス全体が、エポックの数が最大値に達するまで繰り返される。ブロック１０４で、トレーニング後に、出力パラメータが出力される。
【００３５】
図１は、本開示によるＣＮＮトレーニングの概要を示しているが、図２は、図１に示された、ブロック１０２の動作をさらに詳細に示している概略ブロック図である。引き続き図２を参照すると、ブロック２０１で、トレーニングデータのバッチが入力されていることが観察できる。ブロック２０２で、フォワードおよびバックワードトレーニングが、入力トレーニングバッチに適用される。ブロック２０３で損失が決定され、損失値がしきい値を超えた場合、または最大反復回数が最大数よりも多い場合、このバッチに対するトレーニングが続行される（ブロック２０２）。損失値がしきい値よりも小さいか、または反復回数が最大数よりも少ない場合、引き続き、図１（ブロック１０３／１０２）のプロセス全体に戻る。
【００３６】
この時点で、ＩＳＧＤが、損失情報に基づいて十分にトレーニングされていないバッチを識別した後に、十分にトレーニングされていないバッチに対してさらにトレーニングを適用することができ、すべてのバッチが同様のトレーニング速度を示すように、十分にトレーニングされていないバッチが十分にトレーニングされているバッチに追随できるようにするということに、注目するべきである。
【００３７】
図３は、本開示の態様に従う、アルゴリズム１（非一貫性確率的勾配降下手法）の疑似コードのリストであり、図４は、アルゴリズム２（十分にトレーニングされていないバッチを高速化するために、保守的な下位問題を解く方法）の疑似コードのリストである。当業者によって容易に理解されるように、本開示に従う方法の一部としてのそのようなアルゴリズムは、有利なことに、マルチプロセッサを（有利に）含む、さまざまなコンピューティングシステムのいずれかで実行されるようにプログラムされてよい。図５は、本開示の方法が動作してよいコンピュータシステムの例の概略ブロック図である。
【００３８】
直ちに理解されるように、そのようなコンピュータシステムは、別のシステムに統合されてよく、個別の要素あるいは１つまたは複数の統合されたコンポーネントを介して実装されてもよい。コンピュータシステムは、例えば、複数のオペレーティングシステムのうちのいずれかを実行するコンピュータを備えてよい。本開示の前述の方法は、記憶したプログラム制御命令として、コンピュータシステム５００上に実装されてよい。
【００３９】
コンピュータシステム５００は、プロセッサ５１０、メモリ５２０、ストレージデバイス５３０、および入出力構造５４０を含む。１つまたは複数のバス５５０は、通常、コンポーネント５１０、５２０、５３０、および５４０を相互接続する。プロセッサ５１０は、シングルコアまたはマルチコアであってよい。加えて、システムは、複数のコア、アクセラレータなどを含む複数のプロセッサを含んでよい。さらに、期待される並列性をいっそう向上させるために、そのような複数のコアの大規模なシステムであるマルチプロセッサシステム５００が構築されてよい。
【００４０】
プロセッサ５１０は、本開示の実施形態が図面のうちの１つまたは複数に記載されたステップを構成する、命令を実行する。そのような命令は、メモリ５２０またはストレージデバイス５３０に格納されてよい。１つまたは複数の入出力デバイスを使用して、データおよび／または情報が受信され、出力されてよい。
【００４１】
メモリ５２０は、データを格納してよく、揮発性メモリまたは不揮発性メモリなどのコンピュータ可読媒体であってよい。ストレージデバイス５３０は、例えば前述の方法を含むシステム５００用のストレージを提供してよい。さまざまな態様では、ストレージデバイス５３０は、磁気、光、またはその他の記録技術を採用する、フラッシュメモリデバイス、ディスクドライブ、光ディスクデバイス、またはテープデバイスであってよい。
【００４２】
入出力構造５４０は、システム５００が通信可能に接続された他のシステム／構造に対する入出力動作を提供してよい。
関連研究
【００４３】
ニューラルネットワークのトレーニング用に「通常の」ＳＧＤを改良するためのさまざまなアプローチが提案されている。したがって、従来技術のアプローチを説明しながら、本出願の非一貫性トレーニング手法がそれらの従来技術の既存の手法と根本的にどのように異なっているかについて、さらに説明する。
【００４４】
周知のように、ＳＧＤにおける確率的サンプリングは、収束率の低下を示す勾配の分散を導入する。よって、研究者は、さまざまな分散減少手法をＳＧＤに適用し、収束率を改善することを試みてきた。
【００４５】
確率的分散減少勾配（ＳＶＲＧ：Ｖａｒｉａｎｃｅ  Ｒｅｄｕｃｅｄ  Ｇｒａｄｉｅｎｔ）は、ネットワークの履歴パラメータおよび勾配を維持し、更新ルールの分散を明示的に減らすが、ＳＶＲＧは、非凸ニューラルネットワーク（ｎｏｎ−ｃｏｎｖｅｘ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）の微調整に対してのみ十分に機能する。他のアプローチは、ＳＧＤで制御変量を調査し、さらに他のアプローチは、重要度サンプリングを調査した。しかし、これらの分散減少手法は、中間変数を格納するために巨大なＲＡＭ空間を消費するため、大規模なニューラルネットワークではほとんど使用されていない。
【００４６】
これらの従来技術のアプローチとは際立って対照的に、ＩＳＧＤ（本開示の対象である）は、勾配の分散の悪影響に適応し、補助変数を構築しない。その結果、有利なことに、ＩＳＧＤは従来技術の分散減少手法よりも非常にメモリ効率が高く、実用的である。
【００４７】
モーメンタムは、ＳＧＤを強化するための、広く認識されている発見的解決法である。ＳＧＤは、勾配が、最適に向かう谷沿いではなく、常に谷の反対側を指すため、狭い谷の間で振動する。その結果、モーメンタムが飛び回る傾向があり、収束が遅れることにつながる。モーメンタムは、勾配を反対の符号と組み合わせることによって、曲率の大きい方向での振動を減衰させ、予め蓄積された勾配と一致する方向に向かって速度を増す。当業者は、Ｎｅｓｔｅｒｏｖの加速勾配降下の更新ルールがモーメンタムに類似しているが、速度を増すためのわずかに異なる更新メカニズムによって、重要な動作の違いが得られるということを理解するであろう。モーメンタムは、蓄積した勾配に現在の勾配を加えた方向に進む。これに対して、Ｎｅｓｔｅｒｏｖの加速勾配降下は、予め蓄積した勾配に沿って進み、そして、補正を行う前に勾配を測定する。これによって、更新での高速な降下を防ぎ、それによって応答性を向上させる。
【００４８】
有利なことに、ＩＳＧＤは、バッチに対するトレーニング動態（ｔｒａｉｎｉｎｇ  ｄｙｎａｍｉｃｓ）を考慮するという点において、これらのアプローチとは根本的に異なっている。ＩＳＧＤは、バッチ間でトレーニングの労力をリバランスするが、モーメンタムおよびＮｅｓｔｅｒｏｖの加速勾配降下は、前述の曲率の「トリック」を利用する。したがって、さらに有利なことに、非一貫性トレーニングは、両方の手法との互換性があるということが期待される。
【００４９】
Ａｄａｇｒａｄは、学習率をパラメータに適応させる手法であり、低頻度のパラメータに対しては大きい更新を実行し、高頻度のパラメータに対しては小さい更新を実行する。Ａｄａｇｒａｄは、分母において勾配の二乗を累積し、これが学習率を大幅に縮小する。その後、この問題を解決するために、ＲＭＳｐｒｏｐおよびＡｄａｄｅｌｔａが開発された。これらの適応学習率のアプローチは、トレーニングの堅牢性を向上させるために、パラメータの更新頻度に関してパラメータ更新の範囲を調整するが、ＩＳＧＤは、トレーニングの効率を改善するために、損失に関してバッチの勾配の更新の頻度を調整する。この観点から、ＩＳＧＤは、適応学習率のアプローチとは著しく異なっている。
【００５０】
本開示によって当業者に容易に明らかになるように、本開示に従う非一貫性トレーニングは、損失の小さいバッチよりも、損失の大きいバッチに、より多くのトレーニングの労力を割く。１つの動機となる合理性は、損失の小さいバッチからの勾配の更新が、損失の大きいバッチよりも寄与が小さいということである。同様に、Ｓｉｍｏ−Ｓｅｒｒａ他は、困難なトレーニングペア（すなわち、これらのペアは大きい損失をもたらす）をネットワークに意図的に供給することによって、記述子を深層学習するために、Ｓｉａｍｅｓｅネットワークのトレーニングにおいて、類似するアイデアを採用した。このような手法は、性能を改善するための効果的な方法であることが証明されている。この手法は、ネットワークに供給する困難なペアを手動で選択するが、ＩＳＧＤは、トレーニング時に困難なバッチを自動的に識別する。加えて、ＩＳＧＤの困難なバッチを加速するメカニズムは、Ｓｉｍｏ−Ｓｅｒｒａの手法とは著しく異なっている。ＩＳＧＤは、バッチの損失を減らすために、困難なバッチに対する下位最適化問題を解き、有利なことに、急激なパラメータの変化を防ぐが、Ｓｉｍｏ−Ｓｅｒｒａの手法は、単により頻繁にバッチを供給する。あるバッチでオーバーシュートすることは他のバッチでの不一致につながるため、パラメータの変化を抑制することが重要であるということに注意する。したがって、当業者によって理解されるように、本開示に従うＩＳＧＤ手法は、バッチごとのトレーニング動態を考慮する最初のニューラルネットワーク解法であり、したがって、さまざまな現実世界のデータセットおよびモデルに対して、驚くべき性能の向上を示した。
問題の説明
【００５１】
このセクションでは、不均一なバッチごとのトレーニング動態を示す。ＳＧＤの収束率の分析に基づいて、勾配の更新の寄与がバッチ間で変化するということを、理論的に証明する。画像の本質的相違およびサンプリングバイアスが、現象に対する高水準の要因であるということも仮定し、この仮定が、２つの制御された実験によって検証される。理論と実験の両方が、バッチの勾配の更新の寄与が異なるという結論を裏付ける。
【００５２】
その後、ＳＧＤで採用されている固定サイクル疑似ランダムサンプリングが、この問題を扱うには非効率的であるということを示す。具体的には、すべてのバッチに対する、バッチの状態に関わらず一貫した勾配の更新は、特にトレーニングの終盤において無駄が多く、損失の大きいバッチを加速するために損失の小さいバッチに対する勾配の更新が使用されている可能性がある。
【００５３】
ＣＮＮトレーニングの要約
【００５４】
次の最適化問題として、ＣＮＮトレーニングを定式化する。Ψを、ウェイトベクトルｗを関数パラメータとして含む損失関数とし、この損失関数は、画像のバッチｄを入力として受け取る。ＣＮＮトレーニングの目的は、次の最適化問題に対する解を見つけることである。
【００５５】
【数２】
2019509550.tif 000004
【００５６】
第２の項はウェイト減衰（Ｗｅｉｇｈｔ  Ｄｅｃａｙ）であり、λはウェイトの寄与を調整するためのパラメータである（通常は、約１０-4）。ウェイト減衰の目的は、ウェイトベクトルの静的ノイズおよび無関係な成分が抑制されるように、大きいパラメータにペナルティを与えることである。
【００５７】
ＣＮＮの標準的なトレーニングの反復は、フォワードおよびバックワードパスで構成される。フォワードパスからは、現在の予測と真実との間の相違を測定する損失が得られる。バックワードパスは勾配を計算し、負の勾配は、最も急な下降方向を指し示す。傾斜降下は、次のようにｗを更新する。
【００５８】
【数３】
2019509550.tif 000005
【００５９】
データセット全体に対して勾配を評価することは、特にＩｍａｇｅＮｅｔなどの大きいデータセットの場合、極めて高コストである。この問題を解決するために、ランダムに取得された小さいサンプルｄtを使用してデータセット全体を近似する、ミニバッチＳＧＤが提案されている。ミニバッチＳＧＤの利点は、勾配計算での小さいサンプルの評価の効率であるが、欠点は、収束を遅くする確率的勾配である。
【００６０】
ここで、サンプル空間Ωを定義する。Ψw（ｄt）が、確率空間（Ω，Σ，Ｐ）に対して定義されたランダム変数である場合、新しい目的関数は次のようになる。
【００６１】
【数４】
2019509550.tif 000006
更新ルールが次のように変更される。
【００６２】
【数５】
2019509550.tif 000007
次式が成り立つ。
【００６３】
【数６】
2019509550.tif 000008
【００６４】
クロスエントロピー誤差を使用したトレーニング状態の測定
【００６５】
バッチのトレーニング状態を反映するために、損失を使用する。畳み込みニューラルネットワークは、Ｒn→Ｒの関数であり、この関数の最後の層は、真の予測確率
【００６６】
【数７】
2019509550.tif 000009
と推定された予測確率
【００６７】
【数８】
2019509550.tif 000010
との間のクロスエントロピーを計算するｓｏｆｔｍａｘ損失関数である。反復ｔでのバッチのｓｏｆｔｍａｘ損失関数の定義は、次のとおりである。
【００６８】
【数９】
2019509550.tif 000011
ここで、ｎbは１つのバッチ内の画像の数であり、λはウェイト減衰を調整する。ウェイト減衰が適用されるため、バッチの損失は、完全にトレーニングされた後に、小さい数値を中心にして変動する。
【００６９】
クロスエントロピーによって生成された損失は、バッチのトレーニング状態の信頼できる指標になる。バッチｄtが与えられた場合、クロスエントロピー
【００７０】
【数１０】
2019509550.tif 000012
は、推定された確率と真実の間の相違を測定する。画像分類タスクにおいて、真実
【００７１】
【数１１】
2019509550.tif 000013
は正規化された可能性ベクトル（ｐｏｓｓｉｂｉｌｉｔｙ  ｖｅｃｔｏｒ）であり、ほとんどがゼロを含んでおり、１つのスカラーのみが１に設定されている。ベクトルのインデックスは、物体カテゴリに対応する。例えば、
【００７２】
【数１２】
2019509550.tif 000014
は、物体がカテゴリ２に属していることを示している（インデックスは０から開始する）。ニューラルネットワークは、正規化された推定確率
【００７３】
【数１３】
2019509550.tif 000015
を生成し、
【００７４】
【数１４】
2019509550.tif 000016
内のゼロが
【００７５】
【数１５】
2019509550.tif 000017
内の不正な予測を相殺するため、損失関数は、正しい予測を行う範囲のみを獲得する。
【００７６】
【数１６】
2019509550.tif 000018
が
【００７７】
【数１７】
2019509550.tif 000019
に近い場合、損失関数からは、小さい値が得られる。
【００７８】
【数１８】
2019509550.tif 000020
が
【００７９】
【数１９】
2019509550.tif 000021
から遠い場合、損失関数からは、大きい値が得られる。したがって、バッチの損失を使用して、そのバッチに対するモデルのトレーニング状態を評価する。直感的に、大きい損失は、バッチに対してネットワークによって行われるほとんどの予測が偽であり、このバッチに対する追加トレーニングが必要であることを示している。
【００８０】
動機：バッチの不均一なトレーニング動態
【００８１】
勾配の分散は、バッチごとのトレーニングの変動の発生源になる。母集団を近似するためにランダムなサンプルを使用する利点は、反復における計算が大幅に少ないことであり、欠点は、ノイズの多い勾配である。このセクションでは、収束率が反復によって測定されることに注意されたい。反復ごとにトレーニング動態を分析するために、次のリャプノフプロセス（Ｌｙａｐｕｎｏｖ  ｐｒｏｃｅｓｓ）を定義する必要がある。
【００８２】
【数２０】
2019509550.tif 000022
この方程式は、現在の解ｗtと最適解ｗ*の間の距離を測定する。ｈtはランダム変数である。したがって、ＳＧＤの収束率は、方程式４および方程式７を使用して、次のように導き出され得る。
【００８３】
【数２１】
2019509550.tif 000023
ここで、ｄtは、サンプル空間Ω内のｄのランダムなサンプルであり、ｈt+1−ｈtは、取得されたサンプルｄtおよび学習率ηtによって決まるランダム変数である。この方程式は、反復がｗ*に向かってどの程度進んだかを示唆する。この方程式は、次の２つの重要な洞察を示す。
【００８４】
ＶＡＲ｛▽Ψw（ｄt）｝を減らすと、収束率が改善される。方程式８の期待値から、１回の反復の精度で平均収束率が得られる。
【００８５】
【数２２】
2019509550.tif 000024
【００８６】
方程式９の分析を簡略化するために、次を暗示するΨw（ｄt）での凸性を仮定する。
【００８７】
【数２３】
2019509550.tif 000025
ここで、Ｅ｛▽Ψw（ｄt）｝はＥ｛▽Ψw（ｄ）｝のバイアスされていない推定である。したがって、１回の反復の寄与を最大化することは、ＶＡＲ｛▽Ψw（ｄt）｝の最小化に縮小される。この方向は、十分に対処されている。
【００８８】
反復の寄与（ｈt+1−ｈt）は、ｄtに関して変化する。方程式８に従って、ｈt+1−ｈtの分散は次のようになる。
【００８９】
【数２４】
2019509550.tif 000026
【００９０】
この方程式は、ＶＡＲ｛ｈt+1−ｈt｝≠０を示しており、勾配の更新の寄与が不均一であることを暗示している。この方程式内の係数▽Ψw（ｄt）2および▽Ψw（ｄt）の決定がｄtを条件としており、ｈt+1−ｈtとｄtの間の相関関係を示唆しているということに気付くことは興味深い。この独自の洞察は、ｄtにおけるどの要因が収束率ｈt+1−ｈtに影響を与えるか、およびトレーニングにおける負荷バランシング問題に対処する方法を理解しようとする動機を与える。▽Ψw（ｄt）での分散減少に向けた研究は多数存在するが、この方向を調査している研究は少ない。次に、バッチの損失を使用して、そのバッチに対するモデルのトレーニング状態を測定する。図６は、トレーニング時の１０個のバッチの損失トレースを示している。各バッチの損失が異なる比率で低下していることが観察できる。したがって、経験的観察および方程式１２は、次の結論を下すことを促している。
バッチの勾配の更新の寄与は、不均一である。
【００９１】
この結論は、図６のバッチの特有のトレーニング動態も説明している。方程式１２は、ｄtが本請求にとって極めて重要であることを示唆している。ｄtがＶＡＲ｛ｈt+1−ｈt｝にどのような影響を与えるかを理解するために、一連の経験的評価を行い、現象を説明するために、サンプリングバイアスおよび画像の本質的相違という２つの高水準の要因を提案する。これら２つの用語の定義は、次のとおりである。
【００９２】
サンプリングバイアス。サンプリングバイアスとは、対象とする母集団のうちの一部の要素が、他の要素よりも含まれる可能性が低くなるような方法でサンプルが収集される、バイアスである。
【００９３】
画像の本質的相違。画像の本質的相違は、同じ部分母集団からの複数の画像がピクセルにおいても異なっていることを示す。例えば、カテゴリ「猫」は、白猫の画像または黒猫の画像を含むことができる。黒猫および白猫は、猫の部分母集団に属することができるが、ピクセルにおいては異なっている。
【００９４】
サンプリングバイアスは、バッチに対するトレーニングの変動を説明するための第１の要因である。２種類のサンプリングバイアスを検討する。第１に、ＰｌａｃｅｓまたはＩｍａｇｅＮｅｔなどの既存のデータセットは、一様ではない数の画像を各カテゴリに含んでいる。その結果、支配的な部分母集団がバッチにおいて選択される可能性が、他の部分母集団よりも高い。第２に、データセットに対する不十分な混ぜ合わせが部分母集団のクラスターにつながることがある。ＳＧＤが不十分に並べ替えられたデータセットから画像を連続的に取得して、ランダムに選択されたバッチを形成した場合、ある部分母集団が含まれる可能性が、他の部分母集団よりも高くなる。どちらの場合も、サンプリングバイアスの定義に従っている。例えば、［１，１，１，０，２，３］から１をサンプリングする可能性は、他の値よりも高い。本請求を裏付けるために、ＣＩＦＡＲ−１０内の排他的な画像カテゴリからランダムに取得された１０個の単一クラスのバッチを合成した。
【００９５】
ＣＩＦＡＲ−１０が独立した１０の画像カテゴリを含んでいることに注意する。各バッチは、一意のＣＩＦＡＲ−１０カテゴリを表し、各バッチが１つの部分母集団のみを含んでいるため、サンプリングバイアスで高度に汚染されている。図６（Ａ）は、１０個の単一クラスのバッチの損失トレースを示している。１０個のバッチの損失が独立して低下していることは明らかである。具体的には、黄色のバッチからの勾配の更新は、紫色のバッチよりも効果的である。したがって、これらの結果は、サンプリングバイアスおよびバッチごとのトレーニングの変動に関する本請求を正当化する。
【００９６】
画像の本質的相違は、バッチに対するトレーニングの変動を説明するための第２の要因である。この点を実証するために、１０個の独立同一分布バッチに対して制御された実験を行う。１つのバッチは１０００個の画像を含み、各バッチは、カテゴリ０からランダムに取得された１００個の画像、カテゴリ１からランダムに取得された１００個の画像、．．．、カテゴリ９からランダムに取得された１００個の画像を含む。順序付けの影響の可能性を排除するために、この順序はバッチ間で固定されている。この場合、各バッチは、ＣＩＦＡＲ−１０内の１０の部分母集団からの同じ数の画像を含んでおり、各バッチ間の違いはピクセルのみである。したがって、これらのバッチを、独立同一分布と見なす。ネットワークは、サンプリングバイアスで使用されたネットワークと同じである。図６（Ｂ）は、１０個のｉｉｄバッチの損失トレースを示している。トレーニングを通じて強い相関関係が持続しているが、それでも、ｉｉｄバッチの損失が別々の比率で低下していることは明らかである。特に、エポック４００において、バッチ４（緑色）の損失は約０．５であるが、バッチ３（紫色）の損失は約１．３である。これらのバッチがｉｉｄであり、元のデータセットとほぼ同一であるはずであるということに注意されたい。しかし、各バッチ間の勾配の更新の不均一な寄与を示すトレーニングの変動がまだ存在している。
【００９７】
ＳＧＤでの一貫したトレーニングの問題
【００９８】
ＳＧＤは、データセット全体から均一にバッチを取得するという重要な動作に依存する。これは、数学的にはシンプルであるが、システムの実装においては簡単ではない。ＩｍａｇｅＮｅｔ（例えば、ＩＬＳＶＲＣ２０１２）は、１４３１１６７個の２５６ｘ２５６の高解像度ＲＧＢ画像を含んでおり、合計サイズが約２５６ＧＢになる。ランダムなバッチを２５６ＧＢのバイナリファイルから均一に取得することは、ＴＬＢミスまたはランダムなディスクＩ／Ｏ動作などの、大きなオーバーヘッドを伴う。加えて、プロセッサとディスクの間の大きな速度差が、さらに問題を悪化させる。ＣａｆｆｅまたはＴｏｒｃｈなどの既存の深層学習フレームワークは、データセット全体を、次のように、バッチにスライスする前に事前に並べ替えることによって、問題を軽減する：Ｐｅｒｍｕｔｅ｛ｄ｝→ｄ＝｛ｄ0，ｄ1，．．．，ｄn-1，ｄn｝＝Ω。トレーニング中に、各反復で、並べ替えられたデータセットΩから、ｄ0→ｄ1→，．．．，→ｄnという順にバッチを取得し、ｄnの後に、先頭のｄ0から取得を再開するというように、定円のバッチ取得パターンを形成する。このサンプリング方法を、定円疑似ランダムサンプリング（Ｆｉｘｅｄ  Ｃｉｒｃｌｅ  Ｐｓｅｕｄｏ  Ｒａｎｄｏｍ  Ｓａｍｐｌｉｎｇ）と呼ぶ。その後、これらのランダムな読み取りは、ディスク上の連続的読み取りに縮小される。したがって、ＦＣＰＲサンプリングがＳＧＤによって広く採用されている。ｎｄをデータセットのサイズとし、ｎｂをバッチサイズとする。サンプル空間のサイズはｎd／ｎbであり、反復ｊに割り当てられているバッチはｄtであり、ここで、
【００９９】
【数２５】
2019509550.tif 000027
である。
【０１００】
任意の反復において、モデルは、バッチがｔ＋１エポック，．．．，ｔ＋ｎエポックという反復でモデルに流れ込むため、常に固定バッチを期待する。バッチのトレーニングが、それ自体に対する勾配の更新によって支配される場合、このバッチの損失は、ｔ，ｔ＋１＊エポック，ｔ＋２＊エポック，．．．，ｔ＋ｎ＊エポックという反復で主に縮小される。バッチの勾配の更新からの寄与が異なっているため、反復的なバッチ取得パターンは、バッチの特有のトレーニング速度を助長する。しかし、ＳＧＤにおけるＦＣＰＲサンプリングは、バッチを全く同じように扱う。
【０１０１】
ＦＣＰＲサンプリングの問題は、バッチに対する、モデルのトレーニング状態に関わらず一貫した勾配の更新である。損失の大きいバッチと同程度の頻度で損失の小さいバッチを更新することは、非効率的である。図６（Ｂ）は、黄色のバッチがエポック１６００の後に完全にトレーニングされており、一方、青色のバッチがエポック２１００まで完全にトレーニングされないことを示している。エポック［１６００，２１００］の間、黄色のバッチは、ほとんどの時間、完全にトレーニングされたままであり、このバッチに対する不要なトレーニングの反復を示している。加えて、バッチの勾配の更新の寄与が異なることも検証する。したがって、バッチに対するモデルのトレーニング状態に関してトレーニングの反復を調整することによって、ＳＧＤの効率を改善する。
非一貫性確率的勾配降下
【０１０２】
このセクションでは、本開示に従って、有利なことに、バッチトのレーニング状態に関してトレーニングの労力を再バランス調整する、非一貫性確率的勾配降下を提示する。この非一貫性には、バッチでの不均一な勾配の更新が反映される。第１の課題は、トレーニング中に、遅いバッチまたは十分にトレーニングされていないバッチを動的に識別する方法である。十分にトレーニングされていないバッチを動的に識別するために、トレーニングを確率的プロセスとしてモデル化し、上方管理限界を適用する。第２の課題は、十分にトレーニングされていないバッチを加速する方法である。バッチに対して解くべき新しい最適化を提案する。この最適化の目的は、急激なパラメータの変化を伴わずにトレーニングを加速することである。実用上の検討のために、収束率、システムの飽和、および同期コストに対するＩＳＧＤのバッチサイズの影響も調査する。
【０１０３】
十分にトレーニングされていないバッチの識別
【０１０４】
ＩＳＧＤは、トレーニングを、バッチの平均損失をゆっくりと減らす確率的プロセスとしてモデル化する。エポック内のバッチの損失では、正規分布を仮定する。その理由は次のとおりである。（１）ＳＧＤは、収束するために小さい学習率（ｌｒ）を要求し、ｌｒは通常、１０-1未満である。ｌｒはステップ長を決定し、正規化された勾配がステップの方向を決定する。小さい値のｌｒは、勾配の更新によって行われる寄与を制限するために、トレーニングプロセスは、損失を局所最適に向かって徐々に減らすことになる。（２）各バッチは元のデータセットを表し、トレーニング内のバッチ間には強い相関関係が存在する。これは、バッチの損失が、任意の反復において平均から大きく異ならないということを暗示している。図７は、ＣＩＦＡＲ−１０に対するネットワークのトレーニングの損失分布を示しており、損失がエポック別に配置されている。この図から、エポック内の損失で正規分布を仮定することは、正当である。したがって、次のように結論を下す。
トレーニングは、ネットワークが収束するまで損失の平均をゆっくりと減少させる確率的プロセスである。
【０１０５】
３σ管理限界は、統計的プロセスにおける異常を監視するための効果的な方法である。バッチの平均損失を減少させるプロセスとしてトレーニングを扱うため、ＩＳＧＤは、上方管理限界を利用して、損失の大きい異常なバッチをリアルタイムで動的に識別する。ＩＳＧＤは、上方管理限界を取得するために、トレーニング中に、２つの重要な記述統計量（実行中の平均損失
【０１０６】
【数２６】
2019509550.tif 000028
および実行中の標準偏差
【０１０７】
【数２７】
2019509550.tif 000029
）を計算する。ＩＳＧＤは、［ｔ−ｎb，ｔ］における反復によって生成された損失を格納するためのキューを維持し、ここで、ｎbはサンプル空間のサイズ（またはエポック内のバッチの数）である。このキューは、
【０１０８】
【数２８】
2019509550.tif 000030
および
【０１０９】
【数２９】
2019509550.tif 000031
を得るために前のエポック内の損失情報を追跡する移動ウィンドウとして機能する。
【０１１０】
【数３０】
2019509550.tif 000032
【０１１１】
キュー長がｎbに固定されており、バッチの損失が浮動小数点数であるため、
【０１１２】
【数３１】
2019509550.tif 000033
および
【０１１３】
【数３２】
2019509550.tif 000034
ならびにキューのメモリコストの計算は、任意の反復ｔにおいてＯ（１）になる。したがって、ＩＳＧＤは、ネットワークパラメータと同じサイズの中間変数を必要とする分散減少のアプローチよりも、非常にメモリ効率が高い。
【０１１４】
【数３３】
2019509550.tif 000035
および
【０１１５】
【数３４】
2019509550.tif 000036
を使用して、上方管理限界は次のようになる。
【０１１６】
【数３５】
2019509550.tif 000037
【０１１７】
この場合、３σ管理限界を採用する。
【０１１８】
【数３６】
2019509550.tif 000038
の前の乗数は、新しいバッチの調査と、現在のバッチの利用との間において、重要な役割を果たす。詳細な説明については、下のアルゴリズム１の説明を参照されたい。現在の反復ｔの損失は、次のとおりである。
【０１１９】
【数３７】
2019509550.tif 000039
ｄtを、十分にトレーニングされていないバッチと見なす。
【０１２０】
図８は、十分にトレーニングされていないバッチをリアルタイムで識別するためのＩＳＧＤ手法の例を示している。青色の線はバッチの損失であり、黄色の線は、実行中の平均
【０１２１】
【数３８】
2019509550.tif 000040
である。緑色の線は上方管理限界であり、赤色の点は十分にトレーニングされていないと見なされる外れ値である。ＡｌｅｘＮｅｔを使用して、ＩｍａｇｅＮｅｔに対して実験が行われ、ＩＳＧＤが、提案されたアプローチを使用して、トレーニングにおいて損失の大きいバッチを正常に識別するということが明らかになる。
【０１２２】
非一貫性トレーニング
【０１２３】
前述したように、本開示に従うトレーニングモデルの中心概念は、損失の小さいバッチよりも多くの反復を、損失の大きいバッチに費やすということである。ＩＳＧＤにおけるバッチ取得パターンは、ＦＣＰＲサンプリングに類似しているが、次のような重要な違いがある。バッチが十分にトレーニングされていないとして識別された後に、ＩＳＧＤはこのバッチにとどまって、トレーニングを加速するための新しい下位最適化問題を解き、このバッチは、下位問題内で追加トレーニングの反復を受ける。この場合、ＩＳＧＤは、ＦＣＰＲサンプリングのシステム効率を損なわずに、バッチ間でトレーニングの労力を調整する。新しい下位問題は次のとおりである。
【０１２４】
【数３９】
2019509550.tif 000041
ここで、ｎwは、ネットワーク内のウェイトパラメータの数、εは第２の項のパラメータである。第１の項は、現在の十分にトレーニングされていないバッチｄtの損失と管理限界の間の差を最小化する。これは、加速効果を達成するためである。第２の項は、急激なパラメータの変化を防ぐための保守的な制約である。バッチをオーバーシュートすると、他のバッチに対するトレーニングに悪影響を与えるため、第２の項が極めて重要であることに注意されたい。パラメータεは、保守的な制約を調整し、１０-1にすることが推奨される。方程式１７の導関数は、次のようになる。
【０１２５】
【数４０】
2019509550.tif 000042
【０１２６】
ｌｉｍｉｔ、ｗt-1、およびｄtが定数であることに注意されたい。方程式１７を正確に解くことは、計算および通信の著しいオーバーヘッドを招き、この方程式の効果を損なう。実際には、早期に停止して、新しい下位問題（方程式１７）に対する解を近似する。これによって、最適解の周辺に停滞することに膨大な検索時間が浪費されるのを防ぐ。加速効果を達成するには、数回の反復（例えば、５回）で十分である。したがって、早期の停止によって解を近似することを推奨する。
【０１２７】
図３に示されたアルゴリズム１は、ＩＳＧＤの基本手順を示している。バッチのレーニング状態が損失によって測定されるため、ＩＳＧＤは、損失が管理限界
【０１２８】
【数４１】
2019509550.tif 000043
（行２０）よりも大きい場合、バッチを十分にトレーニングされていないとして識別する。厳しい限界は、より頻繁に方程式１７をトリガーする。それによって、バッチの利用が増加するが、一定の時間内でのネットワークに対するバッチの調査が減少することも引き起こす。したがって、厳しい限界も望ましくない。実際には、ソフトマージン（２または３
【０１２９】
【数４２】
2019509550.tif 000044
）が好ましく、このマージンは、プロセスにおける異常を検出するために、統計的プロセス制御においても広く適用されている。特定の問題に従って、ユーザがこのマージンを調整することを推奨する。ＩＳＧＤは、平均損失
【０１３０】
【数４３】
2019509550.tif 000045
がＯ（１）で計算されるように、エポック内の損失を動的に追跡するための損失キューを採用する（行１７）。この損失キューは、前のエポック内の反復を追跡し、この損失キューの長さは１つのエポックの長さに等しい。同様に、Ｏ（１）後に
【０１３１】
【数４４】
2019509550.tif 000046
を計算する（行１８）。第１のエポックが信頼できる限界を構築するまで（行２２のｉｔｅｒ＞ｎの条件）、アルゴリズム２を開始しない。
【０１３２】
図４に示されたアルゴリズム２は、十分にトレーニングされていないバッチに対して保守的な下位問題を解くための手順の概要を示している。保守的な下位問題は、急激なウェイトの変化を伴わずに、十分にトレーニングされていないバッチを加速する。行７の更新方程式は、方程式１８に対応する。具体的には、
【０１３３】
【数４５】
2019509550.tif 000047
は、十分にトレーニングされていないバッチのトレーニングを加速するために
【０１３４】
【数４６】
2019509550.tif 000048
の勾配であり、第２の項
【０１３５】
【数４７】
2019509550.tif 000049
は、大幅なウェイトの変化を抑制する
【０１３６】
【数４８】
2019509550.tif 000050
の勾配である。ｌｉｍｉｔは、アルゴリズム１の上方管理限界（ｕｐｐｅｒ  ｃｏｎｔｒｏｌ  ｔｈｒｅｓｈｏｌｄ）と同じである。ｓｔｏｐは、早期停止を反映するための近似的な最大反復回数を指定し、
【０１３７】
【数４９】
2019509550.tif 000051
は一定の学習率である。
【０１３８】
ニューラルネットワークのトレーニングでは、収束を保証するために、学習率を徐々に減らす必要がある。トレーニングの反復回数に関して学習率を減らすことが、一般的な戦術である。ＩＳＧＤの一貫しない反復回数は、学習率を誘導するための新しい方法を必要とする。代わりに、ＩＳＧＤは、データセットの平均損失に関して学習率を減らす。平均損失は、モデルのトレーニング状態を直接反映するため、反復回数よりも適切であるが、データセットの平均損失の計算は、高コストである。方程式１３の平均損失は、データセットの最後のスキャン（つまり、あるエポック内の損失）から得られるため、データセットの平均損失を近似している。したがって、この平均損失（アルゴリズム１の行１９）を使用して、学習率を誘導する。
【０１３９】
他のＳＧＤの変形への拡張
【０１４０】
非一貫性トレーニングを他のＳＧＤの変形へ拡張するのは、簡単である。例えば、モーメンタムは次の式を使用してウェイトを更新する。
【０１４１】
【数５０】
2019509550.tif 000052
Ｎｅｓｔｅｒｏｖの加速勾配降下は、次の更新ルールに従う。
【０１４２】
【数５１】
2019509550.tif 000053
【０１４３】
非一貫性トレーニングをこれらのＳＧＤの変形に導入するには、それぞれ方程式１９および方程式２０に従って、アルゴリズム１の行２１を変更するだけでよい。アルゴリズム２は同じままである。
【０１４４】
並列ＩＳＧＤ
【０１４５】
ＩＳＧＤは、ｂｒｏａｄｃａｓｔ、ｒｅｄｕｃｅ、およびａｌｌｒｅｄｕｃｅなどのＭＰＩスタイルのコレクティブを使用して、分散システムまたはマルチＧＰＵシステム上で拡大される。アルゴリズム１およびアルゴリズム２はすでに、それらの内部でコレクティブによって明示された並列バージョンである。
【０１４６】
図９は、ＩＳＧＤ内のデータ並列化方式を示している。ここで、ｎ個のコンピューティングノードが存在し、それぞれがクラスター内のＧＰＵまたはサーバであると仮定する。各ノードは、モデルの複製を含んでいる。ノードは、サブバッチと呼ばれる、元のバッチの独立した一部を取得する。その後、すべてのノードは、割り当てられたサブバッチを使用して劣勾配および副損失を同時に計算する。この計算が完了した後に、アルゴリズムは、全体的な勾配および損失を取得するために、劣勾配および副損失をマスターノードにまとめる（アルゴリズム１の行１０〜１２）。その後、マスターノードは、ネットワークのウェイトを更新し（アルゴリズム３の行２１）、最新のウェイトをブロードキャストする（アルゴリズム３の行９）。したがって、ＩＳＧＤは、ＭＰＩスタイルのコレクティブを採用することによって、システム構成からアルゴリズムを分離する。ＭＰＩは業界および学界の標準であるため、ＩＳＧＤは、さまざまな異種分散システムに対する移植性が高い。
【０１４７】
バッチサイズおよび収束速度
【０１４８】
バッチサイズは、ＩＳＧＤの並列性にとって重要な要因である。バッチに対する動作は独立しているため、巨大な計算能力を持つシステム上でＩＳＧＤを拡大する場合、十分に大きいバッチが好ましい。ただし、手に負えないほど大きいバッチサイズは、制限された計算予算の下では、収束率に悪影響を与える。現在の収束率の分析は、単に性能測定基準として反復回数を使用するが、反復が高速なアルゴリズムのほうが、低速なアルゴリズムよりも時間がかかることがあるという事実を考慮できない。したがって、時間領域において収束率を分析するのが、実用的である。
【０１４９】
ここで、システムの最大処理能力が１秒当たりＣ1個の画像であり、同期にかかる時間がＣ2秒であると仮定する。ネットワークのコストは、ネットワークパラメータのサイズのみによって決まるため、一定である。勾配の更新にかかるコストは、基本的に次のようになる。
【０１５０】
【数５２】
2019509550.tif 000054
ここで、ｎbはバッチサイズである。一定の時間ｔが与えられた場合、勾配の更新の回数は次のようになる。
【０１５１】
【数５３】
2019509550.tif 000055
Ｔ回の勾配の更新の後に、損失が次式によって抑制される。
【０１５２】
【数５４】
2019509550.tif 000056
【０１５３】
ここで、方程式２３における等価性を仮定して、方程式２２を代入する。それによって方程式２４が得られ、方程式２４は、損失Ψ、時間ｔ、ならびにシステム構成Ｃ1およびＣ2に影響を与える。
【０１５４】
【数５５】
2019509550.tif 000057
【０１５５】
図１０は、異なるバッチサイズｎb∈（０，３０００）での、方程式２４によって計算された２つのシステム構成における予測トレーニング時間を示している。Ψを固定することによって、方程式は、異なるバッチにおける合計トレーニング時間を近似する。この図は、第１のシステムおよび第２のシステムの最適なバッチサイズが、それぞれ５００および１０００であることを示している。この場合、システムが高速であるほど、大きいバッチが必要になる。これらのシステムの性能は、その後、両方とも低下している。その結果、最適なバッチサイズは、システム構成とアルゴリズムの収束との間のトレードオフになる。
実験
【０１５６】
このセクションでは、モーメンタムおよびＮｅｓｔｅｒｏｖなどのＳＧＤの変形と比較して、ＭＮＩＳＴ、ＣＩＦＡＲ−１０、およびＩｍａｇｅＮｅｔを含む、広く認識されたさまざまなデータセットに対する非一貫性トレーニングの性能を示す。ＭＮＩＳＴは、６００００個の、０〜９の範囲の手書きの数字を含んでいる。ＣＩＦＡＲ−１０は、１０のクラスに分類された６００００個の３２ｘ３２  ＲＧＢ画像を含んでいる。ＩＬＳＶＲＣ  ２０１２  ＩｍａｇｅＮｅｔは、１０００の物体カテゴリを描写する１４３１１６７個の２５６ｘ２５６  ＲＧＢ画像を含んでいる。ＬｅＮｅｔ、Ｃａｆｆｅ  ＣＩＦＡＲ−１０  Ｑｕｉｃｋ、およびＡｌｅｘＮｅｔを使用して、ＭＮＩＳＴ、ＣＩＦＡＲ−１０、およびＩｍａｇｅＮｅｔに対してそれぞれトレーニングする。ネットワークの複雑さは、データセットのサイズに比例する。したがって、これらのベンチマークは、小規模、中規模、および大規模のＣＮＮトレーニングをカバーする。
【０１５７】
４つのＮＶＩＤＩＡ  Ｍａｘｗｅｌｌ  ＴＩＴＡＮ  Ｘを含むマルチＧＰＵシステム上で実験を行う。ＣＵＤＡバージョンは７．５であり、コンパイラはＧＣＣ  ４．８．４である。マシンは、６４ＧＢのＲＡＭおよび１ＴＢのＳＳＤを備えている。ＣＰＵはＸｅｏｎ  Ｅ５  ４６５５  ｖ３である。ＣａｆｆｅはｃｕＤＮＮバージョン４を使用して構築される。ＧＰＵマシンは、ベンチマークの実施中に、我々によって排他的に所有された。
【０１５８】
ＭＮＩＳＴ、ＣＩＦＡＲ、およびＩｍａｇｅＮｅｔに対してＩＳＧＤおよびＳＧＤを使用したトレーニングから、平均のＴＯＰ精度（ｔｏｐ  ａｃｃｕｒａｃｙ）および時間が報告された。ＩＭＰは、ＳＧＤに対するＩＳＧＤの改善を表している。１０回の実行からデータが収集され、ＩＳＧＤは、３つのデータセットに対して一貫してＳＧＤよりも高い性能を示した。
【０１５９】
【表１】
2019509550.tif 000058
【０１６０】
【表２】
2019509550.tif 000059
【０１６１】
非一貫性トレーニングの定性的評価
【０１６２】
このセクションは、非一貫性トレーニングの影響を定性的に評価することを目的にしている。非一貫性トレーニングの目的は、損失の大きいバッチが損失の小さいバッチよりも多くのトレーニングを受けるように、バッチ間でトレーニングの労力をリバランスすることである。非一貫性トレーニングの影響を定性的に評価するために、損失分布、平均損失、バッチの損失分布の標準偏差の進行、および検証精度を調べる。ＣＩＦＡＲ−１０データセットに対してＣａｆｆｅ  ＣＩＦＡＲ−１０  Ｑｕｉｃｋネットワークを使用するトレーニングを設定する。バッチサイズが２５００に設定され、２０個の独立したバッチが得られる。図１１（Ａ）および図１１（Ｂ）は、トレーニングでの２０個のバッチの損失分布を提示している。解法がバッチをエポック内で１回だけ調べるため、エポック内に損失を配置する。
【０１６３】
非一貫性トレーニングには、次のメリットがある。（１）ＩＳＧＤは、トレーニングの改善により、ＳＧＤよりも高速に収束する。データセット内のバッチの平均損失によって収束率を測定し、この方法は、方程式３におけるトレーニングの定義に従っている。図１１（Ｄ）の平均損失データは、ＩＳＧＤがＳＧＤよりも高速に収束していることを示している。ＳＧＤとは対照的に、７０００回を超える反復後のＩＳＧＤの平均損失がより低くなっている。
【０１６４】
図１１（Ｄ）は、テスト９（図１１（Ｅ））の後にＩＳＧＤの精度が良くなっていることを示している。図１１（Ｅ）におけるＩＳＧＤの検証精度もＳＧＤを上回っており、このことは図１１（Ｄ）のデータと一致しており、図１１（Ｄ）では、トレーニングでのＩＳＧＤの平均損失がＳＧＤの平均損失を下回っている。これらは、非一貫性トレーニングの収束の優位性を正当化する。（２）ＩＳＧＤは、トレーニングの進行において、損失の小さいバッチとのトレーニングの差を縮小するために、損失の大きいバッチを動的に加速する。したがって、バッチのトレーニング状態の変動は、ＳＧＤによってトレーニングされたバッチのトレーニング状態の変動よりも小さい。バッチの損失を使用してバッチのトレーニング状態を測定するということ、およびバッチのトレーニング状態の変動がバッチの損失分布の標準偏差によって測定されるということに注意されたい。
【０１６５】
図１１（Ｃ）は、非一貫性トレーニングがバッチ間のトレーニングの変動を軽減することに成功していることを示している。反復数∈［１０００，６０００］の場合、ＩＳＧＤのバッチの損失分布のＳＴＤは、ＳＧＤよりも非常に低い。この結果は、図１１（Ａ）および図１１（Ｂ）の損失分布とも一致しており、ＳＧＤの損失分布が、エポック数∈［５０，３００］においてＩＳＧＤよりも非常に広くなっている。
【０１６６】
性能評価
【０１６７】
ＩＳＧＤとＳＧＤの間の各比較の設定は、単一の要因の実験になるように（すなわち、非一貫性トレーニングが唯一の違いになるように）、慎重に行われた。ＳＧＤの一部のパラメータはトレーニングの性能に大きな影響を与えるため、それらのパラメータに異なる値を設定することは、実験の信頼性を損なう。したがって、ＳＧＤおよびＩＳＧＤのパラメータが各比較において同じであることを保証する。検討される第１のパラメータは、学習率である。ＭＮＩＳＴテストは０．０１という一定の学習率を採用し、ＣＩＦＡＲテストは０．００１という一定の学習率を採用する。どちらのケースも、Ｃａｆｆｅにおいて定義されている解法と一致している。学習率を縮小せずにネットワークにおいて十分な精度（ＣＩＦＡＲでは７５％、ＭＮＩＳＴでは９９％）が得られるため、Ｃａｆｆｅは、これらの２つのケースで学習率を固定する。ＡｌｅｘＮｅｔはｌｒを縮小する必要があるため、その学習率には、平均損失
【０１６８】
【数５６】
2019509550.tif 000060
の場合はｌｒ＝０．０１５、［１．２，２．０）内の
【０１６９】
【数５７】
2019509550.tif 000061
の場合はｌｒ＝０．００１５、および［０，１．２）内の
【０１７０】
【数５８】
2019509550.tif 000062
の場合はｌｒ＝０．０００１５、という３つの可能性がある。バッチサイズも、ＣＩＦＡＲ、ＭＮＩＳＴ、およびＩｍａｇｅＮｅｔでの各比較で同じである。４つのＧＰＵを完全に飽和させるために、大きいバッチを採用する。ウェイト減衰およびモーメンタムなどの他のパラメータについても、すべてのテストを通じて同じである。
【０１７１】
ＩＳＧＤは、すべてのテストにおいて一貫してＳＧＤよりも高い性能を示しており、非一貫性トレーニングの有効性を明らかに示している。両方の手法がモーメンタムの項を組み込んでいることに注意されたい。ＩＳＧＤ反復は一貫していないため、ＭＮＩＳＴテストでは２秒おき、ＣＩＦＡＲテストでは６秒おき、およびＩｍａｇｅＮｅｔテストでは９００秒おきにテストする（テスト時間を除外してトレーニング時間のみをカウントする）。水平方向の破線は目標精度を表し、合計トレーニング時間は、０から開始して、検証精度が破線を一貫して超える時点までである。ＩｍａｇｅＮｅｔテストでは、ＩＳＧＤは、ＳＧＤよりも１４．９４％速い収束を示している。ＳＧＤは、８１％のＴＯＰ  ５精度に達するのに２１．４時間かかるが、ＩＳＧＤは１８．２時間かかる（図１３（Ｃ））。ＣＩＦＡＲテストでは、ＩＳＧＤは、ＳＧＤよりも２３．５７％速い収束を示している。ＣＩＦＡＲ−１０に対して報告されたＣＩＦＡＲ−ＱｕｉｃｋネットワークのＴＯＰ精度は７５％である。３０６秒後に、ＳＧＤのテスト精度は７５％を安定して超えるが、ＩＳＧＤは２３４秒しかかからない（図１２（Ｂ））。最後に、ＩＳＧＤは、ＭＮＩＳＴデータセットに対して、ＳＧＤよりも２８．５７％速い収束を示している。ＳＧＤは９９％のＴＯＰ精度に達するのに５６秒かかるが、ＩＳＧＤは４０秒しかかからない。トレーニングは基本的に確率的プロセスであるため、性能は変化することがある。各テストケースを１０回繰り返し、その性能データを表１に示す。この結果も、非一貫性トレーニングの収束の優位性を指示している。
【０１７２】
ＩＳＧＤの性能の優位性を説明するために、やはりトレーニングデータセットを使用してテストする。一方、ＩｍａｇｅＮｅｔの２５６ＧＢのトレーニングセットは、テストされるには大きすぎるため、アルゴリズム３において
【０１７３】
【数５９】
2019509550.tif 000063
を使用して、トレーニング誤差を近似する。図１２（Ｄ）、図１２（Ｅ）、および図１２（Ｆ）は、ＩＳＧＤのトレーニング誤差がＳＧＤを一貫して下回っていることを示している。この結果は、非一貫性トレーニングの効果を示しており、図１２（Ａ）、図１２（Ｂ）、および図１２（Ｃ）におけるＩＳＧＤの良い検証精度も説明している。
【０１７４】
非一貫性トレーニングは、Ｎｅｓｔｅｒｏｖの加速勾配降下とも互換性がある。図１４（Ａ）および１４（Ｂ）は、Ｎｅｓｔｅｒｏｖの加速勾配降下を使用してトレーニングされた、ＩｍａｇｅＮｅｔに対する検証精度およびトレーニング損失の進行を示している。非一貫性トレーニングは、標準的なＮｅｓｔｅｒｏｖ手法に勝っている。５８％のＴＯＰ  １精度をしきい値として設定した場合、非一貫性トレーニングは、しきい値を超えるために６５回のテストを実行するが、標準的なトレーニングは７５回のテストを実行する。２つの連続するテストの時間間隔が固定されていることに注意されたい。したがって、非一貫性トレーニングは、１３．４％の性能向上を示している。この互換性は、我々の期待を下回っている。Ｎｅｓｔｅｒｏｖ手法は、曲率情報を考慮することによって収束を加速するが、ＩＳＧＤはバッチ間でトレーニングをリバランスする。
【０１７５】
マルチＧＰＵでのバッチサイズに関する時間領域の収束率
【０１７６】
図１３（Ａ）〜１３（Ｃ）は、ＭＮＩＳＴ、ＣＩＦＡＲ、およびＩｍａｇｅＮｅｔデータセットに対する、異なるバッチサイズでの収束速度を示している。これらの図は、次の結論を反映している。（１）マルチＧＰＵのトレーニングでは、十分に大きいバッチが必要である。単一ＧＰＵは計算ｔcomptのみを伴うが、マルチＧＰＵのトレーニングは、同期のための追加項ｔcommを伴う。単一ＧＰＵのトレーニングの場合、頻繁な勾配の更新を保証するために、小さいバッチサイズが好ましい。マルチＧＰＵのトレーニングでは、同期のコストが、勾配の更新の回数と共に線形に増加する。バッチサイズを増やすと収束率が改善され、それによって、反復回数および同期回数が減る。加えて、システムの利用率および飽和も改善される。結果として、図１３（Ａ）〜１３（Ｃ）に示されているように、マルチＧＰＵのトレーニングには、中程度のバッチサイズが好ましい。（２）手に負えないほど大きいバッチサイズは、収束速度を低下させる。計算がバッチサイズと共に線形に増加するため、大きいバッチサイズは、制限された時間内での勾配の更新の回数を減らす。バッチサイズが３０００、１００００、３４００に設定された場合の収束速度の低下が、図１３（Ａ）、図１３（Ｂ）、および図１３（Ｃ）においてそれぞれ観察できる。
要約
【０１７７】
本開示では、バッチのトレーニング状態に関してトレーニングの労力を動的に調整するための非一貫性トレーニングについて説明した。ＩＳＧＤは、トレーニングを確率的プロセスとしてモデル化し、確率的プロセス制御において、損失の大きいバッチをリアルタイムで識別するための手法を利用する。その後、ＩＳＧＤは、十分にトレーニングされていないバッチに対するトレーニングを加速するための新しい下位問題を解く。さまざまなデータセットおよびモデルに対する多数の実験が、非一貫性トレーニングの有望な性能を示している。
【０１７８】
以上で、いくつかの具体的な例を使用して本開示を提示したが、当業者は、我々の教示がそのように限定されないということを認識するであろう。したがって、本開示は、添付された特許請求の範囲によってのみ限定されるべきである。
【図１】
2019509550.tif 000066
【図２】
2019509550.tif 000067
【図３】
2019509550.tif 000068
【図４】
2019509550.tif 000069
【図５】
2019509550.tif 000070
【図６Ａ】
2019509550.tif 000071
【図６Ｂ】
2019509550.tif 000072
【図７】
2019509550.tif 000073
【図８】
2019509550.tif 000074
【図９】
2019509550.tif 000075
【図１０】
2019509550.tif 000076
【図１１Ａ】
2019509550.tif 000077
【図１１Ｂ】
2019509550.tif 000078
【図１１Ｃ】
2019509550.tif 000079
【図１１Ｄ】
2019509550.tif 000080
【図１１Ｅ】
2019509550.tif 000081
【図１２Ａ】
2019509550.tif 000082
【図１２Ｂ】
2019509550.tif 000083
【図１２Ｃ】
2019509550.tif 000084
【図１２Ｄ】
2019509550.tif 000085
【図１２Ｅ】
2019509550.tif 000086
【図１２Ｆ】
2019509550.tif 000087
【図１３Ａ】
2019509550.tif 000088
【図１３Ｂ】
2019509550.tif 000089
【図１３Ｃ】
2019509550.tif 000090
【図１４Ａ】
2019509550.tif 000091
【図１４Ｂ】
2019509550.tif 000092
【図１５】
2019509550.tif 000093
【国際調査報告】
2019509550.tif 000094
2019509550.tif 000095