人工智能:你知道神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的調(diào)參“四重奏”是什么嗎?
課工場(chǎng) | 2020-06-22 13:33:26  2290 瀏覽
數(shù)據(jù)科學(xué)家是人工智能、算法模型、大數(shù)據(jù)挖掘的專家,也是目前人工智能領(lǐng)域受人羨慕、集萬(wàn)般寵愛(ài)于一身的職業(yè),聽(tīng)起來(lái)怎么樣?高端、大氣、上檔次。作為高大上的數(shù)據(jù)科學(xué)家當(dāng)然要附庸風(fēng)雅一些(數(shù)據(jù)科學(xué)家:你在諷刺我嗎??),他們?cè)跈C(jī)器學(xué)習(xí)、模型訓(xùn)練的枯燥工作閑暇之余,也要聽(tīng)聽(tīng)優(yōu)美、高雅的音樂(lè)放松下心情。在公認(rèn)的高雅音樂(lè)中,有一種四重奏樂(lè)曲,它由4種樂(lè)器協(xié)奏,樂(lè)器之間有一定類似的特質(zhì)和旋律,在四位演奏家的高超技藝、默契良好地協(xié)調(diào)合作下,演奏出來(lái)的樂(lè)曲優(yōu)美動(dòng)聽(tīng)、音色純粹美麗,是廣大音樂(lè)愛(ài)好者和藝術(shù)家們最喜愛(ài)的一種樂(lè)曲形式。

在人工智能領(lǐng)域的深度學(xué)習(xí)過(guò)程中,尤其在數(shù)據(jù)科學(xué)家訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),經(jīng)常會(huì)對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行調(diào)參優(yōu)化,以獲得最佳的模型效果。其中有四類最基本的調(diào)參方法,它們分別是:調(diào)整隱藏層節(jié)點(diǎn)數(shù)、增加隱藏層數(shù)量、調(diào)整激活函數(shù)、調(diào)整模型復(fù)雜度控制。數(shù)據(jù)科學(xué)家經(jīng)常把這四類調(diào)參方法正確有序地組合起來(lái)使用,使它們相互作用、交叉融合,讓神經(jīng)網(wǎng)絡(luò)模型產(chǎn)生了奇妙的效果,此時(shí)數(shù)據(jù)科學(xué)家變身成為模型訓(xùn)練的“藝術(shù)演奏家”,譜寫(xiě)并奏響了神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的調(diào)參“四重奏”。

