【Python】Sigmoid和Hard Sigmoid激活函数对比总结及示例

Sigmoid和Hard Sigmoid是两种常用的激活函数,它们在神经网络中起到非线性变换的作用。以下是它们之间的对比和优缺点总结:

Sigmoid激活函数:

优点:

  1. 输出范围是0到1之间,可以用于二分类问题。
  2. 函数形状相对平滑,有助于减小梯度消失问题。
    缺点:

在输入非常大或非常小的值时,会出现梯度消失的情况,导致网络训练困难。
计算量大,因为需要计算指数函数。
输出不是以0为中心,有时会影响网络的训练。

Hard Sigmoid激活函数:

优点:
计算量较小,因为不需要计算指数函数。
输出是以0为中心的,有助于网络的训练。
输出范围是[0,1],可以用于二分类问题。

缺点:
相对于Sigmoid函数,其输出不是非常平滑,可能导致梯度消失问题。
在输入值接近于0时,其梯度接近于0,可能会影响网络的训练。
在处理多分类问题时,需要使用Softmax函数作为输出层,而Hard Sigmoid与Softmax的组合可能不如Sigmoid与Softmax的组合稳定。

总结:
选择激活函数需要根据具体的应用场景和需求来决定。如果需要处理二分类问题并且对计算量要求较高,可以考虑使用Hard Sigmoid。如果对网络的稳定性和平滑性要求较高,可以选择使用Sigmoid激活函数。

import torch
import torch.nn as nn
import matplotlib.pyplot as plt
# Sigmoid激活函数
sigmoid = nn.Sigmoid()
sigmoid_inputs = torch.arange(-10, 10, 0.1)
sigmoid_outputs = sigmoid(sigmoid_inputs)
print("Sigmoid Function Input :: {}".format(sigmoid_inputs))
print("Sigmoid Function Output :: {}".format(sigmoid_outputs))plt.subplot(1, 2, 1)
plt.plot(sigmoid_inputs,sigmoid_outputs)
plt.title('Sigmoid')# Hard Sigmoid激活函数
hard_sigmoid = nn.Hardsigmoid()
hard_sigmoid_inputs = torch.arange(-10, 10, 0.1)
hard_sigmoid_outputs = hard_sigmoid(hard_sigmoid_inputs)
print("Hard Sigmoid Function Input :: {}".format(hard_sigmoid_inputs))
print("Hard Sigmoid Function Output :: {}".format(hard_sigmoid_outputs))
plt.subplot(1, 2, 2)
plt.plot(hard_sigmoid_inputs,hard_sigmoid_outputs)plt.title('Hard Sigmoid')
plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/338575.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Oracle】Oracle的安装与连接

Oracle基础 一、ORACLE 简介 1、oracle概述 ORACLE 数据库系统以分布式数据库为核心的一组软件产品 支持多用户、大事务量的事务处理数据安全性和完整性控制支持分布式数据处理可移植性强,跨平台 2、oracle体系架构 1)数据库 Oracle 数据库是数据…

【Linux】Linux系统编程——Linux目录结构

Linux的文件系统呈现为一种树状结构,以根目录/为最顶层,其下分布着各种不同的子目录,每个目录都有其特定的用途和功能。下面是Linux目录结构的详细介绍: 1. 根目录 / 根目录是整个文件系统的基础。所有的目录和文件都从这里开始…

常用的网站

PIXEL MOTION 注册-YesPMP平台 模型下载 - Ourblender - 专业的三维素材库 Vega AI 创作平台 夏沫的AI小站 Tripo AI B站视频下载工具 | 极简纯净

优化CentOS 7.6的HTTP隧道代理网络性能

在CentOS 7.6上,通过HTTP隧道代理优化网络性能是一项复杂且细致的任务。首先,我们要了解HTTP隧道代理的工作原理:通过建立一个安全的隧道,HTTP隧道代理允许用户绕过某些网络限制,提高数据传输的速度和安全性。然而&…

SpringBoot集成Skywalking实现分布式链路追踪

官方网址: Apache SkyWalking官方文档: SkyWalking 极简入门 | Apache SkyWalking下载地址:Downloads | Apache SkyWalking Agent:以探针的方式进行请求链路的数据采集,并向管理服务上报; OAP-Service&am…

观成科技-加密C2框架EvilOSX流量分析

工具简介 EvilOSX是一款开源的,由python编写专门为macOS系统设计的C2工具,该工具可以利用自身释放的木马来实现一系列集成功能,如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信,通信内容为特…

万界星空科技家具制造业MES系统解决方案

家具行业专业化生产和信息化管理程度较低。随着企业规模的迅速扩大,家具行业中用现有的凭手工发放图纸、制作bom、发放工艺说明文件越来越难以适应现代家具行业、已经成为家具行业快速发展的瓶颈。必须通过实施万界星空科技MES生产管理软件,实现部门之间…

旧衣回收小程序,降低企业商家成本,推动行业发展!

随着大众环保意识的增加,人们对于闲置衣服的处理方式也从丢弃转向回收,旧衣服回收行业受到了大家的关注,成为了新的商业发展模式。 在当下科技发展的背景下,旧衣回收从回收箱演变到了线上预约上门回收,旧衣回收小程序…

DevEco Studio for Mac:zsh: command not found: ohpm

一、检查是否配置有ohpm环境 1、新打开一个终端输入export,查看是否有 ohpm路径: 二、如果没有找到ohpm路径,开始配置环境 。 1、查找本机ohpm路径,并记录ohpm解释器的路径: 2、打开终端工具,执行命令 ech…

【精简】Vue 一个@click时间绑定多个点击事件

一、方案 多个方法之间使用逗号分隔&#xff08;经测试其实逗号和分号都可以&#xff09; <el-buttonclick"m1(),m2()">m1(){console.log("11");},m2(){console.log("22")},二、效果 三、猜想 经过debugger测试 好像m1和m2执行是按clic…

多线程任务管理:深入学习CompletionService的应用

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;咱们都知道&#xff0c;在现代软件开发中&#xff0c;特别是对于Java程序员来说&#xff0c;高效地处理并发任务是一个非常关键的技能。就像在繁忙的餐厅里&#xff0c;多个厨师同时烹饪不同的菜肴一样&#xff…

嵌出式学习又一天

关于485通讯 485属于串口通信&#xff0c;属于物理层的&#xff0c;规定为2线&#xff0c;半双工的多点通信标准&#xff0c;它的电气特性不一样&#xff0c;用缆线两端电压差值来表示传递信号&#xff0c;rs485仅仅规定了接收端和发送端的电气特性&#xff0c;没有规定任何数据…