sigmoid Vs softmax

在逻辑回归模型中,我们可以使用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
  • 用于建立神经网络时的激活函数
  • 值越大 结果越大 但是不一定较高的概率。
### Sigmoid 函数与 Softmax 函数的区别 #### 定义差异 Sigmoid 函数定义如下: \[ \sigma(z) = \frac{1}{1 + e^{-z}} \] 该函数能够将实数值压缩至 (0, 1),因此非常适合用于二元分类问题,其中输出可解释为属于某一类别的概率[^2]。 相比之下,Softmax 函数则适用于多类别分类情况。对于给定的输入向量 \( z \),Softmax 计算方式如下所示: \[ \text{softmax}(z_i) = \frac{\exp(z_i)}{\sum_{j=1}^{n}\exp(z_j)} \] 这里 n 表示类别总数目。通过这种方式,Softmax 可以确保所有预测的概率总等于 1,并且每个单独的概率都在区间 [0, 1] 内[^3]。 ```python import numpy as np def sigmoid(x): return 1 / (1 + np.exp(-x)) def softmax(x): exp_x = np.exp(x - np.max(x)) # 防止溢出 return exp_x / exp_x.sum(axis=-1, keepdims=True) # 测试数据点 test_input = np.array([1.0, 2.0, 3.0]) print("Sigmoid output:", sigmoid(test_input)) print("Softmax output:", softmax(test_input.reshape((1,-1)))) ``` #### 应用场景对比 当面对的是简单的二分类任务时,通常会选择使用 Sigmoid 函数作为模型的最后一层激活函数。这是因为 Sigmoid 的输出可以直接被视作样本属于正类的可能性大小[^1]。 然而,在涉及多个离散标签的情况下,则更倾向于采用 Softmax 来完成最终决策过程。比如图像识别领域内的手写数字辨识(MNIST 数据集),或是自然语言处理里的词性标注等问题都适合运用 Softmax 进行解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值