秦禎
摘 要:隨著人工智能熱潮的來臨,越來越多的相關(guān)領(lǐng)域?qū)W者投身于其理論體系的構(gòu)建工作之中。激活函數(shù)便是人工智能領(lǐng)域的明珠,即深度學(xué)習(xí)的主要組成部分之一。針對激活函數(shù)的研究也越來越多。本文旨在介紹現(xiàn)階段深度學(xué)習(xí)領(lǐng)域最常用的幾種激活函數(shù),通過介紹其數(shù)學(xué)原理以及函數(shù)特性,針對其優(yōu)缺點(diǎn)和使用利弊,分析這些激活函數(shù)的應(yīng)用場景以及激活函數(shù)的發(fā)展趨勢。
關(guān)鍵詞:深度學(xué)習(xí);激活函數(shù);神經(jīng)網(wǎng)絡(luò);人工智能
中圖分類號:TP301.6 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-2064(2019)08-0213-02
0 引言
自從進(jìn)入21世紀(jì)10年代,人工智能技術(shù)因?yàn)镃NN等優(yōu)秀算法的提出進(jìn)入到了一個(gè)飛速發(fā)展的階段,其中人工神經(jīng)網(wǎng)絡(luò)算法作為其核心組成部分也在逐步成熟,其理論體系的不斷完善昭示著AI技術(shù)的發(fā)展進(jìn)入到了一個(gè)嶄新的階段。而作為人工神經(jīng)網(wǎng)絡(luò)的核心之一,激活函數(shù)同樣在不斷的發(fā)展與完善,不斷有新的更優(yōu)秀的激活函數(shù)被提出。
在神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)用于表示上層輸出和下層輸入之間的非線性函數(shù)關(guān)系,其作用主要體現(xiàn)在對每一層的輸入進(jìn)行歸一化以及在一個(gè)龐大的線性系統(tǒng)中加入一些非線性元素。前者會將每一層的輸出限制在一個(gè)特定的范圍之內(nèi),比如0-1(sigmoid函數(shù)),防止出現(xiàn)絕對值較大的輸出值影響整層的輸出比重進(jìn)而對整個(gè)網(wǎng)絡(luò)的參數(shù)更新產(chǎn)生影響;后者則將神經(jīng)網(wǎng)絡(luò)與其他線性算法區(qū)分開來,因?yàn)樯窠?jīng)網(wǎng)絡(luò)的本質(zhì)就是對數(shù)據(jù)進(jìn)行非線性擬合,理論上它可以擬合任意函數(shù)。
1 經(jīng)典激活函數(shù)研究
1.1 Sigmoid
Sigmoid函數(shù)[1]是一個(gè)主要適用于生物醫(yī)學(xué)的S型曲線,因其形狀與特性又被稱為S型生長曲線。而在計(jì)算機(jī)信息科學(xué)中,Sigmoid函數(shù)主要被當(dāng)作激活函數(shù)使用,它可以將輸入變量映射到0至1之間。其數(shù)學(xué)形式表達(dá)如下:
由圖1可知,該函數(shù)的特點(diǎn)是抑制兩端,但是對中間區(qū)域變量的變化敏感,根據(jù)這一特性,它能夠很好的識別出對整個(gè)網(wǎng)絡(luò)模型有利的特征或語義信息。
在神經(jīng)網(wǎng)絡(luò)發(fā)展的前期,Sigmoid是使用最多的非線性激活函數(shù),但是近年來,由于其本身不可避免的局限性以及其他優(yōu)秀激活函數(shù)的提出,Sigmoid的使用頻率越來越低。其缺點(diǎn)主要有四個(gè):(1)Sigmoid函數(shù)的兩端被嚴(yán)重抑制,曲線近乎平緩,導(dǎo)數(shù)趨近于0,這會導(dǎo)致此處權(quán)重幾乎不被更新;(2)Sigmoid函數(shù)的導(dǎo)數(shù)值在[0,0.25]之間,由梯度反向傳播的鏈?zhǔn)角髮?dǎo)法則可知,如果網(wǎng)絡(luò)層數(shù)較多,則靠近輸入端的網(wǎng)絡(luò)層的參數(shù)梯度趨近于0,會出現(xiàn)梯度消失的現(xiàn)象,導(dǎo)致這些層的參數(shù)幾乎不被更新;(3)Sigmoid函數(shù)不是中心對稱的,會導(dǎo)致在對參數(shù)進(jìn)行更新時(shí),每一層的參數(shù)會朝著一個(gè)方向變化,即一起增加或一起減少。而在參數(shù)更新時(shí),理想的更新狀態(tài)是每一層的參數(shù)的變化方向是不一致的,類似Sigmoid這種zig zag path形式的參數(shù)更新方式則會大大增加更新的消耗,即需要比理想更新方式花費(fèi)更多的迭代次數(shù)才能達(dá)到相同的效果;(4)Sigmoid函數(shù)表達(dá)式中含有冪運(yùn)算,會大大增加網(wǎng)絡(luò)的計(jì)算量,在網(wǎng)絡(luò)較大較深時(shí),會大大增加訓(xùn)練時(shí)間。
1.2 Tanh
Tanh函數(shù)是雙曲函數(shù)中的正切函數(shù),與Sigmoid函數(shù)相比,Tanh函數(shù)可以將輸出變量映射到[-1,1]之間。其數(shù)學(xué)表達(dá)式是:
由圖2和其數(shù)學(xué)表達(dá)式可知,該函數(shù)是中心對稱的,故在參數(shù)更新時(shí)參數(shù)的更新方向不會如Sigmoid函數(shù)一樣保持一致性給模型訓(xùn)練帶來困難,該函數(shù)的另一個(gè)優(yōu)點(diǎn)是其導(dǎo)數(shù)介于[0,1]之間,所以與Sigmoid函數(shù)相比其在一定程度上解決了梯度消失問題,但如果網(wǎng)絡(luò)深度過深的話,還是會出現(xiàn)梯度消失的問題。
除此之外,Tanh函數(shù)存在一些不可忽視的缺點(diǎn),一是存在兩端抑制的問題,即兩端存在梯度飽和的問題,這在一定程度上會給更新帶來困難;二是其函數(shù)表達(dá)式中依舊含有冪運(yùn)算,這會增加模型訓(xùn)練的時(shí)間和算力。
1.3 Relu
Relu函數(shù)[2]中文名為線性整流單元(Rectified Linear Unit, ReLU),又稱為修正線性單元,在深度學(xué)習(xí)飛速發(fā)展的今日,Relu函數(shù)以及變種已經(jīng)成為神經(jīng)網(wǎng)絡(luò)中最常用的激活函數(shù)[3],雖然其名為線性,但是其實(shí)質(zhì)上是以斜坡函數(shù)為基本代表的非線性函數(shù),斜坡函數(shù)的數(shù)學(xué)表達(dá)式為:
Relu函數(shù)的優(yōu)點(diǎn)顯著,Sigmoid和Tanh函數(shù)存在的問題Relu都成功避免了,比如Relu函數(shù)不存在兩端抑制問題,計(jì)算簡單,而且最重要的是其成功解決了梯度消失的問題:(1)由Relu函數(shù)的圖像圖3可知,Relu函數(shù)不會有兩端抑制問題,但其對負(fù)輸入不敏感;(2)由Relu函數(shù)的數(shù)學(xué)表達(dá)式可知,Relu函數(shù)異常簡單,這大大簡化了網(wǎng)絡(luò)的運(yùn)算量;(3)由于人工神經(jīng)網(wǎng)絡(luò)的飛速發(fā)展,網(wǎng)絡(luò)的深度在不斷變深,若是依舊使用Sigmoid函數(shù)以及Tanh函數(shù)的話,需要對網(wǎng)絡(luò)進(jìn)行分段訓(xùn)練,這不僅會增加網(wǎng)絡(luò)的訓(xùn)練負(fù)擔(dān),還會降低網(wǎng)絡(luò)的訓(xùn)練精度。相對而言,Relu函數(shù)沒有此類困擾,因?yàn)镽elu函數(shù)在其非飽和區(qū)的梯度始終為1,由梯度反向傳播的鏈?zhǔn)椒▌t可知,使用Relu函數(shù)不會出現(xiàn)梯度消失以及梯度爆炸的問題,因此Relu函數(shù)已逐漸成為當(dāng)今神經(jīng)網(wǎng)絡(luò)激活函數(shù)的主流;(4)Relu函數(shù)符合人體生物學(xué)原理,科學(xué)研究表明人體大腦神經(jīng)元在通常情況下只有1%到4%是激活狀態(tài),而Relu函數(shù)配合層正則化比如Dropout等可以達(dá)到相似的效果。
正是由于以上優(yōu)點(diǎn),目前Relu函數(shù)已經(jīng)取代了Sigmoid函數(shù)成為最常用的激活函數(shù),被廣泛用于諸如圖像識別、目標(biāo)檢測、語義分割等計(jì)算機(jī)視覺領(lǐng)域。盡管如此,Relu函數(shù)也有其不可忽視的缺點(diǎn),即Relu函數(shù)左端全抑制,其對負(fù)輸入不敏感,會將負(fù)輸入全部映射為0,因此,近年來,不斷有Relu的變種出現(xiàn),比如LReLU(Leaky Relu),PRelu,RRelu,Elu,SElu等,其數(shù)學(xué)表達(dá)式分別為:
LReLU,PRelu和RRelu分享相同的表達(dá)式但也有細(xì)微差別:LRelu表達(dá)式中的α為常量,通常設(shè)置為0.01;PRelu中的α則是一個(gè)未知變量,可以放入網(wǎng)絡(luò)中由輸入數(shù)據(jù)訓(xùn)練出來;RRelu中的α則是在某一個(gè)給定范圍內(nèi)的隨機(jī)取樣值。Elu函數(shù)中的α同樣也是一個(gè)位置變量,它控制著函數(shù)左半邊的飽和區(qū)段;SElu函數(shù)其實(shí)只是在Elu函數(shù)的基礎(chǔ)上乘上一個(gè)值大于1的λ,其目的是使得網(wǎng)絡(luò)達(dá)到自歸一化,即通過激活函數(shù)后的批樣本歸一化到均值為0、方差為1。綜上所述,以上這5個(gè)函數(shù)是目前比較常見且被廣泛應(yīng)用和接受的Relu函數(shù)的變種,它們在一定程度上解決了Relu函數(shù)的不足之處。
2 激活函數(shù)的發(fā)展趨勢與應(yīng)用前景
2.1 發(fā)展趨勢
盡管人工智能領(lǐng)域發(fā)展迅速,諸如人工神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)算法的不斷完善使得該領(lǐng)域正在進(jìn)入黃金時(shí)期,但盡管如此,不可否認(rèn)的是,深度學(xué)習(xí)甚至人工智能都是一個(gè)非常年輕的學(xué)科,也就是說,在人工智能領(lǐng)域還有許多亟待開發(fā)的部分,其理論體系還亟待完善。作為深度學(xué)習(xí)算法中不可忽視的一部分,激活函數(shù)同樣也遠(yuǎn)未成熟,雖然從Sigmoid到Relu,從梯度消失到自歸一化,近年來激活函數(shù)方面的研究取得了可喜的成績,其發(fā)展也是飛躍性的,但是該理論還是有許多需要完善的部分,全世界依舊有大量的人工智能學(xué)者和研究人員在研究激活函數(shù)。
雖然目前Relu函數(shù)及其變種已經(jīng)可以滿足當(dāng)前神經(jīng)網(wǎng)絡(luò)的訓(xùn)練并能取得較好的訓(xùn)練成果,但是隨著深度學(xué)習(xí)領(lǐng)域的不斷發(fā)展,激活函數(shù)必定需要不斷更新自己以便滿足今后越來越復(fù)雜的網(wǎng)絡(luò)以及越來越高的精度要求。因此,Relu及其變種依然會是目前的主要研究方向,但可以期待的是會有更加優(yōu)秀的激活函數(shù)出現(xiàn)。
2.2 應(yīng)用前景
時(shí)至今日,在國際發(fā)展的大環(huán)境下,人工智能領(lǐng)域炙手可熱。國外的眾多研究機(jī)構(gòu),國內(nèi)即將落成的幾大人工智能研究中心,都給人工智能領(lǐng)域提供了發(fā)展的土壤,可以預(yù)見的是,人工智能必將是未來的主要發(fā)展方向之一,因此,作為深度學(xué)習(xí)的基本組成單位,激活函數(shù)也必將有廣闊的應(yīng)用前景,因?yàn)闊o論是在計(jì)算機(jī)視覺還是自然語言處理領(lǐng)域,它都無處不在。所以,只要人工神經(jīng)網(wǎng)絡(luò)技術(shù)沒有發(fā)生重大的變革或者出現(xiàn)更加優(yōu)秀的算法完全取代了人工神經(jīng)網(wǎng)絡(luò),人工智能鄰域的發(fā)展都必將帶動激活函數(shù)理論的發(fā)展,因此激活函數(shù)必將伴隨著人工智能技術(shù)不斷革新。
3 結(jié)論與展望
作為非線性算法中的佼佼者,人工神經(jīng)網(wǎng)絡(luò)必將統(tǒng)治未來深度學(xué)習(xí)算法很長的一段時(shí)間。而作為人工神經(jīng)網(wǎng)絡(luò)中唯一的非線性元素,激活函數(shù)的重要性毋庸置疑??梢哉f激活函數(shù)賦予模型的非線性特性讓人工神經(jīng)網(wǎng)絡(luò)擁有了靈魂,否則一個(gè)線性神經(jīng)網(wǎng)絡(luò)的復(fù)雜性將毫無意義,其效果與最簡單的感知機(jī)相同。
至今,伴隨著人工智能的熱潮,激活函數(shù)的理論發(fā)展也迎來了爆發(fā)期,許多優(yōu)秀的函數(shù)不斷被提出,但這還遠(yuǎn)未成熟,其理論體系還亟待完善。
參考文獻(xiàn)
[1] 黃毅,段修生,孫世宇,等.基于改進(jìn)sigmoid激活函數(shù)的深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法研究[J].計(jì)算機(jī)測量與控制,2017,25(02):132-135.
[2] 蔣昂波,王維維.ReLU激活函數(shù)優(yōu)化研究[J].傳感器與微系統(tǒng),2018(2):50-52.
[3] 王雙印,滕國文.卷積神經(jīng)網(wǎng)絡(luò)中ReLU激活函數(shù)優(yōu)化設(shè)計(jì)[J].信息通信,2018(1):42-43.