激活函数作用:

将权值结果转化成分类结果。常用于

* 逻辑回归(Logistic Regression)
* 神经网络(Neural Network)
这两处,激活函数都用于计算一个线性函数的结果。
*
sigmoid函数  : 

在机器学习中可用在分类问题上,如逻辑回归模型分类器,将输出值映射到(0,1)

总和为1,可以从概率角度理解,则输出时选择值最大的(概率最大)作为预测值

     



 

Sigmoid函数的导数是其本身的函数,即 f ′ (x)=f(x) (1−f(x) )

推导:



又     

sigmod函数关于(0,0.5)成中心对称,值域为(0,1)与概率值[0,1]对应,因此可与概率分布联系起来

(sigmod函数由伯努利分布推出:对于分类问题,尤其是二分类,都假定服从伯努利分布)

*
softmax

用于多分类过程,把多个神经元输出值映射到(0,1)总和为1,可以从概率角度理解,则输出时选择值最大的(概率最大)作为预测值



*
tanh:双曲正切





奇函数,值域:(-1,1)

导数:f '(x)=1 - f(x)^2



()

 

*
ReLU

ReLU(x)=max(0, x)

加快了训练速度,克服了梯度消失(层数太大)问题



区别主要在负数端ReLU(x)=max(0, x),Softplus(x)=ln(1+ex):softplus 是对 ReLU 的平滑逼近的解析函数形式。



*
BP神经网络常用函数:


Log-sigmoid型函数的输入值可取任意值,输出值在0和1之间;tan-sigmod型传递函数tansig的输入值可取任意值,输出值在-1到+1之间;线性传递函数purelin的输入与输出值可取任意值。BP网络通常有一个或多个隐层,该层中的神经元均采用sigmoid型传递函数,输出层的神经元则采用线性传递函数,整个网络的输出可以取任意值。



logsig



tansig

tansig(n)=2/(1+exp(-2*n))-1




传输函数的选择,这个怎么说,假设你想预测的结果是几个固定值,如1,0等,满足某个条件输出1,不满足则0的话,首先想到的是hardlim函数,阈值型的,当然也可以考虑其他的。


假如网络是用来表达某种线性关系时,用purelin---线性传输函数;若是非线性关系的话,用别的非线性传递函数,多层网络时,每层不一定要用相同的传递函数,可以是三种配合,可以使非线性和线性,阈值的传递函数等

compet---竞争型传递函数;

hardlim---阈值型传递函数;

hardlims---对称阈值型传输函数;

logsig---S型传输函数

poslin---正线性传输函数;

purelin---线性传输函数;

radbas---径向基传输函数;

satlin---饱和线性传输函数;

satlins---饱和对称线性传输函数;

softmax---柔性最大值传输函数;

tansig---双曲正切S型传输函数;

tribas---三角形径向基传输函数;