調(diào)參“四重奏”之“舞臺(tái)”與“樂(lè)器”
首先,我們來(lái)準(zhǔn)備數(shù)據(jù)集和建立訓(xùn)練模型,搭建“四重奏”的“舞臺(tái)”。本文通過(guò)python語(yǔ)言調(diào)用scikit-learn庫(kù)中的紅酒數(shù)據(jù)集,并使用MLP神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行分類模擬訓(xùn)練。scikit-learn庫(kù)中的紅酒數(shù)據(jù)集共有178個(gè)數(shù)據(jù)樣本,它們被歸入三個(gè)類別中,分別是class_0,class_1,和class_2,其中class_0中包含59個(gè)樣本,class_1中包含71個(gè)樣本,class_2中包含48個(gè)樣本。我們開(kāi)始準(zhǔn)備數(shù)據(jù)集,搭建“四重奏舞臺(tái)”。
輸入代碼如下:
#導(dǎo)入MLP神經(jīng)網(wǎng)絡(luò)
fromsklearn.neural_network import MLPClassifier
#從sklearn的datasets模塊載入紅酒數(shù)據(jù)集
fromsklearn.datasets import load_wine
wine_data= load_wine()
#導(dǎo)入數(shù)據(jù)集拆分工具
fromsklearn.model_selection import train_test_split
X=wine_data['data']
y=wine_data['target']
#將數(shù)據(jù)集拆分為訓(xùn)練數(shù)據(jù)集和驗(yàn)證數(shù)據(jù)集
X_train,X_test, y_train, y_test = train_test_split(X,y,random_state=42)
#定義MLP分類器
mlp= MLPClassifier(solver='lbfgs')
mlp.fit(X_train,y_train)
運(yùn)行結(jié)果如下:
MLPClassifier(activation='relu',alpha=0.0001,batch_size='auto', beta_1=0.9,beta_2=0.999, early_stopping=False,epsilon=1e-08,
hidden_layer_sizes=(100,),learning_rate='constant',
learning_rate_init=0.001,max_iter=200, momentum=0.9,
n_iter_no_change=10,nesterovs_momentum=True, power_t=0.5,
random_state=None,shuffle=True, solver='lbfgs', tol=0.0001,
validation_fraction=0.1,verbose=False, warm_start=False)
其次,我們?cè)偻ㄋ桌斫庀律窠?jīng)網(wǎng)絡(luò)的這四類基礎(chǔ)調(diào)參的內(nèi)容,對(duì)于四重奏的重要角色——樂(lè)器我們可以比喻為這幾個(gè)基礎(chǔ)參數(shù):
  • 小提琴、中提琴——隱藏層節(jié)點(diǎn)數(shù)、隱藏層數(shù)量(hidden_layer_sizes)。小提琴、中提琴的音色優(yōu)美柔和,在協(xié)奏中兩者配合起來(lái)非常協(xié)和,在神經(jīng)網(wǎng)絡(luò)調(diào)參中,隱藏層節(jié)點(diǎn)數(shù)與層數(shù)也是緊密配合使用,能充分調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)的效果。在上面的運(yùn)行結(jié)果中,就是指hidden_layer_sizes參數(shù)。該參數(shù)值默認(rèn)情況下為[100,],表示模型中只有一個(gè)隱藏層,而隱藏層中的節(jié)點(diǎn)數(shù)是100。如果hidden_layer_sizes定義為[10,10],那就表示模型中有兩個(gè)隱藏層,每層有10個(gè)節(jié)點(diǎn)。
  • 鋼琴——激活函數(shù)(activation)。鋼琴被人們稱作樂(lè)器之王,音色洪亮動(dòng)聽(tīng),在協(xié)奏中能發(fā)揮主要的影響力,在神經(jīng)網(wǎng)絡(luò)調(diào)參中,激活函數(shù)的使用也能起到主要的影響作用。在上面的運(yùn)行結(jié)果中,激活函數(shù)就是activation參數(shù),它是將隱藏單元進(jìn)行非線性化的方法,一共有四種值:“identity”、“l(fā)ogistic”、“tanh”以及“relu”,而在默認(rèn)情況下,參數(shù)值是“relu”。
  • 大提琴——模型復(fù)雜度控制(alpha)。大提琴音色低沉穩(wěn)重,在協(xié)奏中有著深沉的控制力,訓(xùn)練神經(jīng)網(wǎng)絡(luò)的調(diào)參中,對(duì)模型的復(fù)雜度控制也有類似的效果。在上面的運(yùn)行結(jié)果中,模型復(fù)雜度控制就是alpha參數(shù)。它是一個(gè)用來(lái)控制正則化的程度,默認(rèn)的數(shù)值是0.0001。

