假設有訓練樣本(x, y),模型為h,引數為θ。h(θ
)=θt
∗xh(θ) = θ^t*x
h(θ)=θ
t∗x(θt表示θ的轉置),總體來講,任何能夠衡量模型**出來的值h(θ)與真實值y之間的差異的函式都可以叫做代價函式c(θ),如果有多個樣本,則可以將所有代價函式的取值求均值,記做j(θ)。
損失函式(loss function )是定義在單個樣本上的,算的是乙個樣本的誤差,而代價函式(cost function )是定義在整個訓練集上的,是所有樣本誤差的平均,也就是損失函式的平均,這給我們評價學習效果提供了乙個標準。代價函式越**明模型和引數越符合訓練樣本(x, y)。
對於不同的演算法來說,適合他們的代價函式也不同。下面是一些常用的代價函式。
公式:
其中,c表示代價函式,x表示樣本,y表示實際值(也就是label),a表示輸出值,n表示樣本的總數。為簡單起見,使用乙個樣本為例進行說明,此時代價函式為:
其中:
求導:
假如我們使用梯度下降法(gradient descent)來調整權值引數的大小,權值w和偏置b的梯度推導如下:
其中, z表示神經元的輸入, σ表示啟用函式。 w和b的梯度跟啟用函式的梯度成正比,啟用函式的梯度越大, w和b的大小調整得越快,訓練收斂得就越快。
假設我們的啟用函式是sigmoid函式:
不足:
假設我們目標是收斂到1。a點為0.82離目標比較遠,梯度比較大,權值調整比較大。b點為0.98離目標比較近,梯度比較小,權值調整比較小。調整方案合理。
假如我們目標是收斂到0。a點為0.82離目標比較近,梯度比較大,權值調整比較大。b點為0.98離目標比較遠,梯度比較小,權值調整比較小。調整方案不合理。
誤差越大,引數調整的幅度可能更小,訓練更緩慢。與我們的期望不符,即:不能像人一樣,錯誤越大,改正的幅度越大,從而學習得越快。
在tensorflow中:
tf.reduce_mean(tf.square(y-prediction))
公式:
其中, c表示代價函式, x表示樣本, y表示實際值(也就是label), a表示輸出值, n表示樣本的總數。
其中:
求導:
也就是:
權值和偏置值的調整與
交叉熵代價函式的推導:
為了消掉該公式中的
即:對兩側求積分,可得:
在tensorflow中:
tf.nn.sigmoid_cross_entropy_with_logits()#來表示跟sigmoid搭配使用的交叉熵。
tf.nn.softmax_cross_entropy_with_logits()#來表示跟softmax搭配使用的交叉熵。
附sigmod函式求導:
如果輸出神經元是線性的,那麼二次代價函式就是一種合適的選擇。如果輸出神經元是s型函式,那麼比較適合用交叉熵代價函式。
對數似然函式常用來作為softmax回歸的代價函式, 如果輸出層神經元是sigmoid函式,可以採用交叉熵代價函式。而深度學習中更普遍的做法是將softmax作為最後一層,此時常用的代價函式是對數似然代價函式。
對數似然代價函式與softmax的組合和交叉熵與sigmoid函式的組合非常相似。對數似然代價函式在二分類時可以化簡為交叉熵代價函式的形式。
公式:
其中,y是真實值(也就是label),a是輸出值。
表示的是真實目標在資料集中的條件概率的負對數。其意義在於,在很多**目標概率的模型中,將最大概率對應的型別作為輸出型別,因此,真實目標的**概率越高,分類越準確,學習的目標是真實目標的**概率最大化。而概率是小於1的,其對數值小於0,且對數是單調遞增的,因此,當負對數最小化,就等同於對數最大化,概率最大化。
深度學習中常用的代價函式
1.二次代價函式 quadratic cost 其中,c表示代價函式,x表示樣本,y表示實際值,a表示輸出值,n表示樣本的總數。為簡單起見,使用乙個樣 本為例進行說明,此時二次代價函式為 假如我們使用梯度下降法 gradient descent 來調整權值引數的大小,權值w和偏置b的梯度推導如下 其...
機器學習之代價函式
代價函式又叫損失函式,用來度量f x 和y的誤差程度,記作l y,f x 常用代價函式 0 1損失函式,平方損失函式,絕對損失函式 對數損失函式。機器學習的目標是讓e l y,f x 最小。平均損失稱為經驗風險或經驗損失。經驗風險最小化 經驗風險模型最優。樣本容量較大時較好。例子 極大似然估計 需搞...
機器學習之代價函式
代價函式 代價函式在機器學習中的每一種演算法中都很重要,因為訓練模型的過程就是優化代價函式的過程。1.定義 任何能夠衡量模型 出來的值h 與真實值y之間的差異的函式都可以叫做代價函式c 如果有多個樣本,則可以將所有代價函式的取值求均值,記做j 因此很容易就可以得出以下關於代價函式的性質 2.確立了模...