官术网_书友最值得收藏!

1.1 感知機

什么是神經網絡?首先介紹一種名為感知機的人工神經元。20 世紀五六十年代,科學家 Frank Rosenblatt 發明了感知機,其受到了 Warren McCulloch 和 Walter Pitts 早期研究的影響。如今,人們普遍使用其他人工神經元模型。本書以及當代多數神經網絡論著主要使用一種名為 sigmoid 神經元的神經元模型。稍后會介紹 sigmoid 神經元,但要理解 sigmoid 神經元的來由,需要先了解感知機。

感知機接收若干個二進制輸入 ,并生成一個二進制輸出,如圖 1-3 所示。

圖 1-3

圖 1-3 中的感知機有 3 個輸入 ,一般來說輸入還可以更多或更少。Rosenblatt 提出了一條計算輸出的簡單規則。他引入權重 ,用這些實數來表示輸入對于輸出的重要性。神經元的輸出究竟是 0 還是 1,則由加權和 小于或大于某個閾值來決定。類似于權重,閾值也是實數,且是神經元的一個參數。更精確的代數表示如下:

這就是感知機的運行機制。

可以將感知機看作根據權重來做決策的機器。下面舉例說明,這并不是一個特別真實的例子,但是容易理解,稍后會給出更多實例。假設本周末你所在的城市有個奶酪節,你正好喜歡吃奶酪,考慮是否去看看。可以通過給以下 3 個因素設置權重來做出決定。

(1) 天氣如何?

(2) 你的男朋友或女朋友會不會陪你去?

(3) 慶祝地點是否靠近公共交通站點?(假設你自己沒有車。)

可以把這 3 個因素分別表示為二進制變量 、、。如果天氣好,則 ;如果天氣不好,則 。類似地,如果你的男朋友或女朋友同去,,否則 。同理, 表示交通情況。

現在,假設你酷愛奶酪,即使你的男朋友或女朋友不感興趣,而且不管多么大費周折,你都樂意去。也許你確實討厭糟糕的天氣,而且如果天氣太糟你也沒法出門??梢允褂酶兄獧C來為這種決策建模。一種方式是為天氣設置權重,令 ,其他條件為 。賦予 更大的值,表示天氣狀況的重要性超過男朋友或女朋友是否陪同和附近有無交通站點。最后,假設將感知機的閾值設為 5,這樣就用感知機做出了決策模型:天氣好就輸出 1,天氣不好則輸出 0。對于男朋友或女朋友是否同去,或者附近有無公共交通站點,輸出其實沒有差別。

通過調整權重和閾值,可以得到不同的決策模型。例如把閾值改為 3,那么感知機會按照天氣狀況,并結合交通情況和男朋友或女朋友同行的意愿,來得出結果。換言之,調整閾值將得到不同的決策模型。降低閾值表示你更想去。

顯然,感知機模型不能完全模擬人類決策,但這個例子展示了感知機如何通過權衡不同的因素來做出決策??梢韵胍?,復雜的感知機網絡能夠做出更精細的決策,如圖 1-4 所示。

圖 1-4

在如圖 1-4 所示的網絡中,第一列(第一層)感知機通過權衡輸入做出 3 個非常簡單的決策。第二層的感知機權衡第一層的決策結果并做出自己的決策,因此比第一層中的感知機做出的決策更復雜、更抽象。同理,第三層中的感知機能做出比之前更復雜的決策。通過這種方式,一個多層感知機網絡可以做出復雜精巧的決策。

順便提一下,前面定義感知機時說感知機只有一個輸出,而圖 1-4 中的感知機看上去似乎有多個輸出。其實,它仍然只有一個輸出圖上感知機的多個輸出箭頭僅僅為了說明一個感知機的輸出被其他感知機使用。跟把單個輸出線條分叉相比,這樣做更便于理解。

下面簡化感知機的數學表達。條件 閾值 看上去有些冗長,可以更改兩個符號來進行簡化。首先把 改寫成點乘,即 。其中, 分別對應權重和輸入的向量。然后把閾值移到不等式的另一邊,并用感知機的偏置 閾值來代替。使用偏置而不是閾值,感知機的規則可以重寫為:

