摘要:然后,小隨機(jī)數(shù)初始化如是可以的函數(shù)是基于零均值和標(biāo)準(zhǔn)差的一個(gè)高斯分布,不過不是越小越好,權(quán)重初始化的太小的話計(jì)算出來的激活值會(huì)很小,在反向傳播中就會(huì)得到很小的梯度,后果你知道的。
【DL-CV】卷積神經(jīng)網(wǎng)路<前篇---后篇>【DL-CV】批量歸一化(BN算法)
數(shù)據(jù)預(yù)處理在網(wǎng)絡(luò)訓(xùn)練時(shí),我們通常會(huì)對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理再喂給網(wǎng)絡(luò)進(jìn)行訓(xùn)練,而不是直接把原始數(shù)據(jù)喂給網(wǎng)絡(luò)。這樣能減少訓(xùn)練時(shí)問題的發(fā)生,提高網(wǎng)絡(luò)模型的性能。現(xiàn)在我們有原始數(shù)據(jù) X,其尺寸是 NxD(N是數(shù)據(jù)樣本數(shù)量,D是數(shù)據(jù)的維度)
均值減法均值減法(Mean subtraction)是預(yù)處理最常用的形式,將數(shù)據(jù)的每一維特征都減去平均值即可,在numpy的實(shí)現(xiàn)是X -= np.mean(X, axis=0),它能使數(shù)據(jù)零中心化。
另外還有一些類似的方法對(duì)圖像數(shù)據(jù)預(yù)處理來說也很可能用到:
直接減去整個(gè)數(shù)據(jù)的均值,X -= np.mean(X),對(duì)于圖像,可以移除圖像的平均亮度值,因?yàn)楹芏嗲闆r下我們對(duì)圖像亮度并不感興趣,而是關(guān)注其內(nèi)容,所以將圖像整體減去像素均值是有意義的
減去每個(gè)顏色通道上的均值
歸一化歸一化(Normalization)也是一種預(yù)處理的方法,他將數(shù)據(jù)的所有維度都?xì)w一化,使其數(shù)值范圍都近似相等。先對(duì)數(shù)據(jù)做零中心化處理,然后每個(gè)維度都除以其標(biāo)準(zhǔn)差
x = x - np.mean(x, axis=0) x = x / np.std(x, axis=0)
除此之外,預(yù)處理方法還有PCA和白化,但在圖像處理這一塊他們用得并不是很多,這里就不講了,有興趣自查。在圖像識(shí)別領(lǐng)域,更常用的是零中心化和歸一化,特別是零中心化
零中心化在使用時(shí),先將樣本數(shù)據(jù)分成訓(xùn)練/驗(yàn)證/測(cè)試集,從訓(xùn)練集中求得平均值,然后將各個(gè)集(訓(xùn)練/驗(yàn)證/測(cè)試集)中的數(shù)據(jù)再減去這個(gè)均值。
首先,全零初始化想想都知道肯定是錯(cuò)的。
然后,小隨機(jī)數(shù)初始化如W = 0.01 * np.random.randn(D,H)是可以的(randn函數(shù)是基于零均值和標(biāo)準(zhǔn)差的一個(gè)高斯分布),不過不是越小越好,權(quán)重初始化的太小的話計(jì)算出來的激活值會(huì)很小,在反向傳播中就會(huì)得到很小的梯度,后果你知道的。
但是,還不是最好的,小隨機(jī)數(shù)初始化有一個(gè)問題就是隨著輸入數(shù)據(jù)量的增長(zhǎng),隨機(jī)初始神經(jīng)元輸出數(shù)據(jù)的方差也增大,這樣網(wǎng)絡(luò)一深問題就大了。解決方法是:除以輸入數(shù)據(jù)量的平方根來調(diào)整數(shù)值范圍,使神經(jīng)元輸出的方差歸一化為1,也就是W = np.random.randn(in, out) / sqrt(in) ,其中in是輸入數(shù)據(jù)的數(shù)量(若W尺寸 DxH ,則in=D,out=H)。這種更厲害的方法叫做 Xavier初始化,他保證了網(wǎng)絡(luò)中所有神經(jīng)元起始時(shí)有近似同樣的輸出分布。實(shí)踐經(jīng)驗(yàn)證明,這樣做可以提高收斂的速度。
《Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification》論文指出,使用relu激活函數(shù)的網(wǎng)絡(luò),由于一半的激活值變成了0,相當(dāng)于一半的輸入數(shù)據(jù)量是對(duì)方差無貢獻(xiàn)的,為保持輸入輸出的方差維持不變,初始化方法也作了相應(yīng)改變(根號(hào)中的數(shù)據(jù)量除以二): W = np.random.randn(in, out) / sqrt(in/2) ,這是針對(duì)使用relu的初始化方法。
至于偏置值,通常初始化為0
總結(jié)針對(duì)圖像識(shí)別領(lǐng)域,通常來說
數(shù)據(jù)預(yù)處理使用零中心化
權(quán)重初始化使用Xavier;如網(wǎng)絡(luò)使用relu,使用W = np.random.randn(in, out) / sqrt(in/2)
偏置值初始化為0
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42364.html
摘要:為什么呢本文將對(duì)這一問題進(jìn)行解疑并介紹多種多種激活函數(shù)。激活函數(shù)就是用來引入這個(gè)非線性因素的,下面介紹幾種常見的激活函數(shù)及其優(yōu)缺點(diǎn)正負(fù)號(hào)表示。如果想了解更多可上網(wǎng)搜激活函數(shù)選擇在同一個(gè)模型中,激活函數(shù)不會(huì)混搭使用,選定一個(gè)就用一個(gè)。 【DL-CV】反向傳播,(隨機(jī))梯度下降【DL-CV】神經(jīng)網(wǎng)絡(luò)的補(bǔ)充 在介紹線性分類器的時(shí)候,提到了激活函數(shù),還提到線性分類器的輸出要經(jīng)過激活函數(shù)才能作為...
閱讀 1360·2023-04-25 23:42
閱讀 2855·2021-11-19 09:40
閱讀 3534·2021-10-19 11:44
閱讀 3573·2021-10-14 09:42
閱讀 1876·2021-10-13 09:39
閱讀 3843·2021-09-22 15:43
閱讀 679·2019-08-30 15:54
閱讀 1461·2019-08-26 13:32