深度学习笔记10-多分类

多分类和softmax回归

        在多分类问题中,一个样本会被划分到三个或更多的类别中,可以使用多个二分类模型或一个多分类模型,这两种方式解决多分类问题。

1.基于二分类模型的多分类

        直接基于二分类模型解决多分类任务,对于多分类中的每个目标类别都要训练一个二分类模型。在训练时,将需要识别出的类别的数据作为正例,其余数据为反例,这种训练方式被称为1-VS-Rest,也就是1对其余的策略。

        如果有N个目标类别,训练N个二分类模型,N个模型互相独立,互不干扰,同一个数据每个模型都需要计算一遍。另外对于不同的类别,也可以使用不同的二分类模型进行训练。例如可以使用逻辑回归、SVM、决策树这三种模型应用在同一个分类系统中,来识别不同的类别。

        基于1-VS-Rest策略的多分类,优势是可维护性高、随时可以增加新的类别模型,或者修改升级其中某个模型,都不会对其他已有模型产生影响。另外,分类结果是相互独立的,可以自由选择这些模型的组合方式,进而更有针对性的调试和优化。

2.softmax解决多分类问题

        构建softmax回归模型同时对所有类别进行识别,在softmax回归中包括两步。步骤一:输入一个样本的特征向量,输出多个线性预测结果。步骤二:将这个结果输入到softmax函数,softmax函数会将多个线性输出转换为每个类别的概率。softmax回归会基于输入x,计算o_1,o_2,o_3三个线性输出。可以将softmax回归看作是一个具有多个输出的单层神经网络。

三个目标类型:o_1,o_2,o_3        四个输入特征:x_{1},x_2,x_3,x_4

o_{1}=x_{1}w_{11}+x_{2}w_{12}+x_{3}w_{13}+x_{4}w_{14}+b_{1}

o_{2}=x_{1}w_{21}+x_{2}w_{22}+x_{3}w_{23}+x_{4}w_{24}+b_{2}

o_{3}=x_{1}w_{31}+x_{2}w_{32}+x_{3}w_{33}+x_{4}w_{34}+b_{3}

基于矩阵,计算线性输出o:

o=Wx+b

\begin{bmatrix} o_1\\ o_2\\ o_3 \end{bmatrix}=\begin{bmatrix} w_{11} &w_{12} &w_{13} &w_{14} \\ w_{21} &w_{22} &w_{23} &w_{24} \\ w_{31} &w_{32} &w_{33} &w_{34} \end{bmatrix}*\begin{bmatrix} x_1\\ x_2\\ x_3\\ x_4 \end{bmatrix}+\begin{bmatrix} b_1\\ b_2\\ b_3\\ b_4 \end{bmatrix}

通过softmax函数计算类别的概率

        计算出线性输出o后,将o输入到softmax函数,从而将线性输出o转换为每个类别的预测概率y. 设有n个输出o_1-o_n,第k个输出是o_k,它对应的类别概率是y_k

        y_k=\frac{\exp (o_k)}{\sum_{i=1}^{n}\exp (o_i)}=\frac{e^{o_k}}{e^{o_1}+e^{o_{2}}+...+e^{o_{n}}}

由此通过softmax函数将所有线性输出都转换为0-1之间的实数:y1,y2,...yn\in[0,1],输出的总和y1+y2+...+yn=1.

        softmax函数不会改变线性输出o之间的大小顺序,只会为每个类别分配相应的概率。它的优势在于模型简洁高效,只需要一次训练就可以同时识别所有类别的多分类模型。此外softmax回归也可以很好地处理类别之间的互斥问题,softmax函数可以确保预测结果总和为1。它也存在一些问题,在需要优化模型中的某个类别或者增加新的类别时,会影响到其他所有的类别,产生较高的评估与维护成本。

