在逻辑回归模型中,我们可以使用sigmoid进行二分类,也可以使用softmax进行多分类。
但是这两个有什么区别呢?
1. sigmoid function
F
(
x
i
)
=
1
1
+
e
x
p
(
−
x
i
)
F(x_i) = \frac {1}{1+exp(-x_i)}
F(xi)=1+exp(−xi)1
sigmoid 函数是把输入单独转成0到1之间的输出
-
properties of sigmoid function
sigmoid 函数返回一个真是的输出值
sigmoid函数的一阶导数是非负数或者非正。
(非负:如果数值大于等于0,则导数非负)(非正:数值小于等于0) -
sigmoid 函数使用
在logistic regression 中用于二分类
在神经网络模型中 可用于激活函数 (目前用在二分类的输出层比较多,中间层一般使用 tanh或者relu,relu计算速度快,tanh中心对称,且梯度消失比sigmoid控制的好,因为tanh的梯度在0-1之间 ,sigmoid的梯度在0-1/4之间)
在统计学中,sigmoid函数图是一个常用的累积分布函数。 -
sigmoid函数在python中的应用
import numpy as np
def sigmoid(inputs):
sigmoid_scores = [1/float(1+np.exp(-x)) for x in inputs]
return sigmoid_scores
sigmoid([2,3,4,5])
sigmoid graph 随着输入增大 会越来越接近1.
2. Softmax function
F
(
x
i
)
=
e
x
p
x
i
∑
j
=
0
k
(
e
x
p
x
i
)
F(x_i) = \frac {exp_{x_i}}{\sum_{j=0}^k (exp_{x_i})}
F(xi)=∑j=0k(expxi)expxi
softmax 计算的是n个不同事件发生的概率分布。计算的是每个事件在所有事件里面发生的概率大小。所以要计算全部的事件概率和。
使用softmax函数的优势是输出在0-1的概率值内,且所有加和也等于1. 如果用于多分类,返回的是每个类别对应的概率,target class就是高概率的值。
-
properties of softmax function
计算的是概率 值得范围在0-1. 概率加和为1. -
softmax的使用
用于多分类的逻辑回归模型
在神经网络模型中,通常用于最后输出层。
区别:
softmax:
- 用于逻辑回归的多分类
- 概率和为1
- 用于神经网络的不同层
- 值越大概率越大
sigmoid:
- 用于逻辑回归的二分类
- 概率和不等于1
- 用于建立神经网络时的激活函数
- 值越大 结果越大 但是不一定较高的概率。