1. 程式人生 > >最大似然損失和交叉熵損失函式的聯絡

最大似然損失和交叉熵損失函式的聯絡

在利用深度學習模型解決有監督問題時,比如分類、迴歸、去噪等,我們一般的思路如下:

  1. 資訊流forward propagation,直到輸出端;
  2. 定義損失函式L(x, y | theta);
  3. 誤差訊號back propagation。採用數學理論中的“鏈式法則”,求L(x, y | theta)關於引數theta的梯度;
  4. 利用最優化方法(比如隨機梯度下降法),進行引數更新;
  5. 重複步驟3、4,直到收斂為止;
        在第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_=[y_1, y_2, ..., y_c]表示模型輸出的分佈,c表示樣例輸出的類別數,那麼,
           (1)對於二分類問題,p(x)=[1, 0],q(x)=[y_1, y_2],y_1=p(y=1|x)表示模型輸出為真的概率,交叉熵H(p, q)=-(1*y_1+0*y_2)=-y_1,顯然此時交叉熵的最小化等價於似然函式的最大化;            (2)對於多分類問題, 假設p(x)=[0, 0, 0, ..., 1, 0, 0],q(x)=[y_1, y_2, y_3, ..., y_k, y_(k+1), y_(k+2)],即表示真實樣例標籤為第k類,y_k=p(y=k|x)表示模型輸出為第k類的概率,交叉熵H(p, q)=-( 0*y_1+0*y_2+0*y_3+...+1*y_k+0*y_(k+1)+0*y_(k+2) ) = -y_k, 此時同上。