在利用深度學習模型解決有監督問題時,比如分類、回歸、去噪等,我們一般的思路如下:
在第2步中,我們通常會見到多種損失函式的定義方法,常見的有均方誤差(error of mean square)、最大似然誤差(maximum likelihood estimate)、最大後驗概率(maximum posterior probability)、交叉熵損失函式(cross entropy loss),下面我們就來理清他們的區別和聯絡。一般地,乙個機器學習模型選擇哪種損失函式,是憑藉經驗而定的,沒有什麼特定的標準。具體來說,
(1)均方誤差是一種較早的損失函式定義方法,它衡量的是兩個分布對應維度的差異性之和。說點題外話,與之非常接近的一種相似性度量標準「余弦角」,則衡量的是兩個分布整體的相似性,也即把兩個向量分別作為乙個整體,計算出的夾角作為其相似性大小的判斷依據,讀者可以認真體會這兩種相似性判斷標準的差異;
(2)最大似然誤差是從概率的角度,求解出能完美擬合訓練樣例的模型引數theta,使得概率p(y | x, theta)最大化;
(3)最大化後驗概率,即使得概率p(theta | x, y)最大化,實際上也等價於帶正則化項的最大似然概率(詳細的數學推導可以參見bishop 的pattern recognition and machine learning),它考慮了先驗資訊,通過對引數值的大小進行約束來防止「過擬合」;
(4)交叉熵損失函式,衡量的是兩個分布p、q的相似性。在給定集合上兩個分布p和q的cross entropy定義如下:
其中,h(p)是p的熵,dkl(p||q)表示kl-divergence。對於離散化的分布p和q,
在機器學習應用中,p一般表示樣例的標籤的真實分布,為確定值,故最小化交叉熵和最小化kl-devergence是等價的,只不過之間相差了乙個常數。
值得一提的是,在分類問題中,交叉熵的本質就是似然函式的最大化。證明如下:
記帶標籤的樣例為(x, y), 其中x表示輸入特徵向量,y=[y1, y2, …, yc]表示真實標籤的one-hot表示,y_=[y1, y2, …, yc]表示模型輸出的分布,c表示樣例輸出的類別數,那麼。
(1)對於二分類問題,p(x)=[1, 0],q(x)=[y1, y2],y1=p(y=1|x)表示模型輸出的真實概率,交叉熵h(p, q)=-(1*y1+0*y2)=-y1,顯然此時交叉熵的最小化等價於似然函式的最大化;
(2)對於多分類問題, 假設p(x)=[0, 0, 0, …, 1, 0, 0],q(x)=[y1, y2, y3, …, yk, y(k+1), y(k+2)],即表示真實樣例標籤為第k類,yk=p(y=k|x)表示模型輸出為第k類的概率,交叉熵h(p,q)=-(0*y1+0*y2+0*y3+…+1*yk+0*y(k+1)+0*y(k+2) ) = -yk, 此時同上。
深度學習 損失函式
深度學習中損失函式是整個網路模型的 指揮棒 通過對 樣本和真實樣本標記產生的誤差反向傳播指導網路引數學習。分類任務的損失函式 假設某分類任務共有n個訓練樣本,針對網路最後分層第 i 個樣本的輸入特徵為 xixi 其對應的標記為yiyi是最終的分類結果 c個分類結果中的乙個 h h1,h2,hch1,...
深度學習常用損失函式
損失函式的作用是衡量實際輸出與預計輸出之間的差異,損失函式的設計是深度學習中十分重要的部分,不僅會影響到訓練的速度,還會影響隱含層中資料的分布情況。目前僅僅是總結了部分常用損失函式的計算方法,其中涉及很多統計學最優化知識,對此僅僅是淺嘗輒止,其中更多的原理還需要以後慢慢總結體會,以下僅簡要記錄其計算...
深度學習中的損失函式
1.交叉熵損失函式 理解交叉熵函式在神經網路中的作用 2.平方差損失函式 平方差損失函式和交叉熵損失函式的比較 3.對數損失函式 對數損失函式和平方差函式 4.絕對值誤差 這個概念就比較簡單了,就是 值和真實值差值的絕對值,當然,為了評估 的準確程度,當然絕對值越小越好。5.0 1損失函式 0 1損...