机器学习基础(七)——sigmoid 函数的性质
机器学习基础(五十六)—— tanh、sign 与 softsign
深度学习基础(十二)—— ReLU vs PReLU
-
sigmoid:单极性,连续,可导;
-
tanh:双极性,连续,可导;
注意 tanh(双曲正切函数)形式不唯一,
tanh ( x ) = e x − e − x e x + e − x = 1 − e − 2 x 1 + e 2 x tanh ( x ) = 1 − e − s 1 + e − s \begin{array}{rl} &\tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}=\frac{1-e^{-2x}}{1+e^{2x}}\\ &\tanh(x)=\frac{1-e^{-s}}{1+e^{-s}} \end{array} tanh(x)=ex+e−xex−e−x=1+e2x1−e−2xtanh(x)=1+e−s1−e−s
1. 极性
- sigmoid:单极性;单极性信号,就是或只有正信号,或只有负信号。
- sigmoid 显然不是 zero-centered
- tanh:双极性;双极性信号,就是既有正信号,也有负信号。
- tanh 是 zero-centered 的;
2. 连续性
- sigmoid、tanh:都是连续的;
3. 可导性
-
sigmoid: σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) \sigma'(x)=\sigma(x)\left(1-\sigma(x)\right) σ′(x)=σ(x)(1−σ(x)),即 sigmoid 函数的导数可以用其原函数表出;
且 σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) \sigma'(x)=\sigma(x)\left(1-\sigma(x)\right) σ′(x)=σ(x)(1−σ(x)) 的这种导数形式,在于交叉熵代价函数结合时(也即构成复合函数形式),能将梯度化为十分精简的形式:
C = − ( y ln a + ( 1 − y ) ln ( 1 − a ) ) , a = σ ( z ) ⇓ ∂    C ∂    z = − ( y a − 1 − y 1 − a ) σ ′ ( z ) = − ( y a − 1 − y 1 − a ) ⋅ a ( 1 − a ) = a − y C=-\left(y\ln a+\left(1-y\right)\ln(1-a)\right), \quad a=\sigma(z)\\ \Downarrow\\ \frac{\partial\; C}{\partial\; z}=-\left(\frac{y}{a}-\frac{1-y}{1-a}\right)\sigma'(z)=-\left(\frac{y}{a}-\frac{1-y}{1-a}\right)\cdot a\left(1-a\right)=a-y C=−(ylna+(1−y)ln(1−a)),a=σ(z)⇓∂z∂C=−(ay−1−a1−y)σ′(z)=−(ay−1−a1−y)⋅a(1−a)=a−y
-
tanh: tanh ′ ( x ) = 1 − tanh 2 ( x ) \tanh'(x)=1-\tanh^2(x) tanh′(x)=1−tanh2(x),也可由其原函数表出;
4. 输入数据是否需要归一化
- sigmoid 激励函数:需要对输入数据归一化,因为更大的输入值,将使得 sigmoid 函数更容易达到饱和状态,
- ReLU:因为不存在饱和的问题,也就不需要事先对输入数据进行归一化;
3. 收敛速度
- ReLU 是 tanh 收敛速度的六倍;
4. 适用于哪些层
- ReLU 仅适用于 hidden layers
- 输出层:分类问题用 softmax,回归问题用 linear