吴恩达2022机器学习专项课程C2W2:2.22 多类 softmax softmax与神经网络 softmax的代码改良 多标签分类

目录

  • 多分类问题
    • 1.什么是多分类问题
    • 2.多分类问题案例
    • 3.二分类与多分类的区别
  • Softmax
    • 1. 什么是Softmax
    • 2.逻辑回归预测的计算过程
    • 3. Softmax预测的计算过程
    • 4.Softmax 回归与逻辑回归的关系
    • 5. Softmax的损失函数
  • softmax与神经网络
    • 1.设置Softmax层
    • 2.Softmax层的计算
    • 3.softmax激活函数与其它激活函数的区别
    • 4.TensorFlow实现Softmax神经网络
  • softmax的代码改良
    • 1.简述
    • 2.数值舍入误差案例
    • 3.逻辑回归的数值舍入误差
    • 4.改良逻辑回归的数值舍入误差
    • 5.改良softmax的数值舍入误差
    • 5.具体的改良代码
  • 多标签分类问题
    • 1.什么是多标签分类?
    • 2.多类分类和多标签分类的区别
    • 3.建立多标签分类的神经网络
  • 总结

多分类问题

1.什么是多分类问题

多分类问题指的是在分类任务中,输出标签y不仅仅局限于两个类别,而是存在两个以上的可能类别。

2.多分类问题案例

  • 手写数字分类:仅区分手写数字0和1。
  • 邮政编码识别:涉及10个可能的数字类别。
  • 疾病诊断:判断病人可能患有三种或五种不同的疾病。
  • 视觉缺陷检测:判断药片是否存在刮痕、变色或破损等缺陷,对药片进行不同缺陷分类。

3.二分类与多分类的区别

  • 二分类问题:逻辑回归模型预测给定特征x条件下y为1的概率。
  • 多分类问题:需要预测y等于1、2、3、4等多个概率。多分类算法能够在空间中学习到一个决策边界,将空间划分为多个区域。在这里插入图片描述

Softmax

1. 什么是Softmax

它是一种函数,可以理解成逻辑回归模型的扩展,用于预测多分类问题,类似于sigmoid预测二分类。

2.逻辑回归预测的计算过程

首先计算z=wx+b,然后通过sigmoid函数得到a=g(z)。它意味着在给定输入特征x的情况下y=1的概率,如果y=1的概率为0.71,则y=0的概率为0.29(1-0.71)。
在这里插入图片描述

3. Softmax预测的计算过程

当y可以取四个可能的输出值(1234),softmax会如何操作?
(1)参数:这里的w1,w2,w3,w4和b1,b2,b3,b4是softmax回归的参数。

在这里插入图片描述

(2)计算公式(激活函数):分母都是一样的,从ez1加到ez4。分子是不断更换。我们可以理解成给定输入特征x的情况下,a1表示y=1的概率,a2表示y=2的概率,a3表示y=3的概率,a4表示y=4的概率。这4个概率的和也要等于1(0.30+0.20+0.15+0.35=1)。

在这里插入图片描述

(3)softmax的一般情况:上述的y只有4种情况即y=1,2,3,4,而一般情况下,y可以取n个值,即y=1,2,3,4…n。j的范围是1到n,aj理解为在给定输入特征x的情况下,y=j的概率。注意,a1到an的和要为1,因为概率总体和为1。

在这里插入图片描述

4.Softmax 回归与逻辑回归的关系

如果n为2,则softmax的计算结果和逻辑回归的计算结果相同,只是两者的参数不同。

5. Softmax的损失函数

(1)逻辑回归的损失函数:可以将1-a1简化成a2。因此当y=1时,损失函数为-loga1。如果y=0时,损失函数为-loga2。
在这里插入图片描述

