概率模拟(sigmoid、softmax)

概率模拟(sigmoid、softmax)

  • 1. sigmoid
    • 1.1 sigmoid 定义
    • 1.2 sigmoid 主要特性
    • 1.3 sigmoid 的缺点
    • 1.4 代码画 sigmoid 函数图像
  • 2. softmax
    • 2.1 softmax 定义与原理
    • 2.2 softmax 特点与优势
    • 2.3 softmax 应用场景
    • 2.4 softmax 实现方式
    • 2.5 softmax 注意事项
    • 2.6 代码

1. sigmoid

1.1 sigmoid 定义

  • Sigmoid函数,也称为 S形函数Logistic Function ,是一种在机器学习和深度学习中广泛使用的激活函数。它的数学表达式通常定义为:
    σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1

1.2 sigmoid 主要特性

  • 输出范围:Sigmoid函数的输出值域是(0, 1),这意呀着它可以将任何实数映射到(0, 1)的区间内,这个特性非常适合处理二分类问题,其中输出可以解释为属于某一类的概率。
  • 单调性:Sigmoid函数在其定义域内是单调递增的,即当输入x增大时,输出σ(x)也增大。
  • 导数:Sigmoid函数的导数可以用它自身来表示,即
    σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) σ′(x)=σ(x)(1−σ(x)) σ(x)=σ(x)(1σ(x))
    这个特性在计算梯度时非常有用,尤其是在反向传播算法中。

1.3 sigmoid 的缺点

  • Sigmoid函数也存在一些缺点,这些缺点限制了它在现代神经网络中的广泛应用:
    1. 梯度消失:当输入x的值非常大或非常小时,Sigmoid函数的梯度(即其导数)会接近于0。这会导致在训练神经网络时,反向传播算法中的梯度在通过Sigmoid激活函数时逐渐消失,从而使得权重更新非常缓慢,甚至停止更新。
    2. 不是零中心化(Zero-Centered):Sigmoid函数的输出总是正的,这意味着在训练过程中,神经元的输入总是正的(除非初始权重是负的)。这可能会导致梯度下降时的“之字形”路径,从而降低收敛速度。
    3. 计算成本高:与其他激活函数(如ReLU)相比,Sigmoid函数涉及指数运算,这可能导致计算成本更高。
  • 尽管存在这些缺点,但在某些特定情况下(如需要输出概率值的二分类问题),Sigmoid函数仍然是一个有用的选择。
  • 此外,随着其他更高效的激活函数(如ReLU及其变体)的出现,Sigmoid函数在深度学习中的使用已经有所减少。

1.4 代码画 sigmoid 函数图像

def sigmoid(x):return 1 / (1 + np.exp(-x))x = np.linspace(start=-10, stop=10, num=30)plt.plot(x, sigmoid(x))
plt.grid()

在这里插入图片描述

2. softmax

2.1 softmax 定义与原理

  • Softmax函数是一种归一化函数,它将一组任意实数转换为表示概率分布的实数,并且这些概率值的总和为1。具体来说,Softmax函数通过计算输入向量的每个元素的指数与所有元素指数之和的比值,来得到每个元素的概率值。其数学定义如下:
    softmax ( z i ) = e z i ∑ j = 1 n e z j \text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^n e^{z_j}} softmax(zi)=j=1nezjezi 其中, z i z_i zi 表示输入向量的第i个元素,n表示向量的维度。

2.2 softmax 特点与优势

  • 概率解释:Softmax函数的输出值介于0和1之间,并且所有输出值的和为1,这使得Softmax的输出可以被解释为概率分布。
  • 多分类能力:Softmax函数特别适用于多分类问题,因为它能够将输入向量映射到多个类别的概率上。
  • 数值稳定性:在计算Softmax时,通常会通过减去输入向量中的最大值来避免数值溢出问题,从而提高算法的数值稳定性。

