sigmoid和softmax总结

sigmoid函数(也叫逻辑斯谛函数): 
 引用wiki百科的定义:

  A logistic function or logistic curve is a common “S” shape (sigmoid curve).

  其实逻辑斯谛函数也就是经常说的sigmoid函数,它的几何形状也就是一条sigmoid曲线。

这里写图片描述

  logistic曲线如下: 
  这里写图片描述

同样,我们贴一下wiki百科对softmax函数的定义:

softmax is a generalization of logistic function that “squashes”(maps) a K-dimensional vector z of arbitrary real values to a K-dimensional vector σ(z) of real values in the range (0, 1) that add up to 1.

  这句话既表明了softmax函数与logistic函数的关系,也同时阐述了softmax函数的本质就是将一个K 
维的任意实数向量压缩(映射)成另一个K

维的实数向量,其中向量中的每个元素取值都介于(0,1)之间。

  softmax函数形式如下: 
  这里写图片描述

总结:sigmoid将一个real value映射到(0,1)的区间(当然也可以是(-1,1)),这样可以用来做二分类。 
而softmax把一个k维的real value向量(a1,a2,a3,a4….)映射成一个(b1,b2,b3,b4….)其中bi是一个0-1的常数,然后可以根据bi的大小来进行多分类的任务,如取权重最大的一维。 
  

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

余额充值