(2)Softmax 回归的损失函数:根据真实标签y,选择对应的损失函数计算损失,例如y=2,计算-loga2,损失越接近1,表示模型预测分类的效果越好,因此算法会尽力让计算的值趋近于1。softmax的每个预测概率都在0-1之间在这里插入图片描述

softmax与神经网络

1.设置Softmax层

之前,我们使用了两类别的手写数字识别神经网络。现在,为了分类0到9的手写数字,我们需要将输出层调整为10个单元,并将其设为Softmax输出层。在这里插入图片描述

2.Softmax层的计算

输出层的每个神经元使用softmax的激活函数,神经元分别输出y=1~10的概率。在这里插入图片描述

3.softmax激活函数与其它激活函数的区别

对于Softmax激活函数,每个激活值(如a1)依赖于所有的Z值(Z1到Z10)。计算a1时,需要用到所有的Z值,而不是只用Z1。对于sigmoid、ReLU或线性激活函数,每个激活值是独立计算的。例如,a1只依赖于Z1,a2只依赖于Z2。
在这里插入图片描述

4.TensorFlow实现Softmax神经网络

(1) 定义网络结构:第一层有25个单元,激活函数为ReLU。第二层有15个单元,激活函数也为ReLU。第三层有10个输出单元,使用Softmax激活函数。

(2) 选择损失函数:使用SparseCategoricalCrossentropy函数作为损失函数,适用于多类别分类问题。它可以让每个输入样本只属于一个类别,不会一个图像即出现又2又是7的情况。

(3)训练模型:训练模型的步骤与之前类似。
在这里插入图片描述

softmax的代码改良

1.简述

上述TensorFlow实现Softmax神经网络的方法是正确的,但改用一种能减少舍入误差的方法,可以在 TensorFlow中更准确地进行计算。

2.数值舍入误差案例

先用数学演示两种计算方法,直接计算(option1)比通过复杂表达式(option2)计算有更少的舍入误差。
在这里插入图片描述
代码也证明了这点,在计算机中,(1 + 1/10000) - (1 - 1/10000) 计算的结果可能不是精确的2/10000,而是一个有误差的值。
在这里插入图片描述

3.逻辑回归的数值舍入误差

(1)直接使用a计算
损失函数中直接使用 a,在计算a时已经引入了舍入误差,这个过程类似计算1 + 1/10000 和 1 - 1/10000。

在这里插入图片描述

(2)使用展开a计算

  • 直接在损失函数中使用a的原始公式1 / (1 + e^(-z)),不显式计算 a。这种方法类似于直接计算 2/10000,因为TensorFlow可以在内部优化这些计算,减少舍入误差。在这里插入图片描述

4.改良逻辑回归的数值舍入误差

  • 首先要将输出层修改为线性激活,然后设置from_logits=True,意思是告诉我TensorFlow输出层未经过激活函数(线性激活),使其在内部使用逻辑回归处理 logits 值(即 z),这样TensorFlow可以重新排列项来减少数值舍入误差,提高计算精度。在这里插入图片描述

5.改良softmax的数值舍入误差

过程和逻辑回归的一样,只是内部使用softmax函数计算z。
在这里插入图片描述

5.具体的改良代码

(1)softmax
神经网络的最终输出不再是激活值a,而是线性激活z(wx+b),然后我们需要让输出z使用softmax计算,才能得到最终想要的结果。
在这里插入图片描述(2)逻辑回归
同理,输出的是线性激活z,因此需要z使用sigmoid计算,得到最终结果。
在这里插入图片描述

多标签分类问题

1.什么是多标签分类?

每个样本可能有多个标签,每个标签表示不同的类别。例如自动驾驶系统中,针对前方的图片,可能要判断是否有车、是否有公交车、是否有行人等。这种情况下,每张图像可以同时属于多个标签,单一标签无法描述图像中所有的信息。
在这里插入图片描述

