深さ学習オプティマイザoptimizerの選択については、これらを理解する必要があります.

1268 ワード

以下を参照してください.https://www.leiphone.com/news/201706/e0PuNeEzaXWsMPZX.html,本稿に基づいて再レイアウトを行い,式を再編集した.
この文書は次のように整理されます.
  • 各アルゴリズムの勾配更新規則と欠点
  • この不足に対応するために提案された次のアルゴリズム
  • スーパーパラメータの一般設定値
  • いくつかのアルゴリズムの効果比較
  • どのアルゴリズムを選択するか
  • オプティマイザアルゴリズムの概要:
    まず、勾配降下で最も一般的な3つの変形BGD、SGD、MBGDを見てみましょう.この3つの形式の違いは、ターゲット関数の勾配を計算するためにどれだけのデータを使用するかによって決まります.そうすると、自然にtrade-off、すなわちパラメータ更新の精度と実行時間に関連します.
    1. Batch gradient descent
    勾配更新規則:
    BGDはトレーニングセット全体のデータを用いてcost function対パラメータの勾配を計算する.θ t = θ t − 1 − η ⋅ ▽ θ J θ\theta_t =\theta_{t-1} -\eta\cdot\bigtriangledown_{\theta}J_{\theta} θt​=θt−1​−η⋅▽θ​Jθ欠点:この方法は1回の更新でデータセット全体に対して勾配を計算するので、計算が非常に遅く、大量のデータセットに遭遇するのも非常に厄介で、新しいデータのリアルタイム更新モデルを投入することができません.
    for i in range(nb_epochs):
    	params_grad = evaluate_gradient(loss_function, data, params)
        params = params - learning_rate * params_grad
    

    反復回数epochを事前に定義し,まず勾配ベクトルparams_を計算する.grad,次いで勾配の方向に沿ってパラメータparamsを更新し,learning rateは私たちが一歩一歩どれだけ大きいかを決定した.Batch gradient descentは凸関数に対してグローバル極小値に収束し,非凸関数に対して局所極小値に収束することができる.
    2. Stochastic gradient descent
    勾配更新規則:
    BGDのすべてのデータで勾配を計算する場合と比較して、SGDは更新するたびに各サンプルに勾配更新を行い、大きなデータセットでは似たようなサンプルがある可能性があり、BGDは勾配を計算する際に冗長性が現れるが、SGDは一度に更新するだけで冗長性がなく、比較的速く、サンプルを追加することができる.