逆伝播アルゴリズムとして勾配降下法は、最初に広く受け入れられたジェフリーのヒントン、で最後の世紀に提案されました。GDそれぞれの研究チームの数によって公開最初、彼らはほとんどが無人島ですが、それが「自然」の時に登場するようヒントンが自分の研究論文のために多くの時間が関係を歩きながら、完全な研究ヒントンは、GDメソッドを表します、GDは、業界から注目を集めるようになりました。これは最も重要な基礎を築いた21世紀の爆発深度調査の様々な出現の背後にGDの改良版です。
PART1:勾配降下のオリジナルバージョン
まず、ニューラルネットワークは重みとバイアス初期化に対して計算されている、また、トレーニングセットを持っています。
し、その後にキャストする方法を具体的なトレーニングセットを追加します。
私たちの場合トレーニングは、次に(mは学習サンプルセットの総数に等しくなるように)ライン上のニューラルネットワークに直接供給し、数千または数千のサンプル未満の合計にセット。
しかし、多くの場合、サンプルのセット数は数千万、数千のです訓練、そしてすべては、我々は、データがスコアのように(ピンチピンチに設定し、アルゴリズムを征服することを、配信データセットのサブバッチ法を取る傾向があり、一息にあまりにも疲れフィード草の多くはカットと同様、私は)ギロチンに置か束に草を置く:
各ヒープデータを覚えているが、m個のサンプルを持って、トレーニングはサンプルの総数をmとし
たときに、M = 1、つまり、歩行訓練GDサンプル、ビット贅沢なHAは、ランダム(確率的)勾配降下法と呼ばれます。
このコスト関数J(B、W、で .......)=損失(y ^、Y)+ 正則化項の
mは= M、すなわち、GDは、すべてのトレーニングサンプルを行く、というバッチ勾配降下法律。
このコスト関数J(B、W、で .......)= 1 / M×( 全損失(Y ^(I)、 Y(i))を加算)+正則化項
Mはminibatch勾配降下として知られる2つの間に介在されたとき。
3つの方法は、最も基本的な勾配降下法、ランダムGDの欠点は、損失が全体的な速度(もちろん、それは最速の単一トレーニングハッハッハですが)遅く、しかしジャンプをジャンプアップされます、その結果、定量化加速させていますそして、訓練の終わり近くに、それは完全に収束した結果ではなく、動的に増加することにより調整することができる変動は、learningrateを減少させ、それを好きではない、追加のランダムGDオンライン学習として使用することができる、このaはそれの機能。batchGD欠点は、1回の反復時間の合計サンプルサイズを訓練するときは、あまりにも長いが、全体のトレーニングプロセスは長い時間がかかる原因となる機械立ち往生し、ピットの父ああであるということです。だから、一般的に、我々はGDを実行するためにminibatchメソッドを使用しているので、あなたは手動で私たちのGDを制御するために(も自動的に、私はこれを書いていないだろうメートル年代の各バッチのサイズを調整)することができます。
これは、古典的な1986として読み取ることができます:デビッド・ラメルハート、GeoffreyHintonにより、誤差伝播による内部表現を学びます
PART2:プレミアムGD - 運動量、運動量勾配降下
////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////
前に正式にそれを言えば、我々は最初の平均を表す数学的な概念を導入------も平均(指数加重移動平均)を移動指数加重移動平均と呼ばれます、
そこのデータの集合であり、このデータのセットの平均を表す番号を見つける必要がある、そして最も確かに非常に簡単、すべての数字を足していないと、その後数で割って、また需要の期待と呼ばれます。しかし、この方法は、コンピュータに友好的ではありません。まず、それはまた、計算を行いながら、大量のデータを次にわずかな遅延を計算する場合は、平均値とみなすべきで、このデータのセットを保存するために、所定の記憶スペースを必要とします。これらの問題を克服するために、我々は、すなわち、指数関数的加重移動平均をデータセットの平均値を表すための新しい方法を採用しています。
ここでは新しい可変パラメータβvと配置された人々を紹介します。コア式は、 VのT =ベータ] * VのT-1 +(1-β)* [シータ] Tは 、θは 、Tは Vとに、現在のt番目の生データであるTの前のTの平均値が、データ、Vを表し、Tが1 前方を表しますデータの平均T-1個は、更新されたパラメータβは、人間によって指定されます。β1の場合、vは相関の生データを用いて、線形トレンドになる傾向が弱い; 0 Vβは、傾向は、生データ、強い相関関係を有する原データに傾向傾向傾向がある場合。あなたが見ている場合はアンドリュー・ウcousera深学習コースの学生は、彼がここにリストされていない、線グラフの温度変化の一例を挙げて見ている必要があります。通常、V 0は 0に設定されています。
唯一のこの概念ではないアプリケーション、RL MCの技術による方法とTD方法Q(s、a)および式V(S)は、逆伝播の基礎としてEMAすることが提案されています。これは、広くCSで使用EMA言うことができます。
////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////
PART1の勾配降下を使用して、必然的に問題が発生します。(下図のように)反復は常に脳震盪、できるだけ早く最適点に収束することができないとき。しかし、学習率を変化させることにより、この問題のない良い解決策。より多くのバックに退縮伝搬法を見つけるために、人々はEMA GD反復、GDの改良版のように誕生---勢い勾配降下を使用し始めました。
以下は、パラメータの更新方法momentumGDです。
V tは BのV *の= T-1 +(1-W)のDW *のTを
V Tは = B用のV * T-1 +(1-B)* DB T
*のV - = wでトン
B = B - *のV族トン
最も利点と現在位置にVの相対的な方向を示し、この勢いを導入することにより、それらが効果的に全体的な最適化の時間消費を減少、ショック前に更新プロセスを抑制する。(下記参照)
ヒント:より多くの酸とSGDの使用と勢いクールああ
PART3:勢い改良版--- NAG(ネステロフ勾配を加速)
この名前は、そこにグリッドを強制することは非常に高いですね。実際には、何もずっと、ビット勢いの変化に基づいていないが、それは、収束を加速しています。
ここではNAGの反復式は次のとおりです。
さらに得るために、派生:
(dはVの勢いのと同等であり、θが更新されるパラメータであり、aは学習率です)
ルック当量、運動量以上に基づいてNAG ベータ] [G(θ I-1 )- G(θ I-2 )]。意味はすでに明確である:過去よりも大きい。この勾配勾配は、大きな理由が信じるようにならば、それは最後の、そして少しの理由よりも小さい勾配の勾配が、それは上に行くし続けると信じている場合、上に行くしていきます。それニュートン法を考えませんか??はい、アイデアは、使用される第二の誘導体です。この変更は、間違いなく、収束の成功によって加速します。
以下ヒントンコースPPTからの画像は、青い線は緑色の線がNAGで、勢いであるかを理解することができます。
グローバル収束コントラスト運動量と運動量NAGの観点から:(上記のように、以下に)NAGあります
その4:Adagrad与Adadelta
最初の二つは、勾配アルゴリズムの更新にある変更を加え、学習率の変更を行っている以下のAdagradとAdadeltaを言います。Adagradが適応的に各パラメータの異なる学習レートを割り当てることができ、異なる更新レートを使用する必要があり、異なるパラメータの問題を解決しました。
ここAdagradは、式を更新しています。
ここで、θ iは、tは 反復のt番目の時間のパラメータ値i番目を表し、ηは、学習率、G設定者であるI、tは t番目の反復に対する第i番目のパラメータの累積量の勾配であるが、G 、I、T = G I ,. 1-T + H *の時間T (hが現在の勾配ベクトル・パラメータです)。プログラムを与えられている午後12時00分Gを防止するために、値を手動で設定するアシストε。
通过用来代替之前静态的学习率a,我们达到了随迭代次数增加学习率减小的效果。Adagrad 在数据分布稀疏的场景能更好利用稀疏梯度的信息,相比 SGD能更有效地收敛。而它的缺点也十分明显,随着时间的增加,它的分母项越来越大,最终导致学习率收缩到太小无法进行有效更新。
在Adagra基础上,google的研究人员做了一些改进从而得到了Adadelta。
其对参数的更新方法如下:
下图是四种方法在mnist数据集上的对比图:
如果想进一步了解adadelta,可在此处查看原作:ADADELTA: An Adaptive Learning Rate Method
PART5:均方根传播(RMSprop)
RMSprop是hinton在他的课程中讲述的一种方法,跟上面说的Adadelta基本相似,
每次迭代中,针对待优化参数θ:
1、计算其梯度dθ ;
2、计算Sdθ =β * Sdθ + (1-β) * dθ2 ;
3、进行优化
通过使用梯度平方的指数衰减学习率,RMSprop也对不同参数采用了不同更新速率。Hinton本人建议设置β为0.9,设置起始学习率a为0.001。
PART6:Adam
把RMSprop和momentum结合到一起,便得到了强大的‘、目前最常用的Adam优化方法。该方法由OpenAI 的 Diederik Kingma 和多伦多大学的 Jimmy Ba 在2015年提交到ICLR的论文Adam:a method for stochastic optimation 提出,相较于以上其他算法,该方法还有着很好的稀疏梯度和噪声问题处理能力。
算法实现步骤:
Adam 的默认超参数配置:
Adam的一大优点就是不怎么需要调参,此处只是对超参作一个简单说明和推荐设置。
- a:学习率或步长,它控制了权重的更新比率(如 0.001)。较大的值(如 0.3)在学习率更新前会有更快的初始学习,而较小的值(如 1.0E-5)会令训练收敛到更好的性能。
- β1:一阶矩估计的指数衰减率(如 0.9)。
- β2:二阶矩估计的指数衰减率(如 0.999)。该超参数在稀疏梯度(如在 NLP 或计算机视觉任务中)中应该设置为接近 1 的数。
- ε:最不重要但也不可或缺的超参数,其为了防止在实现中除以零(如 10E-8)。
在CIFAR10数据集上,Adam和其他算法的表现:
PART7:AdaMAX
这是Adam的拓展版本。
在Adam中,单个参数的更新规则是将其梯度与当前和过去梯度的L2范数成反比例缩放。把这里的L2范数泛化到Lp范数也不是不可,尽管这里的变体会因为p值的变大而在数值上变得不稳定,但在特例中令p趋于无穷便得到了一个稳定又简单的算法。此时时间 t 时的步长和 vt^(1/p) 成反比例变化。
算法实现步骤:
AdaMax 参数更新的量级要比 Adam 更简单,|∆t| ≤ α。
=============================================================================================================
=============================================================================================================
最后放一个十分直观的汇总比较,该图像由Sebastian Ruder制作:
以下からの二つの絵セバスチャン・ルーダー-概要の最適化アルゴリズムの下降勾配