企業(yè)網(wǎng)站建設(shè)空間如何免費(fèi)推廣網(wǎng)站
大家好啊,我是董董燦。
最近在寫《計(jì)算機(jī)視覺入門與調(diào)優(yōu)》(右鍵,在新窗口中打開鏈接)的小冊,其中一部分說到激活函數(shù)的時(shí)候,談到了神經(jīng)網(wǎng)絡(luò)的非線性問題。
今天就一起來看看,為什么神經(jīng)網(wǎng)絡(luò)需要非線性,或者說為什么它是一個(gè)非線性系統(tǒng)。
1、線性系統(tǒng)是什么樣的
先看一個(gè)基礎(chǔ)知識(shí):線性函數(shù),這是我們在初中就學(xué)過的知識(shí)點(diǎn)。
假設(shè)有一個(gè)線性函數(shù):y = kx + b, 這個(gè)函數(shù)畫出來是下面的樣子,也就是說, y 和 x 是線性關(guān)系。
而這個(gè)時(shí)候如果又有一個(gè)線性函數(shù) z = hy + d,那么,我們可以推斷出,變量 z 和 x 同樣也是線性關(guān)系。
為什么呢? 可以通過下面的變換得到。
z = hy + d
? ?= z(kx + b) + d
? ?= zk x + zb + d
? ?= zk(x) + (zb + d)
令 zk = K, zb + d = B,那么 z 和 x 的關(guān)系就可以寫出 z = Kx + B
所以,z 和 x 同樣是線性關(guān)系。
這里想說的一個(gè)原理是:多個(gè)線性系統(tǒng)的疊加,最終還會(huì)是線性系統(tǒng)。
2、神經(jīng)網(wǎng)絡(luò)是什么系統(tǒng)呢?
回到神經(jīng)網(wǎng)絡(luò),我們知道卷積的算法公式是 y = x * w,,其中 x 是輸入數(shù)據(jù),w 是權(quán)值,中間的 * 代表卷積計(jì)算。關(guān)于卷積可以查看:5分鐘搞懂卷積。
那么x * w 是線性關(guān)系還是非線性關(guān)系呢?不好意思,就是線性關(guān)系。
這是因?yàn)榫矸e的核心計(jì)算是乘累加運(yùn)算,所以,卷積算法也是線性的。
假設(shè)神經(jīng)網(wǎng)絡(luò)是由大量的卷積算法一層接著一層組成。如果沒有非線性因素的引入,那么在數(shù)學(xué)模型上,這個(gè)大的卷積堆砌的模型就會(huì)退化成一個(gè)簡單的線性模型,這就使得多層卷積失去了意義。
層數(shù)再多也沒用,因?yàn)閿?shù)學(xué)上等價(jià)于一個(gè)卷積,看下圖解釋的更清楚一些。
這就是原因所在。
所以在很多神經(jīng)網(wǎng)絡(luò)模型中,都需要引入非線性因素,從而使得神經(jīng)網(wǎng)絡(luò)模型可以擬合成更加復(fù)雜多變的非線性系統(tǒng)。
這樣模型就可以處理復(fù)雜的任務(wù),而不用擔(dān)心模型在數(shù)學(xué)上僅僅是一個(gè)簡單的線性模型了。
怎么引入非線性因素呢?
最常見的方法就是在卷積層后面增加一層非線性的激活層,這也是為什么在很多卷積算法后面,都能看到 relu 函數(shù)的原因。
延伸閱讀,請參考:神經(jīng)網(wǎng)絡(luò)的非線性思想,真的神了。