3つの勾配降下法アルゴリズム(BGD、SGD、MBGD)の違い

3つの勾配降下法アルゴリズム(BGD、SGD、MBGD)の違い

序文

ネットワークをトレーニングするときに、batch_size を設定することがよくあります。この batch_size は何に使用されますか? 10,000 枚の画像のデータセットはどのくらいの大きさにする必要がありますか? これを 1、10、100、または 10,000 に設定するとどのような違いがありますか?

  1. # 手書き数字認識ネットワークのトレーニング方法 
  2. ネットワーク.fit(  
  3. 列車画像、  
  4. トレーニングラベル、  
  5. エポック=5,  
  6. バッチサイズ=128)

バッチ勾配降下法 (BGD)

勾配降下法アルゴリズムは、一般的に損失関数を最小化するために使用されます。元のデータをネットワークに入力すると、ネットワークは特定の計算を実行し、ネットワークの計算結果と実際の状況のギャップを表す損失関数を取得します。勾配降下法アルゴリズムは、トレーニングされた結果が実際の状況により適合するようにパラメータを調整するために使用されます。これが勾配降下法の意味です。

バッチ勾配降下法は、勾配降下法の最も原始的な形式です。その考え方は、すべてのトレーニング データを使用して勾配をまとめて更新することです。勾配降下法アルゴリズムでは、損失関数の導関数を見つける必要があります。トレーニング データ セットが比較的大きい場合は、すべてのデータをまとめて読み込み、ネットワークでまとめてトレーニングし、合計する必要があると考えられます。これは巨大な行列になり、計算量も非常に膨大になります。もちろん、これには利点もあります。つまり、すべてのトレーニング セットが考慮されるため、ネットワークは最適な (極端な) 方向に最適化される必要があります。

確率的勾配降下法 (SGD)

バッチ勾配降下法とは異なり、確率的勾配降下法の考え方は、一度に 1 つのトレーニング セットを取り出してフィッティング トレーニングを実行し、反復トレーニングを実行するというものです。トレーニング プロセスでは、まずトレーニング データを取り出し、ネットワーク パラメータを修正して適合させ、パラメータを変更します。次に、次のトレーニング データを取り出し、修正したばかりのネットワークを使用して適合させてパラメータを変更します。これを繰り返して、各データがネットワークに入力されるまで繰り返し、パラメータが比較的安定するまで繰り返します。利点は、各フィッティングに 1 つのトレーニング データのみが使用され、更新の反復の各ラウンドが非常に高速になることです。欠点は、フィッティングが実行されるたびに 1 つのトレーニング データのみが考慮され、最適化の方向がトレーニング セット内のネットワークの全体的な最適方向であるとは限らず、多くの場合、ジッタが発生したり、ローカル最適値に収束したりすることです。

ミニバッチ勾配降下法 (MBGD)

ミニバッチ勾配降下法は、今でもコンピューターで最も一般的に使用されている妥協案を使用しています。ネットワークがトレーニングされるたびに、トレーニング データ セット全体ではなく、トレーニング データ セット内の特定のデータ セットでもなく、その一部、たとえば毎回 20 個の入力がトレーニングされます。これにより、データ量が多すぎて計算が遅くなったり、特定のトレーニング サンプルの特定のノイズ特性によってネットワークが激しく振動したり、最適でない方向に最適化されたりすることがなくなると考えられます。

これら 3 つの勾配降下アルゴリズムの計算方法を比較します。バッチ勾配降下法は大きな行列に対する演算であり、行列計算の最適化を使用して並列計算を実行することを検討できますが、メモリなどのハードウェア性能に対する要件が高くなります。ランダム勾配降下法の各反復は前の計算結果に依存するため、並列計算はできず、ハードウェア要件は低くなります。また、小さなバッチ勾配降下法では、各反復はより小さな行列であり、ハードウェア要件は高くありません。同時に、行列演算は並列計算でき、複数の反復間でシリアル計算が使用されるため、全体的に時間が節約されます。

下の図を見ると、3 つの勾配降下アルゴリズムによるネットワークの最適化の反復プロセスがよりよく反映されており、より直感的な印象を与えることができます。

要約する

勾配降下アルゴリズムの調整では、トレーニング データ セットが非常に小さい場合は、バッチ勾配降下法を直接使用できます。一度に取得できるトレーニング データが 1 つだけの場合、またはトレーニング データがリアルタイムでオンラインで送信される場合は、確率的勾配降下法を使用できます。その他の場合や一般的な場合は、バッチ勾配降下アルゴリズムを使用する方が適切です。

<<:  今年の主要リリース: 人工知能開発レポート 2020

>>:  IDC: 2021 年の中国スマート デバイス市場に関するトップ 10 の予測

ブログ    

推薦する

人工知能は電子商取引の分野でどのような応用が期待できるでしょうか?

科学技術と経済社会の急速な発展に伴い、人工知能の応用はますます一般的になり、その発展は私たちの仕事や...

...

...

...

9 トピック PyTorch での畳み込みニューラル ネットワーク (CNN) の実装

この写真をまだ覚えていますか?ディープシステムでは、52 個のオブジェクト検出モデルが導入されていま...

人工知能がデータアナリストに与える影響

セミナーで講演したイエローフィンのCEO、グレン・ラビー氏は、多くのアナリストが自動化や人工知能によ...

デューク大学は、低品質のモザイクを数秒で高解像度の画像に変換するAIアルゴリズムを提案

高画質を追求する時代において、低画質に対する許容度はますます低くなっています。 Zhihuで「低解像...

「量子超越性」の後、GoogleはTensorFlowの量子バージョンを強力にオープンソース化

Googleは2019年10月に「量子超越性」の検証に関する論文をNatureに掲載した後、3月9日...

...

顔認識モデルをゼロから構築する(例と Python コード付き)

01 はじめにFacebook に写真をアップロードするたびに、プラットフォームが顔認識アルゴリズ...

偽造AIがまた進化しました!たった一枚の写真で、スピーチと歌のビデオが自動的に生成されます

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

第4世代ロボットが発売。Lingdong TechnologyのAMR分野における粘り強さと革新

AGV と比較すると、V-AMR ロボットの利点は、特にビジネス プロセス、倉庫の変革、展開サイクル...

...

...