機械学習線形回帰(V)の簡単かつ粗理解と実装:勾配降下法が導入され、全体勾配降下アルゴリズムFG、確率的勾配降下アルゴリズムSG、小バッチ勾配降下アルゴリズムミニbantch、ランダム平均勾配降下アルゴリズムSAG、比較アルゴリズム、勾配降下最適化アルゴリズム

直線回帰

学習目標

  • 線形回帰の実装プロセスにおける所有権
  • アプリケーションの線形回帰やSGDRegressor回帰予測を実現
  • 私たちは、評価基準を知っていると数式回帰アルゴリズム
  • underfitting原因と解決策を知っている過剰適合
  • 私たちは、原則リッジ回帰と線形回帰の違いを知っています
  • アプリケーションリッジ回帰予測を実現します
  • アプリケーションは、保存と読み込みモデルを達成JOBLIB

2.5はじめに勾配降下

ここに画像を挿入説明
基本的な勾配降下プロセスの実現を導入する前のセクションでは、一般的な勾配降下アルゴリズムは、以下のとおりです。

  • 完全な勾配降下アルゴリズム(フル勾配降下)、
  • 確率的勾配降下アルゴリズム(確率的勾配降下)、
  • ランダム勾配降下アルゴリズム(確率平均勾配降下)
  • 小バッチ勾配降下アルゴリズム(ミニバッチ勾配降下)、

これらは、適切にターゲット関数の重みを更新するために、各重みのための勾配は可能な限り最小化される計算重量ベクトルのために調整されています。違いは、使用のものと異なるサンプルです。

1つのフル勾配降下アルゴリズム(FG)

すべてのトレーニングセットのサンプル誤差は、算出した合計され、その目的関数として平均化されます。

重みベクトルは、最新の目標削減機能することを、勾配の反対方向に移動されます。

バッチ勾配降下速度は非常に遅くなりますので、バッチ勾配降下は、データセットのメモリ容量の制限を超えて処理することはできませんしながら、それぞれの更新を実行するときなので、我々は、データセット全体にわたるすべての勾配を計算する必要があります。

バッチ勾配降下モデルはまた、実行中のプロセスであること、オンラインで更新することができない、あなたは新しいサンプルを追加することはできません。

の勾配パラメータθの全体のトレーニングデータセットに基づいて計算された損失関数:

[画像ソースステーションは、セキュリティチェーン機構を有していてもよい、チェーンが失敗したダンプ、直接アップロードダウン画像を保存することをお勧めします(IMG-ZarB83Iz-1583244679496)(../画像/ GD%E4%B8%8B%E9%99%8D% E5%の85%のAC%E5%のBCの%8F.png)]

2確率的勾配降下アルゴリズム(SG)

FGので、すべての反復が全てのサンプル誤差の重みを計算するために必要されると更新され、効率が低くなるので、実用上の問題は、多くの場合、学習サンプル数百万を持っており、局所最適ソリューションに陥りやすい、したがって、確率的勾配降下アルゴリズムが提案されています。

その算出した目標関数ラウンドもはや全てのサンプルエラーはありませんが、単一のサンプルエラー、すなわち、時間がこのプロセスは損失関数値まで繰り返されるサンプルを除去する前にサンプルの重みを更新するために、目的関数の勾配を計算に代入します損失関数値を低下または停止許容閾値未満です。

このプロセスは簡単で、効率的であり、一般的により良い反復が局所最適解に収束更新を回避することができます。その反復フォーム

[画像ソースステーションは、セキュリティチェーン機構を有していてもよい、チェーンが失敗したダンプ、直接アップロードダウン画像を保存することをお勧めします(IMG-GOpsuAVn-1583244679496)(../画像/ SG%E4%B8%8B%E9%99%8D% E5%の85%のAC%E5%のBCの%8F.png)]

各繰り返しノイズ出会い局所最適解に陥るがしやすい場合には、試料のみを使用しました。

式中、Xは、(i)訓練サンプルの特性値を示し、yは(i)は、タグ訓練サンプルの値を表します

ノイズが局所最適ソリューションに遭遇秋に可能性がある場合でもので、SGは、一つだけのサンプルの繰り返しを使用しています。

3勾配降下アルゴリズム少量(ミニbantch)

小バッチ勾配降下アルゴリズムをある程度考慮に上記二つの方法の利点を取って、FG及びSGの妥協です。

たびにトレーニングセットから小さなランダムサンプルセットは、反復的に小さなサンプルセットにFGを使用して更新された重みが出てきます。

BATCH_SIZEの小さな試料に含まれる抽出されたサンプル点の数は、典型的には2のべき乗に設定されていると呼ばれる加速GPU処理をより助長しています。

BATCH_SIZE = 1の場合は特に、SGなり、BATCH_SIZE = nの場合、それは反復形式FGとなります。

[画像ソースステーションは、セキュリティチェーン機構を有していてもよい、チェーンが失敗したダンプ、それは直接アップロードダウン画像を保存することをお勧めします(IMG-HgBknoun-1583244679497)(../画像/ミニバッチ%E4%B8%8B%E9%99% 8D%E5%の85%のAC%E5%以下のBC%8F.png)]

4ランダム勾配降下アルゴリズム(SAG)

SG法では、かかわらず、彼は大きな運用コストの問題を回避しますが、それぞれが勾配更新データの勾配に完全に独立しているので、トレーニングの面で大規模なデータのために、SG効果は、多くの場合、満足のいくものではありません。