可以把偏置看作對讓感知機輸出 1(類似于生物學上的“激活感受器”)難易程度的估算。對于一個具有很大偏置的感知機來說,輸出 1 是很容易的;但如果偏置是一個非常小的負數,輸出 1 則很困難。顯然,引入偏置只是描述感知機的一個很小的變動,后面會看到它將更進一步地簡化符號。因此,本書的后續部分不再使用閾值,而會使用偏置。

前面講過,感知機通過權衡不同的因素來做出決策。感知機的另一種用法是執行基本的邏輯運算,例如 AND、OR、NAND。假設有個感知機接收兩個輸入,每個的權重為-2,整體的偏置為 3,如圖 1-5 所示。

圖 1-5

輸入 00 會產生輸出 1,這是因為 是正數。這里用星號*來表示乘法。輸入 11 會產生輸出 0,這是因為 是負數。這樣,感知機就實現了一個與非門!

與非門的例子表明,可以用感知機來執行簡單的邏輯運算。實際上,可以用感知機網絡來執行任何邏輯運算,這是因為與非門是通用的邏輯運算,用多個與非門可以構建出任何運算。例如,可以用與非門構建一個電路,它把兩個二進制數 相加。這需要按位求和,,并且當 都為 1 時進位設為 1,即進位正好是按位乘積 ,如圖 1-6 所示。

圖 1-6

為了得到一個與之等價的感知機網絡,可以把所有與非門替換為接收兩個輸入的感知機,并將每個輸入對應的權重設為-2,將整體偏置設為 3。結果得到如圖 1-7 所示的網絡。請注意,右下的與非門移動了一點,這樣做只是為了在圖上更方便地畫箭頭。

圖 1-7

在這個感知機網絡中,有一個部分值得注意:最左邊的感知機的輸出兩次作為底部感知機的輸入。前面定義感知機模型時,沒有講過是否允許這種雙輸出到同一處,實際上這并不重要。如果不想要這種形式,可以把兩條線合并簡化成一個權重為 -4 的連接,而不是兩個權重為 -2 的連接。(如果這里不明白,需要停下來仔細思考。)改動之后,原先的網絡變成如圖 1-8 所示的這樣,所有未標記的權重均為 -2,所有偏置均為 3,標記的單個權重為 -4。

圖 1-8

前面把 這樣的輸入畫成感知機網絡左邊的浮動變量,實際上可以畫一層額外的感知機——輸入層,來對輸入進行編碼,如圖 1-9 所示。

圖 1-9

根據這種表示方法,感知機有一個輸出,但沒有輸入,如圖 1-10 所示。

圖 1-10

這是一種簡化,并不表示感知機沒有輸入。為了說明,假設確實有一個沒有輸入的感知機,那么加權和 總會為 0,并且感知機在 時輸出 1,在 時輸出 0。這樣,感知機會簡單輸出一個固定值,而不是目標值(上例中的 )。倒不如不要把輸入感知機看作感知機,而是簡單地定義為輸出目標值的特殊單元

這個加法器例子演示了如何使用感知機網絡模擬包含很多與非門的電路。鑒于與非門在計算中的通用性,可以想見感知機也具有通用性。

感知機在計算中的通用性既令人振奮,又令人失望。令人振奮是因為它表明感知機網絡能像其他計算設備那樣強大;令人失望的是,它看上去不過是一種新的與非門,并不像是重大突破。

然而,實際情況要好很多。我們可以設計學習算法來自動調整人工神經元的權重和偏置。這種調整可以自動響應外部刺激,而不需要程序員直接干預。這些學習算法讓我們能夠以跟傳統邏輯門完全不同的方式使用人工神經元。有別于顯式設計與非門或其他邏輯門,神經網絡能輕松學會如何解決一些問題,這些問題有時很難直接用傳統的電路設計來解決。

主站蜘蛛池模板: 汝南县| 嘉兴市| 余江县| 成都市| 鹤庆县| 莱州市| 德清县| 陕西省| 大新县| 罗定市| 徐水县| 云林县| 应用必备| 内黄县| 读书| 囊谦县| 柘城县| 历史| 繁峙县| 曲麻莱县| 武平县| 万源市| 栾城县| 杭锦后旗| 原平市| 大丰市| 罗定市| 县级市| 开远市| 霍山县| 阜新市| 遂平县| 页游| 津市市| 女性| 萨嘎县| 沁水县| 玉树县| 高邑县| 新巴尔虎左旗| 宁陕县|