1. 程式人生 > >機器學習入門——常用代價函式(Cost Function)介紹

機器學習入門——常用代價函式(Cost Function)介紹

損失函式(Loss Function )是定義在單個樣本上的,算的是一個樣本的誤差,而代價函式(Cost Function )是定義在整個訓練集上的,是所有樣本誤差的平均,也就是損失函式的平均,這給我們評價學習效果提供了一個標準,提出這個後下一步要做的就是不斷優化神經網路來減小代價函式的值。

1.二次代價函式(quadratic cost)

其中,C表示代價函式,x表示樣本,y表示實際值,a表示輸出值,n表示樣本的總數。為簡單起見,使用一個樣本為例進行說明,此時代價函式為:

其中a=σ(z),z=ΣWj*Xj+b,σ()是啟用函式。

TensorFlow中:

tf.reduce_mean(tf.square(y-prediction))

2.交叉熵代價函式(cross-entropy)

其中,C表示代價函式,x表示樣本,y表示實際值,a表示輸出值,n表示樣本的總數。

當誤差越大時,梯度就越大,引數w和b的調整就越快,訓練的速度也就越快。

如果輸出神經元是線性的,那麼二次代價函式就是一種合適的選擇。

如果輸出神經元是S型函式,那麼比較適合用交叉熵代價函式。

TensorFlow中:

tf.nn.sigmoid_cross_entropy_with_logits()#來表示跟sigmoid搭配使用的交叉熵。
tf.nn.softmax_cross_entropy_with_logits()#來表示跟softmax搭配使用的交叉熵。

3.對數釋然代價函式(log-likelihood cost)

對數釋然函式常用來作為softmax迴歸的代價函式,然後輸出層神經元是sigmoid函式,可以採用交叉熵代價函
數。而深度學習中更普遍的做法是將softmax作為最後一層,此時常用的代價函式是對數釋然代價函式。

對數似然代價函式與softmax的組合和交叉熵與sigmoid函式的組合非常相似。對數釋然代價函式在二分類時可
以化簡為交叉熵代價函式的形式。