2.多类分类和多标签分类的区别

  • 在多类分类中:目标 Y 是一个单个的数字,比如手写数字分类中的Y 可能是 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 中的一个。
  • 在多标签分类中:目标Y是一个由多个数字组成的向量,比如 [1, 0, 1],表示图像中有车,没有公交车,有行人。

3.建立多标签分类的神经网络

由于需要解决三个二分类问题(是否有车、是否有公交车、是否有行人),可以在输出层的这三个神经元使用 sigmoid 激活函数。因此,输出向量的3个元素将分别表示图像中是否有车、是否有公交车和是否有行人。
在这里插入图片描述

总结

本篇首先引入了多分类问题,然后介绍了解决多分类的算法:softmax,softmax可以理解为逻辑回归的扩展。通过对比逻辑回归,介绍了softmax的预测过程和损失函数,又将softmax引入神经网络,使我们看到了神经网络使用softmax作为输出层的预测。随后我们又引入了代码改良,通过设置输出层为线性激活,以及在编译模型时设置from_logits=True,来减小误差,增加预测的精度。最后介绍了多类分类与多标签分类。

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

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

相关文章

卸载/删除 Maxask.com,最简单的方法

被绑架的浏览器,太恶心了。 Maxask伪装成了插件,在你搜索网页的时候利用了重定向,导致出现的界面时Maxask的界面,很恶心。 只需要排查正在使用的,如下图有颜色的图表。 删除一个插件,浏览器搜索一下看看有…

先进制造aps专题九 中国aps行业分析

国外aps的问题是不给国内客户定制算法 国外aps的算法都很强大,考虑几百个约束条件,各种复杂的工序关系,还有副资源约束特殊规格约束,排程还优化,光c写的算法代码就几十万行甚至上百万行 国内aps的问题是实现不了复杂的…

项目范围管理

目录 1.概述 2.主要工作 3.基础 4.项目范围管理的过程 5.规划范围管理 6.收集需求 7.定义范围 8.创建 WBS 9.确认范围 10.控制范围 1.概述 项目范围管理是项目管理中的一个重要组成部分,涉及到确定项目需要完成的工作范围,以及如何管理和控制…

String到底创建几个对象?

String在生成的过程中如何创建对象? String s1 new String("hello") String s2 "world" String s3 new String("x") new String("y") String s5 new String("abc") "def" String s6 new String…

mysql数据库安装指南

这里写自定义目录标题 官网下载mysql数据库安装MySQL数据库添加环境变量查看mysql的服务验证是否配置成功 注意:如果用MySQL8的版本安装不成功,可以尝试用MySQL5的版本。MySQL8的版本可能在windows上一直不能启动,经过查询是某个版本的漏洞。…

分布式系列之分布式锁

背景 SOA或微服务架构体系下必不可少的一个分布式组件,常用于解决分布式场景下数据一致性的问题。 应用场景: 资源竞争控制:在分布式系统中,多个节点可能同时访问共享资源,如数据库、文件系统、缓存等。分布式锁可以…

如何在 jQuery 中检查一个元素是否隐藏

在前端开发中,我们常常需要判断一个元素是否隐藏。在 jQuery 中,有多种方式可以实现这一点。然而,并不是所有的解决方案都适用于所有情况。为此,我写了一个通用的解决方案来应对各种复杂情形。本文将详细介绍这个方法及其使用方式…

知识存储概述

文章目录 知识存储概述知识存储方式知识存储基础工具技术发展趋势 知识存储是针对知识图谱的知识表示形式设计底层存储方式,完成各类知识的存储,以支持对大规模图数据的有效管理和计算。知识存储的对象包括基本属性知识、关联知识、事件知识、时序知识和…

操作系统 实验17 批处理操作接口7:until循环与select循环

1、建立文件Until.sh实现累加和 脚本: #!/bin/bash sum010 sum020 i1 until [ $i -gt 100 ] dolet "sum01i"let "ji%2"if [ $j -ne 0 ];thenlet "sum02i"filet "i1" done echo $sum01 echo $sum02命令:. ./Un…

