線性分類器
線性分類器比如邏輯迴歸、線性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張圖片數據xi 是一個向量;
- 在W下會有一個得分結果向量f(xi, W) 是一個向量;
- 第j類的得分爲我們記作f(xi, W)j 是一個標量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算法例子
前向(前饋)運算
反向傳播
反向傳播與參數更新