2.3 softmax 应用场景

  • 图像分类:在图像分类任务中,模型的输出层通常会使用Softmax函数将图像特征映射为类别概率,从而实现对图像的分类。
  • 文本分类:在文本分类任务中,Softmax函数同样可以将文本特征映射为类别概率,从而实现对文本的分类。
  • 推荐系统:在推荐系统中,Softmax函数可以用于对用户和物品进行分类,从而帮助系统为用户推荐合适的物品。
  • 序列标注:在序列标注任务中,Softmax函数可以将序列标注结果映射为概率分布,从而为序列的每个位置标注正确的标签。

2.4 softmax 实现方式

  • 使用 torch.nn.functional.softmax 函数来计算Softmax。
  • 此外,许多深度学习模型(如神经网络)的最后一层也会使用Softmax函数来输出概率分布。

2.5 softmax 注意事项

  • 梯度消失与梯度爆炸:在计算Softmax时,需要注意梯度消失和梯度爆炸问题。这可以通过使用梯度剪裁或使用特定的优化算法(如Adam)来缓解。
  • 计算效率:由于Softmax涉及指数运算,因此在处理大规模数据时可能会导致计算效率低下。可以通过使用GPU加速或预计算的方法来提高计算效率。

2.6 代码

def softmax(logits):"""softmax: - 原始数字比较大,模拟概率也比较大"""# 转为 arraylogits = np.array(logits)# 转为正数logits = np.exp(logits)# 模拟概率return logits / logits.sum()softmax([0.6, -3.6, 18.9])  # :array([1.12826464e-08, 1.69189790e-10, 9.99999989e-01])

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C++从入门到起飞之——友元内部类匿名对象 全方位剖析!

🌈个人主页:秋风起,再归来~🔥系列专栏:C从入门到起飞 🔖克心守己,律己则安 目录 1、友元 2、内部类 3. 匿名对象 4、完结散花 1、友元 • 友元提供了⼀种突破类访问限定符封装的…

在 Jetpack Compose 中使用 CameraX示例

在使用Jetpack Compose开发安卓应用,当在学习使用CameraX组件时发现官方提供的教程不是Compose的。教程地址如下: https://developer.android.com/codelabs/camerax-getting-started?hlzh-cn#1 与是我就记录一下,简单的示例。 内容参考&…

吴恩达的TranslationAgent学习

TranslationAgent构成 整个[TranslationAgent (github.com)]在流程上分为短文本的一次性翻译和长文本的分chunk翻译(按照Token进行划分)。 但是不论长文本翻译还是短文本翻译,总体流程遵循执行、纠正再执行的逻辑循环实现。 这种按照自省思路…

基于JSP的电子商城系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:JSPJavaB/S架构 工具:Eclipse、Tomcat 系统展示 首页 管理员功能界面 用户功能界面 医…

Kylin 入门教程

Apache Kylin 是一个开源的分布式数据仓库和 OLAP(在线分析处理)引擎,旨在提供亚秒级查询响应时间,即使在处理超大规模数据集时也是如此。Kylin 可以有效地将原始数据预计算为多维数据立方体(Cube),并利用这些预计算结果来提供快速查询。本文将带你从基础知识到操作实践…

项目管理工具-Maven-创建一个mavenweb项目

文章目录 IDEA开发maven项目依赖范围 IDEA开发maven项目 点击NewProject,填写项目名字Name为javaWeb-maven,填写项目的存储地址,选择Archetype为org.apache.maven.archetypes:maven-archetype-webapp,然后再点击Create&#xff0…

Android WebViewClient 的 `shouldOverrideUrlLoading` 方法

简介 在Android开发中,WebView是一个强大的工具,可以在你的应用中显示网页内容。了解 WebViewClient 中的 shouldOverrideUrlLoading 方法是至关重要的,因为这个方法允许你控制 URL 在 WebView 中的处理方式。 在本文中,我们将详…

基于FFmpeg和SDL的音视频解码播放的实现过程与相关细节

目录 1、视频播放器原理 2、FFMPEG解码 2.1 FFMPEG库 2.2、数据类型 2.3、解码 2.3.1、接口函数 2.3.2、解码流程 3、SDL播放 3.1、接口函数 3.2、视频播放 3.3、音频播放 4、音视频的同步 4.1、获取音频的播放时间戳 4.2、获取当前视频帧时间戳 4.3、获取视…

