日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
機(jī)器學(xué)習(xí)中常用的損失函數(shù)你知多少?

機(jī)器通過(guò)損失函數(shù)進(jìn)行學(xué)習(xí)。這是一種評(píng)估特定算法對(duì)給定數(shù)據(jù)建模程度的方法。如果預(yù)測(cè)值與實(shí)際結(jié)果偏離較遠(yuǎn),損失函數(shù)會(huì)得到一個(gè)非常大的值。在一些優(yōu)化函數(shù)的輔助下,損失函數(shù)逐漸學(xué)會(huì)減少預(yù)測(cè)值的誤差。本文將介紹幾種損失函數(shù)及其在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域的應(yīng)用。

成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元臨桂做網(wǎng)站,已為上家服務(wù),為臨桂各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18982081108

損失函數(shù)和優(yōu)化

沒(méi)有一個(gè)適合所有機(jī)器學(xué)習(xí)算法的損失函數(shù)。針對(duì)特定問(wèn)題選擇損失函數(shù)涉及到許多因素,比如所選機(jī)器學(xué)習(xí)算法的類(lèi)型、是否易于計(jì)算導(dǎo)數(shù)以及數(shù)據(jù)集中異常值所占比例。

從學(xué)習(xí)任務(wù)的類(lèi)型出發(fā),可以從廣義上將損失函數(shù)分為兩大類(lèi)——回歸損失和分類(lèi)損失。在分類(lèi)任務(wù)中,我們要從類(lèi)別值有限的數(shù)據(jù)集中預(yù)測(cè)輸出,比如給定一個(gè)手寫(xiě)數(shù)字圖像的大數(shù)據(jù)集,將其分為 0~9 中的一個(gè)。而回歸問(wèn)題處理的則是連續(xù)值的預(yù)測(cè)問(wèn)題,例如給定房屋面積、房間數(shù)量以及房間大小,預(yù)測(cè)房屋價(jià)格。

 
 
 
 
  1. NOTE 
  2.         n        - Number of training examples.
  3.         i        - ith training example in a data set.
  4.         y(i)     - Ground truth label for ith training example.
  5.         y_hat(i) - Prediction for ith training example.

回歸損失

1. 均方誤差/平方損失/L2 損失

數(shù)學(xué)公式:

均方誤差

顧名思義,均方誤差(MSE)度量的是預(yù)測(cè)值和實(shí)際觀測(cè)值間差的平方的均值。它只考慮誤差的平均大小,不考慮其方向。但由于經(jīng)過(guò)平方,與真實(shí)值偏離較多的預(yù)測(cè)值會(huì)比偏離較少的預(yù)測(cè)值受到更為嚴(yán)重的懲罰。再加上 MSE 的數(shù)學(xué)特性很好,這使得計(jì)算梯度變得更容易。

 
 
 
 
  1. import numpy as np
  2. y_hat = np.array([0.000, 0.166, 0.333])
  3. y_true = np.array([0.000, 0.254, 0.998])
  4. def rmse(predictions, targets):
  5.     differences = predictions - targets
  6.     differencesdifferences_squared = differences ** 2
  7.     mean_of_differences_squared = differences_squared.mean()
  8.     rmse_val = np.sqrt(mean_of_differences_squared)
  9.     return rmse_val
  10. print("d is: " + str(["%.8f" % elem for elem in y_hat]))
  11. print("p is: " + str(["%.8f" % elem for elem in y_true]))
  12. rmsermse_val = rmse(y_hat, y_true)
  13. print("rms error is: " + str(rmse_val))

2. 平均絕對(duì)誤差/L1 損失

數(shù)學(xué)公式:

平均絕對(duì)誤差

平均絕對(duì)誤差(MAE)度量的是預(yù)測(cè)值和實(shí)際觀測(cè)值之間絕對(duì)差之和的平均值。和 MSE 一樣,這種度量方法也是在不考慮方向的情況下衡量誤差大小。但和 MSE 的不同之處在于,MAE 需要像線(xiàn)性規(guī)劃這樣更復(fù)雜的工具來(lái)計(jì)算梯度。此外,MAE 對(duì)異常值更加穩(wěn)健,因?yàn)樗皇褂闷椒健?/p>

 
 
 
 
  1. import numpy as np
  2. y_hat = np.array([0.000, 0.166, 0.333])
  3. y_true = np.array([0.000, 0.254, 0.998])
  4. print("d is: " + str(["%.8f" % elem for elem in y_hat]))
  5. print("p is: " + str(["%.8f" % elem for elem in y_true]))
  6. def mae(predictions, targets):
  7.     differences = predictions - targets
  8.     absolute_differences = np.absolute(differences)
  9.     mean_absolute_differences = absolute_differences.mean()
  10.     return mean_absolute_differences
  11. maemae_val = mae(y_hat, y_true)
  12. print ("mae error is: " + str(mae_val))

