1.1 感知機(jī)(四)

什么是神經(jīng)網(wǎng)絡(luò)呢?開始,我將講解一種人工神經(jīng)元,感知機(jī)(Perceptron)。受 Warren McCullochWalter Pitts的啟發(fā),在20世紀(jì)50/60年代科學(xué)家Frank Rosenblatt開發(fā)了感知器。如今,在本書和很多現(xiàn)代的神經(jīng)網(wǎng)絡(luò)工作中,更常用的是另一種人工神經(jīng)元——sigmoid 神經(jīng)元。我們很快就會學(xué)習(xí)sigmoid神經(jīng)元,但是為了理解sigmoid神經(jīng)元定義的本質(zhì),我們首先要理解感知機(jī)模型。

那么感知機(jī)是怎樣工作的呢?一個(gè)感知機(jī)需要幾個(gè)輸入,x1,x2,...,然后產(chǎn)生單一的二進(jìn)制輸出:


感知機(jī)

上面例子里的感知機(jī)有三個(gè)輸入,x1,x2,x3,實(shí)際上,感知機(jī)可以有更多或者更少的輸入。Rosenblatt提出了一個(gè)簡單的規(guī)則來計(jì)算輸出。他介紹了權(quán)重(<code>weight</code>),使用實(shí)數(shù)w1,w2來表示各個(gè)輸入對輸出的重要程度。神經(jīng)元輸出0還是1由加權(quán)和

是否超過閾值(<code>threshold value</code>)決定。像權(quán)重一樣,閾值也是神經(jīng)元的參數(shù)并且也是一個(gè)實(shí)數(shù)。用更準(zhǔn)確的代數(shù)形式表示:

所有感知機(jī)就是這樣工作的!

這是一個(gè)基礎(chǔ)的數(shù)學(xué)模型。你可以理解為感知機(jī)通過權(quán)衡利弊作出決定。下面舉一個(gè)例子,雖然不是一個(gè)很實(shí)際的例子,但是很好理解,接下來我們還會舉更多實(shí)際的例子。假設(shè)周末快要到了,你聽說在你們的城市將要舉辦一個(gè)奶酪節(jié)。你喜歡奶酪并且想決定是否去參加節(jié)日。你可能會通過權(quán)衡下面的三個(gè)因素來作出你的決定:

  1. 天氣好嗎?
  2. 你的男(女)朋友會陪你去嗎?
  3. 節(jié)日地點(diǎn)靠近公交站嗎?(你沒有自己的車)

我們可以使用相應(yīng)的二進(jìn)制數(shù)x1,x2,x3來表示這三個(gè)因素。例如,若天氣好令x1 = 1,天氣不好令x1 = 0。同樣的,如果你的男(女)朋友也想去就令x2 = 1, 不去就令x2 = 0。x3 和 公共交通站也是一樣。

現(xiàn)在假設(shè)你非常喜歡奶酪,即使你的男(女)朋友沒有興趣去并且交通并不是很方便,你也會去。但是也許你非常討厭壞天氣,如果天氣不好你就不會去。你就可以使用感知機(jī)為這種決策建模。比如使天氣的w1=6,其他條件的權(quán)重w2=2,w3=2,w1的值比較大,這表明天氣因素對你的影響比你的女(男)朋友是否陪伴你或者公共交通是否方便對你的影響更大。最后,設(shè)置感知機(jī)的閾值為5。經(jīng)過這些設(shè)置,感知機(jī)實(shí)現(xiàn)了決策模型,當(dāng)天氣好時(shí)輸出1,反之輸出0,而你的女(男)朋友是否想去、公共交通是否方便對結(jié)果沒有影響。

通過調(diào)整權(quán)重和閾值,能夠?qū)崿F(xiàn)不同的決策模型,比如,使閾值為3,好天氣或者你的女(男)朋友想去并且公共交通很方便時(shí)你都回去參加節(jié)日。換句話說,這是一個(gè)不同的決策模型,降低閾值意味著你更想去參加節(jié)日。

顯然感知機(jī)并不是人類決策的完整模型!但是這個(gè)例子說明了感知機(jī)怎樣權(quán)衡不同的條件來做出決定。并且復(fù)雜的感知機(jī)網(wǎng)絡(luò)能夠作出相當(dāng)微妙的決定似乎是合理的:

complex network of perceptrons

在這個(gè)網(wǎng)絡(luò)中,通過權(quán)衡輸入的數(shù)據(jù),感知機(jī)的第一列——我們這樣稱呼感知機(jī)的第一層——做了三個(gè)非常簡單的決策。那感知機(jī)的第二列呢?這一層的每個(gè)感知機(jī)都通過權(quán)衡第一層得出的結(jié)果做出決策。通過這種方式,第二層的感知機(jī)能夠比第一層做出更復(fù)雜和更抽象的決策,并且第三層更甚。通過這種方式,一個(gè)多層感知機(jī)組成的網(wǎng)絡(luò)可以從事復(fù)雜的決策。

我定義感知機(jī)的時(shí)候說感知機(jī)只有一個(gè)輸出,但是上面的感知機(jī)看起來有多個(gè)輸出。事實(shí)上,他們?nèi)匀恢挥幸粋€(gè)輸出,多個(gè)輸出只是用來表示一個(gè)感知機(jī)的輸出用于多個(gè)感知機(jī)的輸入。

