首頁  >  文章  >  神經網路演算法基礎入門

神經網路演算法基礎入門

王林
王林原創
2019-09-23 18:00:401996瀏覽

神經網路演算法基礎入門

眼下最熱門的技術,絕對是人工智慧。

人工智慧的底層模型是"神經網路"(neural network)。許多複雜的應用(例如模式識別、自動控制)和進階模型(例如深度學習)都基於它。學習人工智慧,一定是從它開始。

神經網路演算法基礎入門

一、感知器

#歷史上,科學家一直希望模擬人類的大腦,創造出可以思考的機器。人為什麼能夠思考?科學家發現,原因在於人體的神經網路。

神經網路演算法基礎入門

1、外部刺激經由神經末梢,轉化為電訊號,轉導到神經細胞(又叫神經元)。

2、無數神經元構成神經中樞。

3、神經中樞綜合各種訊號,做出判斷。

4、人體根據神經中樞的指令,對外部刺激做出反應。

二、權重和門檻

看到這裡,你一定會問:如果某些因素成立,有些因素不成立,輸出是什麼?例如,週末是好天氣,門票也不貴,但小明找不到同伴,他還要不要去參觀呢?

現實中,各種因素很少具有同等重要性:某些因素是決定性因素,另一些因素是次要因素。因此,可以給這些因素指定權重(weight),代表它們不同的重要性。

天氣:權重為8

同伴:權重為4

價:權重為4

#上面的權重表示,天氣是決定性因素,同伴和價格都是次要因素。

如果三個因素都是1,它們乘以權重的總和就是 8 4 4 = 16。若天氣和價格因素為1,同伴因素為0,總和就變成 8 0 4 = 12。這時,還需要指定一個閾值(threshold)。如果總和大於閾值,感知器輸出1,否則輸出0。假設閾值為8,那麼 12 > 8,小明決定去參觀。閾值的高低代表了意願的強烈,閾值越低就表示越想去,越高就越不想去。

上面的決策過程,使用數學表達如下。

神經網路演算法基礎入門

三、決策模型

單一的感知器構成了一個簡單的決策模型,已經可以拿來用了。在真實世界中,實際的決策模型則複雜得多,是由多個感知器組成的多層網路。

神經網路演算法基礎入門

上圖中,底層感知器接收外部輸入,做出判斷以後,再發出訊號,作為上層感知器的輸入,直到得到最後的結果。 (注意:感知器的輸出仍然只有一個,但是可以發送給多個目標。)

這張圖裡,訊號都是單向的,即下層感知器的輸出總是上層感知器的輸入。現實中,有可能發生循環傳遞,即A 傳給B,B 傳給C,C 又傳給A,這稱為"遞歸神經網路"(recurrent neural network)

神經網路演算法基礎入門

#四、向量化

為了方便後面的討論,需要對上面的模型做一些數學處理。

外在因素 x1、x2、x3 寫成向量 ,簡寫為x

權重 w1、w2、w3 也寫成向量 (w1, w2, w3),簡稱為 w

定義運算 w⋅x = ∑ wx,即 w 和 x 的點運算,等於因素與權重的乘積總和

#定義 b 等於負的閾值 b = -threshold

感知器模型就變成下面這樣了。

神經網路演算法基礎入門

五、神經網路的運作過程

一個神經網路的搭建,需要滿足三個條件。

1、輸入與輸出

2、權重(w)和閾值(b)

3、多層感知器的結構

也就是說,需要事先畫出上面出現的那張圖

神經網路演算法基礎入門

其中,最困難的部分就是確定權重(w)和閾值(b)。到目前為止,這兩個值都是主觀給出的,但現實中很難估計它們的值,必要有一種方法,可以找出答案。

這種方法就是試誤法。其他參數都不變,w(或b)的微小變動,記作Δw(或Δb),然後觀察輸出有什麼變化。不斷重複這個過程,直到得到對應最精確輸出的那組w和b,就是我們要的值。這個過程稱為模型的訓練。

神經網路演算法基礎入門

因此,神經網路的運作過程如下。

1、確定輸入和輸出

2、找到一種或多種演算法,可以從輸入得到輸出

#3、找到一組已知答案的資料集,用來訓練模型,估算w和b

4、一旦新的資料產生,輸入模型,就可以得到結果,同時對w和b進行校正

六、輸出連續性

上面的模型有一個問題沒有解決,依照假設,輸出只有兩個結果:0和1。但是,模型要求w或b的微小變化,會引發輸出的變化。如果只輸出0和1,未免也太不敏感了,無法保證訓練的正確性,因此必須將"輸出"改造成一個連續性函數。這就需要進行一點簡單的數學改造。

首先,將感知器的計算結果wx b記為z。

z = wx b

然後,計算下面的式子,將結果記為σ(z)。

σ(z) = 1 / (1 e^(-z))

#這是因為如果z趨向正無窮z → ∞(表示感知器強烈匹配),則σ(z) → 1;如果z趨向負無窮z → -∞(表示感知器強烈不符),那麼σ(z) → 0。也就是說,只要使用σ(z)當作輸出結果,那麼輸出就會變成一個連續性函數。

原來的輸出曲線是下面這樣。

神經網路演算法基礎入門

現在是這樣:

神經網路演算法基礎入門

#實際上,也可以證明Δσ滿足下面的公式。

神經網路演算法基礎入門

即Δσ和Δw和Δb之間是線性關係,變化率是偏導數。這就有利於精確推算出w和b的值了。

以上是神經網路演算法基礎入門的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn