在實驗中通常會自己設計損失函數(shù)、優(yōu)化函數(shù)等,通常會用到對數(shù)、分數(shù)、梯度等,不明白函數(shù)的實際意義在設計的時候就一臉懵,因此本文就幾種常見的函數(shù)進行實際意義的解釋,方便后期自身學習和使用。
1 對數(shù)
1.1 對數(shù)的基本屬性
- 在定義域范圍內(nèi)單調(diào)遞增
- X 必須大于0
- X 值越小越敏感
- log圖如圖所示

log.jpg
1.2 對數(shù)的各個屬性意義
- 對數(shù)的單調(diào)遞增屬性,X越大對數(shù)值越大。對數(shù)的單調(diào)遞增屬性保證了原始數(shù)據(jù)的差異性,比如原始數(shù)據(jù)a = 500,b = 200,a > b ,取對數(shù)之后ln a = 6.2146,ln b = 5.2983,ln a > ln b ,原數(shù)據(jù)大的在取對數(shù)后仍然大,保持了原始數(shù)據(jù)的差異性。
- 擴大了倍數(shù)但是差距沒有變化。例如ln 50 - ln 20 = 0.917, 而ln 5000- ln 2000 = 0.917, 差距幾乎一致。所以在實驗中如果遇到數(shù)據(jù)較大的情況可以不用縮小相同倍數(shù),直接取對數(shù)值也不影響,這也說明了第一個中保證了數(shù)據(jù)之間的差異性。
- 值越小越敏感。舉個例子,a=50,b=20,a-b=30; ln a -ln b= 0.917,而ln1000 - ln 700 = 0.42, 反而ln 50 - ln 20 > ln 1000 -ln 700,所以值越小越敏感。在實際例子中當你消費買了10塊的東西,多收了你2,3塊你會在意,但是在幾十百萬的東西就不會在意一兩千的差額了,就是這個意思。
- 取對數(shù)后會讓數(shù)據(jù)更加平穩(wěn),保證數(shù)據(jù)差異的同時減小了數(shù)據(jù)的倍數(shù),減小了模型的計算量,在深度學習模型中使用較多。
1.3 總結(jié)
實驗中需要取對數(shù)的情況很多,一般什么情況下取呢?這要取決于數(shù)據(jù)的屬性,如果數(shù)據(jù)都是大于0的,數(shù)值較大,用到后期計算量大,影響模型效率的情況,可以考慮采用取對數(shù)。
2 梯度
2.1 梯度的屬性
(蠻佩服發(fā)明出梯度這個概念的人,是怎么想到的)
梯度這部分用的比較多,實際意義就是:
- 沿著梯度方向能找到函數(shù)的極值點
- 梯度方向找到極值的速度最快
在機器學習中通常用梯度來優(yōu)化權(quán)重,因為權(quán)重都是f(x,seta)的公式,對每個seta求偏導后,再將梯度值反饋,優(yōu)化seta,x是input不變的,從而可以得到seta向量值的方向,從這個方向可以得到loss函數(shù)的極小值,完成模型的訓練。
3 entropy 熵
熵在實際意義中就是預測事物的不準確性,不可靠性。
熵越大,說明不確定性越強。
比如在預測中,假設分類器1預測分類,1,2,3,預測類1 的概率是0.56,2的概率是0.34,3的概率是0.1,分類器2預測分類的類1概率是0.98,2的概率是0.01,3的概率是0.01,那么分類器2的效果更好,因為2的不確定性小,0.9的概率比0.56的概率更值得信任,所以2的熵更小,值更穩(wěn)定。
(其他意義慢慢更新中。。。