Julia: Flux.jl のネットワーク アップデート オプティマイザー パラメーターの説明

Flux.jlのネットワーク パラメーターの更新メソッドはupdate!(opt, p, g)、 、ですupdate!(opt, ps::Params, gs)。ここでp、 またはpsはネットワークのパラメーター、ggsパラメーターに対応する勾配です。ネットワーク パラメーター更新オプティマイザーには多くのオプションがありますが、そのほとんどは Adam アルゴリズムのバリアントまたは最適化です。以下に、これらのオプティマイザーとパラメーターの意味についていくつか紹介します。詳細については、さまざまなアルゴリズムの論文を読むことができます。 -深い理解。

1、Flux.Optimise.Descent ( η = 0.1 ) \text{Flux.Optimise.Descent}(\eta=0.1)Flux.Optimise.Descent ( η=0 . 1 ) : 最も原始的な勾配降下法オプティマイザー、パラメーターη \etaηは学習率です。各パラメータpppと対応する勾配δ p \delta pδ p、値p : = η × δ pp := \eta\times \delta pp:=×δ p

2、Flux.Optimise.Momentum ( η = 0.01 , ρ = 0.9 ) \text{Flux.Optimise.Momentum}(\eta=0.01, \rho=0.9)Flux.Optimize.Momentum ( η=0 0 1 r=0.9 ) :運動量を伴う勾配降下法アルゴリズム。ρ \rhoρ は主方向の勾配降下の加速度を制御し、減衰とみなすことができます。

3、Flux.Optimise.Nesterov ( η = 0.001 , ρ = 0.9 ) \text{Flux.Optimise.Nesterov}(\eta=0.001, \rho=0.9)Flux.Optimise.Nesterov ( η=0 0 0 1 r=0.9 ) :ネステロフ運動量を使用した勾配降下法アルゴリズム。ρ \rhoρ は主方向の勾配降下の加速度を制御し、減衰とみなすことができます。

4、Flux.Optimise.RMSProp ( η = 0.001 , ρ = 0.9 , ϵ = 1 0 − 8 ) \text{Flux.Optimise.RMSProp}(\eta=0.001, \rho=0.9, \epsilon=10^{- 8})Flux.Optimise.RMSProp ( η=0 0 0 1 r=0 9 ϵ=1 08 ): RMSProp アルゴリズム2 ^22、通常、学習率η \etaη以外のパラメータは通常調整されません。

5、Flux.Optimise.ADAM ( η = 0.001 , β :: Tuple = ( 0.9 , 0.999 ) , ϵ = 1 0 − 8 ) \text{Flux.Optimise.ADAM}(\eta=0.001, \beta\text{ :: タプル}=(0.9,0.999), \epsilon=10^{-8})Flux.Optimise.ADAM ( η=0 0 0 1 β  :: タプル=( 0 . 9 0 9 9 9 ) ϵ=1 08 ): ADAM アルゴリズム3 ^33β \ββは運動量の減衰係数で、それぞれ最初のタプルです (β 1 \beta_1b1) と 2 番目 ( β 2 \beta_2b2) 運動量推定値の指数関数的減衰。

6、Flux.Optimise.RADAM ( η = 0.001 , β :: Tuple = ( 0.9 , 0.999 ) , ϵ = 1 0 − 8 ) \text{Flux.Optimise.RADAM}(\eta=0.001, \beta\text{ :: タプル}=(0.9,0.999), \epsilon=10^{-8})Flux.Optimize.RADAM ( η=0 0 0 1 β  :: タプル=( 0 . 9 0 9 9 9 ) ϵ=1 08 ): 修正された ADAM アルゴリズム4 ^44

7、Flux.Optimise.AdaMax ( η = 0.001 , β :: Tuple = ( 0.9 , 0.999 ) , ϵ = 1 0 − 8 ) \text{Flux.Optimise.AdaMax}(\eta=0.001, \beta\text{ :: タプル}=(0.9,0.999), \epsilon=10^{-8})Flux.Optimise.AdaMax ( η=0 0 0 1 β  :: タプル=( 0 . 9 0 9 9 9 ) ϵ=1 08 )∞ \inftyに基づくノルム

8、Flux.Optimise.ADAGrad ( η = 0.1 , ϵ = 1 0 − 8 ) \text{Flux.Optimise.ADAGrad}(\eta=0.1, \epsilon=10^{-8})Flux.Optimise.ADAGrad ( η=0 1 ϵ=1 08 ): ADAGrad アルゴリズム5 ^5これは、更新頻度に基づいたパラメータ固有の学習率を持っています。すべてのパラメータを調整する必要はありません。

