激励函数(Activation Function)是将方程式乘上非线性函数,变成非线性模型,目的是希望能提供更通用的解决方案,而非单纯的线性回归。
Qutput = activation function ( x 1 w 1 + x 2 w 2 +…+ x n w n + bias )
PyTorch提供非常多种的Activation Function函数,可参阅官网中的Activation Functions介绍 [14] 。
范例.列举常用的Activation Function函数并进行测试。
下列程序代码请参考【04_12_Activation_Functions.ipynb】。
(1)ReLU:早期隐藏层使用Sigmoid函数,近年发现ReLU效果更好。
公式:ReLU(x)=max(0,x),将小于0的数值转换为0,即过滤掉负值的输入。
执行结果:[5, 2, 0, 0]。
(2)LeakyReLU:ReLU将小于0的数值转换为0,会造成某些特征( x )失效,为保留所有的特征,LeakyReLU将小于0的数值转换为非常小的负值,而非0。
公式:LeakyReLU(x)=max(0, x )+negative_slope×min(0, x )。
执行结果:[5.0000, 2.0000, 0.0000, -0.1000, -1.0000]。
(3)Sigmoid:罗吉斯回归(Logistic regression),将输入值转换为[0, 1],适合二分类。
公式:
执行结果:[9.9331e-01, 8.8080e-01, 5.0000e-01, 4.5398e-05, 3.7201e-44],均介于[0, 1]之间。
(4)Tanh:将输入值转换为[-1, 1],适合二分类。
公式:
执行结果:[0.9999, 0.9640, 0.0000, -1.0000, -1.0000],均介于[-1, 1]之间。
(5)Softmax:将输入转换为概率,总和为1,通常使用在最后一层,方便比较每一类的预测概率大小。
公式:
执行结果:[0.0321, 0.0871, 0.2369, 0.6439],总和为1。