損失函式 one-hot + softmax + cross-entropy 組合
分類問題和迴歸問題是監督學習的兩大種類:
- 分類問題的目標變數是離散的;
- 迴歸問題的目標變數是連續的數值。
神經網路模型的效果及優化的目標是通過損失函式來定義的。迴歸問題解決的是對具體數值的預測。比如房價預測、銷量預測等都是迴歸問題。這些問題需要預測的不是一個事先定義好的類別,而是一個任意實數。解決回顧問題的神經網路一般只有一個輸出節點,這個節點的輸出值就是預測值。
- 對於迴歸問題,常用的損失函式是 均方誤差(MSE,Mean Squared Error) 。
- 對於分類問題,常用的損失函式為 交叉熵(CE,Cross Entropy) 。
交叉熵一般與one-hot和softmax在一起使用。
one-hot 編碼
在分類問題中,one-hot編碼是目標類別的表達方式。目標類別需要由文字標籤,轉換為one-hot編碼的標籤。one-hot向量,在目標類別的索引位置是1,在其他位置是0。類別的數量就是one-hot向量的維度。在one-hot編碼中,假設類別變數之間相互獨立。同時,在多分類問題中,one-hot與softmax組合使用。
import numpy as np def prp_2_oh_array(arr): """ 概率矩陣轉換為OH矩陣 arr = np.array([[0.1, 0.5, 0.4], [0.2, 0.1, 0.6]]) :param arr: 概率矩陣 :return: OH矩陣 """ arr_size = arr.shape[1]# 類別數 arr_max = np.argmax(arr, axis=1)# 最大值位置 oh_arr = np.eye(arr_size)[arr_max]# OH矩陣 return oh_arr
softmax
softmax使得神經網路的多個輸出值的總和為1,softmax的輸出值就是概率分佈,應用於多分類問題。softmax也屬於啟用函式。softmax、one-hot和cross-entropy,一般組合使用。
softmax probabilities + one-hot encoding + cross entropy

公式
cross-entropy
交叉熵(cross entropy)比較softmax輸出和one-hot編碼之間的距離,即模型的輸出和真值。交叉熵是一個損失函式,錯誤值需要被優化至最小。神經網路估計輸入資料在各個類別中的概率。最大的概率需要是正確的標籤。
常見的損失函式:
- MSE:Mean Squared Error,均方誤差;
- CE:Cross Entropy,交叉熵;

公式
其中,y是真值,h是預測值。
softmax和交叉熵的推導, 參考 :

推導
C是交叉熵,z是wx+b,再對w求導,根據鏈式法則,w的導數值,就是C的導數乘以w的導數。
關於為什麼分類不使用MSE作為損失函式?
(1) MSE+softmax所輸出的曲線是波動的,有很多區域性的極值點,即非凸優化問題(non-convex), 參考 :

優化曲線
(2) 對於正確分類的資料點,CE梯度有一項趨近0,MSE中有兩項趨近於0,也就是MSE的梯度消失速度是CE的平方; 參考

正確分類
(3) 代理損失函式(surrogate loss function), 參考 ,準確率(accuray)是不連續的,所以需要用連續的函式來代理,而優化MSE,並不能優化模型的準確度。

代理損失函式
為什麼迴歸問題使用MSE?
最小二乘是在歐氏距離為誤差度量的情況下,由係數矩陣所張成的向量空間內對於觀測向量的最佳逼近點。
用歐式距離作為誤差度量的原因:
- 簡單。
- 提供了具有很好性質的相似度的度量。
- 非負的;
- 唯一確定性。只有 x=y 的時候,d(x,y)=0;
- 對稱的,即 d(x,y)=d(y,x);
- 符合三角性質。即 d(x,z)<=d(x,y)+d(y,z).
- 物理性質明確,在不同的表示域變換後特性不變,例如帕薩瓦爾等式。
- 便於計算。通常所推導得到的問題是凸問題,具有對稱性,可導性。通常具有解析解,此外便於通過迭代的方式求解。
- 和統計和估計理論具有關聯。在某些假設下,統計意義上是最優的。
MSE的缺點:
- 訊號的保真度和該訊號的空間和時間順序無關。即,以同樣的方法,改變兩個待比較的訊號本身的空間或時間排列,它們之間的誤差不變。例如,[1 2 3], [3 4 5] 兩組訊號的 MSE 和 [3 2 1],[5 4 3] 的 MSE 一樣。
- 誤差訊號和原訊號無關。只要誤差訊號不變,無論原訊號如何,MSE 均不變。例如,對於固定誤差 [1 1 1],無論加在 [1 2 3] 產生 [2 3 4] 還是加在 [0 0 0] 產生 [1 1 1],MSE 的計算結果不變。
- 訊號的保真度和誤差的符號無關。即對於訊號 [0 0 0],與之相比較的兩個訊號 [1 2 3] 和[-1 -2 -3] 被認為和 [0 0 0] 具有同樣的差別。
- 訊號的不同取樣點對於訊號的保真度具有同樣的重要性。