吴恩达2022机器学习专项课程C2W2:实验SoftMax

目录

  • Softmax函数
    • 1.简述
    • 2.Numpy实现softmax函数
  • softmax成本函数
  • softmax应用于神经网络
    • 1.自定义数据集
    • 2.构建模型
    • 3.使用模型预测
    • 4.改良模型代码(softmax转换输出)

Softmax函数

1.简述

在 Softmax 回归和带有 Softmax 输出的神经网络中,模型生成 N 个输出并从中选择一个作为预测类别。模型通过线性函数生成一个向量 z,然后应用 Softmax 函数将其转化为概率分布。Softmax函数使所有输出值在 0 和 1 之间且总和为 1,从而可以解释为概率。较大的输入值z会对应较大的输出概率。
在这里插入图片描述

2.Numpy实现softmax函数

先把输入向量的每个元素转换成指数e,这是第一步。然后每个指数都要除以指数之和。
在这里插入图片描述
代码实现的是这个过程,向量z包含一层的所有输出,每个输出,都经过softmax函数计算,得到激活向量。在这里插入图片描述
可通过调整每个z值,来观察softmax函数的输出。结果表明,softmax函数的整体输出和为1,Softmax的输出是一组概率分布,每个值都在0到1之间,且总和为 1。一个z值的改变会影响所有的激活值a,而ReLU 或 Sigmoid 等其他激活函数不同,这些函数是单输入单输出的,一个输入只影响一个输出。
在这里插入图片描述

softmax成本函数

softmax的损失函数,y是目标类别,a是softmax函数的输出,注意:损失函数衡量的是一个样本。
在这里插入图片描述
为了编写成本方程,我们需要一个“指示函数”,当第 i 个样本的真实标签为 j 时为 1,否则为 0。
在这里插入图片描述
成本函数计算过程,𝑚是训练样本的数量,𝑁是类别的数量,例如真实标签y有0,1,2,3,则N=4。然后开始计算每个训练样本的损失,N求和公式的内容为:例如第一个训练样本的真实标签y=1,则计算真实标签y=1对应的训练样本的softmax函数值,其它标签不参与计算。第二个训练样本的真实标签y=3,则计算真实标签y=5对应的训练样本的softmax函数值,其它标签不参与计算。这样我们能精准计算每个训练样本的损失,然后累计总和除以平均值,即为成本函数的值。

在这里插入图片描述

softmax应用于神经网络

1.自定义数据集

Tensorflow 中实现 softmax、cross-entropy loss 的两种方法,首先创建数据集,输入样本2个特征,真实标签y也就是分类一共4个0,1,2,3,2000个训练样本。
在这里插入图片描述

2.构建模型

构建模型,模型最终输出一个概率向量。在这里插入图片描述
编译模型的损失函数SparseCategoricalCrossentropy就是这个。
在这里插入图片描述

3.使用模型预测

用训练好的模型预测,第一个输出是个二维数组,它表示预测结果前两行,也就是模型预测第一个和第二个训练样本的分类属于0,1,2,3的概率。第二个输出是预测结果中的最大概率和最小概率。

在这里插入图片描述

4.改良模型代码(softmax转换输出)

输出层设置为线性激活,损失函数有一个额外的参数: from_logits = True 。表示损失函数应在损失计算中包含softmax 操作。这样可以实现计算优化,减小误差。
在这里插入图片描述
输出的内容是离散型数据,有负数正数,它不是概率,而是logits(z),后续还需要拿z进行softmax计算。
在这里插入图片描述
softmax处理,第一行 [2.08e-03, 3.14e-03, 9.61e-01, 3.34e-02] 表示第一个训练样本在各个分类上的概率。第二行 [9.92e-01, 7.37e-03, 1.74e-04, 1.94e-06] 表示第二个训练样本在各个分类上的概率。
在这里插入图片描述

这段代码打印前5个训练样本的分类概率向量。category 输出的是具有最高概率的分类索引。
例如,如果第一个输出中索引2的元素最大,即该元素在概率向量中最大,表示该样本最有可能属于分类2。每个训练样本的概率之和都为1。在这里插入图片描述

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

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

相关文章

小程序如何更换营业执照

​因为商家经营业务的变更,尤其是之前的营业执照注销等原因,导致要求更换小程序主体。下面就具体介绍如何进行变更。 1. 登录mp.weixin.qq.com,找到设置->基本设置,在主体信息字段,点击小程序主体变更。主体变更分…

【运维项目经历|015】:Nginx Web服务性能提升与优化项目

目录 项目名称 项目背景 项目目标 项目成果 我的角色与职责 我主要完成的工作内容 本次项目涉及的技术 本次项目遇到的问题与解决方法 本次项目中可能被面试官问到的技术性问题 问题1:本次项目的人员配置? 问题2:本次项目的周期&am…

教学基本功包括什么技能有哪些

教师的工作不仅仅是传授知识,更多是引导学生探索,激发他们的创造力。要做到这一点,需要具备一些基本技能。 扎实的专业知识。这是教师的根基,如果教师自己对所教的科目都不熟悉,那么教学就会失去方向。不断学习更新自己…

Markdown 语法详解

Markdown 语法详解 Markdown 是一种轻量级标记语言,可以通过简单的标记符号来格式化文本。以下是详细的 Markdown 语法说明以及对应的使用示例。 标题 Markdown 使用 # 号来表示标题,# 的数量代表标题的等级。 # 这是一号标题 ## 这是二号标题 ### 这…

