pytorchで一般的に使用されるオプティマイザーの概要

1.最急降下法の原理

        最急降下法の主な目的は、反復によって目的関数の最小値を見つけること、または最小値に収束することです。最も一般的に使用される例は、山を下る場合です。たとえば、すべてのステップは1ステップの長さであり、下るたびに最も急な場所が見つかります(死ぬ状況を考慮しないでください...)。山がほぼ滑らかで谷がないと仮定すると、山を下る最短かつ最速のパスが最終的に見つかります。このパスは、勾配が最も急な場所でもあります。

                                                                           式:x1 = x0 +λ▽J(x)(1)

    Jはxの関数であり、現在の位置はx0であり、この点からJの最小点に移動する必要があります。最初に前進の方向、つまり勾配の逆を決定し、次にλのステップサイズが点x1に到達します。上記は最急降下法の直感的な説明です。

2.深層学習における最急降下法

2.1 sgd

        深層学習では通常、ミニバッチ最急降下法(ミニバッチ最急降下法)を使用します。sgdアルゴリズムについて話しましょう。これは、実際にはミニバッチ勾配降下アルゴリズムを指します。データセット全体または一度に1つのサンプルを最適化する人は誰もいません。コア原則はフォーミュラ1です。

長所と短所;

(1)学習率と戦略の選択が難しい。ミニバッチを使用すると、非常にすばやく収束できます。

(2)学習率は、パラメーターのすべての次元を平等に扱うほど賢くはありません。

(3)極値と鞍点の問題に同時に直面している。局所最適解の問題を解決できない

(4)勾配をランダムに選択すると、同時にノイズが発生するため、重みの更新方向が正しくない場合があります。

2.2運動量法

        運動量法の各ステップは、前の降下方向と現在の点の勾配方向の累積の組み合わせであり、2.1法によって引き起こされる衝撃を軽減し、勾配をより滑らかにします。式は次のとおりです

                                                                                         vt =β* vt-1 +λ▽J(x)(2)

                                                                                         x1 = x0 + vt(3)

図に示す運動量項は、式2では(1-λ)* vt-1であり、式2では点Bの勾配はλ▽J(x)です。勾配の更新方向は式2全体です。

                                                                                                                              画像

  比較表は、ジッタが明らかに小さいことを示しています

                                                                                               画像

 

2.3NAGアルゴリズム   

 

最初の3つのアルゴリズムコードは次のとおりです。

 

class torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, nesterov=False)[source]
实现随机梯度下降算法(momentum可选)。
参数:

params (iterable) – 待优化参数的iterable或者是定义了参数组的dict
lr (float) – 学习率
momentum (float, 可选) – 动量因子(默认:0)
weight_decay (float, 可选) – 权重衰减(L2惩罚)(默认:0)
dampening (float, 可选) – 动量的抑制因子(默认:0)
nesterov (bool, 可选) – 使用Nesterov动量(默认:False)
例子:

>>> optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)
>>> optimizer.zero_grad()
>>> loss_fn(model(input), target).backward()
>>> optimizer.step()

つづく........

参照:

https://blog.csdn.net/qq_41800366/article/details/86583789

https://blog.csdn.net/weixin_36811328/article/details/83451096

https://mp.weixin.qq.com/s?__biz=MzA3NDIyMjM1NA==&mid=2649031658&idx=1&sn=fd1b54b24b607a9d28dc4e83ecc480fb&chksm=8712bd97b065348132d8261907c56ce14077646dfc

https://blog.csdn.net/kyle1314608/article/details/104401836

 

 

                              

 

おすすめ

転載: blog.csdn.net/gbz3300255/article/details/111212418