9、Flux.Optimise.ADADelta ( ρ = 0.9 , ϵ = 1 0 − 8 ) \text{Flux.Optimise.ADADelta}(\rho=0.9,\epsilon=10^{-8})Flux.Optimise.ADADelta ( ρ=0 9 ϵ=1 08 ):ADAデルタ6 ^66は、過去の勾配更新ウィンドウに基づいて学習率を調整する ADGrad のバージョンです。パラメータを調整する必要はありません。ρ \rhoρは、各タイム ステップで勾配が減衰する係数です。

10、Flux.Optimise.AMSGrad ( η = 0.001 , β :: Tuple = ( 0.9 , 0.999 ) , ϵ = 1 0 − 8 ) \text{Flux.Optimise.AMSGrad}(\eta=0.001, \beta\text{ :: タプル}=(0.9,0.999), \epsilon=10^{-8})Flux.Optimise.AMSGrad ( η=0 0 0 1 β  :: タプル=( 0 . 9 0 9 9 9 ) ϵ=1 08 )ADAM オプティマイザーの7 ^7パラメータを調整する必要はありません。

11、Flux.Optimise.NADAM ( η = 0.001 , β :: Tuple = ( 0.9 , 0.999 ) , ϵ = 1 0 − 8 ) \text{Flux.Optimise.NADAM}(\eta=0.001, \beta\text{ :: タプル}=(0.9,0.999), \epsilon=10^{-8})Flux.Optimise.NADAM ( η=0 0 0 1 β  :: タプル=( 0 . 9 0 9 9 9 ) ϵ=1 08 )ADAM オプティマイザーの8^8パラメータを調整する必要はありません

12、Flux.Optimise.ADAMW ( η = 0.001 , β :: Tuple = ( 0.9 , 0.999 ) ,decay = 0 ) \text{Flux.Optimise.ADAMW}(\eta=0.001, \beta\text{ :: Tuple }=(0.9,0.999)、\text{減衰}=0)Flux.Optimise.ADAMW ( η=0 0 0 1 β  :: タプル=( 0 . 9 0 9 9 9 ) 減衰=0 ) :ADAMW9 ^99は、重み減衰の正則化を変更した ADAM のバリアントです。減衰パラメータは、最適化中の重みの減衰に適用されます。

13. Flux.Optimise.OADAM (η = 0.0001, β::タプル = (0.5, 0.9), ϵ = 1 0 − 8) \text{Flux.Optimise.OADAM}(\eta=0.0001, \beta\text{ :: タプル}=(0.5,0.9), \epsilon=10^{-8})Flux.Optimise.OADAM ( η=0 0 0 0 1 β  :: タプル=( 0 . 5 0 9 ϵ=1 08 ):OADAM(楽観的ADAM)10 ^{10}1 0は、敵対的トレーニングに適した「最適化アイテム」を追加したADAMのバリアントです。

14、Flux.Optimise.AdaBelief ( η = 0.001 , β :: Tuple = ( 0.9 , 0.999 ) , ϵ = 1 0 − 8 ) \text{Flux.Optimise.AdaBelief}(\eta=0.001, \beta\text{ :: タプル}=(0.9,0.999), \epsilon=10^{-8})Flux.Optimise.AdaBelief ( η=0 0 0 1 β  :: タプル=( 0 . 9 0 9 9 9 ) ϵ=1 08 ):アダビリーフ11 ^{11}1 1は、ADAM オプティマイザーのバリアントです。


参考:

[1]トレーニング、オプティマイザー、Flux.jl のドキュメント

[2] Geoffrey H.、Nitish S.、および Kevin S. 機械学習のためのニューラル ネットワーク - 講義 6a ミニバッチ勾配降下法の概要。

[3] Kingma, DP および Ba, J. Adam: 確率的最適化の手法。arXiv (2014)

[4] Liu, L.、Jiang, H.、および He, P. 他。適応学習率の分散とそれ以降について。arXiv (2019)

[5] John D.、Elad H.、および Yoram S. オンライン学習と確率的最適化のための適応劣勾配法。J.マッハ。学び。解像度 12、2121-2159 (2011)

[6] Matthew DZ ADADELTA: 適応学習率法。arXiv

[7] Sashank JR、Satyen K.、Sanjiv K. アダムとその先の融合について。ICLR 2018 カンファレンス(2018)

[8]ティモシー D. ネステロフの勢いをアダムに組み込む。ICLR 2016 ワークショップ(2016)

[9] Ilya L. と Frank H. は体重減少の正則化を分離しました。ICLR 2019 カンファレンス(2019)

[10] Daskalakis, C.、Ilyas, A.、yrgkanis, V.、および Zeng, H. 楽観的な GAN のトレーニング。arXiv (2017)

[11] Zhuang, J.、Tang, T.、Ding, Y. 他。AdaBelief Optimizer: 観測された勾配の信念に基づいてステップサイズを適応させます。arXiv (2020)

おすすめ

転載: blog.csdn.net/weixin_39679367/article/details/124589356