当前位置: 首页 > news >正文

【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.lryc.cn/news/277728.html

相关文章:

  • ajax+axios——统一设置请求头参数——添加请求头入参——基础积累
  • Redis高可用(主从复制、哨兵模式和Cluster集群)
  • 【Web】CTFSHOW PHP命令执行刷题记录(全)
  • 鸿蒙开发已解决-Failed to connect to gitee.com port 443: Time out 连接超时提示
  • 使用cURL命令在Linux中测试HTTP服务器的性能
  • 机器学习 -- 余弦相似度
  • LeNet-5(fashion-mnist)
  • Unity中URP下开启和使用深度图
  • 类似东郊到家上门预约系统需要具备哪些功能,预约系统应该怎么做
  • 鸿蒙APP和Android的区别
  • 给Flutter + FireBase 增加 badge 徽章,App启动器 通知红点。
  • 2024年中国杭州|网络安全技能大赛(CTF)正式开启竞赛报名
  • 112.Qt中的窗口类
  • 如何设置电脑桌面提醒,电脑笔记软件哪个好?
  • C# HttpClient Get Post简单封装
  • 创建网格(Grid/GridItem)
  • 思科路由器忘记密码怎么重置
  • JVM基础(2)——JVM内存模型
  • 使用 Process Explorer 和 Windbg 排查软件线程堵塞问题
  • 做科技类的展台3d模型用什么材质比较好---模大狮模型网
  • EasyExcel简单实例(未完待续)
  • ROS2学习笔记一:安装及测试
  • Xcode14.3.1真机调试iOS17的方法
  • 主流大语言模型从预训练到微调的技术原理
  • Linux中vim查看文件某内容
  • 阿里云提示服务器ip暴露该怎么办?-速盾网络(sudun)
  • IP地址的网络安全防护和预防
  • 数据挖掘在制造业中的预测与优化应用
  • Java面试之并发篇(一)
  • 分布式全局id