天天看點

DataScience:深入探讨與分析機器學習中的資料處理之非線性變換—log對數變換、sigmoid/softmax變換

深入探讨與分析機器學習中的資料處理之非線性變換

log對數變換

        如果a(a>0,且a≠1)的b次幂等于N,即ab=N,那麼數b叫做以a為底N的對數,記作logaN=b(其中a叫做對數的底數,N叫做真數),這就是對數變換。

sigmoid/softmax變換

參考文章:DL之AF:機器學習/深度學習中常用的激活函數(sigmoid、softmax等)簡介、應用、計算圖實作、代碼實作詳細攻略

Sigmoid函數

DataScience:深入探讨與分析機器學習中的資料處理之非線性變換—log對數變換、sigmoid/softmax變換

      Sigmoid函數是一個在生物學中常見的S型函數,也稱為S型生長曲線。 [1]  在資訊科學中,由于其單增以及反函數單增等性質,Sigmoid函數常被用作神經網絡的激活函數,将變量映射到0,1之間。

優點:平滑、易于求導。

缺點:激活函數計算量大,反向傳播求誤差梯度時,求導涉及除法;反向傳播時,很容易就會出現梯度消失的情況,進而無法完成深層網絡的訓練。

Softmax函數

      在數學,尤其是機率論和相關領域中,歸一化指數函數,或稱Softmax函數,是邏輯函數的一種推廣。它能将一個含任意實數的K維向量z“壓縮”到另一個K維實向量σ(z)中,使得每一個元素的範圍都在(0,1)之間,并且所有元素的和為1。該函數多于多分類問題中。

import math

z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]

z_exp = [math.exp(i) for i in z]  

print(z_exp)  # Result: [2.72, 7.39, 20.09, 54.6, 2.72, 7.39, 20.09]

sum_z_exp = sum(z_exp)  

print(sum_z_exp)  # Result: 114.98

# Result: [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]

softmax = [round(i / sum_z_exp, 3) for i in z_exp]

print(softmax)  

繼續閱讀