各サンプルのためにメモリに、この問題を克服するために、ランダムな平均勾配アルゴリズムは、このサンプルを更新するために、i番目の勾配の勾配古い、ランダムに選択されたサンプルを維持、勾配他のサンプルは変更されないまま、すべての勾配を得ます次いで、平均値、およびパラメータを更新します。

このように、各サンプルの勾配のみ更新を計算し、計算コストは​​SGに相当するが、はるかに速い収束速度です。

5比較アルゴリズム

四つの基本的な勾配降下アルゴリズムの性能を一致させるために、我々は二つの論理の分類実験によって示されています。ここで使用されるように、大人UCIデータは、公共データベースからの設定(http://archive.ics.uci.edu/ml/datasets/Adult)。「標識し、14機能、データ表示欄」「性別」「年齢」、「教育の状況」「多くの場合、作業週を含むデータレコードの15081セット、の合計は、年俸を超える$ 50,000。」我々は、14個のデータ点に基づいて、データマークを予測するために、ロジスティック回帰予測モデルを用いて、(収入)機能訓練セット、テストセットとして残りの20%のようなデータセットの80%であろう。

図6は、4つの勾配モデル最適化アルゴリズムの性能の違いを反映しています。

[チェーンが失敗したイメージのダンプ、発信局は、直接アップロードダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよい(IMG-545HSBfe-1583244679497)(../画像/%E6%A2%AF%E5%BA%A6%E4 %B8%8B%E9%99%8D%E5%85%AC%E5%以下のBC%8F%E7%AE%97%E6%B3%95%E6%AF%94%E8%%の83.png BE)]

図1及び図2において、横軸は反復の有効な数を表し、縦軸は損失関数の平均値を表します。図1は、25倍に、表示を容易にするために、図2の拡大ITERATIVE 10を損失関数の平均値の前に効果的な反復プロセス25の変化を反映しています。

図1から分かるように、勾配アルゴリズムの4種類、反復回数の増加に伴って損失関数の平均値が低減されますFGは常に先行し、反復効率のされている、少ない反復回数でより低い平均コスト関数値を達成することができます。SAG画像FGと滑らかな、両方の勾配アルゴリズムの更新が前結合勾配に行われるため、SGとミニバッチは鮮明な画像を回転させる、ため、これら2つのアルゴリズムの更新ラウンド勾配勾配が考慮されていない前に、それらをランダムに選択またはサンプル計算複数のれます。

SGとFG以前、ミニバッチは、最新の0に収束するものの4つの**割引か縦ものの、図2から見ることができるが。あなたは、最適なパラメータを得るために、ミニバッチを使用する場合**この手段は、それが反復勾配アルゴリズム他の3倍よりも頻繁でなければなりません。

図3、図4において、横軸は時間を表し、縦軸は平均損失関数値を表します。

从图3中可以看出使用四种算法将平均损失函数值从0.7降到0.1最多只需要2.5s,由于本文程序在初始化梯度时将梯度设为了零,故前期的优化效果格外明显。其中SG在前期的表现最好,仅1.75s便将损失函值降到了0.1,虽然SG无法像FG那样达到线性收敛,但在处理大规模机器学习问题时,为了节约时间成本和存储成本,可在训练的一开始先使用SG,后期考虑到收敛性和精度可改用其他算法。

从图4,5,6可以看出,随着平均损失函数值的不断减小,SG的性能逐渐反超FG,FG的优化效率最慢,即达到相同平均损失函数值时FG所需要的时间最久。

综合分析六幅图我们得出以下结论:

(1**)FG方法由于它每轮更新都要使用全体数据集,故花费的时间成本最多,内存存储最大。**

(2)SAG在训练初期表现不佳,优化速度较慢。这是因为我们常将初始梯度设为0,而SAG每轮梯度更新都结合了上一轮梯度值。

(3)综合考虑迭代次数和运行时间,SG表现性能都很好,能在训练初期快速摆脱初始梯度值,快速将平均损失函数降到很低。但要注意,在使用SG方法时要慎重选择步长,否则容易错过最优解。

(4)mini-batch结合了SG的“胆大”和FG的“心细”,从6幅图像来看,它的表现也正好居于SG和FG二者之间。在目前的机器学习领域,mini-batch是使用最多的梯度下降算法,正是因为它避开了FG运算效率低成本大和SG收敛效果不稳定的缺点。

6 梯度下降优化算法(拓展)

以下这些算法主要用于深度学习优化

  • 动量法
    • 其实动量法(SGD with monentum)就是SAG的姐妹版
    • SAG是对过去K次的梯度求平均值
    • SGD with monentum 是对过去所有的梯度求加权平均
  • Nesterov加速梯度下降法
    • 类似于一个智能球,在重新遇到斜率上升时候,能够知道减速
  • Adagrad
    • 让学习率使用参数
    • 对于出现次数较少的特征,我们对其采用更大的学习率,对于出现次数较多的特征,我们对其采用较小的学习率。
  • Adadelta
    • Adadelta AdagradはAdagrad学習率が単調に減少する問題に対処するためのアルゴリズムを拡張したものです。
  • RMSProp
    • 指数移動平均勾配二乗変化率学習を組み込んだ調整されています。
    • うまく不安定なターゲット機能で収束させることができる(非定常)です。
  • アダム
    • AdaGradおよび利点RMSProp 2つの最適化アルゴリズムを結合。
    • これは、適応学習率アルゴリズムです。

参考リンク:https://blog.csdn.net/google19890102/article/details/69942970

596元記事公開 ウォンの賞賛790 ビューに10万+を

おすすめ

転載: blog.csdn.net/qq_35456045/article/details/104643027