DL-sigmoid**函数性质与缺陷
综述
Sigmoid函数是学习DL中activation function的必学经典。
他的图像
note: this pic is from here.
他的一些好的性质简单带过:
- 可微(这是使用chain rule所必须的)
- 单调性
- 对变量的scaling 能力
问题
问题1
事实上sigmoid函数是一个软饱和函数;当|x|很大时候,可以看到两侧的函数是很平的。此时他的导数是接近于0的。不严谨地说
由此带来了第一个问题
这意味着当你的x数值比较大时候,你的梯度基本是0;根据chain rule,你会发现你的local gradient部分会含有项。这样其也接近于0。而没有了梯度的指示,梯度下降法就失去意义了。(一般五层网络就会出现梯度消失的问题)
其实软饱和在使得DL神经网络 在20/30年内难以有效训练,这是阻碍DL发展的一个重要原因。
问题2
第二个问题在于 not zero-centered! sigmoid的函数数值都是正的。下一层的输入也是正的。
我们在计算时候,根据chain rule 梯度计算是上面来的和自己的;
观察我们自己部分,对于如果对求偏导,得到的是;此时.所以你整个对求偏导的情况,其实完全取决于前面部分的数值。E.g,
Cause we have:
since
所以此时所有的符号都是由决定;这也就导致了,我们的的更新方式只有两个:全正、或者全负;(in 2 dimension, these search directions are the first and second quadrant in coordinate system)
所以在优化搜索过程中,我们会有很多zigzag,这使得效率低下!
问题3
exp函数计算的代价太大