深度學習 21天實戰caffe 前三天 筆記
阿新 • • 發佈:2019-02-02
本文用作《深度學習21天實戰caffe筆記》的備忘,請結合原書食用~
前言
- Caffe框架以“層”為單位對深度神經網路的結構進行了高度的抽象。
- Caffe由賈楊清開發。
- 卷積神經網路發明者Geoffrey Hinton在20世紀70年代提出深度學習理論,隨著NVIDIA GPU的廣泛使用才大量應用。
- 深度學習年代久遠,當時受限於計算能力不足和資料集匱乏陷入低谷,直到雲端計算、大資料時代到來才突飛猛進。
第一天 什麼是深度學習
- 帶“學習”功能的機器:“看”未知系統的輸入-輸出對(訓練樣本),自動得演算法,可舉一反三(泛化)。
- 訓練樣本,位輸入-輸出對。
- 懲罰函式,引數為學到的規則和獨立於的驗證樣本集,返回值為實數標量,稱為懲罰值或損失。目標是儘量小。
- 機器學習需要三份資料:
- 訓練集:機器學習的樣例
- 驗證集:機器學習階段,用於評估得分和損失是否滿足要求
- 測試集:機器學習結束之後,實戰階段評估得分。;
- 深度學習:由多個處理層組成的計算模型,可通過學習獲得資料的多抽象層表示。
- 機器學習三大牛:Geoffrey Hinton, Yann LeCun, 和 Youshua Bengio。
第二天 深度學習的過往
- 傳統機器學習需要手動提取特徵,比較繁瑣且往往需要領域專家設計特徵。
- 分類問題中,高層特徵能強調重要的類別資訊,而抑制無關的。如影象中從低到高的特徵:邊緣->圖案->圖案組合。深度學習自動在高維資料中發現複雜結構。
監督學習
- 監督學習中的資料是帶有標籤(label)的。
- 訓練過程中需要不斷更新權值(引數)向量,方法是:計算梯度向量,表示每個權值增加一個微小值時目標函式的變化量,之後權值向量根據梯度向量的相反方向調節。
- 經典更新方法——隨機梯度下降(Stochastic Gradient Descent, SGD):輸入少量樣本,計算輸出和誤差,計算樣本的平均梯度,根據梯度調節平均值。
- 線性分類器:高於閾值就分為一類,否則另一類。
- 深度學習核心優勢:自動學習好的特徵,很多個模組,每個都能計算非線性輸入-輸出對映。
反向傳播演算法
反向傳播演算法通過計算目標函式相對於多層網路權值的梯度,進行鏈式求導,從而調整引數。
下面舉一個網路的例子,下圖的左、右分別代表了該網路的前向傳播和反向傳播的過程
前向傳播
先看左圖前向傳播的計算過程:
Input -> H1
取H1中的一個結點,其值。
其中是input中三個結點的函式,也就是說的由決定。
這裡的,其中為權重。
函式是一個啟用函式(如ReLU),它對進行非線性變換,得到輸出。
H1->H2和H2->Output
類似的,令H2、Output中的結點為和,我們可以得到:
反向傳播
再來看右圖反向傳播的計算過程,它分為兩步;
1. 計算每層的梯度:對於每層,我們計算它對這一層的輸出結點誤差的梯度,也就是求對後一層的輸入誤差的加權和。
2. 應用鏈式求導法則,將誤差梯度傳到這一層的輸入結點。
例如,若Output units中的結點的代價函式(loss function)為,其中是我們想要的輸出,是目前的輸出,我們現在求這個loss function對的梯度:
對於的偏導數為,又因為,所以