3. 平均偏差誤差(mean bias error)

與其它損失函數(shù)相比,這個(gè)函數(shù)在機(jī)器學(xué)習(xí)領(lǐng)域沒(méi)有那么常見(jiàn)。它與 MAE 相似,唯一的區(qū)別是這個(gè)函數(shù)沒(méi)有用絕對(duì)值。用這個(gè)函數(shù)需要注意的一點(diǎn)是,正負(fù)誤差可以互相抵消。盡管在實(shí)際應(yīng)用中沒(méi)那么準(zhǔn)確,但它可以確定模型存在正偏差還是負(fù)偏差。

數(shù)學(xué)公式:

平均偏差誤差

二、分類(lèi)損失

1. Hinge Loss/多分類(lèi) SVM 損失

簡(jiǎn)言之,在一定的安全間隔內(nèi)(通常是 1),正確類(lèi)別的分?jǐn)?shù)應(yīng)高于所有錯(cuò)誤類(lèi)別的分?jǐn)?shù)之和。因此 hinge loss 常用于***間隔分類(lèi)(maximum-margin classification),最常用的是支持向量機(jī)。盡管不可微,但它是一個(gè)凸函數(shù),因此可以輕而易舉地使用機(jī)器學(xué)習(xí)領(lǐng)域中常用的凸優(yōu)化器。

數(shù)學(xué)公式:

SVM 損失(Hinge Loss)

思考下例,我們有三個(gè)訓(xùn)練樣本,要預(yù)測(cè)三個(gè)類(lèi)別(狗、貓和馬)。以下是我們通過(guò)算法預(yù)測(cè)出來(lái)的每一類(lèi)的值:

Hinge loss/多分類(lèi) SVM 損失

計(jì)算這 3 個(gè)訓(xùn)練樣本的 hinge loss:

 
 
 
 
  1. ## 1st training example
  2. max(0, (1.49) - (-0.39) + 1) + max(0, (4.21) - (-0.39) + 1)
  3. max(0, 2.88) + max(0, 5.6)
  4. 2.88 + 5.6
  5. 8.48 (High loss as very wrong prediction)
  6. ## 2nd training example
  7. max(0, (-4.61) - (3.28)+ 1) + max(0, (1.46) - (3.28)+ 1)
  8. max(0, -6.89) + max(0, -0.82)
  9. 0 + 0
  10. 0 (Zero loss as correct prediction)
  11. ## 3rd training example
  12. max(0, (1.03) - (-2.27)+ 1) + max(0, (-2.37) - (-2.27)+ 1)
  13. max(0, 4.3) + max(0, 0.9)
  14. 4.3 + 0.9
  15. 5.2 (High loss as very wrong prediction)

交叉熵?fù)p失/負(fù)對(duì)數(shù)似然:

這是分類(lèi)問(wèn)題中最常見(jiàn)的設(shè)置。隨著預(yù)測(cè)概率偏離實(shí)際標(biāo)簽,交叉熵?fù)p失會(huì)逐漸增加。

數(shù)學(xué)公式:

交叉熵?fù)p失

注意,當(dāng)實(shí)際標(biāo)簽為 1(y(i)=1) 時(shí),函數(shù)的后半部分消失,而當(dāng)實(shí)際標(biāo)簽是為 0(y(i=0)) 時(shí),函數(shù)的前半部分消失。簡(jiǎn)言之,我們只是把對(duì)真實(shí)值類(lèi)別的實(shí)際預(yù)測(cè)概率的對(duì)數(shù)相乘。還有重要的一點(diǎn)是,交叉熵?fù)p失會(huì)重重懲罰那些置信度高但是錯(cuò)誤的預(yù)測(cè)值。

 
 
 
 
  1. import numpy as np
  2. predictions = np.array([[0.25,0.25,0.25,0.25],
  3.                         [0.01,0.01,0.01,0.96]])
  4. targets = np.array([[0,0,0,1],
  5.                    [0,0,0,1]])
  6. def cross_entropy(predictions, targets, epsilon=1e-10):
  7.     predictions = np.clip(predictions, epsilon, 1. - epsilon)
  8.     N = predictions.shape[0]
  9.     ce_loss = -np.sum(np.sum(targets * np.log(predictions + 1e-5)))/N
  10.     return ce_loss
  11. cross_entropycross_entropy_loss = cross_entropy(predictions, targets)
  12. print ("Cross entropy loss is: " + str(cross_entropy_loss))

【本文是專(zhuān)欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)文章,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】


標(biāo)題名稱(chēng):機(jī)器學(xué)習(xí)中常用的損失函數(shù)你知多少?
鏈接URL:http://m.5511xx.com/article/cocsojh.html