此文基于周莫煩大神@莫煩的視頻颠蕴,文章以及網(wǎng)友@不會停的蝸牛 的筆記以及自己的一些心得牵啦。
1.1.1 神經(jīng)元模型
神經(jīng)元是神經(jīng)網(wǎng)絡中最基本的結(jié)構(gòu)茎活,也可以說是神經(jīng)網(wǎng)絡的基本單元,它的設(shè)計靈感完全來源于生物學上神經(jīng)元的信息傳播機制辖众。我們學過生物的同學都知道卓起,神經(jīng)元有兩種狀態(tài):興奮和抑制。一般情況下凹炸,大多數(shù)的神經(jīng)元是處于抑制狀態(tài)戏阅,但是一旦某個神經(jīng)元收到刺激,導致它的電位超過一個閾值啤它,那么這個神經(jīng)元就會被激活奕筐,處于“興奮”狀態(tài),進而向其他的神經(jīng)元傳播化學物質(zhì)(其實就是信息)变骡。
1943年离赫,McCulloch和Pitts將上圖的神經(jīng)元結(jié)構(gòu)用一種簡單的模型進行了表示,構(gòu)成了一種人工神經(jīng)元模型,也就是我們現(xiàn)在經(jīng)常用到的“M-P神經(jīng)元模型”,如下圖所示斯撮。
從上圖M-P神經(jīng)元模型可以看出,神經(jīng)元的輸出:
其中為我們之前提到的神經(jīng)元的激活閾值翎猛,函數(shù)也被稱為是激活函數(shù)。如上圖所示频丘,函數(shù)可以用一個階躍方程表示办成,大于閾值激活;否則則抑制搂漠。但是這樣有點太粗暴迂卢,因為階躍函數(shù)不光滑,不連續(xù)桐汤,不可導而克,因此我們更常用的方法是用sigmoid函數(shù)來表示函數(shù)函數(shù)。sigmoid函數(shù)的表達式和分布圖如下所示:
1.1.2 感知機和神經(jīng)網(wǎng)絡
感知機(perceptron)是由兩層神經(jīng)元組成的結(jié)構(gòu)怔毛,輸入層用于接受外界輸入信號员萍,輸出層(也被稱為是感知機的功能層)就是M-P神經(jīng)元。下圖表示了一個輸入層具有三個神經(jīng)元(分別表示為x0拣度、x1碎绎、x2)的感知機結(jié)構(gòu):
根據(jù)上圖不難理解螃壤,感知機模型可以由如下公式表示:
y = f(wx+b)
其中,w為感知機輸入層到輸出層連接的權(quán)重筋帖,b表示輸出層的偏置奸晴。事實上,感知機是一種判別式的線性分類模型日麸,可以解決與寄啼、或、非這樣的簡單的線性可分(linearly separable)問題代箭,線性可分問題的示意圖見下圖:
但是由于它只有一層功能神經(jīng)元墩划,所以學習能力非常有限。事實證明嗡综,單層感知機無法解決最簡單的非線性可分問題——異或問題.
我們知道乙帮,我們?nèi)粘I钪泻芏鄦栴},甚至說大多數(shù)問題都不是線性可分問題极景,那我們要解決非線性可分問題該怎樣處理呢蚣旱?這就是這部分我們要引出的“多層”的概念。既然單層感知機解決不了非線性問題戴陡,那我們就采用多層感知機,下圖就是一個兩層感知機解決異或問題的示意圖:
計算值:
構(gòu)建好上述網(wǎng)絡以后沟涨,通過訓練得到最后的分類面如下:
h1的結(jié)果就是做出一個決策平面恤批,h2的結(jié)果就是做出另外一個決策平面。Y的作用就是將這兩個決策平面合起來裹赴,形成一個決策邊界喜庞,很好的將紅點和綠點分開來。
1.1.3 神經(jīng)網(wǎng)絡
神經(jīng)網(wǎng)絡是一種數(shù)學模型棋返,是存在于計算機的神經(jīng)系統(tǒng)延都,由大量的神經(jīng)元相連接并進行計算,在外界信息的基礎(chǔ)上睛竣,改變內(nèi)部的結(jié)構(gòu)晰房,常用來對輸入和輸出間復雜的關(guān)系進行建模。
神經(jīng)網(wǎng)絡由大量的節(jié)點和之間的聯(lián)系構(gòu)成射沟,負責傳遞信息和加工信息殊者,神經(jīng)元也可以通過訓練而被強化。
這個圖就是一個神經(jīng)網(wǎng)絡系統(tǒng)验夯,它由很多層構(gòu)成猖吴。輸入層就是負責接收信息,比如說一只貓的圖片挥转。輸出層就是計算機對這個輸入信息的認知海蔽,它是不是貓共屈。隱藏層就是對輸入信息的加工處理。
神經(jīng)網(wǎng)絡是如何被訓練的党窜,首先它需要很多數(shù)據(jù)拗引。比如他要判斷一張圖片是不是貓。就要輸入上千萬張的帶有標簽的貓貓狗狗的圖片刑然,然后再訓練上千萬次寺擂。
神經(jīng)網(wǎng)絡訓練的結(jié)果有對的也有錯的,如果是錯誤的結(jié)果泼掠,將被當做非常寶貴的經(jīng)驗怔软,那么是如何從經(jīng)驗中學習的呢?就是對比正確答案和錯誤答案之間的區(qū)別择镇,然后把這個區(qū)別反向的傳遞回去挡逼,對每個相應的神經(jīng)元進行一點點的改變。那么下一次在訓練的時候就可以用已經(jīng)改進一點點的神經(jīng)元去得到稍微準確一點的結(jié)果腻豌。
神經(jīng)網(wǎng)絡是如何訓練的呢家坎?每個神經(jīng)元都有屬于它的激活函數(shù),用這些函數(shù)給計算機一個刺激行為吝梅。
在第一次給計算機看貓的圖片的時候虱疏,只有部分的神經(jīng)元被激活,被激活的神經(jīng)元所傳遞的信息是對輸出結(jié)果最有價值的信息苏携。如果輸出的結(jié)果被判定為是狗做瞪,也就是說是錯誤的了,那么就會修改神經(jīng)元右冻,一些容易被激活的神經(jīng)元會變得遲鈍装蓬,另外一些神經(jīng)元會變得敏感。這樣一次次的訓練下去纱扭,所有神經(jīng)元的參數(shù)都在被改變牍帚,它們變得對真正重要的信息更為敏感。