激活函數(shù)
1驴剔、作用:
線(xiàn)性模型的表達(dá)能力不夠丧失,激活函數(shù)增加神經(jīng)網(wǎng)絡(luò)模型的非線(xiàn)性惜互,提升神經(jīng)網(wǎng)絡(luò)模型表達(dá)能力(數(shù)據(jù)往往線(xiàn)性不可分 )载佳。
2、幾種激活函數(shù)
(1)sigmoid函數(shù):
sigmoid函數(shù)(Logistic 函數(shù))挠乳,隱層神經(jīng)元輸出姑躲,取值范圍(0,1)黍析,可以將一個(gè)實(shí)數(shù)映射到(0,1)的區(qū)間,可以做二分類(lèi)马靠。
缺點(diǎn):
1甩鳄、Sigmoids saturate and kill gradients:梯度消失额划,無(wú)法深層網(wǎng)絡(luò)訓(xùn)練俊戳。當(dāng)輸入非常大或者非常小時(shí)(saturation)馆匿,神經(jīng)元梯度接近于0渐北。需要注意參數(shù)初始值避免saturation情況突倍。初始值很大盆昙,大部分神經(jīng)元可能都處在saturation狀態(tài)而把gradient kill淡喜,導(dǎo)致網(wǎng)絡(luò)很難學(xué)習(xí)。
2澎嚣、Sigmoid 的 output 不是0均值:導(dǎo)致后一層神經(jīng)元得到上層輸出的非0均值信號(hào)作為輸入瘟芝。 結(jié)果:如數(shù)據(jù)進(jìn)入神經(jīng)元時(shí)是正的(e.g.x>0 elementwise in f=wTx+b)锌俱,w 計(jì)算出梯度也始終都是正的。 如按batch訓(xùn)練造寝,batch可能得到不同的信號(hào)诫龙,問(wèn)題可以緩解鲫咽。
3、激活函數(shù)指數(shù)運(yùn)算锦聊,計(jì)算量大括丁,反向傳播求誤差梯度時(shí)伶选,求導(dǎo)涉及除法。
(2)tanh函數(shù):
雙曲正切函數(shù)抽诉,與sigmod函數(shù)曲線(xiàn)相近迹淌。兩個(gè)函數(shù)輸入很大或是很小時(shí)己单,輸出幾乎平滑,梯度很小纹份,不利于權(quán)重更新蔓涧;不同的是輸出區(qū)間笋额,tanh的輸出區(qū)間是在(-1,1)之間兄猩,函數(shù)以0為中心。比sigmoid 好援岩。
一般二分類(lèi)問(wèn)題中掏导,隱藏層用tanh函數(shù)趟咆,輸出層用sigmod函數(shù)。
(2)ReLU函數(shù):
ReLU(Rectified Linear Unit):
優(yōu)點(diǎn):
1、輸入為正數(shù)搀愧,不存在梯度飽和問(wèn)題。
2搓幌、計(jì)算速度快迅箩。ReLU函數(shù)只有線(xiàn)性關(guān)系饲趋,前向傳播和反向傳播,都比sigmod和tanh快堂污。(sigmod和tanh計(jì)算指數(shù))敷鸦。
3寝贡、Relu使一部分神經(jīng)元輸出0圃泡,網(wǎng)絡(luò)稀疏愿险,減少參數(shù)相互依存辆亏,緩解過(guò)擬合發(fā)生。
缺點(diǎn):
1缤弦、 輸入是負(fù)數(shù)彻磁,ReLU完全不被激活衷蜓,ReLU會(huì)死掉。反向傳播中斋陪,輸入負(fù)數(shù)无虚,梯度0,和sigmod函數(shù)橡淑、tanh函數(shù)有一樣的問(wèn)題咆爽。learning rate 很大斗埂,可能網(wǎng)絡(luò)中40%的神經(jīng)元都”dead”了。較小的learning rate男娄,問(wèn)題不會(huì)太頻繁模闲。
2崭捍、ReLU函數(shù)的輸出是0或正數(shù)殷蛇,ReLU函數(shù)也不是以0為中心的函數(shù)。
(3)softmax函數(shù):
多分類(lèi)神經(jīng)網(wǎng)絡(luò)輸出:
指數(shù):模擬 max 行為亮航,讓大的更大缴淋。需要一個(gè)可導(dǎo)的函數(shù)宴猾。
(4)Leaky ReLU函數(shù)(PReLU):
a是一個(gè)很小的常數(shù)仇哆,取0~1夫植。α=0.01時(shí),PReLU為L(zhǎng)eaky ReLU陌兑。修正數(shù)據(jù)分布由捎,保留負(fù)軸的值狞玛,使負(fù)軸信息不全部丟失。
PReLU是ReLU的改進(jìn)型锭亏,負(fù)數(shù)區(qū)域慧瘤,PReLU有很小的斜率固该,避免ReLU死掉問(wèn)題蹬音。相比于ELU,PReLU在負(fù)數(shù)區(qū)域內(nèi)是線(xiàn)性運(yùn)算,斜率雖然小永部,但不會(huì)趨于0呐矾。
(4)ELU函數(shù):
ELU函數(shù)是ReLU函數(shù)的改進(jìn)型组橄,相比于ReLU函數(shù)罚随,在輸入為負(fù)數(shù)時(shí)淘菩,有的輸出屠升,輸出有一定抗干擾能力腹暖。消除ReLU死掉的問(wèn)題翰萨,還是有梯度飽和和指數(shù)運(yùn)算的問(wèn)題亩鬼。
(4)MaxOut函數(shù):
Maxout是深度學(xué)習(xí)網(wǎng)絡(luò)中一層網(wǎng)絡(luò),同池化層丛肮、卷積層宝与,可以把maxout 看成網(wǎng)絡(luò)的激活函數(shù)層冶匹,假設(shè)網(wǎng)絡(luò)某一層的輸入特征向量為:X=(x1,x2,……xd)嚼隘,輸入是d個(gè)神經(jīng)元。Maxout隱藏層每個(gè)神經(jīng)元的計(jì)算公式如下:
maxout隱藏層神經(jīng)元i的計(jì)算公式。其中卧檐,k是maxout層所需要的參數(shù)霉囚,由人為設(shè)定大小盈罐。如dropout,有參數(shù)p(每個(gè)神經(jīng)元dropout概率)钓葫,maxout的參數(shù)是k瓤逼。公式中Z的計(jì)算公式為:
權(quán)重w是一個(gè)大小為(d,m,k)三維矩陣,b是一個(gè)大小為(m,k)的二維矩陣贷帮,這兩個(gè)是需要學(xué)習(xí)的參數(shù)撵枢。如果k=1精居,網(wǎng)絡(luò)就類(lèi)似普通的MLP網(wǎng)絡(luò)靴姿。
傳統(tǒng)的MLP算法在第i層到第i+1層佛吓,參數(shù)只有一組,現(xiàn)在在這一層同時(shí)訓(xùn)練n組的w淤刃、b參數(shù)逸贾,選擇激活值Z最大的作為下一層神經(jīng)元的激活值津滞,這個(gè)max(z)函數(shù)即激活函數(shù)触徐。
Maxout擬合能力非常強(qiáng)锌介,可以擬合任意凸函數(shù)猾警。只需2個(gè)maxout節(jié)點(diǎn)就可以擬合任意的凸函數(shù)(相減)发皿,前提是”隱隱含層”節(jié)點(diǎn)的個(gè)數(shù)可以任意多。
Maxout 具有 ReLU 的優(yōu)點(diǎn)(如:計(jì)算簡(jiǎn)單惶室,不會(huì) saturation)皇钞,同時(shí)沒(méi)有 ReLU 缺點(diǎn) (如:容易 go die)。缺點(diǎn):參數(shù)double馆里。
損失函數(shù):
二次代價(jià)函數(shù):
其中,C表示代價(jià)营密,x表示樣本评汰,y表示實(shí)際值侣集,a表示輸出值,n表示樣本的總數(shù)世分。
一個(gè)樣本為例:
梯度下降算法:
z表示神經(jīng)元的輸入编振。w和b的梯度跟激活函數(shù)的梯度成正比,激活函數(shù)梯度越大臭埋,w和b的大小調(diào)整越快踪央,訓(xùn)練收斂就越快。神經(jīng)網(wǎng)絡(luò)常用的激活函數(shù)為sigmoid函數(shù)瓢阴,曲線(xiàn)如下:
實(shí)驗(yàn)2初始輸出值(0.98)對(duì)應(yīng)的梯度小于實(shí)驗(yàn)1的輸出值(0.82)畅蹂,實(shí)驗(yàn)2的參數(shù)梯度下降得比實(shí)驗(yàn)1慢。因此初始代價(jià)(誤差)越大液斜,導(dǎo)致訓(xùn)練越慢(不合理)。
交叉熵代價(jià)函數(shù):
不改變激活函數(shù)叠穆,二次代價(jià)函數(shù)改為交叉熵代價(jià)函數(shù):
x表示樣本少漆,n表示樣本的總數(shù)。計(jì)算參數(shù)w的梯度:
誤差越大硼被,梯度就越大示损,參數(shù)w調(diào)整得越快,訓(xùn)練速度也越快嚷硫。
b的梯度: