介绍Sigmoid函数的平移、平滑和翻转【基于Python可视化分析】

简介

本篇博客介绍了具有S型曲线的Sigmoid函数,以及如何设置、调整Sigmoid函数的参数实现S曲线的平滑、平移和翻转操作。博客给出了Python代码示例,更加深刻形象。😆😆

Sigmoid函数

Sigmoid函数,也称为Logistic函数,是一种常用的数学函数,通常表示为 σ ( z ) σ(z) σ(z),其中 z z z是实数输入。Sigmoid函数的数学表达式如下:

σ ( z ) = 1 1 + e − z σ(z) =\frac{1} {1 + e^{-z}} σ(z)=1+ez1

其中, e e e表示自然对数的底数(约等于2.71828)。

Sigmoid函数具有以下特点:

  • 值范围:Sigmoid函数的输出范围在0到1之间,即σ(z)的值总是在0和1之间。这使得它特别适用于表示概率或将实数映射到概率分布。

  • S形状:Sigmoid函数的图形呈S形状曲线,因此它也被称为S形函数。这个曲线在z接近0时接近线性,然后在z远离0时饱和,导致输出趋于0或1。

Sigmoid函数在深度学习和人工智能中有多种应用,包括但不限于以下几个方面:

  • 二元分类:Sigmoid函数通常用于二元分类问题,其中模型的输出表示一个样本属于某一类的概率。模型的输出通过Sigmoid函数转化为概率值,然后可以根据设定的阈值来做出分类决策。

  • 神经网络的激活函数:Sigmoid函数曾经是神经网络中常用的激活函数之一。尤其在早期的神经网络中,Sigmoid函数被用于神经元的激活函数,但后来由于它存在梯度消失问题,逐渐被更复杂的激活函数如ReLU(Rectified Linear Unit)所取代。

  • 阈值单位:Sigmoid函数可以模拟神经元的兴奋与抑制效应,因此在一些特定应用中仍然有用,例如逻辑回归模型中的逻辑单元(Logistic Unit)。

  • 深度学习中的门控单元:Sigmoid函数的变种如长短时记忆网络(LSTM)和门控循环单元(GRU)中的门控单元起到重要作用,用于控制信息的流动和遗忘。

💥💥尽管Sigmoid函数在某些情况下仍有用,但在深度学习领域,它已经被其他激活函数如ReLU广泛取代,因为ReLU更容易训练,并且解决了梯度消失问题。👍👍但了解Sigmoid函数的原理仍然有助于理解深度学习的基本概念和发展历史。

Sigmoid函数曲线调控参数设置

  • 参数 a a a控制S曲线的平滑程度: a a a越接近于0越平滑, a a a越大则曲线越陡峭。
  • 参数 b b b控制S曲线的对称中心位置。
  • 取消参数 a a a前的负号,可以得到反S曲线。💯💯

σ ( z ) = 1 1 + e − a ( z − b ) σ(z) =\frac{1} {1 + e^{-a(z-b)}} σ(z)=1+ea(zb)1

python可视化

请添加图片描述

import matplotlib.pyplot as plt
import numpy as np

z = np.linspace(start=-10, stop=10, num=100)
colorlist = ['red', 'green', 'black', 'cyan', 'pink', 'blue', 'purple', 'orange', 'brown', 'grey', 'silver', 'golden', 'megenta']

fig = plt.figure(figsize=(12, 5))
ax1 = fig.add_subplot(1, 2, 1)
ax1.set_title(label="S curve")
# 绘制不同平滑度的S曲线
b = 0
for idx, a in enumerate(np.arange(start=0.5, stop=3, step=0.5)):
    sigmoid = 1 / (1 + np.exp(-a*z-b))
    ax1.plot(z, sigmoid, color=colorlist[idx], linewidth=1, linestyle='-', label=f'FPS score: a={a}, b={b}')
# 绘制S曲线的平移
b = 5
sigmoid = 1 / (1 + np.exp(-a*z-b))
ax1.plot(z, sigmoid, color=colorlist[idx], linewidth=2, linestyle='-', label=f'FPS score: a={a}, b={b}')
ax1.legend()
ax1.grid(visible=True, color='grey', linestyle='--', linewidth=0.5)

ax2 = fig.add_subplot(1, 2, 2)
ax2.set_title(label="Anti S curve")
# 绘制不同平滑度的反S曲线
b = 0
for idx, a in enumerate(np.arange(start=0.5, stop=3, step=0.5)):
    sigmoid = 1 / (1 + np.exp(a*z-b))
    ax2.plot(z, sigmoid, color=colorlist[idx], linewidth=1, linestyle='-', label=f'FPS score: a={a}, b={b}')