基于python开发用于深度学习模型训练过程loss值曲线的平滑处理模块

深度学习网络模型的loss曲线是训练过程中非常重要的一个监控指标,它能够直观地反映模型的学习状态以及可能存在的问题。以下是对深度学习网络模型loss曲线的详细介绍: 一、loss曲线的基本概念 在深度学习的训练过程中,loss函数用于衡量模型…

0521_网络编程5

练习1: TFTP通信过程总结 服务器在69号端口等待客户端的请求服务器若批准此请求,则使用 临时端口 与客户端进行通信。每个数据包的编号都有变化(从1开始)每个数据包都要得到ACK的确认,如果出现超时,则需要…

骑车不戴头盔监测摄像机

骑行是一种健康的出行方式,但是在骑行途中不戴头盔存在安全隐患,容易造成头部受伤。为了规范骑行行为,保障骑行安全,可以考虑使用骑车不戴头盔监测摄像机进行监测和识别。这种摄像机可以通过智能识别技术,实时监测骑自…

7-Zip是什么呢

1. 简介 7-Zip 是一个功能强大、免费开源的文件压缩和解压缩工具,适用于个人用户和企业用户,可以在多种操作系统上进行使用,并且支持广泛的压缩格式和高级功能。 2. 特点与优势 开源免费:7-Zip 是免费的开源软件,可…

transformer的特点

Transformers是一种用于处理序列数据的神经网络架构,最初由Vaswani等人在2017年提出,主要用于自然语言处理任务。与传统的循环神经网络(RNN)和卷积神经网络(CNN)不同,Transformers采用了一种全新…

装机数台,依旧还会心念i5-12600KF的性能和性价比优势:

近几个月的时间中, 装机差不多4台电脑,由于工作需要,计划年中再增添一台。 目前市场上英特尔CPU促销非常火爆,第12代、第13代以及第14代的产品在年中有适当的优惠。 年中也是装机的旺季,各种相关配件也相对便宜一些。…

PS系统教学02

多个图片同时进行打开 在素材库里面选中两张图片,直接拖进PS软件中,此时会显示其中一张。当按下回车键会显示另一张。 当图层过多,需要进行选择,其中某一张图片,按住Ctrl键,进行选择点击,可以移…

制造企业如何通过PLM系统实现BOM管理的飞跃

摘要 在当今快速变化的制造行业中,产品生命周期管理(PLM)系统的应用已成为企业提升效率、降低成本和增强竞争力的关键。本文将探讨PLM系统如何通过其先进的BOM(物料清单)管理功能,帮助制造企业在整个产品生…

idea+tomcat+mysql 从零开始部署Javaweb项目(保姆级别)

文章目录 新建一个项目添加web支持配置tomcat优化tomcat的部署运行tomcatidea数据库连接java连接数据库 新建一个项目 new project;Java;选择jdk的版本;next;next;填写项目名字,选择保存的路径;…

PbootCMS后台用户账号密码时进行重置工具

1、工具作用: 工具用于忘记PbootCMS后台用户账号密码时进行重置。 2、下载地址:https://pan.quark.cn/s/2b017974f2c0 3、使用方法: 1)下载重置工具解压包,解压后将resetpw.php文件直接上传到网站根目录下; 2&…

【Linux 网络编程】协议的分层知识!

文章目录 1. 计算机网络背景2. 认识 "协议"3. 协议分层 1. 计算机网络背景 网络互联: 多台计算机连接在一起, 完成数据共享; 🍎局域网(LAN----Local Area Network): 计算机数量更多了, 通过交换机和路由器连接。 🍎 广…

Linux内网中安装nginx详细教程

本章教程主要介绍如何在Linux中通过rpm安装nginx 1、下载安装 下载地址:http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.1-1.el7.ngx.x86_64.rpm sudo yum install -y nginx-1.20.1-1.el7.ngx.x86_64.rpm2、启动Nginx并设置开机启动 root用户启动nginx默认监听8…

使用 Docker 环境变量轻松配置 Spring Boot 应用程序:详细指南

在 Spring Boot 应用程序中,可以通过 Docker 传递环境变量来配置数据库连接、密码和账号等参数。以下是一个详细的步骤说明,涵盖了如何设置环境变量、配置 Spring Boot 应用程序以及将其打包到 Docker 容器中。 1. 配置 Spring Boot 应用程序 首先&…

ORA-27041: redo文件 unable to open file处理

现场项目经理反馈有个测试环境的u01满,赶紧回电脑边查看 [rootdb ~]# df -h|grep u01 /dev/mapper/ol-u01 150G 150G 20K 100% /u01 本以为是审计日志*.aud导致的,通过查看发现alert_orcl.log特别的大,98G大小了,查看日志最后…

Spring基础知识总结(纯文字版)

一、Spring IoC 1.1 重要概念 1)控制反转(Inversion of control) 控制反转是一种通过描述(在java中通过xml或者注解)并通过第三方去产生或获取特定对象的方式。 控制反转IoC(Inversion of Control)是说创建对象的控…

基于 Arm 虚拟硬件的 TinyMaix 超轻量级神经网络推理框架的项目实践

本实验过程中所显示的优惠价格及费用报销等相关信息仅在【Arm AI 开发体验创造营】体验活动过程中有效,逾期无效,请根据实时价格自行购买和体验。同时,感谢本次体验活动 Arm 导师 Liliya 对于本实验手册的共创与指导。 详见活动地址&#xff…