我的人工智慧之旅——神經網路
神經元,neuron
神經網路,Neural Networks
啟用函式,activation function
權重,weight
輸入層,input layer
輸出層,output layer
隱藏層,hidden layer
向前傳播,forward propagation
人工神經網路
人工神經網路是一種機器學習演算法,興起於上世紀八九十年代,但由於其本身計算量較大,受制於當時的硬體運算速度,因而應用較少,直至近幾年才再度回到人們的視線。在我們已經學習了線性迴歸和邏輯迴歸的情況下,為什麼還要研究神經網路呢?原因在於,該學習演算法用於處理更加複雜的非線性假設。
舉個例子。圖片是以數字矩陣的方式儲存的。例如,50x50畫素的圖片,包含2500個畫素點,即50x50的點矩陣。若圖片是RGB色圖,每個點有紅綠藍三種顏色數值,那麼,該圖片樣本將包含7500個特徵值。若要將類似的圖片樣本,與其它樣本區分開來,通過遍歷所有二次項特徵(即x_i*x_j)構建假設函式,則假設函式將包含7500*7500個特徵值。這僅僅是50x50畫素的圖片,但無論線性迴歸還是邏輯迴歸,計算量是巨大的。
生物學中的許多神經重接實驗,已能夠間接證明,人腦皮層不同功能區域,似乎都具有某種相同的學習能力,用於學習其它不同區域的功能,而人工神經網路的目的正是模擬該學習功能。
人工神經元
人腦中存在大量的神經元細胞,人體所有的感知資訊都是通過神經元來傳遞的。神經元細胞有兩個重要的部分。一個是分叉樹狀的突起,稱為樹突,用於接收多個其它神經元傳入的資訊。一個是細長的軸突,用於向其它神經元傳送資訊。
人工神經網路是由一組人工神經元組成,人工神經元可以看做是一個運算單元。與人體神經元類似,人工神經元具有多個輸入(N階向量X),和一個輸出。執行在人工神經元上,將輸入對映為輸出的函式,稱為啟用函式。啟用函式中,每一個輸入特徵值都具有對應的引數,以表明該輸入對於輸出的影響。引數的集合(即)稱為權重。
這裡需要特別說明的是,可以是不同的函式模型,例如我們之前講到的線性函式,或者對數函式。
人工神經網路示例
來看一個人工神經網路的例子。
如圖所示的人工神經網路中,共分了四層。分別為,由特徵值組成的Layer1,輸入層。為輸出的Layer4,輸出層。
相對於使用者可見的Layer1,Layer4兩層,由
需要說明一下,
(1)神經元中的i,表示索引為i的隱藏層。j表示某一隱藏層中索引為j的神經元。
(2)權重,表示為索引為k的特徵值(即),對映至第i層第j個神經元(即)時,所對應的權重。
若我們將執行在上的啟用函式定義為,那麼
那麼,我們可以很容易的推算出該人工神經網路的假設函式
這裡,我們稱這種由輸入層向前逐步計算出輸出層的過程,稱為向前傳播。可看到向前傳播的過程中,上層的輸出成為下一層的輸入。