DL-sigmoid**函数性质与缺陷

综述

Sigmoid函数是学习DL中activation function的必学经典。
f(x)=1ex+1f(x) = \frac{1}{e^{-x}+1}
他的图像
DL-sigmoid**函数性质与缺陷
note: this pic is from here.
他的一些好的性质简单带过:

  • 可微(这是使用chain rule所必须的)
  • 单调性
  • 对变量的scaling 能力

问题

问题1

事实上sigmoid函数是一个软饱和函数;当|x|很大时候,可以看到两侧的函数是很平的。此时他的导数是接近于0的。不严谨地说
f(x)0,whenx>cf'(x) \approx 0 , \text{when} |x| > c
由此带来了第一个问题
DL-sigmoid**函数性质与缺陷
这意味着当你的x数值比较大时候,你的梯度基本是0;根据chain rule,你会发现你的local gradient部分会含有f(x)f(x)f(x)f'(x)项。这样其也接近于0。而没有了梯度的指示,梯度下降法就失去意义了。(一般五层网络就会出现梯度消失的问题)

其实软饱和在使得DL神经网络 在20/30年内难以有效训练,这是阻碍DL发展的一个重要原因。

问题2

第二个问题在于 not zero-centered! sigmoid的函数数值都是正的。下一层的输入也是正的。
我们在计算时候,根据chain rule 梯度计算是上面来的和自己的;
观察我们自己部分,对于f(x)=wTX+bf(x) = w^TX+b如果对ww求偏导,得到的是XX;此时X>0X > 0.所以你整个对ww求偏导的情况,其实完全取决于前面部分的数值。E.g,

Lσσffw=LσσfX\frac{\partial L }{\partial \sigma} \frac{\partial \sigma}{\partial f}\frac{\partial f}{\partial w} = \frac{\partial L }{\partial \sigma} \frac{\partial \sigma}{\partial f}X
Cause we have:
σf=σ(1σ)>0 \frac{\partial \sigma}{\partial f} = \sigma(1-\sigma) > 0
since
σ(0,1)\sigma \in (0,1)
所以此时所有的符号都是由Lσ\frac{\partial L }{\partial \sigma}决定;这也就导致了,我们的ww的更新方式只有两个:全正、或者全负;(in 2 dimension, these search directions are the first and second quadrant in coordinate system)
DL-sigmoid**函数性质与缺陷

所以在优化搜索过程中,我们会有很多zigzag,这使得效率低下!

问题3

exp函数计算的代价太大