1. 程式人生 > >生活不止眼前的苟且,還有詩和遠方.....

生活不止眼前的苟且,還有詩和遠方.....

:代價函式(有的地方也叫損失函式,Loss Function)在機器學習中的每一種演算法中都很重要,因為訓練模型的過程就是優化代價函式的過程,代價函式對每個引數的偏導數就是梯度下降中提到的梯度,防止過擬合時新增的正則化項也是加在代價函式後面的。在學習相關演算法的過程中,對代價函式的理解也在不斷的加深,在此做一個小結。

1. 什麼是代價函式?

假設有訓練樣本(x, y),模型為h,引數為θ。h(θ) = θTx(θT表示θ的轉置)。

(1)概況來講,任何能夠衡量模型預測出來的值h(θ)與真實值y之間的差異的函式都可以叫做代價函式C(θ),如果有多個樣本,則可以將所有代價函式的取值求均值,記做J(θ)。因此很容易就可以得出以下關於代價函式的性質:

  • 對於每種演算法來說,代價函式不是唯一的;
  • 代價函式是引數θ的函式;
  • 總的代價函式J(θ)可以用來評價模型的好壞,代價函式越小說明模型和引數越符合訓練樣本(x, y);
  • J(θ)是一個標量;

(2)當我們確定了模型h,後面做的所有事情就是訓練模型的引數θ。那麼什麼時候模型的訓練才能結束呢?這時候也涉及到代價函式,由於代價函式是用來衡量模型好壞的,我們的目標當然是得到最好的模型(也就是最符合訓練樣本(x, y)的模型)。因此訓練引數的過程就是不斷改變θ,從而得到更小的J(θ)的過程。理想情況下,當我們取到代價函式J的最小值時,就得到了最優的引數θ,記為:

minθJ(θ)minθJ(θ)

例如,J(θ) = 0,表示我們的模型完美的擬合了觀察的資料,沒有任何誤差。

(3)在優化引數θ的過程中,最常用的方法是梯度下降,這裡的梯度就是代價函式J(θ)對θ1, θ2, ..., θn的偏導數。由於需要求偏導,我們可以得到另一個關於代價函式的性質:

  • 選擇代價函式時,最好挑選對引數θ可微的函式(全微分存在,偏導數一定存在)

2. 代價函式的常見形式

經過上面的描述,一個好的代價函式需要滿足兩個最基本的要求:能夠評價模型的準確性,對引數θ可微。 

2.1 均方誤差

線上性迴歸中,最常用的是均方誤差(Mean squared error),具體形式為:

J
(θ0,θ1)=12mi=1m(y^(i)y(i))2=12mi=1m(hθ(x(i))y(i))2
J(θ0,θ1)=12m∑i=1m(y^(i)−y(i))2=12m∑i=1m(hθ(x(i))−y(i))2

m:訓練樣本的個數;

hθ(x):用引數θ和x預測出來的y值;

y:原訓練樣本中的y值,也就是標準答案

上角標(i):第i個樣本

2.2 交叉熵

在邏輯迴歸中,最常用的是代價函式是交叉熵(Cross Entropy),交叉熵是一個常見的代價函式,在神經網路中也會用到。下面是《神經網路與深度學習》一書對交叉熵的解釋:

交叉熵是對「出乎意料」(譯者注:原文使用suprise)的度量。神經元的目標是去計算函式y, 且y=y(x)。但是我們讓它取而代之計算函式a, 且a=a(x)。假設我們把a當作y等於1的概率,1−a是y等於0的概率。那麼,交叉熵衡量的是我們在知道y的真實值時的平均「出乎意料」程度。當輸出是我們期望的值,我們的「出乎意料」程度比較低;當輸出不是我們期望的,我們的「出乎意料」程度就比較高。

在1948年,克勞德·艾爾伍德·夏農將熱力學的熵,引入到資訊理論,因此它又被稱為夏農熵(Shannon Entropy),它是夏農資訊量(Shannon Information Content, SIC)的期望。夏農資訊量用來度量不確定性的大小:一個事件的夏農資訊量等於0,表示該事件的發生不會給我們提供任何新的資訊,例如確定性的事件,發生的概率是1,發生了也不會引起任何驚訝;當不可能事件發生時,夏農資訊量為無窮大,這表示給我們提供了無窮多的新資訊,並且使我們無限的驚訝。更多解釋可以看這裡

J(θ)=1m[i=1m(y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]J(θ)=−1m[∑i=1m(y(i)log⁡hθ(x(i))+(1−y(i))log⁡(1−hθ(x(i)))]

符號說明同上 

2.3 神經網路中的代價函式

學習過神經網路後,發現邏輯迴歸其實是神經網路的一種特例(沒有隱藏層的神經網路)。因此神經網路中的代價函式與邏輯迴歸中的代價函式非常相似:

J(θ)=1m[i=1mk=1