3.多分类中的交叉熵损失函数

        交叉熵误差:评估模型输出的概率分布和真实概率分布的差异,它有两种形式分别对应二分类与多分类问题,

        二分类问题:E=-[y*log(p)+(1-y)*log(1-p)]

        多分类问题:E=-\sum_{i=1}^{n}y_{i}*log(p_i)

        多分类问题中,如果每个类别之间的定义是互斥的,那么任何样本都只能被标记为一种类别。使用向量y表示样本的标记值,如果有n个类别,那么y就是一个n*1的列向量。向量中只有1个元素是1,其余元素都是0。多分类问题的交叉熵损失,只与真实类别对应的模型预测参数概率有关,因此第i个样本的误差为E^{(i)}=-\sum_{k=1}^{n}y_{k}^{(i)}log(p_{k}^{(i)})=-y_{k}^{(i)}log(p_{k}^{(i)})

y=\begin{bmatrix} 0\\ 1\\ 0\\ ...\\ 0 \end{bmatrix}_{n*1}

m个样本、n个类别的交叉熵误差:E=-\frac{1}{m}\sum_{i=1}^{m}\sum_{k=1}^{n}y_{k}^{(i)}log(p_{k}^{(i)})

y_{k}^{(i)}表示第i个样本第k个类别的真实标记、p_{k}^{(i)}表示第k个类别的模型预测概率

如果某样本被标记为第2个类别,那么第二个元素标记为1,其余为0.

y^{(i)}=\begin{bmatrix} 0\\ 1\\ 0\\ ...\\ 0 \end{bmatrix} ,

        在交叉熵损失函数中,只有真实类别对应的那一项会被计算在内,其他类别的项在计算求和中均为0,因此,即便模型对其他类别的预测概率不准确,但只要对真实类别的预测概率较高,损失函数的值仍然较低。 

4.softmax回归的数学原理

        softmax回归也被称为多项的逻辑回归,它可以看作是逻辑回归在多分类问题上的推广。

类别个数:n

类别标签:y\in{0,1,...n}

x:样本特征向量

w_{k}:第k个类别的权重

某样本属于类别k的概率:

p(y=k)=softmax(w_{k}x)=\frac{exp(w_{k}x)}{\sum_{i=1}^{n}exp(w_{i}x)}

softmax回归和逻辑回归的关系

        逻辑回归中使用sigmoid函数,sigmoid(z)=\frac{1}{1+e^{-z}},将线性输出z转化为一个概率,这个概率表示样本属于正例的可能性。在softmax中使用softmax函数将输出值z_{k}同样转化为概率softmax(z_{k})=\frac{e^{z_{k}}}{\sum_{i=1}^{n}e^{z_{i}}},这个概率表示样本属于第k个类别的可能性。当类别数为2时,逻辑回归和softmax回归的输出时等价的。

softmax回归中:

类别为0的概率:softmax(z_{0})=\frac{e^{z_{0}}}{e^{z_{0}}+e^{z_{1}}}

类别为1的概率:softmax(z_{1})=\frac{e^{z_{1}}}{e^{z_{0}}+e^{z_{1}}}

\frac{p(y=0)}{p(y=1)}=\frac{e^{z_{0}}}{e^{z_{1}}}=\frac{1-p(y=1)}{p(y=1)}

p(y=1)=\frac{e^{z_{1}}}{e^{z_{1}}+e^{z_{0}}}=\frac{1}{1+e^{z_{0}-z_{1}}}         

        将z0-z1看作一个整体-z,就得到逻辑回归的形式,所以在处理二分类问题时,softmax回归和逻辑回归实际上是完全等价的模型

梯度下降法求解softmax回归

        softmax回归模型的代价函数即交叉熵损失函数:

E=-\frac{1}{m}\sum_{i=1}^{m}\sum_{k=1}^{n}y_{k}^{(i)}log(p_{k}^{(i)})

        求E关于第k个类别中第j个特征权重偏导数:

