机器学习 day25(softmax在神经网络模型上的应用,提高数据精度的方法)

  1. 输出层采用softmax
    在这里插入图片描述
  • 在识别手写数字的模型中,预测y只有两个结果,所以输出层采用sigmoid激活函数且只有一个神经元。
  • 若预测y有10个结果(0-9),该模型的前向传播计算方式与识别数字的模型完全相同,即隐藏层的设定完全相同,那么输出层可以采用softmax激活函数,也叫该神经网络模型有一个softmax输出层
  • softmax激活函数与sigmoid激活函数的区别:对于sigmoid,a₁是只关于z₁的函数;对于softmax,a₁是关于z₁…z₁₀所有z的函数(每一个激活值a都取决于所有z的值)
  1. 用tensorflow实现softmax
    在这里插入图片描述
  • 与之前类似,有三个步骤来这指定和训练模型:第一步,指定模型结构并设定单元数和激活函数。第二步,指定损失函数和成本函数,在tensorflow中,称softmax激活函数的损失函数为SparseCategoricalCrossentropy函数。第三步,训练模型
  • 但这个版本的代码可能会损失数据精度,以下为提高数据精度的办法
  1. 提高数据精度
    在这里插入图片描述
  • 如图所示,在进行浮点数运算时,表达式不同结果也会不同,这是因为小数在计算机中用二进制来表示可能会丢失精度
  • 第二种情况先计算了两个中间值,再用两个中间值做运算,这加大了损失数据精度的可能。
  • 第二种可以通过化简表达式来达到第一种的数据精度
    在这里插入图片描述
  • 在之前逻辑回归模型中,输出层直接计算并输出激活值a,再将a的值带入损失函数,相当于上图的第二种情况,即先计算了中间值a,再将a的值代入损失函数进行运算,加大损失数据精度的可能
  • 相反,我们可以选择将输出层的激活值a隐式表达,即不直接计算出a的结果,转而将a直接代入损失函数中,再让tensorflow自动简化损失函数,来减小损失数据精度的可能
  • 在代码中:需要将输出层的激活函数设为linear,且将g(z)直接带入损失函数中。因为我们并不计算激活值a,所以不需要sigmoid激活函数,直接用linear激活函数输出z就行;因为要将a,即g(z)代入损失函数中,所以损失函数为关于z的函数
    在这里插入图片描述
  • 在之前的softmax回归模型中,输出层同样是直接计算并输出激活值a,再将a的值代入损失函数。同样是计算了中间值a,再将a的值代入损失函数进行运算,这加大了损失数据精度的可能。
  • 相反,我们也可以将输出层的激活值a隐式表达,即不直接计算出a的结果,转而将a直接代入损失函数,再让tensorflow自动简化损失函数,来减少损失数据精度的可能。
  • 代码中:同样将输出层的激活函数设为linear,且将g(z)直接代入损失函数中。因为我们也不需要计算激活值a,所以不需要softmax激活函数,直接用linear激活函数输出z就行;因为要将g(z)代入损失函数,所以损失函数为关于z的函数
  • 综上:这个版本与原始版本相比:提高了数据精度,增加了阅读的难度,但实现了几乎相同的事情
    在这里插入图片描述
  • 在softmax回归模型中,因为输出层的激活函数是linear,所以输出层的输出结果不再是a₁ - a₁₀,而是z₁ - z₁₀
    在这里插入图片描述
  • 对于逻辑回归模型也是如此,所以如果想要得到预测y为1的概率,还需要带入sigmoid函数g(z)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

符号化的正确姿势

GUI方式 将 .ips crash report 文件拖放到 Xcode > Window > Devices and Simulators > View Device Logs中, 然后导出 .crash 符号化文件. 使用条件: crash report 对应的 Archive 包是在本机构建的 symbolicatecrash symbolicatecrash 是一个 exec (可执行文件), …

Stepper, Slider 的使用

1. Stepper 步进器的使用 1.1 实现 /// 步进器 /加减控件 struct StepperBootcamp: View {State var stepperValue: Int 10State var widthIncrement: CGFloat 0var body: some View {VStack {Stepper("Stepper: \(stepperValue)", value: $stepperValue).padding…

【MATLAB第53期】基于MATLAB的TSK模糊神经网络时间序列预测模型,含短期预测未来功能

【MATLAB第53期】基于MATLAB的TSK模糊神经网络时间序列预测模型,含短期预测未来功能 一、效果展示 二、数据设置 数据采用一列数据滑动窗口设置为5 ,可自行设置70%训练30%测试预测未来值为10 ,可自行设置,控制10以内 三、模型…

Spring MVC相关注解运用 —— 中篇

目录 一、RESTful风格支持 1.1 RESTful风格介绍 1.2 postman使用 二、PathVariable 2.1 实例程序 2.2 测试结果 三、PostMapping、GetMapping、PutMapping、DeleteMapping 四、HiddenHttpMethodFilter 4.1 在web.xml配置过滤器 4.2 控制器方法 4.3 JSP页面 4.4 测…

论文笔记--SentEval: An Evaluation Toolkit for Universal Sentence Representations

论文笔记--SentEval: An Evaluation Toolkit for Universal Sentence Representations 1. 文章简介2. 文章概括3 文章重点技术3.1 evaluation pipeline3.2 使用 4. 代码4.1 数据下载4.2 句子嵌入4.3 句子嵌入评估 5. 文章亮点6. 原文传送门7. References 1. 文章简介 标题&…

96、基于STM32单片机的温湿度DHT11 烟雾火灾报警器蓝牙物联网APP远程控制设计(程序+原理图+任务书+参考论文+开题报告+流程图+元器件清单等)

