- ReLU激活函数
- 当问题的结果是二元的,则a的范围是(0,1)激活函数g(z)可以用sigmoid激活函数。如果问题的结果是多元的,如让a的范围取(0,+∞),激活函数g(z)可以选用ReLU激活函数,他在z<0时取0,在z ≥ 0时取z
- 常见的激活函数
- 左侧的为线性激活函数,因为f(x) = wx+b,使用激活函数后f(x) = g(z),此时a = g(z) = z = wx+b,又被称为没有使用任何激活函数,即无激活函数
- 为output layer选择激活函数
- 当在解决二元分类问题,即模型的输出结果范围是(0,1),预测y的可能结果是0或1时,sigmoid激活函数是output layer最适合的激活函数
- 当在解决线性回归问题,且模型的输出结果范围是(-∞,+∞),预测y的结果可能取正数也可能取负数时,线性激活函数是output layer最适合的激活函数
- 当在解决线性回归问题,且模型的输出结果范围是[0,+∞),预测y的结果取非负数时,ReLU激活函数是output layer最适合的激活函数
- 为hidden layer选择激活函数
- 在hidden layer中,通常选用ReLU激活函数
- 尽管在神经网络的早期历史,sigmoid激活函数在很多地方使用。但渐渐的,ReLU激活函数变得更频繁,而sigmoid激活函数仅在二元分类模型的output layer中使用
- sigmoid和ReLU的区别:
a. ReLU的计算速度更快,因为它只需要取最大值,而sigmoid需要取幂等等
b. ReLU仅在图形左侧变平坦,而sigmoid在图形的左右两侧都逐渐变平坦。因为当激活函数越平坦,成本函数就有越多平坦位置,而平坦位置的斜率很小,于是成本函数对应的梯度下降会执行的很慢
- 为神经网络模型选择激活函数
- 对于output layer:
a. 在二元分类模型中,可以用siogmoid激活函数
b. 在线性回归模型,且预测y可取正值或负值中,可以用线性激活函数( linear )
c. 在线性回归模型,且预测y只可取非负数中,可以用ReLU激活函数 - 对于hidden layer,默认推荐ReLU激活函数。即便是二元分类模型,我们也只在output layer用sigmoid激活函数,因为hidden layer中可以用ReLU来尽可能准确的、快速的保留特征,只需要最后output layer时使用sigmoid激活函数,模型输出结果就只会在(0,1)