本發(fā)明涉及一種機(jī)器學(xué)習(xí)相關(guān)領(lǐng)域,特別涉及一種神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)生成方法。
背景技術(shù):
近年來(lái),深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域取得了引人注目的成果,其中一個(gè)重要因素是激活函數(shù)的發(fā)展。在人工神經(jīng)網(wǎng)絡(luò)中,神經(jīng)元節(jié)點(diǎn)的激活函數(shù)定義了對(duì)神經(jīng)元輸出的映射,簡(jiǎn)單來(lái)說(shuō),神經(jīng)元的輸出經(jīng)過(guò)激活函數(shù)處理后再作為輸出。
神經(jīng)網(wǎng)絡(luò)中激活函數(shù)的主要作用是提供網(wǎng)絡(luò)的非線性建模能力。假設(shè)一個(gè)示例神經(jīng)網(wǎng)絡(luò)中僅包含線性卷積和全連接運(yùn)算,那么該網(wǎng)絡(luò)僅能夠表達(dá)線性映射,即便增加網(wǎng)絡(luò)的深度也依舊還是線性映射,難以有效建模實(shí)際環(huán)境中非線性分布的數(shù)據(jù)。加入非線性激活函數(shù)之后,深度神經(jīng)網(wǎng)絡(luò)才具備了分層的非線性映射學(xué)習(xí)能力。因此,激活函數(shù)是深度神經(jīng)網(wǎng)絡(luò)中不可或缺的部分。
隨著深度學(xué)習(xí)的快速發(fā)展,激活函數(shù)的種類也逐漸豐富起來(lái)。目前機(jī)器學(xué)習(xí)領(lǐng)域應(yīng)用廣泛的激活函數(shù)有sigmoid(s型生長(zhǎng)曲線)函數(shù)、tanh(雙曲正切)函數(shù)、relu(修正線性單元)函數(shù)、prelu(參數(shù)化修正線性單元)函數(shù)、pelu(參數(shù)化指數(shù)型線性單元)函數(shù)、rrelu(隨機(jī)修正線性單元)函數(shù)等等。但是,這些基本的激活函數(shù)都存在不足,比如梯度消失、收斂速度較慢、均為凸函數(shù)等問(wèn)題。另一方面這些激活函數(shù)也無(wú)法對(duì)不同的輸入做出相對(duì)應(yīng)的激活,這是因?yàn)橐坏┘せ詈瘮?shù)預(yù)先定義或者學(xué)習(xí)完畢,在神經(jīng)網(wǎng)絡(luò)模型測(cè)試階段激活函數(shù)就不會(huì)再改變。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)生成方法,通過(guò)該方法生成的激活函數(shù)提高了神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)非線性變化的能力,并且使得神經(jīng)網(wǎng)絡(luò)模型在測(cè)試階段能夠?qū)Σ煌妮斎胱鞒霾煌憫?yīng),改進(jìn)了神經(jīng)網(wǎng)絡(luò)使用單一種類激活函數(shù)存在的不足。
本發(fā)明的目的通過(guò)下述技術(shù)方案實(shí)現(xiàn):一種神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)生成方法,步驟如下:
s1、選擇多個(gè)不同的基本激活函數(shù);
s2、將步驟s1中選擇的多個(gè)不同的基本激活函數(shù)進(jìn)行組合作為神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù);
s3、神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)隨著神經(jīng)網(wǎng)絡(luò)模型的迭代進(jìn)行更新。
優(yōu)選的,所述基本激活函數(shù)為sigmoid函數(shù)、tanh函數(shù)、relu函數(shù)、prelu函數(shù)、pelu函數(shù)或rrelu函數(shù)。
優(yōu)選的,所述步驟s1中選擇2~6個(gè)不同的基本激活函數(shù)。
優(yōu)選的,所述步驟s2中多個(gè)不同的基本激活函數(shù)通過(guò)以下方式進(jìn)行組合得到神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)f(x):
pn=1-(p1+p2+,…,+pn-1);
其中p1,p2,…,pn是各基本激活函數(shù)的組合系數(shù),其預(yù)先設(shè)置的范圍為:0~1;
更進(jìn)一步的,所述步驟s3中神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)隨著神經(jīng)網(wǎng)絡(luò)的迭代而進(jìn)行更新的具體過(guò)程如下:
s31、首先通過(guò)反向傳播的算法對(duì)當(dāng)前各基本激活函數(shù)i的組合系數(shù)pi′,i=1,2,…n-1進(jìn)行參數(shù)更新,得到:
其中l(wèi)為神經(jīng)網(wǎng)絡(luò)模型定義的損失函數(shù);pi′當(dāng)前各基本激活函數(shù)的組合系數(shù),f′(x)為通過(guò)當(dāng)前各基本激活函數(shù)的組合系數(shù)針對(duì)當(dāng)前各基本激活函數(shù)組合得到的神經(jīng)網(wǎng)絡(luò)的激活函數(shù);p″i為更新后的各基本激活函數(shù)i的組合系數(shù);其中f′(x)為:
p′n=1-(p′1+p′2+,…,+p′n-1);
s32根據(jù)上述更新后的各基本激活函數(shù)的組合系數(shù)p″i,i=1,2,…n-1得到神經(jīng)網(wǎng)絡(luò)模型更新后的激活函數(shù)f″(x):
p″n=1-(p″1+p″2+,…,+p″n-1)。
優(yōu)選的,所述步驟s2中多個(gè)不同的基本激活函數(shù)通過(guò)以下方式進(jìn)行組合得到神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)f(x):
σn(wnx)=1-(σ1(w1x)+σ2(w2x)+,…,+σn-1(wn-1x));
其中σi(wix),i=1,2,…n代表輸入為wix的sigmoid函數(shù),w1,w2,…,wn為各基本激活函數(shù)的組合系數(shù),
更進(jìn)一步的,所述步驟s3中神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)隨著神經(jīng)網(wǎng)絡(luò)的迭代而進(jìn)行更新的具體過(guò)程如下:
s31、首先通過(guò)反向傳播的算法對(duì)當(dāng)前各基本激活函數(shù)i的組合系數(shù)wi′,i=1,2,…n-1,進(jìn)行參數(shù)更新,得到:
其中l(wèi)為神經(jīng)網(wǎng)絡(luò)模型定義的損失函數(shù);wi′當(dāng)前各基本激活函數(shù)的組合系數(shù),f′(x)為通過(guò)當(dāng)前各基本激活函數(shù)的組合系數(shù)針對(duì)當(dāng)前各基本激活函數(shù)組合得到的神經(jīng)網(wǎng)絡(luò)的激活函數(shù);w″i為更新后的各基本激活函數(shù)i的組合系數(shù);其中f′(x)為:
σn(wn′x)=1-(σ1(w1′x)+σ2(w2′x)+,…,+σn-1(w′n-1x));
其中σi(wi′x),i=1,2,…n代表輸入為wi′x的sigmoid函數(shù);
s32、根據(jù)上述更新后的各基本激活函數(shù)的組合系數(shù)w″i,i=1,2,…n-1得到神經(jīng)網(wǎng)絡(luò)模型更新后的激活函數(shù)f"(x):
σn(w″nx)=1-(σ1(w″1x)+σ2(w″2x)+,…,+σn-1(w″n-1x));
其中σi(w″ix),i=1,2,…n代表輸入為w″ix的sigmoid函數(shù)。
本發(fā)明相對(duì)于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:
(1)本發(fā)明神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)通過(guò)多個(gè)不同的基本激活函數(shù)組合而生成,通過(guò)本發(fā)明方法獲取到的激活函數(shù)改進(jìn)了數(shù)據(jù)驅(qū)動(dòng)的學(xué)習(xí)方式,提高了神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)非線性變化的能力,并且使得神經(jīng)網(wǎng)絡(luò)模型在測(cè)試階段能夠?qū)Σ煌妮斎胱鞒霾煌憫?yīng),改進(jìn)了神經(jīng)網(wǎng)絡(luò)使用單一種類激活函數(shù)存在的不足。另外本發(fā)明方法生成的神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)還隨著神經(jīng)網(wǎng)絡(luò)的迭代而進(jìn)行更新,具有更加靈活的形式,使得神經(jīng)網(wǎng)絡(luò)模型獲取到更好合適且學(xué)習(xí)非線性變化能力更強(qiáng)的激活函數(shù)。
(2)本發(fā)明方法在基本激活函數(shù)組合過(guò)程中,通過(guò)根據(jù)神經(jīng)網(wǎng)絡(luò)模型不同的輸入賦予各基本激活函數(shù)對(duì)應(yīng)不同的權(quán)重,相當(dāng)于由神經(jīng)網(wǎng)絡(luò)模型本身的輸入確定出神經(jīng)網(wǎng)絡(luò)的最終激活函數(shù),使得神經(jīng)網(wǎng)絡(luò)模型在測(cè)試階段能夠針對(duì)各個(gè)輸入做出更加合適且準(zhǔn)確的響應(yīng),進(jìn)一步提到了神經(jīng)網(wǎng)絡(luò)模型應(yīng)用的準(zhǔn)確性。
附圖說(shuō)明
圖1是本發(fā)明方法流程圖。
圖2是本發(fā)明方法實(shí)施例1中基本激活函數(shù)組合方式結(jié)構(gòu)圖。
圖3是本發(fā)明方法實(shí)施例2中基本激活函數(shù)組合方式結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
實(shí)施例1
本實(shí)施例公開(kāi)了一種神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)生成方法,如圖1所示,步驟如下:
s1、選擇多個(gè)不同的基本激活函數(shù);本步驟中一般選擇2~6個(gè)不同的基本激活函數(shù);本實(shí)施例中基本激活函數(shù)可為sigmoid函數(shù)、tanh函數(shù)、relu函數(shù)、prelu函數(shù)、pelu函數(shù)或rrelu函數(shù)。本實(shí)施例中多個(gè)不同的基本激活函數(shù)為上述函數(shù)中的其中幾個(gè)。
s2、將步驟s1中選擇的多個(gè)不同的基本激活函數(shù)進(jìn)行組合作為神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)。其中本步驟中多個(gè)不同的基本激活函數(shù)通過(guò)以下方式進(jìn)行組合得到神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)f(x):
pn=1-(p1+,p2+,…,+pn-1);
其中p1,p2,…,pn是各基本激活函數(shù)的組合系數(shù),其預(yù)先設(shè)置的范圍為:0~1;
s3、神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)隨著神經(jīng)網(wǎng)絡(luò)的迭代通過(guò)反向傳播的方式進(jìn)行更新,具體更新過(guò)程如下:
s31、首先通過(guò)反向傳播的算法對(duì)當(dāng)前各基本激活函數(shù)i的組合系數(shù)pi′,i=1,2,…n-1進(jìn)行參數(shù)更新,得到:
其中l(wèi)為神經(jīng)網(wǎng)絡(luò)模型定義的損失函數(shù);pi′當(dāng)前各基本激活函數(shù)的組合系數(shù),f′(x)為通過(guò)當(dāng)前各基本激活函數(shù)的組合系數(shù)針對(duì)當(dāng)前各基本激活函數(shù)組合得到的神經(jīng)網(wǎng)絡(luò)的激活函數(shù);p″i為更新后的各基本激活函數(shù)i的組合系數(shù);其中f′(x)為:
p′n=1-(p′1+p′2+,…,+p′n-1);
s31根據(jù)上述更新后的各基本激活函數(shù)的組合系數(shù)p″i,i=1,2,…n-1得到神經(jīng)網(wǎng)絡(luò)模型更新后的激活函數(shù)f″(x):
p″n=1-(p″1+p″2+,…,+p″n-1)。
實(shí)施例2
本實(shí)施例公開(kāi)了一種神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)生成方法,步驟如下:
s1、選擇多個(gè)不同的基本激活函數(shù);本步驟中一般選擇2~6個(gè)不同的基本激活函數(shù);本實(shí)施例中基本激活函數(shù)可為sigmoid函數(shù)、tanh函數(shù)、relu函數(shù)、prelu函數(shù)、pelu函數(shù)或rrelu函數(shù)。
s2、將步驟s1中選擇的多個(gè)不同的基本激活函數(shù)進(jìn)行組合作為神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)。本步驟中多個(gè)不同的基本激活函數(shù)通過(guò)以下方式進(jìn)行組合得到神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)f(x):
σn(wnx)=1-(σ1(w1x)+σ2(w2x)+,…+σn-1(wn-1x));
其中σi(wix),i=1,2,…n代表輸入為wix的sigmoid函數(shù),w1,w2,…,wn為各基本激活函數(shù)的組合系數(shù),
s3、神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)隨著神經(jīng)網(wǎng)絡(luò)的迭代通過(guò)反向傳播的方式進(jìn)行更新,具體更新過(guò)程如下:
s31、首先通過(guò)反向傳播的算法對(duì)當(dāng)前各基本激活函數(shù)i的組合系數(shù)wi′,i=1,2,…n-1,進(jìn)行參數(shù)更新,得到:
其中l(wèi)為神經(jīng)網(wǎng)絡(luò)模型定義的損失函數(shù);wi′當(dāng)前各基本激活函數(shù)的組合系數(shù),f′(x)為通過(guò)當(dāng)前各基本激活函數(shù)的組合系數(shù)針對(duì)當(dāng)前各基本激活函數(shù)組合得到的神經(jīng)網(wǎng)絡(luò)的激活函數(shù);w″i為更新后的各基本激活函數(shù)i的組合系數(shù);其中f′(x)為:
σn(wn′x)=1-(σ1(w1′x)+σ2(w2′x)+,…,+σn-1(w′n-1x));
其中σi(wi′x),i=1,2,…n代表輸入為wi′x的sigmoid函數(shù)
s32、根據(jù)上述更新后的各基本激活函數(shù)的組合系數(shù)w″i,i=1,2,…n-1得到神經(jīng)網(wǎng)絡(luò)模型更新后的激活函數(shù)f"(x):
σn(w″nx)=1-(σ1(w″1x)+σ2(w″2x)+,…,+σn-1(w″n-1x));
其中σi(w″ix),i=1,2,…n代表輸入為w″ix的sigmoid函數(shù)。
本實(shí)施例中上述步驟s2中的基本激活函數(shù)在組合過(guò)程中,根據(jù)神經(jīng)網(wǎng)絡(luò)模型不同的輸入賦予各基本激活函數(shù)對(duì)應(yīng)不同的權(quán)重,相當(dāng)于由神經(jīng)網(wǎng)絡(luò)模型本身的輸入確定出神經(jīng)網(wǎng)絡(luò)的最終激活函數(shù),使得神經(jīng)網(wǎng)絡(luò)模型在測(cè)試階段能夠針對(duì)各個(gè)輸入做出更加合適且準(zhǔn)確的響應(yīng),進(jìn)一步提到了神經(jīng)網(wǎng)絡(luò)模型應(yīng)用的準(zhǔn)確性。
上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡(jiǎn)化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。