深入探讨與分析機器學習中的資料處理之非線性變換
log對數變換
如果a(a>0,且a≠1)的b次幂等于N,即ab=N,那麼數b叫做以a為底N的對數,記作logaN=b(其中a叫做對數的底數,N叫做真數),這就是對數變換。
sigmoid/softmax變換
參考文章:DL之AF:機器學習/深度學習中常用的激活函數(sigmoid、softmax等)簡介、應用、計算圖實作、代碼實作詳細攻略
Sigmoid函數

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)