机器学习中的常用激活函数

时间:2021-05-21 19:01:59

简述

隐含层

略。

输出层

  • softmax一般只用在多分类的输出层上。
  • 当网络用于回归时, 预测ctr等值域在[0,1]上的问题, 似乎可以把sigmoid用上。

tanh

双曲正切函数.

tanhx=sinhxcoshx=exexex+ex

机器学习中的常用激活函数
图1-1 tanh 图像, 值为[-1,+1]

(tanhx)=1tanh2x

它有一个很好的性质, 它的导数包含了原函数的值, 所以多次求导的时候, 只需要预先算一次, 后面可以重复利用.

sigmoid

sigmoid, 名为S型函数. 它是一类函数,但通常指代standard logistic distribution分布。

f(x)=11+ex

f(x)=f(x)(1f(x))

机器学习中的常用激活函数
图1-2 Standard logistic sigmoid function 值域为[0,1]

讨论
仅当x在0附近时,f(x)才对输入强烈敏感,sigmoid 这一广泛饱和性会使得基于梯度的学习变得困难,所以通常不鼓励将它们用作前馈网络中的隐藏单元。

softmax

wikipedia:Softmax_function
将K维向量 z , 映射到一个新的K维向量 σ(z) 上, 每个元素的值都 (0,1) , 且加起来等于1, 且映射前后元素间的相对大小保持不变.
公式为

σ(z)j=ezjKk=1ezk(2-1)

σ(z)j 表示新向量的第 j 个元素, zj 表示原向量的第 j 个元素.
在 numpy 中没有现成的函数, 可以自己实现:

def softmax(a):
"""
sample:
:param a: [1,2]
:return: [ 0.26894142 0.73105858]
"""

return np.exp(a)/np.sum(np.exp(a))

一般与交叉熵损失函数搭配, 用于二分类, 多分类。

sign

机器学习中的常用激活函数
图3-1 符号函数, 值映射为{-1,+1}

ReLU

The Rectified Linear Unit, 修正线性单元.
函数为 f(x)=max(0,x)

机器学习中的常用激活函数

ReLu作为激活函数的优势是它在生物上的合理性,它是单边的,相比sigmoid和tanh,更符合生物神经元的特征。

PReLU

Parametric Rectified Linear Unit.

f(x)={x,ax,x>0x<0

机器学习中的常用激活函数