OZON打开哈萨克斯坦市场,OZON测试开通哈萨克斯坦市场中国产品

在全球化日益深入的今天,跨境电商成为了连接不同国家和地区消费者的重要桥梁。2024年7月26日,Ozon Global宣布了一项重大扩展计划,正式将中国卖家的销售版图拓展至哈萨克斯坦市场,为中国企业打开了新的增长机遇之门。 OZON哈萨克斯…

实现共模噪声电流相互抵消的方法

共模传导路径中噪声电流相互抵消,从而使总的共模电流减小, 终达到降噪的目的。目前为实现共模噪声电流相互抵消,主要是采用动点电容抵消法。 动点电容抵消法原理 动点电容抵消法就是选取合适的动点,添加原副边跨接电容&#xff0c…

【Leetcode】二十、记忆化搜索:零钱兑换

文章目录 1、记忆化搜索2、leetcode509:斐波那契数列3、leetcode322:零钱兑换 1、记忆化搜索 也叫备忘录,即把已经计算过的结果存下来,下次再遇到,就直接取,不用重新计算。目的是以减少重复计算。 以前面提…

深度强化学习 ②(DRL)

参考视频:📺王树森教授深度强化学习 前言: 最近在学习深度强化学习,学的一知半解😢😢😢,这是我的笔记,欢迎和我一起学习交流~ 这篇博客目前还相对比较乱,后面…

【算法刷题】【力扣】| 最长回文子串|

给你一个字符串 s,找到 s 中最长的 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入:s "cbbd" 输出&#x…

全网最最实用--模型高效推理:量化基础

文章目录 一、量化基础--计算机中数的表示1. 原码(Sign-Magnitude)2. 反码(Ones Complement)3. 补码(Twos Complement)4. 浮点数(Floating Point)a.常用的浮点数标准--IEEE 754(FP32…

如何利用业余时间做副业,在家里赚钱,来增加收入

人一生每个阶段都会有压力和烦恼,中年人更是如此。 上有老下有小,生活的重担都在一个人身上,压得人喘不过气,这些都需要钱,仅靠工资已经很难维持一家人的开支了。 所以很多人打算利用业余时间做副业,来增加…

几个小创新模型,Transformer与SVM、LSTM、BiLSTM、Adaboost的结合,MATLAB分类全家桶再更新!...

截止到本期MATLAB机器学习分类全家桶,一共发了5篇,参考文章如下: 1.机器学习分类全家桶,模式识别,故障诊断的看这一篇绝对够了!MATLAB代码 2. 再更新,机器学习分类全家桶,模式识别&a…

Linux基础复习(三)

前言 接Linux基础复习二 一、常用命令及其解释 Tab补全 在上一篇文章配置了IP然后通过远程SSH连接软件控制主机,在配置过程中会发现有些命令过于长,那么,Tab键补全就可以很好的帮助我们去快速的敲出命令,同时如果有些命令有遗…

【Leetcode】十九、贪心算法:玩筹码 + 跳跃游戏

文章目录 1、贪心算法2、leetcode1217:玩筹码3、leetcode55:跳跃游戏 1、贪心算法 关于贪心算法中,“每一步都是最好的选择"的理解”。以零钱兑换为例,现在有1分、2分、5分的硬币,现在要凑出11分,且要…

API资源对象CRD、认识Operator-理论知识和认识Operator-初次上手(2024-07-17)

一、API资源对象CRD Kubernetes 自定义资源定义(Custom Resource Definition,简称 CRD)是一种强大的 Kubernetes API 扩展机制,允许你定义和创建自己的资源类型,以满足您的应用程序或基础设施需求。 CRD 的核心思想是…

RAG优化技巧 | 7大挑战与解決方式 | 提高你的LLM: 下篇

RAG优化技巧 | 7大挑战与解决方式 | 提高你的LLM:下篇 在当今快速发展的人工智能领域,大型语言模型(LLM)已经成为无处不在的技术,它们不仅改变了我们与机器交流的方式,还在各行各业中发挥着革命性的影响。…