1. 程式人生 > >從感知機到神經網絡

從感知機到神經網絡

技術 翻轉 討論 這一 發生 justify 簡單 找到 rank

從感知機到神經網絡

感知機

感知器在20世紀五、六十年代由科學技術Frank Rosenblatt發明,其受到Warren McCulloch和Walter Pitts早期的工作的影響。今天,使用其他人工神經元模型更為普遍———在這本書中,以及更多現代的神經網絡工作中,主要使用的是一種叫做S型神經元的神經元模型。

感知器是如何工作的呢?一個感知器接受幾個二進制輸入,並產生一個二進制輸出:

技術分享圖片

示例中的感知器由三個輸入,。通常可以由更多或更少的輸入。Rosenblatt提議一個簡單的規則來計算輸出。他引入權重, 表示相應輸入對於輸出重要性的實數。神經元的輸出,0或者1,則由分配權重後的總和小於或者大於一些閾值

決定。和權重一樣,閾值是一個實數,一個神經元的參數。用更精確的代數形式:

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

S型神經元

如果對權重(或者偏置)的微小的改動真的能夠僅僅引起輸出的微小的變化,那我們可以利用這一事實來修改權重和偏置,讓我們的網絡能夠表現得像我們想要的那樣。問題在於當我們的網絡包含感知器時這不會發生。實際上,網絡中單個感知器上一個權重或偏置的微小改動有時會引起那個感知器的輸出完全翻轉,如0變到1。那樣的翻轉可能接下來引起其余網絡的行為以機器復雜的方式完全改變。這使得逐步修改權重和偏置來讓網絡接近期望行為變得困難。

我們可以引入一種稱為S型神經元的新的人工神經網絡來克服這個問題。S型神經元和感知器類似,但是被修改為權重和偏置的微小改動只引起輸出的微小變化。這對讓神經元網絡學習起來是關鍵的。

好了,讓我來描述下S型神經元。我們用描述感知器的相同方式來描述S型神經元:

技術分享圖片

正如一個感知器,S型神經元有多個輸入,但是這些輸入可以取0和1中的任意值,而不僅僅是0或1。例如, 0.638……是一個S型神經元的有效輸入。同樣,S型神經元對每個輸入有權重,和一個總的偏置,b。但是輸出不是0或1.相反,它現在是, 這裏被稱為S型函數,定義為:

技術分享圖片

把它們放在一起來更清楚地說明,一個具有輸入權重和偏置b的S型神經元的輸出是:

技術分享圖片

初看上去,S型神經元和感知器由很大的差別。實際上,感知器和S型神經元之間有很多相似的地方。S型神經元和感知器的對比圖如下:

技術分享圖片 技術分享圖片

感知器和S型神經元之間一個很大的不同是S型神經元不僅僅輸出0或1。它可以輸出0和1之間的任何實數,所以諸如0.173…和0.689…的值是合理的輸出。

由於歷史的原因,盡管是由S型神經元而不是感知器構成,這種多層網絡有時被稱為多層感知器或者MLP。

目前為止,討論的神經網絡,都是以上一層的輸入作為下一層的輸出。這種網絡被稱為前饋神經網絡。

使用梯度下降算法進行學習

我們希望有一個算法,能讓我們找到權重和偏置,以至於網絡的輸出y(x)能夠擬合所有的訓練輸入x。為了量化我們如何實現這個目標,我們定義一個代價函數:

技術分享圖片

這裏w表示所有的網絡中權重的集合,b是所有的偏置,n是訓練輸入數據的個數,a是表示當輸入為x時輸出的向量,求和則是在總的訓練輸入x上進行的。

從感知機到神經網絡