從定義來講,只要連續(xù)可導(dǎo)的函數(shù)都可以作為激活函數(shù),但目前常見的多是分段線性和具有指數(shù)形狀的非線性函數(shù)。 Sigmoid特點(diǎn): - 輸出范圍0-1,很符合人的主觀意識,即神經(jīng)元對感知的也是從不激活(0)到完全激活(1)。 - 單調(diào)連續(xù) - 容易求導(dǎo),導(dǎo)數(shù)為$f(x)(1-f(x))$,用自己就可以表示自己的導(dǎo)數(shù)。 缺陷: - 具有軟飽和性(左軟飽和性指x趨近于負(fù)無窮,導(dǎo)數(shù)趨近于0,右飽和性指x趨近于正無窮,導(dǎo)數(shù)趨近于0),在輸出值較大較小時(shí),網(wǎng)絡(luò)很難更新,因?yàn)锽P算法是更具梯度來進(jìn)行的,這也是所謂的梯度消失問題。 - 輸出不是以0為中心,而是0.5。但是相對于前一條缺陷,影響沒那么大。 Tanh特點(diǎn): - 收斂速度比sigmoid函數(shù)快,原因是:tanh 的輸出均值比 sigmoid 更接近 0,SGD會更接近natural gradient(一種二次優(yōu)化技術(shù)),從而降低所需的迭代次數(shù)。 缺陷: - 依然存在軟飽和性。 ReLU當(dāng)時(shí)AlexNet提出的激活函數(shù),非常優(yōu)秀,很長一段時(shí)間是我們設(shè)計(jì)CNN網(wǎng)絡(luò)的默認(rèn)激活函數(shù)。 特點(diǎn): - 當(dāng)輸入為正數(shù)時(shí),輸出導(dǎo)數(shù)恒為1,緩解了梯度消失的問題。 - 為網(wǎng)絡(luò)帶來稀疏性,當(dāng)輸入值小于0,就會被稀疏掉,人的大腦稀疏性高達(dá)95%。 - 不管是正向計(jì)算,還是導(dǎo)數(shù)計(jì)算都非常簡單。 缺點(diǎn): - 左硬飽和性,當(dāng)輸入小于零時(shí),導(dǎo)數(shù)恒為0,會使很多神經(jīng)元無法得到更新,出現(xiàn)“神經(jīng)元死亡”。 - relu函數(shù)輸出無負(fù)值。 - 均值漂移,relu函數(shù)的輸出均值恒大于0(從relu函數(shù)的輸出范圍就能看出來)。 Leaky ReLU公式:$f(x) = max(\alpha\*x,x)$ 特點(diǎn): - 為了解決relu中“神經(jīng)元死亡”的問題,leaky relu給小于零的輸入一個(gè)非常小的梯度。 缺點(diǎn): - 公式中的 $\alpha$ 是一個(gè)很小的值,一般取0.01,首先這就是個(gè)超參數(shù),另外也有文獻(xiàn)指出它的性能很不穩(wěn)定,有時(shí)候比relu好,有時(shí)候差,可想而知,不太靠譜。 PReLU公式和Leaky ReLU一樣,只不過它的 $\alpha$ 參數(shù)是可學(xué)習(xí)的。 特點(diǎn): - 收斂速度比relu快。 - 輸出均值更接近0。 缺點(diǎn): - 目前還不清楚,只能說表現(xiàn)還不穩(wěn)定,不夠“通用”,其作者何凱明在他的ResNet也沒使用,而是使用的ReLU。 RReLU和PReLU類似,只不過它這里的 $\alpha$ 參數(shù)是一個(gè)高斯分布上的隨機(jī)值,在測試時(shí)固定。 ELU特點(diǎn): - 較高的噪聲魯棒性。 - 輸出均值在0附近。 缺點(diǎn): - 存在指數(shù)運(yùn)算,運(yùn)算量較大。 SELU牛逼的地方是提出該方法的論文后面有長達(dá)93頁的論證。 公式:$f(x)=\lambda*ELU(x)$ 特點(diǎn): - 新增的參數(shù) $\lambda$ 大于1,所以在正半軸,函數(shù)的導(dǎo)數(shù)是大于1的。 - 激活函數(shù)有一個(gè)不動(dòng)點(diǎn),網(wǎng)絡(luò)深了以后每一層的輸出都會向正態(tài)分布靠攏,美其名曰自歸一化。 缺點(diǎn): - selu的證明部分前提是權(quán)重服從正態(tài)分布,但是這個(gè)假設(shè)在實(shí)際中并不能一定成立,比如鐘形分布?(不太懂) - 眾多實(shí)驗(yàn)發(fā)現(xiàn)效果并不比relu好。 CReLU公式:$CReLU(x)=[ReLU(x),ReLU(-x)]$ 作者發(fā)現(xiàn)在網(wǎng)絡(luò)的淺層卷積核更傾向于捕捉正負(fù)相位的信息,而ReLU會將負(fù)相位的信息歸0,所以才有了CReLU操作。 特點(diǎn): - 輸出通道數(shù)翻倍,相當(dāng)于利用對稱的關(guān)系,將負(fù)相位的信息人為恢復(fù)出來。 缺點(diǎn): - 到底在哪些層使用,太依賴調(diào)試了。 Maxout公式:$max(w_1^Tx+b_1,w_2^Tx+b_2,...,w_n^Tx+b_n)$ 它是ReLU的推廣,其發(fā)生飽和是一個(gè)零測集事件(不懂什么意思...),具有一個(gè)參數(shù)k。 特點(diǎn): - maxout可以擬合任意的凸函數(shù)。 - 具備relu的所有優(yōu)點(diǎn)。 - 不會出現(xiàn)神經(jīng)元死亡。 缺點(diǎn): - ([不錯(cuò)的解釋](https://blog.csdn.net/hjimce/article/details/50414467))參數(shù)量巨大(以k倍增加),因?yàn)橹拔覀兠總€(gè)神經(jīng)元只需要一組權(quán)重和偏置,現(xiàn)在不是了,我們添加了冗余的k組權(quán)重和偏置,讓輸入均經(jīng)過這些權(quán)重和偏置計(jì)算,只保留激活值最大的輸出。 Swish公式:$f(x) = x\*sigmoid(\beta*x)$,其中 $\beta$ 參數(shù)可以是常數(shù)也可以是訓(xùn)練的。 特點(diǎn): - 無上界有下界、平滑、非單調(diào)。 - Swish函數(shù)可以看做是介于線性函數(shù)與ReLU函數(shù)之間的平滑函數(shù)。 - 論文給出的實(shí)驗(yàn),各種數(shù)據(jù)集上,各種網(wǎng)絡(luò),都比relu性能好(并且在深層網(wǎng)絡(luò)上優(yōu)勢更大)。 缺點(diǎn): - 只有實(shí)驗(yàn)證明,沒有理論支持。 - 在淺層網(wǎng)絡(luò)上,性能與relu差別不大。 |
|