1. 程式人生 > >前向神經網路和 BP 演算法詳解 --- 之 DNN

前向神經網路和 BP 演算法詳解 --- 之 DNN

前向神經網路和 BP 演算法詳解

一、神經網路的概念詳解

1.1、人工神經網路的基礎單元 — > 感知機

1.1.1、感知機模型講解

  • 首先我們需要明確一點就是,針對於擁有核函式的 SVM 或者多隱層 + 啟用函式的多層神經網路,或者其他可以處理非線性可分的模型來說,感知機我們常稱為神經元,但也可以看成是兩層的神經網路( 即只有輸入層和輸出層,沒有隱層 ),雖然它只能處理線性可分問題,但它依然是我們學習神經網路和深度學習的基石。


    感知機

  • 圖中對應的符號含義如下:
    • 輸入(x1 ,…,xn)
    • 偏移b 和 突觸權重(w1 ,…,wn),注意,我們下面推到是使用
      θi
      代替 wi 進行公式推導。
    • 組合函式c(·)
    • 啟用函式a(·)
    • 輸出y

  • 用數學的語言來說,如果我們有m個樣本,每個樣本對應於n維特徵和一個二元類別輸出,如下:
    (x1(0),x2(0),...xn(0),y0),(x1(1),x2(1),...xn(1),y1),...(x1(m),x2(m),...xn(m),ym)
  • 我們的目的便是找一個超平面,即: θ0+θ1x1+...+θnxn=0 讓把每個類別的樣本特徵帶入該方程時,要麼大於 0 ,要麼小於 0,從而使得樣本分居在超平面兩側,從而到達線性可分。一般如果樣本線性可分,則這樣的超平面會有多個解,不唯一。

  • 為了簡化模型,我們增加一個 x0 = 1,使得超平面方程簡寫為 i=0nθixi=0 進一步可寫向量形式為 θx=0 其中 θ 和 X 均為 n * 1 的向量,為內積,下面我們都用它表示超平面。
  • 故感知機的模型可以定義為 y=sign(θx) ,其中sign 為啟用函式,它是符號函式,也稱為階躍函式。
    sign(x)={1x<01x0

  • 在多層神經網路中,我們可能用到其他的啟用函式,如下:

這裡寫圖片描述

1.1.2 感知機模型損失函式

  • 根據上面的分析,我們將 θ
    x>0
    的樣本類別輸出值取為1 ,而小於 0 的樣本類別取為 -1,這樣定義它的好處便是方便我們定義損失函式。因為有了上面的約定,正確分類的樣本滿足: yθx>0,而錯誤的分類樣本滿足 yθx<0。於是損失函式的優化方法便是期望使誤分類的所有樣本,到超平面的距離之和最小(即想讓誤分類樣本逐漸消失)。

  • 由於yθx<0,所以對於每一個誤分類的樣本 i,到超平面的距離為: y(i)θx(i)/||θ||2
  • 其中,||θ||2 為 L2範數。(若此處距離公式不理解,可自行查閱點到直線的距離,或者學習相關的機器學習相關章節)
  • 接著,我們假設所有誤分類的點的集合為M,則所有誤分類的樣本到超平面的距離之和為: