本文主要是學習BP神經網絡的一個總結,其自己也是機器學習中比較基礎、適合入門的模型。網絡
目前本人對於機器學習也還只是入門狀態,對於不少名詞仍然是隻知其一;不知其二(感受機器學習中的不少術語自己也是模棱兩可的),對於不少公式也是不求甚解,所以這篇文章是嘗試用本身的語言和理解來複述所學習到的知識,若是有錯誤之處還望大牛們不吝斧正。機器學習
霍金說過每多一個數學公式,就會少一半的讀者,所以這裏也會盡可能少用公式,要用也只用簡單易懂的公式。並且我的以爲神經網絡中的不少公式是能夠感性地去認識的,能徹底明白推導過程天然最好,但在不求甚解的狀態下能達到感性的認知也未必不是一個快速掌握的好方法。函數
另外本文中用到了很多矩陣相關的知識,忘記了的同窗能夠看附錄中的整理。工具
神經元是神經網絡的基本組成,若是把它畫出來,大概就長成下面這樣:學習
圖中神經元左邊的x表示對神經元的多個輸入,w表示每一個輸入對應的權重,神經元右邊的箭頭表示它僅有一個輸出。spa
固然神經元也有不少種,下面介紹兩種比較基礎的。blog
神經網絡技術起源於上世紀5、六十年代,當時叫感知機(perceptron),其中的單個神經元咱們能夠叫做感知器。感知器的特色具備濃厚的時代氣息:其輸入輸出都是二進制形式的(聽說因爲計算技術的落後,當時感知器傳輸函數是用線拉動變阻器改變電阻的方法機械實現的)。
數學
如上圖所示,感知器有多個二進制輸入(值只能是0或1)X一、X2..Xn,每一個輸入有對應的權值W一、W2..Wn(圖中沒畫出來),將每一個輸入值乘以對應的權值再求和( ∑XjWj ),而後與一個閾值(threshold) 比較,大於閾值則輸出一、小於閾值則輸出0。 寫成公式的話以下:入門
若是把公式寫成矩陣形式,再用b來表示負數的閾值(即b=-threshold),那就獲得了以下公式:基礎
例如你所在的城市將有一個你的偶像的演唱會,你正決定是否觀看,你可能會經過如下三個方面來權衡你的決定:
咱們將這三個因素用對應的二進制變量x1,x2和x3表示。好比,當天氣還不錯時,咱們有x1=1,天氣很差時x1=0;類似的,若是好基友願意去,x2=1,不然x2=0;對於公共交通x3同理賦值。
而後根據你的意願,好比讓天氣權重 w1=6,其餘條件權重分別爲w2=2,w3=2。權重w1值越大表示天氣影響最大,比起好基友加入或者交通距離的影響都大。最後,假設你選擇5作爲感知器閾值(即b爲-5),按照這種選擇,這個感知器就能實現這個決策模型:當天氣好時候輸出1,天氣很差時候輸出0,不管你的好基友是否願意去,或者交通是否比較近。
先來認識一個函數:Sigmoid函數,這個單詞在某些工具上直譯是「乙狀結腸」、也還真有某些資料把Sigmoid神經元叫做乙狀結腸神經元的。 其實它是一個經常使用的「S」型函數,能夠把變量映射到(0,1)區間內,其公式以下: