1. 程式人生 > >深度學習(一)--反向傳播演算法

深度學習(一)--反向傳播演算法


本文從李飛飛的課件cs231n的得到啟發,將關於反向傳播演算法的內容做下總結。

下圖是對深度學習的直觀解釋:

該圖右側表示影象空間,通過幾個分介面將影象空間分成幾個不同的區域,每個區域的影象具有相似的特徵。
左側為卷積神經網路的簡單版,將輸入影象與權重矩陣W想乘,加上偏置項即可得到屬於各個類別的scores,score越大,屬於該類的概率越大。
但是,基本思路是這樣,具體實施的話,需要考慮很多問題:
1. 上述方法雖然能計算出scores,但當scores不滿足我們的期望時(也就是說當前分類器並不是最優),如何去處理?通過最小化損失函式的方法來找到最優的分類器。
2. 如何去量化損失?
3. 量化損失後,如何將損失最小化?

損失函式的選擇

Multiclass SVM loss

理論推導

{xiyi}i=1N
其中xi is image and yi is integer label
整個資料集上的損失函式如下所示:
L=1NiLi(f(xi,W),yi)
Li又如何定義呢?
(1)Li=jyi{0syisj+1sjsyi+1otherwise(2)=jyimax(0,sjsyi+
1)

該是的直觀理解:當非目標的score比目標的score大1以上時,認為損失為零,否則,認為損失為 sjsyi+1

Example

假設有一個分類任務:設計一個分類器將三幅影象分類。

給定三幅影象,通過下圖的方法計算出每幅圖對應的scores向量:

每幅圖對應一個scores向量,如下圖所示:

但是據我們觀察,每幅圖對應的scores向量中最大值並非對影象的正確分類,因此,說明目前的分類器(也就是W,b)並不是最優,需要進行優化。
根據上述loss計算公式進行如下計算:
我們計算第三幅影象的scores,因此,i=3,y3=

3,j=1,2

(3)Li=jyimax(0,sjsyi+1)(4)=max(0,2.2(3.1)+1)+max(0,2.5