神經網絡算法——解決非線性分類複雜問題

神經網絡的定義 

把神經元模擬成一個邏輯單元,在神經網絡的模型中,神經元收到來自n個其餘神經元傳遞過來的輸入信號,這些輸入信號經過帶權重的鏈接進行傳遞,神經元收到的總輸入值將與神經元的閾值進行比較,而後經過激活函數(activation funciton)處理以產生神經元的輸出。算法

把許多個這樣的神經元按必定的層次結構鏈接起來,就獲得了神經網絡。網絡

 一個神經元能夠當作包含兩個部分,一個是對輸入的加權求和加上偏置,一個是激活函數對求和後的激活或者抑制。架構

與神經網絡有關的幾個重要術語:ide

閾值(threshhold)

閾值邏輯單元(Threshold Logic Unit,TLU),它能夠輸入一組加權係數的量,對它們進行求和,若是這個和達到或者超過了某個閾值,輸出一個量。函數

激勵函數(activation function)

所謂激活函數,就是在神經網絡的神經元上運行的函數,負責將神經元的輸入映射到輸出端。學習

一個前饋神經網絡若是具備線性層和至少一層具備 "擠壓" 性質的激活函數(如 signmoid 等),給定網絡足夠數量的隱藏單元,它能夠以任意精度來近似任何從一個有限維空間到另外一個有限維空間的  可測函數。spa

要相符上面的定理,也就是想擬合任意函數,一個必須點是 「要有帶有 「擠壓」 性質的激活函數」。這裏的 「擠壓」 性質是由於早期對神經網絡的研究用的是 sigmoid 類函數,因此對其數學性質的研究也主要基於這一類性質:將輸入數值範圍擠壓到必定的輸出數值範圍。設計

權重

鏈接是神經元中最重要的東西。每個鏈接上都有一個權重。blog

一個神經網絡的訓練算法就是讓權重的值調整到最佳,以使得整個網絡的預測效果最好。ci

例如:咱們使用a來表示輸入,用w來表示權值。一個表示鏈接的有向箭頭能夠這樣理解:在初端,傳遞的信號大小仍然是a,端中間有加權參數w,通過這個加權後的信號會變成a*w,所以在鏈接的末端,信號的大小就變成了a*w。

若是咱們將神經元圖中的全部變量用符號表示,而且寫出輸出的計算公式的話,就是下圖。

 

輸入層、輸出層、隱藏層

  • 輸入層(input layer)輸入層各神經元負責接收來自外界的輸入信息,並傳遞給中間層各神經元;
  • 隱藏層(Hidden Layer):中間層是內部信息處理層,負責信息變換,根據信息變化能力的需求,中間層能夠設計爲單隱層或者多隱層結構;最後一個隱層傳遞到輸出層各神經元的信息,經進一步處理後,完成一次學習的正向傳播處理過程
  • 輸出層(Output Layer):顧名思義,輸出層向外界輸出信息處理結果

偏置單元( bias unit)

它本質就是函數的截距,與線性方程 y=wx+b 中的 b 的意義是一致的。在 y=wx+b中,b表示函數在y軸上的截距,控制着函數偏離原點的距離,其實在神經網絡中的偏置單元也是相似的做用。 
所以,神經網絡的參數也能夠表示爲:(W, b),其中W表示參數矩陣,b表示偏置項或截距項。

 bias的計算方式

 神經網絡結構中對偏置單元的計算處理方式有兩種, 
 (1)設置偏置單元=1,並在參數矩陣 Θ 中設置第 0 列對應偏置單元的參數,對應的神經網絡以下: 
 神經網絡架構 
 其中,x0 是第一層的偏置單元(設置爲1),Θ(1)10 是對應該偏置單元 x0 的參數;a(2)0 是第二層的偏置單元,Θ(2)10 是對應的參數。 
 在計算激活值時按照(以a(2)1爲例): 
 激活值計算公式

   至關於bias自己值爲1,但它鏈接各個神經元的權重不爲1,即---整個神經網絡只有1個bias,對應有多個不一樣的權重(權重個數等於hide層和out層神經元的個數)

 

2)設置偏置單元,不在參數矩陣中設置對應偏置單元的參數,對應的神經網絡以下: 
 神經網絡架構 
 其中,b(1) 是 W(1) 對應的偏置單元向量,b(2) 是 W(2) 對應的偏置單元向量,b(1)1 是對應 a(2)1 的偏置單元。注意,此時神經網絡的參數表示更改成:(W, b) 
 在計算激活值時按照: 
 激活值計算公式 

   至關於bias鏈接各個神經元的全部權重都爲1,但bias自己不爲1,即---有多個bias,但全部的bias對應的權重都爲1(bias的個數等於hide層和out層神經元的個數)

 偏置的大小度量了神經元產生正 (負) 激勵的難易程度

 

感知器

定義: 感知器就是神經網絡中的神經元

 

圖示:
 
 

輸入:x1-xn

權值:w1-wn
偏置 :w0

激活函數 :跳躍函數
 
 

 

 

輸出
 
 

用途:能夠擬合全部的線性函數(線性分類、線性迴歸) 線性分類:可用一條線對目標進行分類。
感知器的訓練訓練方法:將權重項和偏置項初始化爲0,利用感知器規則迭代的修改w 和b,直到完成。

 

關於神經網絡,最後提煉了幾條要點:

  1. 設計一個神經網絡時,輸入層與輸出層的節點數每每是固定的,中間層則能夠自由指定;
  2. 神經網絡結構圖中的拓撲與箭頭表明着預測過程時數據的流向,跟訓練時的數據流有必定的區別;
  3. 結構圖裏的關鍵不是圓圈(表明「神經元」),而是鏈接線(表明「神經元」之間的鏈接)。每一個鏈接線對應一個不一樣的權重(其值稱爲權值),這是須要訓練獲得的。  

 以前咱們一直學習線性迴歸問題和神經網絡之間的聯繫:

好比基礎的邏輯迴歸,結合上面的神經元知識,能夠發現,邏輯迴歸就是激活函數是sigmoid 的單層簡單神經網絡。也就是說,只要在神經元的輸出端有一個合適的損失函數,就能讓單個神經元變成一個線性分類器。所以說,那些線性的分類器自己就是一個單層神經網絡。

相關文章
相關標籤/搜索