讓我們簡化一下感知機(jī)模型。條件<code>∑jwjxj > threshold</code>比較繁瑣,我們可以使用兩個(gè)符號來簡化它。第一個(gè),使用點(diǎn)乘運(yùn)算,<code>w?x ≡ ∑jwjxj</code>,w和x都是向量,分別用來表示權(quán)重向量和輸入向量。第二個(gè),將閾值移到不等式的另一邊,并且使用感知機(jī)的偏移(bias)來代替,b = -threshold。使用便宜代替閾值之后,感知機(jī)可以表示為:

感知機(jī)

你可以認(rèn)為偏移意味著感知機(jī)輸出1的難易程度,或者用生物學(xué)屬于來講,偏移意味著感知機(jī)有多容易被激活。例如一個(gè)感知機(jī)有很大的偏移,它將很容易輸出1,但是如果它的偏移很小,它將很難輸出1。顯然,引入偏移描述感知機(jī)只是一個(gè)很小的改變,但是在后面它會引起進(jìn)一步的簡化。因此,在本書剩余的部分中,不使用閾值而使用偏移。

我曾把感知機(jī)描述為一個(gè)通過權(quán)重做出決策的方法。另外,感知機(jī)可以用來做基本邏輯運(yùn)算,比如AND、OR和NAND。例如,我們有一個(gè)感知機(jī),它有兩個(gè)輸入并且權(quán)重都為-2,偏移為3。如下:


易知輸入00會輸出1,因?yàn)?-2)0 + (-2)0 + 3 = 3是正的。這里我是用了*用來表示乘法。同上,易得輸入10和01都會輸出1,但是輸入11卻會輸出0,因?yàn)??2)?1+(?2)?1+3=?1是負(fù)數(shù)。因此我們的感知機(jī)充當(dāng)了一個(gè)NAND門(與非門)!

NAND的例子說明感知機(jī)可以用來做基本邏輯運(yùn)算,事實(shí)上,我們可以使用感知機(jī)網(wǎng)絡(luò)做任何邏輯運(yùn)算。因?yàn)榕c非門是通用的計(jì)算,我們可以用與非門實(shí)現(xiàn)任何計(jì)算。例如,我們可以用與非門建立一個(gè)電路實(shí)現(xiàn)兩個(gè)bit相加,x1和x2,這需要計(jì)算按位和,x1⊕x2,當(dāng)x1和x2都為1時(shí)進(jìn)位會被設(shè)為1。進(jìn)位僅僅計(jì)算x1x2:

為了得到等價(jià)的感知機(jī)網(wǎng)絡(luò)我們?nèi)坑脙蓚€(gè)輸入的感知機(jī)代替NAND門,權(quán)重都為-2并且偏移為3。這是最終的網(wǎng)絡(luò):

這個(gè)網(wǎng)絡(luò)中值得注意的是最左邊的感知機(jī)兩次作為最底部感知機(jī)的輸入。在我定義感知機(jī)的時(shí)候并沒有說明這種double-output-to-the-same-place 情況是否被允許,實(shí)際上,它是被允許的。如果我們不想允許這種情況出現(xiàn),可以把這兩條線權(quán)重為-2的線合并為一條權(quán)重為-4的線。(如果你沒有覺得這顯然是對的,你應(yīng)該停下來并且自己證明這是對的。)經(jīng)過這個(gè)改變,網(wǎng)絡(luò)看起來如下圖所示,所有沒有標(biāo)記的權(quán)重為-2,所有的偏移為3,并且一個(gè)單獨(dú)的權(quán)重為-4:

目前為止,我在途中使用像x1和x2的變量作為右面感知機(jī)網(wǎng)絡(luò)的輸入。事實(shí)上,更常見的是為網(wǎng)絡(luò)多畫一層感知機(jī)——輸入層——為輸入編碼:

添加輸入層

這個(gè)輸入感知機(jī)符號是一個(gè)縮寫,只有輸出而沒有輸入:

但這并不意味著感知機(jī)沒有輸入。換種說法,假設(shè)我們有一個(gè)沒有輸入的感知機(jī),那么權(quán)重將為0,也就是說,如果b>0輸出1,如果b<=0輸出0。也就是說,這個(gè)感知機(jī)將簡單的輸出一個(gè)固定值,而不是我們想要的值(x1,在上面的例子中)。更好的理解應(yīng)該是不要把輸入感知機(jī)完全當(dāng)做感知機(jī),而是一種簡單定義為輸出想要的值(x1,x2,x3....)的單元。

增加的例子示范了一個(gè)感知機(jī)網(wǎng)路可以用來模擬一個(gè)包含很多NAND的電路。因?yàn)镹AND門對計(jì)算通用,所以感知機(jī)同樣適用所有計(jì)算。

感知機(jī)的計(jì)算通用性同時(shí)令人高興又令人失望。令人高興的是這告訴我們感知機(jī)網(wǎng)絡(luò)像其他計(jì)算模型一樣強(qiáng)大。但是它也是令人失望的,因?yàn)樗雌饋韮H僅像一個(gè)新的NAND門。這不是什么大新聞!

然而,情況要比上面顯示的好。它讓我們設(shè)計(jì)出學(xué)習(xí)算法,可以用來自動計(jì)算人工神經(jīng)元網(wǎng)絡(luò)的權(quán)重和偏移。這發(fā)生在在沒有程序員的介入下對外界的刺激做出反應(yīng)。這些學(xué)習(xí)算法使我們從根本上跟使用傳統(tǒng)邏輯門不一樣的使用人工神經(jīng)元網(wǎng)絡(luò)。我們的神經(jīng)元網(wǎng)絡(luò)可以簡單的學(xué)習(xí)來解決問題,而不是明確的畫出電路圖,有時(shí)有些問題是很難直接設(shè)計(jì)出傳統(tǒng)電路的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容