Neil Zhu铝宵,簡(jiǎn)書(shū)ID Not_GOD侧纯,University AI 創(chuàng)始人 & Chief Scientist狰域,致力于推進(jìn)世界人工智能化進(jìn)程字管。制定并實(shí)施 UAI 中長(zhǎng)期增長(zhǎng)戰(zhàn)略和目標(biāo),帶領(lǐng)團(tuán)隊(duì)快速成長(zhǎng)為人工智能領(lǐng)域最專(zhuān)業(yè)的力量呐矾。
作為行業(yè)領(lǐng)導(dǎo)者苔埋,他和UAI一起在2014年創(chuàng)建了TASA(中國(guó)最早的人工智能社團(tuán)), DL Center(深度學(xué)習(xí)知識(shí)中心全球價(jià)值網(wǎng)絡(luò)),AI growth(行業(yè)智庫(kù)培訓(xùn))等蜒犯,為中國(guó)的人工智能人才建設(shè)輸送了大量的血液和養(yǎng)分组橄。此外,他還參與或者舉辦過(guò)各類(lèi)國(guó)際性的人工智能峰會(huì)和活動(dòng)罚随,產(chǎn)生了巨大的影響力玉工,書(shū)寫(xiě)了60萬(wàn)字的人工智能精品技術(shù)內(nèi)容,生產(chǎn)翻譯了全球第一本深度學(xué)習(xí)入門(mén)書(shū)《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》淘菩,生產(chǎn)的內(nèi)容被大量的專(zhuān)業(yè)垂直公眾號(hào)和媒體轉(zhuǎn)載與連載遵班。曾經(jīng)受邀為國(guó)內(nèi)頂尖大學(xué)制定人工智能學(xué)習(xí)規(guī)劃和教授人工智能前沿課程,均受學(xué)生和老師好評(píng)瞄勾。
如何使用優(yōu)化器(optimizers)
優(yōu)化器是編譯 Keras 模型所需的兩個(gè)參數(shù)之一:
model = Sequential()
model.add(Dense(20, 64, init='uniform'))
model.add(Activation('tanh'))
model.add(Activation('softmax'))
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer=sgd)
我們可以在將優(yōu)化器傳遞給 model.compile()
之前初始化费奸,正如上面代碼所示,或者你可以直接通過(guò)名字調(diào)用进陡。在后面的例子中愿阐,默認(rèn)的優(yōu)化器參數(shù)將會(huì)被使用航罗。
# pass optimizer by name: default parameters will be used
model.compile(loss='mean_squared_error', optimizer='sgd')
基類(lèi)(base class)
keras.optimizers.Optimizer(**kwargs)
所有的優(yōu)化器都繼承自該類(lèi)邀摆,支持下面的參數(shù):
-
clipnorm
: float >= 0
這是用來(lái)構(gòu)建優(yōu)化器的基類(lèi)胁编,不是實(shí)際可以用作訓(xùn)練的優(yōu)化器妇智。
SGD
keras.optimizers.SGD(lr=0.01, momentum=0., decay=0., nesterov=False)
參數(shù):
-
lr
: float >= 0. 學(xué)習(xí)率 Learning rate -
momentum
: float >= 0. 參數(shù)更新動(dòng)量 parameter updates momentum -
decay
: float >= 0. 學(xué)習(xí)率每次更新的下降率 Learning rate decay over each update -
nesterov
: boolean. 是否應(yīng)用 Nesterov 動(dòng)量 whether to apply Nesterov momentum
Adagrad
keras.optimizers.Adagrad(lr=0.01, epsilon=1e-6)
建議使用默認(rèn)設(shè)置
參數(shù):
-
lr
: float >= 0. 學(xué)習(xí)率 -
epsilon
: float >= 0
Adadelta
keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-6)
建議使用默認(rèn)設(shè)置
參數(shù):
-
lr
: float >= 0. 默認(rèn)設(shè)置 -
rho
: float >= 0. -
epsilon
: float >= 0. Fuzz factor
refer to Adadelta: an adaptive learning rate method" by Matthew Zeiler.
RMSprop
keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-6)
建議使用默認(rèn)設(shè)置
參數(shù):
-
lr
: float >= 0. 默認(rèn)設(shè)置 -
rho
: float >= 0. -
epsilon
: float >= 0. Fuzz factor
Adam
keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-8, kappa=1-1e-8)
Adam 優(yōu)化器由 Kingma 和 Lei Ba 在 Adam: A method for stochastic optimization初家。默認(rèn)參數(shù)是文章中建議的歇攻。參數(shù) lambda 在此處改做 kappa厨疙。
參數(shù):
-
lr
: float >= 0. Learning rate. -
beta_1
,beta_2
: floats, 0 < beta < 1. Generally close to 1. -
epsilon
: float >= 0. Fuzz factor. -
kappa
: float 0 < kappa < 1. Lambda parameter in the original paper.