1. 程式人生 > >深度學習 21天實戰caffe 前三天 筆記

深度學習 21天實戰caffe 前三天 筆記

本文用作《深度學習21天實戰caffe筆記》的備忘,請結合原書食用~

前言

  1. Caffe框架以“層”為單位對深度神經網路的結構進行了高度的抽象。
  2. Caffe由賈楊清開發。
  3. 卷積神經網路發明者Geoffrey Hinton在20世紀70年代提出深度學習理論,隨著NVIDIA GPU的廣泛使用才大量應用。
  4. 深度學習年代久遠,當時受限於計算能力不足和資料集匱乏陷入低谷,直到雲端計算、大資料時代到來才突飛猛進。

第一天 什麼是深度學習

  1. 帶“學習”功能的機器:“看”未知系統的輸入-輸出對訓練樣本),自動得演算法,可舉一反三(泛化)。
  2. 訓練樣本D=z1,z2,z3
    zn
    zi輸入-輸出對
  3. 懲罰函式L(f,Z),引數為學到的規則f和獨立於Z的驗證樣本集,返回值為實數標量,稱為懲罰值損失。目標是L(f,Z)儘量小。
  4. 機器學習需要三份資料:
    • 訓練集:機器學習的樣例
    • 驗證集:機器學習階段,用於評估得分和損失是否滿足要求
    • 測試集:機器學習結束之後,實戰階段評估得分。;
  5. 深度學習:由多個處理層組成的計算模型,可通過學習獲得資料的多抽象層表示。
  6. 機器學習三大牛:Geoffrey Hinton, Yann LeCun,Youshua Bengio

第二天 深度學習的過往

  1. 傳統機器學習需要手動提取特徵,比較繁瑣且往往需要領域專家設計特徵。
  2. 分類問題中,高層特徵能強調重要的類別資訊,而抑制無關的。如影象中從低到高的特徵:邊緣->圖案->圖案組合。深度學習自動在高維資料中發現複雜結構。

監督學習

  1. 監督學習中的資料是帶有標籤(label)的。
  2. 訓練過程中需要不斷更新權值(引數)向量,方法是:計算梯度向量,表示每個權值增加一個微小值時目標函式的變化量,之後權值向量根據梯度向量的相反方向調節。
  3. 經典更新方法——隨機梯度下降(Stochastic Gradient Descent, SGD):輸入少量樣本,計算輸出和誤差,計算樣本的平均梯度,根據梯度調節平均值。
  4. 線性分類器:高於閾值就分為一類,否則另一類。
  5. 深度學習核心優勢:自動學習好的特徵,很多個模組,每個都能計算非線性輸入-輸出對映。

反向傳播演算法

反向傳播演算法通過計算目標函式相對於多層網路權值的梯度,進行鏈式求導,從而調整引數。

下面舉一個網路的例子,下圖的左、右分別代表了該網路的前向傳播和反向傳播的過程

前向傳播

先看左圖前向傳播的計算過程:

Input -> H1

取H1中的一個結點j,其值yj=f(zj)
其中zj是input中三個結點x1,x2,x3的函式,也就是說jyjxi決定。
這裡的zj=iwijxi,其中wij為權重。
函式f是一個啟用函式(如ReLU),它對zj進行非線性變換,得到輸出yj

H1->H2和H2->Output

類似的,令H2、Output中的結點為kl,我們可以得到:
yk=f(zk),zk=jwjkyj
yl=f(zl),zl=kwklyl

反向傳播

再來看右圖反向傳播的計算過程,它分為兩步;
1. 計算每層的梯度:對於每層,我們計算它對這一層輸出結點誤差的梯度,也就是求對後一層輸入誤差的加權和
2. 應用鏈式求導法則,將誤差梯度傳到這一層輸入結點。

例如,若Output units中的結點l的代價函式(loss function)為E=0.5(yltl)2,其中tl是我們想要的輸出,yl是目前的輸出,我們現在求這個loss function對zl的梯度:

E對於yl的偏導數為yltl,又因為yl=f(zl),所以