深入解析 RocketMQ 和 Kafka 的消息压缩机制

深入解析 RocketMQ 和 Kafka 的消息压缩机制 消息队列系统在现代分布式系统中扮演着重要角色,它们不仅需要高效地传递消息,还需要在传输过程中尽量减少带宽和存储的占用。消息压缩是一种常见的优化手段,可以显著减少消息的体积。本文将详细探…

Spring Security:认证与授权

Spring Security:认证与授权 在这篇文章中,你将学到与Spring Security相关的五个关键概念和术语,这些是你真正需要了解的。当你学习Spring Security时,你会一次又一次地遇到这些核心术语和概念。因此,在这篇文章中&am…

深入Docker in Docker:原理解析与实战演练

Docker in Docker(简称DinD)是一个在Docker容器内部运行另一个Docker守护进程和客户端的技术。这允许在一个容器中执行Docker命令,就像在宿主机上一样。这种技术在某些用例中非常有用,比如CI/CD管道、测试环境或者某些需要隔离的环…

linux网卡MAC地址

1、ifconfig命令查看网卡MAC地址 1.1 通过HWaddr或ether字段过滤mac地址 ifconfig | grep HWaddr ifconfig | grep ether [rootlocalhost ~]# /sbin/ifconfig | grep ether 注:有些Linux发行版本的MAC地址字段为HWaddr,有些Linux发行版本的MAC地址字段…

智能未来,触手可及,畅享移动云

目录 一、简介 二、移动云强大优势 1. 强大的网络基础设施 2. 可靠服务 3. 丰富产品线 4. 技术应用 5. 优惠价格策略 三、多商对比 网络优势 四、移动云的未来发展 五、实战应用 5.1 服务器选购 ​编辑5.2 服务器启动 5.3 实例操作 六、移动云的服务优势 6.1 客…

postman教程-5-发送put请求

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了postman发送post请求的方法,本小节我们讲解一下postman发送put请求的方法。 HTTP PUT 请求是一种用于传输数据的网络协议方法,它在客户端和服务器之间的通信中扮演着重…

数据中心、HPC、AI等应用场景互联协议混战哪家强?

生成式人工智能快速发展对算力与存力呈指数需求增长,进一步加剧了算力与存力之间既有矛盾,时代在呼唤更大的运力(即计算与存储之间的数据传输)--AIGC时代需要更大带宽,更为快速的数据传输路径。 众所周知,P…

香橙派AIpro初体验,详解如何安装Home Assistant Supervised

香橙派AIpro(OrangePi AIpro)开发版,定位是一块AI开发板,搭载的是华为昇腾310(Ascend310)处理器。 没想到,这几年的发展,AI开发板也逐渐铺开,记得之前看到华为发布昇腾3…

javascript 防抖 节流

在前端开发中,性能优化是提升用户体验的关键环节。防抖(Debounce)和节流(Throttle)作为两种常见的优化技术,能够有效管理和控制频繁触发的事件,减少不必要的计算和资源消耗。无论是在处理用户输…

基于香橙派 Ai Pro的ROS Qt人机交互软件部署指南

一,前言 最近收到了CSDN的邀请,对香橙派新出的Ai Pro进行测评: 说来也巧,其实香橙派本人对其映像挺深刻的,在2017年左右,本人刚上大学,当时是在淘宝购买树莓派,发现有个叫香橙派的国产板子,性能跟树莓派差不多吧,但是…

数据仓库和数据挖掘基础

文章目录 1. 数据仓库基础知识1.1 数据仓库的基本特性1.2 数据仓库的数据模式1.3 数据仓库的体系结构 2. 数据挖掘基础知识2.1 数据挖掘的分类2.2 数据挖掘技术2.3 数据挖掘的应用过程 传统数据库在联机事务处理(OLTP)中获得了较大的成功,但是对管理人员的决策分析要…