深度學習| 神經網絡初步

線性分類器

線性分類器比如邏輯迴歸、線性SVM,我們會拿到一個決策邊界

線性分類器得分函數 

圖像數據(32 * 32 * 3的輸入矩陣)——圖像數據 權重/參數f(x, W) ——>  CIFAR-10中的10個類別的得分向量

 f(x, W) = Wx  (10*1  = 10* 3072   3072*1),其中W叫做參數或者權重,f(x, W) 叫做假設函數x -> y映射關係的函數; 

線性分類器得分函數

損失函數也叫代價函數/cost function 、客觀度/objective 

衡量和標準答案差異的函數

  • 給定w,可以由像素映射到類目得分;
  • 可以調整參數/ 權重W,使得映射的結果和實際類別吻合;
  • 損失函數是用來衡量吻合度的;

損失函數1:hinge loss / 支持向量機損失

  • 對於訓練集中的第i張圖片數據x是一個向量; 
  • 在W下會有一個得分結果向量f(xi, W) 是一個向量;
  • 第j類的得分爲我們記作f(xi, W)是一個標量scalar; 
  • 則在該樣本上的損失我們由下列公式計算得到;

 

假設我們現在有三個類別,而得分函數計算某張圖片的得分爲f(xi, W) = [13, -7, 11],而實際的結果是第一類(yi = 0);

假設△ = 10,上面的公式把錯誤類別(j != yi) 都遍歷了一遍,求值加和: Li = max(0, -7 -13 + 10) + max(0, 11 - 13 + 10)

 因爲是線性模型,因此可以簡化成:

 

 

 線性分類器得分函數

 

 

損失函數2:交叉熵損失(softmax分類器)

  • 對於訓練集中的第i 張圖片數據xi
  • 在W下會有一個得分結果向量fyi 
  • 則損失函數記作:

 

2種損失函數的理解

 

通用的學習框架

 

神經網絡

一般神經網絡的結構

 

 從邏輯迴歸到神經元“感知器”

 

 添加少量隱層 => 淺層神經網絡

 

 

 增多中間層  => 深度神經網絡(DNN)

 

 

 神經網絡非線性切分

 

 神經元完成【邏輯與】

 

 

 

 

 神經元完成【邏輯或】

 

 

 

神經網絡非線性切分

對線性分類器的AND 和OR的組合

完美對平面樣本點分佈進行分類

 

 

 

 神經網絡表達力與過擬合

  • 理論上說單隱層神經網絡可以逼近任何連續函數(只要隱層的神經元個數足夠多);
  • 雖然從數學上表達能力一致,但是很多隱藏層的神經網絡比單隱藏層的神經網絡工程效果好很多;
  • 對於一些分類數據(比如CTR預估裏),3層神經網絡效果優於2層神經網絡,但是如果把層數再不斷增加(4,5,6層),對最後結果的幫助就沒有那麼大的跳變了;
  • 圖像數據比較特殊,是一種深層(多層次)的結構化數據,深層次的卷積神經網絡,能夠更充分和準確地把這些層級信息表達出來;

 

  • 提升隱層層數或者隱層神經元個數,神經網絡“容量”會變大,空間表達力會變強;
  • 過多的隱層和神經元節點,會帶來過擬合問題;
  • 不要試圖通過降低神經網絡參數量來減緩過擬合,用正則化或者dropout;

 

 

 神經網絡結構

 

 傳遞函數

 

 BP算法

  • “正向傳播”求損失,“反向傳播”回傳誤差;
  • 根據誤差信號修正每層的權重;

 

  •  BP算法也叫δ算法;
  • 以3層的感知器爲例

 

 

 

 

 

 

 SGD

誤差E有了,怎麼調整權重讓誤差不斷減小?

E是權重W的函數,我們需要找到使得函數值最小的W;

 

 

 BP算法例子

 

 前向(前饋)運算

 

 反向傳播

 

 反向傳播與參數更新

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章