sigmoid和softmax

本文深入解析了Sigmoid和Softmax函数在机器学习中的应用。Sigmoid常用于二元分类,将输入映射到0和1之间,而Softmax则适用于多元分类,将输入序列映射成概率分布,使得每个值处于(0,1)区间,且所有值之和为1。当Softmax应用于二元分类时,其效果等同于Sigmoid。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sigmoid常用于二元分类,将二元输入映射成0和1。
softmax常用语多元分类,将含有k个值的输入序列映射成k个值的序列,每个值处于(0,1),且k个值的和为1。
所以可以将映射成的值看做概率,可以根据概率大小作出选择。
当softmax的输入是二元时,就变成了sigmoid。

参考:https://blog.nex3z.com/2017/05/02/sigmoid-%E5%87%BD%E6%95%B0%E5%92%8C-softmax-%E5%87%BD%E6%95%B0%E7%9A%84%E5%8C%BA%E5%88%AB%E5%92%8C%E5%85%B3%E7%B3%BB/

### 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、付费专栏及课程。

余额充值