Keras之ReduceLROnPlateau函數(shù)-模型訓(xùn)練減少學(xué)習(xí)率
目的:定義學(xué)習(xí)率之后,經(jīng)過(guò)一定epoch迭代之后,模型效果不再提升,該學(xué)習(xí)率可能已經(jīng)不再適應(yīng)該模型。需要在訓(xùn)練過(guò)程中縮小學(xué)習(xí)率,進(jìn)而提升模型。如何在訓(xùn)練過(guò)程中縮小學(xué)習(xí)率呢?我們可以使用keras中的回調(diào)函數(shù)ReduceLROnPlateau。與EarlyStopping配合使用,會(huì)非常方便。
為什么初始化一個(gè)非常小的學(xué)習(xí)率呢?因?yàn)槌跏嫉膶W(xué)習(xí)率過(guò)小,會(huì)需要非常多次的迭代才能使模型達(dá)到最優(yōu)狀態(tài),訓(xùn)練緩慢。如果訓(xùn)練過(guò)程中不斷縮小學(xué)習(xí)率,可以快速又精確的獲得最優(yōu)模型。
使用手寫(xiě)數(shù)字mnist作演示,當(dāng)只設(shè)置EarlyStopping的時(shí)候,代碼及效果如下:
效果:訓(xùn)練到5輪就觸發(fā)早停了。

當(dāng)使用ReduceLROnPlateau在訓(xùn)練過(guò)程中優(yōu)化減小learning_rate:
得到的val_accuracy有所提升,訓(xùn)練輪數(shù)會(huì)增加。不會(huì)過(guò)早觸發(fā)EarlyStooping。當(dāng)然EarlyStopping的patience要比ReduceLROnPlateau的patience大一些才會(huì)有效果。

歡迎關(guān)注公眾號(hào)(python風(fēng)控模型),學(xué)習(xí)更多知識(shí)。

轉(zhuǎn)載:https://blog.csdn.net/weixin_44048809/article/details/105711356