ax2.legend()
ax2.grid(visible=True, color='grey', linestyle='--', linewidth=0.5)
plt.savefig("sigmoid.jpg", dpi=600)
plt.show()

参考

  1. 知乎:Sigmoid函数及变形用于两种测量结果的加权求和
  2. 维基百科:S型函数
  3. 百度百科:Sigmoid函数🚀💥

收集整理和创作不易, 若有帮助🉑, 请帮忙点赞👍➕收藏❤️, 谢谢!✨✨🚀🚀

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 峰值旁瓣比(peak-to-sidelobe ratio,PSR)是衡量信号质量的重要指标之一。在信号处理和通信系统中,我们希望获得高的峰值旁瓣比,以确保信号的高质量传输。 改进sigmoid函数可以用来优化峰值旁瓣比。传统的sigmoid函数是S曲线函数,其输出范围在0到1之间。而改进sigmoid函数在上下翻转后,输出范围在-1到1之间。 将改进sigmoid函数与峰值旁瓣比结合,可以通过调整函数的参数来实现对峰值旁瓣比的优化。具体地说,我们可以利用改进sigmoid函数对信号进行一个变换,以减小信号的旁瓣幅度,从而增加峰值旁瓣比。 改进sigmoid函数的特性能够有效地提高峰值旁瓣比,这是因为它可以更好地调整信号的幅度分布,减小了旁瓣的幅度,提高了峰值与旁瓣之间的差别。通过优化参数,我们可以进一步增加峰值旁瓣比的值,达到更高的信号质量。 总之,通过将改进sigmoid函数与峰值旁瓣比结合,我们可以有效地优化信号质量,提高峰值旁瓣比,从而实现更好的信号传输效果。 ### 回答2: 峰值旁瓣比(peak-to-sidelobe ratio, PSR)是用于衡量信号中主要峰值与旁瓣(即次要峰值)之间的比例。在某些应用中,我们希望主要峰值尽可能高,而旁瓣尽可能低,以确保信号有效地被检测和解析。改进sigmoid函数可以用于调整信号的动态范围,从而提高PSR。 改进sigmoid函数将输入的范围映射到一个非线性的输出范围,常用于信号处理中的非线性映射和调制等任务。在此背景下,我们可以将改进sigmoid函数应用于信号的幅度,以改变其动态范围。通过适当调整函数的参数,我们可以使主要峰值得到增强,同时减小旁瓣的幅度。 如何结合峰值旁瓣比和改进sigmoid函数取决于具体的应用需求。一种可能的方法是首先计算信号的PSR,然后根据PSR的值选择适当的sigmoid函数参数。如果PSR较低,即旁瓣较高,则应尝试增大sigmoid函数的压缩程度,以调低旁瓣的幅度。相反,如果PSR较高,即旁瓣较低,则可以适度减小sigmoid函数的压缩程度,以保持主要峰值的幅度。 总之,峰值旁瓣比与改进sigmoid函数结合可以通过调整信号的动态范围来提高主要峰值与旁瓣之间的比例。具体如何结合取决于应用需求,并需要根据PSR的值来选择合适的sigmoid函数参数。 ### 回答3: 峰值旁瓣比(peak-to-sidelobe ratio,简称PSR)是用于衡量信号频谱中主瓣(峰值)与旁瓣之间的比例关系。一般来说,较高的峰值旁瓣比意味着较小的旁瓣干扰,可以提高信号的质量。 改进sigmoid函数是一种常见的激活函数,可以将输入映射到一个出范围的输出,常用于神经网络的输出层,以进行二分类任务。一种常见的改进sigmoid函数是将标准sigmoid函数的取值范围由[0,1]变为[-1,1],以增加输出的动态范围。 将峰值旁瓣比与改进sigmoid函数结合可以用于信号处理和神经网络应用中。 首先,对于信号处理领域,我们可以根据信号的PSR对其进行滤波。通过选择合适的滤波算法和参数,可以抑制旁瓣干扰,提高主瓣的峰值,并提升信号的质量和可靠性。例如,在雷达系统中,我们可以根据目标信号的PSR,设计滤波器来抑制杂波和噪声,提高目标检测的准确性。 其次,对于神经网络应用,我们可以利用改进sigmoid函数来处理输出层的激活值。通过使用[-1,1]范围的sigmoid函数,可以更好地描述输出的不确定性和动态范围。在二分类任务中,可以将sigmoid函数的输出解释为样本属于正类和负类的概率。较大的输出值代表更高的置信度,反之代表低置信度。利用这种结合方式,可以增加输出层的灵活性和准确性,提高神经网络的性能。 综上所述,峰值旁瓣比与改进sigmoid函数可以在信号处理和神经网络应用中结合使用,以提高信号质量和机器学习模的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值