奏響神經(jīng)網(wǎng)絡(luò)的調(diào)參“四重奏”
下面使用上面搭建好的舞臺(tái)(數(shù)據(jù)集和模型),看看調(diào)參四重奏的表演效果。
1、缺省參數(shù)下的模型測(cè)試
print('缺省參數(shù)下MLP模型的測(cè)試數(shù)據(jù)集得分:{:.2f}'.format(mlp.score(X_test,y_test)))
輸出結(jié)果為:
缺省參數(shù)下MLP模型的測(cè)試數(shù)據(jù)集得分:0.96
這個(gè)數(shù)據(jù)集和訓(xùn)練出來(lái)的MLP模型,表現(xiàn)還不錯(cuò)。
2、小提琴獨(dú)奏——隱藏層節(jié)點(diǎn)數(shù)為200的MLP模型
我們嘗試一下修改隱藏層參數(shù)hidden_layer_sizes的節(jié)點(diǎn)數(shù),看看它自己的獨(dú)奏效果(當(dāng)然其他參數(shù)并不是不起作用,而是在幕后充當(dāng)了背景音樂(lè)):
#修改隱藏層參數(shù)hidden_layer_sizes的節(jié)點(diǎn)數(shù)為200
mlp_200=MLPClassifier(solver='lbfgs',hidden_layer_sizes=[200])
mlp_200.fit(X_train,y_train)
print('節(jié)點(diǎn)數(shù)為200的MLP模型測(cè)試數(shù)據(jù)集得分:{:.2f}'.format(mlp_200.score(X_test,y_test)))
輸出結(jié)果為:
節(jié)點(diǎn)數(shù)為200的MLP模型測(cè)試數(shù)據(jù)集得分:0.71
好像效果一般,我們?cè)俳又{(diào)整其他參數(shù),開(kāi)始二重奏。
3、小提琴與中提琴協(xié)奏——隱藏層節(jié)點(diǎn)數(shù)為200、層數(shù)為2的MLP模型
#修改隱藏層參數(shù)hidden_layer_sizes的層數(shù)為2、節(jié)點(diǎn)數(shù)為200
mlp_2L=MLPClassifier(solver='lbfgs',hidden_layer_sizes=[200,200])
mlp_2L.fit(X_train,y_train)
print('隱藏層數(shù)為2、節(jié)點(diǎn)數(shù)為200的MLP模型測(cè)試數(shù)據(jù)集得分:{:.2f}'.format(mlp_2L.score(X_test,y_test)))
輸出結(jié)果為:
隱藏層數(shù)為2、節(jié)點(diǎn)數(shù)為200的MLP模型測(cè)試數(shù)據(jù)集得分:0.93
模型效果得到明顯的改善,繼續(xù)增加參數(shù)看看三重奏的效果。
4、小提琴、中提琴、鋼琴三重奏——隱藏層節(jié)點(diǎn)數(shù)為200、層數(shù)為2、激活函數(shù)值為tanh的MLP模型
#增加修改激活函數(shù)的值為tanh
mlp_tanh=MLPClassifier(solver='lbfgs',hidden_layer_sizes=[200,200],
 activation='tanh')
mlp_tanh.fit(X_train,y_train)
print('隱藏層數(shù)為2、節(jié)點(diǎn)數(shù)為200、激活函數(shù)為tanh的MLP模型測(cè)試數(shù)據(jù)集得分:{:.2f}'.format(mlp_tanh.score(X_test,y_test)))
輸出結(jié)果為:
隱藏層數(shù)為2、節(jié)點(diǎn)數(shù)為200、激活函數(shù)為tanh的MLP模型測(cè)試數(shù)據(jù)集得分:0.84
好像有點(diǎn)不和諧了,模型效果反而降低了,也許是這個(gè)數(shù)據(jù)集不能這樣來(lái)調(diào)參吧,繼續(xù)增加參數(shù),嘗試一下四重奏的效果。
5、四重奏——隱藏層節(jié)點(diǎn)數(shù)為200、層數(shù)為2、激活函數(shù)值為tanh、模型復(fù)雜度控制alpha=1的MLP模型
mlp_4cz=MLPClassifier(solver='lbfgs',hidden_layer_sizes=[200,200],
 activation='tanh',alpha=1)
mlp_4cz.fit(X_train,y_train)
print('隱藏層數(shù)為2、節(jié)點(diǎn)數(shù)為200、激活函數(shù)為tanh、模型復(fù)雜度控制為1的MLP模型測(cè)試數(shù)據(jù)集得分:{:.2f}'.format(mlp_4cz.score(X_test,y_test)))
輸結(jié)果為:
隱藏層數(shù)為2、節(jié)點(diǎn)數(shù)為200、激活函數(shù)為tanh、模型復(fù)雜度控制為1的MLP模型測(cè)試數(shù)據(jù)集得分:0.82
好像效果也沒(méi)有提高,四重奏沒(méi)有發(fā)揮更大的效果。難道折騰了好一會(huì)的四重奏演奏會(huì)就這樣結(jié)束了,好像有點(diǎn)不甘心。
6、正確認(rèn)識(shí)調(diào)參
其實(shí),在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中(其他模型訓(xùn)練也一樣),參數(shù)調(diào)整是通過(guò)不斷嘗試和磨合的,現(xiàn)實(shí)情況中,不能是只要覺(jué)得調(diào)整了參數(shù)就會(huì)一定有好的效果,就像作曲家譜寫(xiě)的四重奏樂(lè)章,如果一定要把不合適的樂(lè)器、旋律、節(jié)奏搭配在一起,那么再優(yōu)秀的演奏家,做多大的努力進(jìn)行協(xié)同演奏,也奏不出優(yōu)美動(dòng)聽(tīng)的音樂(lè)來(lái)
:本文為了幫助讀者朋友方便理解四個(gè)基本調(diào)參方法做的粗淺比喻,并不是指其他參數(shù)就不起作用了,其他參數(shù)都做了背景音樂(lè),在幕后當(dāng)著幕后英雄呢。而且在調(diào)參過(guò)程中,也可以多增加幾個(gè)參數(shù)一起調(diào)節(jié),可以奏響調(diào)參的五重奏、六重奏,甚至是交響樂(lè)團(tuán)演奏。

調(diào)參四重奏之結(jié)語(yǔ)
根據(jù)上述對(duì)MLP神經(jīng)網(wǎng)絡(luò)簡(jiǎn)單的訓(xùn)練過(guò)程,我們可以小結(jié)如下:
  • 本文對(duì)神經(jīng)網(wǎng)絡(luò)模型中的四種參數(shù)調(diào)節(jié)方法是常用的優(yōu)化手段,這四種調(diào)參需要不斷試驗(yàn)組合,達(dá)到模型最佳。其中隱藏層的數(shù)量和隱藏層中節(jié)點(diǎn)的數(shù)量使用最多,但是神經(jīng)網(wǎng)絡(luò)的隱藏節(jié)點(diǎn)個(gè)數(shù)選取問(wèn)題至今仍是一個(gè) 世界難題,根據(jù)經(jīng)驗(yàn),建議神經(jīng)網(wǎng)絡(luò)中隱藏層的節(jié)點(diǎn)數(shù)與訓(xùn)練數(shù)據(jù)集的特征數(shù)量大致相等,但是一般不要超過(guò)500。
  • 神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的調(diào)參還有很多方式,比如loss函數(shù)的選擇、Regularization、dropout、調(diào)節(jié)mini-batch size等等。限于篇幅,這里不再贅述,有興趣的讀者可以在網(wǎng)絡(luò)上查找資料進(jìn)行操作演練。
    標(biāo)簽:
欧美性大战XXXXX久久久√,国产无遮挡裸体免费视频网站 ,久99久女女精品免费观看69堂,五月综合激情婷婷六月,国自产精品手机在线观看视频,欧美色爱综合网,国产精品三级国产AV,免费黄色高清无码,**a免费视频毛片,亚洲AV永久无码精品无码四虎
日韩精品一区二区三区vr| 国产精品亚洲A∨天堂不卡| AV在线播放日韩亚洲欧| 精品国产一区二区三区精东影业| 人人妻人人澡人人爽人人精品麻豆 | 欧美激情欧美狂野欧美精品免费| 无码国产精品一区二区免费式芒果 | 亚洲va在线天堂手机在线 | 精品国产自在久久现线拍| 国产视热频国只有精品| 日韩中文字幕v亚洲中文字幕 | 国产精品自在线拍国产手青青机版| 51视频国产精品一区二区| 欧美三级不卡在线观线看高清| 欧美激情www黑人| 亚洲一区二区欧美日韩| yy111111少妇影院中文字幕| 99综合精品久久| 国产亚州精品女人久久久久久 | 亚洲成A人片在线观看无码专区| 欧美第一页草草影院| 高清无码毛片网| 人妻丰满熟妇AV无码片| 国产精品无码无卡A级毛片| 欧美丰满少妇XXXX性| 亚洲狠狠婷婷综合久久久久网站 | AV天堂激情国产在线| 亚洲成人黄色网址| 一区二区三区精品视频免费播放| 国产福利午夜波多野结衣 | 亚洲va在线va天堂va欧美va| 女性自慰网站免费观看w| 亚洲伊人色情久久综合网 | 在线精品无码字幕无码AV| 国产成人综合久久精品亚洲| 亚洲va在线va天堂va欧美va| 久久综合av色老头免费观看 | 日本中文字幕在线精品| 久久久久久综合网天天| 亚洲AV无码成人精品区H| 久久99精品久久久久久动态图|