您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)優(yōu)化器optimizers怎么用,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
一,優(yōu)化器概述
機(jī)器學(xué)習(xí)界有一群煉丹師,他們每天的日常是:
拿來藥材(數(shù)據(jù)),架起八卦爐(模型),點(diǎn)著六味真火(優(yōu)化算法),就搖著蒲扇等著丹藥出爐了。
不過,當(dāng)過廚子的都知道,同樣的食材,同樣的菜譜,但火候不一樣了,這出來的口味可是千差萬別?;鹦×藠A生,火大了易糊,火不勻則半生半糊。
機(jī)器學(xué)習(xí)也是一樣,模型優(yōu)化算法的選擇直接關(guān)系到最終模型的性能。有時(shí)候效果不好,未必是特征的問題或者模型設(shè)計(jì)的問題,很可能就是優(yōu)化算法的問題。
深度學(xué)習(xí)優(yōu)化算法大概經(jīng)歷了 SGD -> SGDM -> NAG ->Adagrad -> Adadelta(RMSprop) -> Adam -> Nadam 這樣的發(fā)展歷程。
對(duì)于一般新手煉丹師,優(yōu)化器直接使用Adam,并使用其默認(rèn)參數(shù)就OK了。
一些愛寫論文的煉丹師由于追求評(píng)估指標(biāo)效果,可能會(huì)偏愛前期使用Adam優(yōu)化器快速下降,后期使用SGD并精調(diào)優(yōu)化器參數(shù)得到更好的結(jié)果。
此外目前也有一些前沿的優(yōu)化算法,據(jù)稱效果比Adam更好,例如LazyAdam, Look-ahead, RAdam, Ranger等.
優(yōu)化器主要使用apply_gradients方法傳入變量和對(duì)應(yīng)梯度從而來對(duì)給定變量進(jìn)行迭代,或者直接使用minimize方法對(duì)目標(biāo)函數(shù)進(jìn)行迭代優(yōu)化。
當(dāng)然,更常見的使用是在編譯時(shí)將優(yōu)化器傳入keras的Model,通過調(diào)用model.fit實(shí)現(xiàn)對(duì)Loss的的迭代優(yōu)化。
初始化優(yōu)化器時(shí)會(huì)創(chuàng)建一個(gè)變量optimier.iterations用于記錄迭代的次數(shù)。因此優(yōu)化器和tf.Variable一樣,一般需要在@tf.function外創(chuàng)建。
深度學(xué)習(xí)優(yōu)化算法大概經(jīng)歷了SGD->SGDM->NAG->Adagrad->Adadelta(RMSprop)->Adam ->Nadam 這樣的發(fā)展歷程。
在keras.optimizers子模塊中,它們基本上都有對(duì)應(yīng)的類的實(shí)現(xiàn)。
SGD, 默認(rèn)參數(shù)為純SGD, 設(shè)置momentum參數(shù)不為0實(shí)際上變成SGDM, 考慮了一階動(dòng)量, 設(shè)置 nesterov為True后變成NAG,即 Nesterov Acceleration Gradient,在計(jì)算梯度時(shí)計(jì)算的是向前走一步所在位置的梯度。
Adagrad, 考慮了二階動(dòng)量,對(duì)于不同的參數(shù)有不同的學(xué)習(xí)率,即自適應(yīng)學(xué)習(xí)率。缺點(diǎn)是學(xué)習(xí)率單調(diào)下降,可能后期學(xué)習(xí)速率過慢乃至提前停止學(xué)習(xí)。
RMSprop, 考慮了二階動(dòng)量,對(duì)于不同的參數(shù)有不同的學(xué)習(xí)率,即自適應(yīng)學(xué)習(xí)率,對(duì)Adagrad進(jìn)行了優(yōu)化,通過指數(shù)平滑只考慮一定窗口內(nèi)的二階動(dòng)量。
Adadelta, 考慮了二階動(dòng)量,與RMSprop類似,但是更加復(fù)雜一些,自適應(yīng)性更強(qiáng)。
Adam, 同時(shí)考慮了一階動(dòng)量和二階動(dòng)量,可以看成RMSprop上進(jìn)一步考慮了Momentum。
Nadam, 在Adam基礎(chǔ)上進(jìn)一步考慮了 Nesterov Acceleration。
以上就是優(yōu)化器optimizers怎么用,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。