E=\frac{\partial E}{\partial w_{kj}}=\frac{1}{m}\sum_{i=1}^{m}(p^{(i)}_{k}-y^{(i)}_k)*x^{(i)}_{j}

        梯度下降算法:

w^{new}_{kj}=w^{old}_{kj}-\alpha \frac{\partial E}{\partial w_{kj}}

        最终迭代:

w^{new}_{kj}=w^{old}_{kj}-\alpha\frac{1}{m}\sum_{i=1}^{m} (p^{(i)}_{k}-y^{(i)}_k)*x^{(i)}_{j}

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

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

相关文章

一篇文章入门docker!

文章目录 DockerUbuntu 下 docker 安装安装docker运行docker Docker的常用命令帮助命令镜像命令容器命令其他常用命令小结 分层理解一、Docker镜像的分层结构二、UnionFS与镜像分层三、镜像层的具体内容四、镜像分层的好处五、容器层与镜像层的关系 如何提交一个自己的镜像 Doc…

鸿蒙(Harmony)实现滑块验证码

在Android和ios两端已经使用的滑块验证码框架还未适配鸿蒙版,于是需要自己去实现类似如下的滑块验证码: 那么实现这样的验证码主要涉及到几个内容: 1、自定义弹窗 2、base64图片转换 3、滑动组件与滑块的联动,以及横移距离转换…

什么是嵌入式操作系统?

什么是嵌入式操作系统? 想象一下,如果一个智能设备,比如你口袋里的智能手机,是一个有头脑的机器人,那么嵌入式操作系统(Embedded Operating System,简称EOS)就相当于这个机器人的大脑。它告诉机…

后台管理系统窗体程序:评论管理

目录 评论管理的功能介绍: 1、进入页面 2、页面内的各种功能设计 (1)网页内的表格 (2)拒绝按钮,批准按钮 (3)删除按钮 (4)页面翻页跳转按钮 一、网页设计​…

nginx代理 proxy_pass

