機器學習 幾個簡單的損失函式

2021-09-27 01:42:02 字數 1937 閱讀 1099

神經網路在進行學習的過程中,會通過前一次學習所得到的權重引數作為乙個指標來進行下一輪的學習,如果學習到的權重引數已經是最優解的話,那麼學習將結束,得出最優權重引數,繼而進行泛化能力(指處理未被學習過的資料是否準確的能力)的測試。所以,神經網路以某個指標為基準尋求最優權重引數,而這個指標即可稱之為 「損失函式」 。(例如:在使用神經網路進行識別手寫數字時,在學習階段找出最佳引數中,最常用的方法是通過梯度下降法找出最優引數,使得通過損失函式計算的值降到最低)

損失函式是體現了神經網路在學習過程中對於監督資料(訓練資料)在多大程度上不擬合(實際結果與預期結果相差多少)的函式,通常,神經網路在學習的過程中,如果對權重引數的損失函式進行求導操作,即可通過檢視結果來了解到權重引數如果稍微增加或者減少時,損失函式的值將會如何進行變化,如果得出的結果為正,則需要通過將權重引數調小來減少損失函式的值,相反,如果損失函式為負,則需要通過將權重引數增大來減少損失函式的值,由此可知,損失函式得出的值越小,該權重引數就越優。

下面介紹幾種比較常用的損失函式

話不多說,先直接給出公式:

其中y表示神經網路經過了訓練和啟用之後的輸出訊號,t表示監督資料(訓練資料),k表示維度

在這裡假定y的輸出訊號為:

y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]  十個資料,分別代表了十個輸入訊號為正確解的概率

而:t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0] 十個資料,用1表示真實訊號,0表示假訊號,從中可以得知,第三個資料即為正確解

下面我們將使用python來對公式進行檢驗,選取 t 中的第三個資料作為正確解,而第三個正確解的 y 中概率為:0.6,所以:

def mean_squared(y,t):

return 0.5 * np.sum((y-t)**2)

y = np.array([0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0])

t = ([0, 0, 1, 0, 0, 0, 0, 0, 0, 0])

print(mean_squared(y,t))

得到的結果為:

而如果選取選取 t 中的第乙個資料作為正確解,那麼得出的結果為:

我們可以從例子中發現,第乙個例子的損失函式的值更小,和監督資料之間的誤差較小,所以第乙個例子的輸出結果和監督資料更加吻合。

公式:

此處先上公式的實現:

def cross_entropy(y,t):

value = 1e-10

return -np.sum(t*np.log(y+value))

從**可以看出,公式中多出了乙個值 value ,這是因為當對數 log 的輸入 x 為 0 時,將會出現 log(0)  = 負無限大,在**裡表示為 -inf:

def cross_entropy(y,t):

value = 1e-10

return -np.sum(t*np.log(y+value))

y = np.array([0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0])

t = ([0, 0, 1, 0, 0, 0, 0, 0, 0, 0])

print(cross_entropy(y,t))

得到的結果為:

而如果選取選取 t 中的第乙個資料作為正確解,那麼得出的結果為:

《深度學習入門-基於python的理論與實現》(日)齋藤康毅. 人民郵電出版社

機器學習(四) 損失函式

在上上一節邏輯回歸中,是使用似然函式來作為模型的求解引數的目標。但在很多情況下,似然函式很難直接寫出,更常用的方法是損失函式,這個在上上一節的補充中也有提過。那麼損失函式表示什麼概念呢?和似然函式相反,損失函式是模型 失敗的度量。注意最大化似然函式和最小化損失函式兩者並不能完全等同,因為這涉及到所選...

機器學習損失函式梳理

沒有乙個適合所有機器學習演算法的損失函式。針對特定問題選擇損失函式涉及到許多因素,比如所選機器學習演算法的型別 是否易於計算導數以及資料集中異常值所佔比例。下文中總結了機器學習中比較重要的損失函式。均方誤差 mse 度量的是 值和實際觀測值間差的平方的均值。它只考慮誤差的平均大小,不考慮其方向。但由...

機器學習常見損失函式

損失函式作用 損失函式是用於衡量模型 值與真實值之間差距的函式,損失函式的值越小越好。常見的損失函式有如下幾種 0 1損失函式 zero one loss 當且僅當 為真的時候取值為1,否則取值為0。可以看出該損失函式過於嚴格,導致其具有非凸 非光滑的特點,使得演算法很難直接對該函式進行優化。感知損...