单片机及温湿度、烟雾传感器是烟雾报警器系统的两大核心。单片机好比一个桥梁,联系着传感器和报警电路设备。近几年来,单片机已逐步深入应用到工农业生产各部门及人们生活的各个方面。各种类型的单片机也根据社会的需求而开发出来。单片机是器件级计算机…

Redis - 附近商铺、用户签到、UV统计

文章目录 附近商铺、用户签到、UV统计一、附近商铺1.1 GEO数据结构1.2 导入店铺数据到GEO1.3 实现附近商户功能 二、用户签到2.1 BitMap2.2 签到功能2.3 统计连续签到2.3.1 分析2.3.2 代码实现 三、UV统计3.1 HyperLogLog用法3.2 测试百万数据的统计 附近商铺、用户签到、UV统计…

LRU 缓存

题目链接 LRU 缓存 题目描述 注意点 如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字函数 get 和 put 必须以 O(1) 的平均时间复杂度运行 解答思路 如果想以O(1)的速度进行get,则需要将对应的key、value存到map中如果想…

李子转债上市价格预测

李子转债 基本信息 转债名称:李子转债,评级:AA,发行规模:6.0亿元。 正股名称:李子园,今日收盘价:18.06元,转股价格:19.47元。 当前转股价值 转债面值 / 转股…

RabbitMQ笔记--消息中间件,rabbitmq安装及简单使用

1.消息中间件 消息:指在应用间传送的数据。 消息队列中间件:指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式环境下扩展进程间的通…

Elasticsearch【全文检索、倒排索引、应用场景、对比Solr、数据结构】(一)-全面详解(学习总结---从入门到深化)

目录 Elasticsearch介绍_全文检索 Elasticsearch介绍_倒排索引 Elasticsearch介绍_Elasticsearch的出现 Elasticsearch介绍_Elasticsearch应用场景 Elasticsearch介绍_Elasticsearch对比Solr Elasticsearch介绍_Elasticsearch数据结构 Elasticsearch介绍_全文检索 Elasti…

UILabel左上角对齐

设计有个需求,需要文字两行显示,一行的时候左上角对齐,比较常见的需求。 老的办法一般来说是根据宽计算好frame大小,然后重新设置frame。不过感觉这种方式比较麻烦,想了想能不能通过约束来完成这个事情呢。 本着这个思…

(论文翻译)PRUNING FILTER IN FILTER《滤波器中的剪枝滤波器》

公式不清楚的地方请对照英文原文进行查看:原文链接 ABSTRACT 剪枝已成为现代神经网络压缩和加速的一种非常有效的技术。现有的剪枝方法可分为两大类:滤波器剪枝(FP)和权重剪枝(WP)。与WP相比,FP在硬件兼容性方面胜出,但在压缩比方面失败。为了…

springboot开发PC端桌面应用

一、需求描述: 1、要求桌面能在window、Linux和macos系统上运行 2、用户自定义数据筛选策略,策略可通过excel导入导出 3、选择多个excel文件通过策略过滤生成新的excel 二、技术选型及集成环境配置: 1、PC端跨平台直接选用javafx来作为桌…

SpringBoot + Vue前后端分离项目实战 || 四:用户管理功能实现

系列文章: SpringBoot Vue前后端分离项目实战 || 一:Vue前端设计 SpringBoot Vue前后端分离项目实战 || 二:Spring Boot后端与数据库连接 SpringBoot Vue前后端分离项目实战 || 三:Spring Boot后端与Vue前端连接 SpringBoot V…

从零开始制作一个Web蜜罐扫描器(5)

从零开始制作一个Web蜜罐扫描器(3)_luozhonghua2000的博客-CSDN博客 打开一个蜜罐: 查看源码: 这个./js/portraitjs非常引人注入,点进去看一下 很明显是被混淆过了,结合语义来理解,这是portrait=画像,那么可以大胆猜测这段ison是黑客画像用的.猜测了就要进行验证,这里在…

Kafka request.log中RequestQueueTimeMs、LocalTimeMs、RemoteTimeMs、ThrottleTimeMs、含义

Kafka request.log中RequestQueueTimeMs、LocalTimeMs、RemoteTimeMs、ThrottleTimeMs、含义 要理解各个延时项的含义,必须从Kafka收到TCP请求、处理请求到返回TCP包整个流程开始梳理 RequestQueueTimeMs Processor 执行processNewResponses() 方法,不…

软件工程师,学习下JavaScript ES6新特性吧

概述 作为一名软件工程师,不管你是不是前端开发的岗位,工作中或多或少都会用到一点JavaScript。JavaScript是大家所了解的语言名称,但是这个语言名称是Oracle公司注册的商标。JavaScript的正式名称是ECMAScript。1996年11月,JavaS…

RT-Thread 互补滤波器 (STM32 + 6 轴 IMU)

作者:wuhanstudio 原文链接:https://zhuanlan.zhihu.com/p/611568999 最近在看无人驾驶的 Prediction 部分,可以利用 EKF (Extended Kalman Filter) 融合不同传感器的数据,例如 IMU, Lidar 和 GNSS,从而给出更加准确的…

Go语言github.com/gorilla/websocket框架websocket协议通信实战

websocket是实际开发中比较常用的应用层协议,本文利用github.com/gorilla/websocket框架进行websocket通信实战。 目录 1.下载github.com/gorilla/websocket 2.websocket服务端 3.websocket Go客户端 4.websocket 网页客户端 5.运行结果展示 1.下载github.com…