一、location 包含 location /api/ {proxy_pass http://127.0.0.1:85;} 二、location 不包含 location /api/ {proxy_pass http://127.0.0.1:85/;} 三、locaion 包含 location /api {proxy_pass http://127.0.0.1:85;}四、location 包含 location /api {proxy_pass http://127.…

InnoDB 存储引擎<七>通用表空间+临时表空间

目录 通⽤表空间 - General Tablespace 临时表空间 - Temporary Tablespaces 通⽤表空间 - General Tablespace 对应磁盘上的文件需要用户手动创建 1.通⽤表空间的作⽤和特性? 解答问题: 1.作用:可以把数据量比较小且强相关的表&#xff…

乐维网管平台(五):如何精准定位网络终端设备

在当今数字化高度发展的时代,网络已经成为企业和组织运营的关键基础设施。而在网络管理领域,终端定位技术正发挥着越来越重要的作用。 一、什么是终端定位 终端定位是网络管理中的关键环节,从本质上讲,它是一种精确确定网络终端…

企业邮箱后缀设置指南,轻松融入公司品牌

邮箱后缀指""后域名,本文介绍如何添加公司名作为后缀,以Zoho邮箱为例,需注册账号、购买域名、配置DNS、添加自定义域名、创建账号。Zoho邮箱安全可靠、个性化定制、易于管理,提供不同定价方案,并给出客户端配…

【D3.js in Action 3 精译_039】4.3 D3 面积图的绘制方法及其边界标签的添加

当前内容所在位置: 第四章 直线、曲线与弧线的绘制 ✔️ 4.1 坐标轴的创建(上篇) 4.1.1 D3 中的边距约定(中篇)4.1.2 坐标轴的生成(中篇) 4.1.2.1 比例尺的声明(中篇)4.1…

时序动作定位 | 基于层次结构潜在注意模型的弱监督动作定位(ICCV 2023)

<Weakly-Supervised Action Localization by Hierarchically-structured Latent Attention Modeling> 这篇文章的标题是《Weakly-Supervised Action Localization by Hierarchically-structured Latent Attention Modeling》,作者是Guiqin Wang等人,来自西安交通大学和…

华为交换机Vlan划分

华为交换机Vlan划分 Tip&#xff1a;一个广播域划分vlan达到隔离广播目的且不能互访。 一个广播域划分子网掩码也可以不能互访&#xff0c;但是还是在一个广播域&#xff0c;还是会发生广播风暴。 本次实验模拟交换机不同端口划分不同vlan达到隔绝广播风暴效果。 pc1 pc2分配…

[linux]docker快速入门

安装 docker官网: CentOS | Docker Docs 准备工作: 准备ConstOS7的虚拟机环境账密: root/root飞书文档: Docs 卸载旧版本 // 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest…

vue echarts左右间距调整 左右空白

咱就说这样的左右间距丑不丑。。 经过调整后&#xff0c;嗯&#xff0c;好看了很多。页面也协调多了&#xff01; 直接上代码&#xff1a;添加以下配置数据&#xff1a; grid: {x: 50,y: 25,x2: 30,y2: 35 }, this.chart.setOption({width: 100%,xAxis: {show: false,type: ca…

内置函数【MySQL】

文章目录 日期函数字符串函数数学函数其他函数 日期函数 current_date函数用于获取当前的日期 mysql> select current_date(); ---------------- | current_date() | ---------------- | 2024-11-03 | ---------------- 1 row in set (0.00 sec)current_time函数用于获…

软件设计师-上午题-14 信息安全(5分)

信息安全题号一般为7-9或10-11题&#xff0c;分值一般为5分。 目录 1 防火墙 1.1 真题 2 病毒 2.1 真题 3 网络攻击 3.1 真题 4 网络安全 4.1 真题 5 杂题选讲 1 防火墙 1.1 真题 1.2009年下半年第8题 2.2013年上半年第8题 3.2014年上半年第8题 4.2011年上半年第9题…

移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (9) - 编译现有的AWTK应用程序

AWTK 应用程序开发完成后&#xff0c;在配置文件中添加 harmonyos 的选项&#xff0c;通过create_project.py脚本即可生成 DevEco Studio的工程。 安装开发环境 DevEco Studio HarmonyOS 的开发工具。 Python 运行环境。 git 源码管理工具。 下载 awtk 和 awtk-harmonyos…

如何创建备份设备以简化 SQL Server 备份过程?

SQL Server 中的备份设备是什么&#xff1f; 在 SQL Server 中&#xff0c;备份设备是用于存储备份数据的物理或逻辑介质。备份设备可以是文件、设备或其他存储介质。主要类型包括&#xff1a; 文件备份设备&#xff1a;通常是本地文件系统中的一个或多个文件。可以是 .bak 文…

Dependency: androidx.webkit:webkit:1.11.0-alpha02. 问题

android studio 打包后出现这个问题 1.步骤更新topOn sdk 添加 //Admob api “com.anythink.sdk:adapter-admob:6.4.18” api “com.google.android.gms:play-services-ads:23.4.0” api "com.google.android.gms:play-services-ads:23.4.0"sdk 中会出现打包编译报错…

ubuntu 20.04 NVIDIA驱动、cuda、cuDNN安装

1. NVIDIA驱动 系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改。该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动。 运行nvidia-smi: NVIDIA-SMI has failed because it couldnt communicate with the NVIDIA driver. Make sure that the lat…

SpringBoot监控

1、Spring Boot Actuator 监控 Spring Boot Actuator 可以帮助监控和管理 Spring Boot 应用&#xff0c;比如健康检查、审计、统计和 HTTP 追踪等。所有的这些特性可以通过 JMX 或者 HTTP endpoints 来获得。 1、Actuator 监控应用程序 启用 Actuator 的端点&#xff0c;只要…