激活函数作用:
将权值结果转化成分类结果。常用于
- 逻辑回归(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---三角形径向基传输函数;