激活函数为了去线性化
- sigmoid
sigmoid 在0.5附近解空间太大,熵垒,俗称梯度大平原,很难跳出。
优点,用于表达概率,例如DBN,RNN,LSTM中的一些gate是不能将sigmoid换成relu,这样概率表达都错了。
- tanh
tanh解空间比sigmoid小,解空间比relu大,事实上,一定区间的解空间大小决定了,当值落入该区间跳出当难易程度。
- ReLu
max(0,x)
缓和梯度消失问题,relu不像sigmoid没有一个梯度衰减的尾巴,强度上不封顶,使得反向传播过程只有权重的乘积带来的梯度衰减。然而,一些网络可能需要clip掉梯度,避免不封顶的爆炸梯度回传。
稀疏度问题,relu的稀疏机理同dropout机理不一样,dropout等效于动态L2规范带来的稀疏,是通过打压W来实现稀疏。
relu稀疏是因为如果输入为0,输出也会为零。
初始化不好一样饱和。
- leaky ReLu
max(ax,x)
通常a = 0.01
参考:
损失函数为了修正参数:
交叉熵损失函数:
两个概率分布在同一潜在事件集(定义域)下对交叉熵度量,分布Q的最优化编码来对分布P的样本进行编码所使用的编码平均位数。
H(P,Q) = sum(P(x)*log(Q(x)))