sheng的学习笔记-AI-多分类学习:ECOC,softmax

news2024/10/7 4:29:08

目录:sheng的学习笔记-AI目录-CSDN博客

基本术语:

若我们欲预测的是离散值,例如“好瓜”“坏瓜”,此类学习任务称为“分类”(classification);

若欲预测的是连续值,例如西瓜成熟度0.95、0.37,此类学习任务称为“回归”(regression)。

只涉及两个类别的“二分类”(binary classification)任务,通常称其中一个类为“正类”(positive class),另一个类为“反类”(negative class);

涉及多个类别时,则称为“多分类”(multi-class classification)任务。比如跟进图片判断图片中的水果是 苹果,梨,西瓜

多分类学习模型

现实中常遇到多分类学习任务。有些二分类学习方法可直接推广到多分类,但在更多情形下,我们是基于一些基本策略,利用二分类学习器来解决多分类问题

通常称分类学习器为“分类器”(classifier)。

考虑N个类别C1,C2,...,CN,多分类学习的基本思路是“拆解法”,即将多分类任务拆为若干个二分类任务求解。

具体来说,先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器;在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。这里的关键是如何对多分类任务进行拆分,以及如何对多个分类器进行集成。

OvR

OvR亦称OvA(One vs.All)。最经典的拆分策略有三种:“一对一”(One vs.One,简称OvO)、“一对其余”(One vs.Rest,简称OvR)和“多对多”(Many vs.Many,简称MvM)

OvO

“一对一”(One vs.One,简称OvO)

给定数据集D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{C1,C2,...,CN}。OvO将这N个类别两两配对,从而产生N(N-1)/2个二分类任务,例如OvO将为区分类别Ci和Cj训练一个分类器,该分类器把D中的Ci类样例作为正例,Cj类样例作为反例。在测试阶段,新样本将同时提交给所有分类器,于是我们将得到N(N-1)/2个分类结果,最终结果可通过投票产生:即把被预测得最多的类别作为最终分类结果

OvR

“一对其余”(One vs.Rest,简称OvR),OvR则是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器。在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果,如图3.4所示。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。说白了,如果c1,c2都是+,但c1的预测结果是0.6,c2的预测结果是0.8,那就选c2

OvO和OvR对比

OvR只需训练N个分类器,而OvO需训练N(N-1)/2个分类器,因此,OvO的存储开销和测试时间开销通常比OvR更大。但在训练时,OvR的每个分类器均使用全部训练样例,而OvO的每个分类器仅用到两个类的样例,因此,在类别很多时,OvO的训练时间开销通常比OvR更小。至于预测性能,则取决于具体的数据分布,在多数情形下两者差不多

MvM

“多对多”(Many vs.Many,简称MvM)MvM是每次将若干个类作为正类,若干个其他类作为反类。显然,OvO和OvR是MvM的特例。MvM的正、反类构造必须有特殊的设计,不能随意选取。

ECOC(一种MvM的方法)

Error Correcting Output Codes,简称ECOC,

ECOC[Dietterich and Bakiri,1995]是将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性。ECOC工作过程主要分为两步:

编码:

对N个类别做M次划分,每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集;这样一共产生M个训练集,训练出M个分类器。

解码:

M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。类别划分通过“编码矩阵”(coding matrix)指定。

编码矩阵有多种形式,常见的主要有二元码[Dietterich and Bakiri,1995]和三元码[Allwein et al.,2000]。前者将每个类别分别指定为正类和反类,后者在正、反类之外,还可指定“停用类”。下图中a,分类器f2将C1类和C3类的样例作为正例,C2类和C4类的样例作为反例;

在图b中,分类器f4将C1类和C4类的样例作为正例,C3类的样例作为反例。在解码阶段,各分类器的预测结果联合起来形成了测试示例的编码,该编码与各类所对应的编码进行比较,将距离最小的编码所对应的类别作为预测结果。例如在图3.5(a)中,若基于欧氏距离,预测结果将是C3。

示意图

原理

测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力。例如图3.5(a)中对测试示例的正确预测编码是(-1,+1,+1,-1,+1),假设在预测时某个分类器出错了,例如f2出错从而导致了错误编码(-1,-1,+1,-1,+1),但基于这个编码仍能产生正确的最终分类结果C3。

一般来说,对同一个学习任务,ECOC编码越长,纠错能力越强。然而,编码越长,意味着所需训练的分类器越多,计算、存储开销都会增大;另一方面,对有限类别数,可能的组合数目是有限的,码长超过一定范围后就失去了意义。对同等长度的编码,理论上来说,任意两个类别之间的编码距离越远,则纠错能力越强。因此,在码长较小时可根据这个原则计算出理论最优编码。然而,码长稍大一些就难以有效地确定最优编码,事实上这是NP难问题。不过,通常我们并不需获得理论最优编码,因为非最优编码在实践中往往已能产生足够好的分类器。另一方面,并不是编码的理论性质越好,分类性能就越好

Softmax回归(Softmax regression)

Softmax回归(Softmax regression),也称为多项(Multinomial)或多类(Multi-Class)的Logistic回归,是Logistic回归在多分类问题上的推广。

假设你想识别猫,狗和小鸡,把猫加做类1,狗为类2,小鸡是类3,如果不属于以上任何一类,叫做类0。

这里显示的图片及其对应的分类就是一个例子,这幅图片上是一只小鸡,所以是类3,猫是类1,狗是类2,我猜这是一只考拉,那就是类0,下一个类3,以此类推。

softmax回归有个特别的地方:

个激活函数 需要输入一个4×1维向量,然后输出一个4×1维向量。之前,我们的激活函数都是接受单行数值输入,例如SigmoidReLu激活函数,输入一个实数,输出一个实数。Softmax激活函数的特殊之处在于,因为需要将所有可能的输出归一化,就需要输入一个向量,最后输出一个向量。

一般在多分类的输出层用softmax函数,但在训练过程中,一般用ReLu或Sigmoid

公式

在L层,在公式 z = wx + b中,假设得到结果z,设一个变量t,如下图

最后的公式是,注意,这四个值加起来等于1

在最后输出就是第一个值,最大的0.842

整体架构图:

参考资料:

书:机器学习 周志华。俗称西瓜书

吴恩达的深度学习

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

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

相关文章

HNU-计算机网络-甘晴void学习感悟

前言 计算机网络其实我没太学懂, 仅从应试来说,考试成绩也不太好。 这也是为什么一直没有更新这一学科的学习感悟。 大三下还是有点闲,一周三天小长假,闲来无事还是给写了。 教材使用这本: 总领 期中考试 30% 期…

排序——希尔排序、插入排序

本节复习排序中的希尔排序,希尔排序属于插入排序。 希尔排序的代码和插入排序非常类似。 思想却相对于插入排序来说复杂。 在复习希尔排序之前, 我们需要先复习一下插入排序。 目录 插入排序 插入过程 代码实现 希尔排序 希尔排序的思想 代码实…

#onenet网络请求http(GET,POST)

参考博文: POST: https://blog.csdn.net/qq_43350239/article/details/104361153 POST请求(用串口助手测试): POST /devices/1105985351/datapoints HTTP/1.1 api-key:AdbrV5kCRsKsRCfjboYOCVcF9FY Host:api.heclouds.com Con…

C++自创题目——几点了 very hard ver.

题目难度 普及 题目描述 一个老外用一口不流利的中文问你:“Xian zai ji dian le?”你看了一眼表,知道了现在是,你准备用这样的形式写在纸上: Now is m past/to h. 如果你看不懂,举个例子: 当h10&#…

python基础10_转义类型转换

这篇博客我们来学一下转义字符 首先什么是转义字符呢? 转义字符就是在编程中用于表示一些特殊的字符,比如说换行,在字符串中,需要换行吧,然后是不是有些时候还要在字符串中按tab键, 或者是enter键, 或者是引号,这些都是特殊字符,然后就是通过转义.把这些从普通字符转成具有特…

力扣面试经典150 —— 11-15题

力扣面试经典150题在 VScode 中安装 LeetCode 插件即可使用 VScode 刷题,安装 Debug LeetCode 插件可以免费 debug本文使用 python 语言解题,文中 “数组” 通常指 python 列表;文中 “指针” 通常指 python 列表索引 文章目录 11. [中等] H指…

哪里可以下载动态短视频素材?短视频素材资源下载网站有哪些?

嘿,朋友们!做短视频的时候,找到那些既有范儿又不会被告侵权的素材简直就是一项技术活。不过别担心,我这就给你们揭秘几个下载动态短视频素材的神秘网站,让你的短视频创作事半功倍! 1,蛙学府资源…

ROS——VirtualBox下载

下载&安装Virtualbox Oracle VM VirtualBox 根据电脑系统版本下载。 注意:前提是电脑cpu要开启虚拟化 根据自己的需求下载 双击开始安装 浏览可以更改下载位置,默认在C盘 然后一直点,是或下一步就好了 下载拓展包 后续需要连接使…

直击现场 | 人大金仓携手中国大地保险上线核心超A系统

2023年底 中国大地保险 卡园三路59号办公室里 一群技术精英们正忙碌着 他们的眼中 闪烁着对即将到来的胜利的期待 这是大地保险超A系统 项目上线的关键时刻 也是通过科技创新 引领行业服务新趋势的一场征程 项目现场 #1 一次颠覆 改变传统保险服务模式 超A平台,是由…

房屋租赁系统|基于 Mysql+Java+JSP技术的房屋租赁系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

目录 文末获取源码 前台首页功能 管理员功能 租户功能 房屋租赁系统结构图 数据库设计 lunwen参考 概述 源码获取 文末获取源码 前台首页功能 管理员功能 租户功能 房屋租赁系统结构图 数据库设计 lunwen参考 概述 随着科学技术的飞速发展,社会的方方面面…

Spring Boot搭建入门

Spring Boot简介 Spring Boot是对Spring进行的高度封装,是对Spring应用开发的高度简化版,是Spring技术栈的综合整合,是J2EE的一站式解决方案。想要精通Spring Boot的前提是需要熟悉Spring整套技术栈原理与内容。 Spring Boot的优点&#xf…

HTML—基本介绍

HTML是一种超文本标记语言(HyperText Markup Language),用于创建网页的标记语言超文本:是指页面内可以包含图片、链接、声音、视频等内容标记:HTML富含大量的标签供程序员使用,通过标记符号来规定指定内容的样式 浏览器最终根据不…

2024/3/8打卡石子合并---区间动态规划问题

目录 题目: DP分析: 代码: 题目: 设有 N 堆石子排成一排,其编号为 1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆&am…

指针(一)

指针(一) 文章目录 前言1、内存和地址1.1.内存1.2 究竟该如何理解编制 2、指针变量和地址2.1取地址符操作符(&)2.2 指针变量和解引⽤操作符(*)2.2.1 指针变量2.2.2 如何拆解指针类型2.2.3 解引⽤操作符…

Android Studio编译及调试知识

文章目录 Android Studio编译kotlin项目Android Studio编译Java和kotlin混合项目的过程gradle打印详细错误信息,类似这种工具的使用Android apk 从你的代码到APK打包的过程,APK安装到你的Android手机上的过程,最后安装好的形态,以…

20-Java备忘录模式 ( Memento Pattern )

Java备忘录模式 摘要实现范例 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象 备忘录模式属于行为型模式 摘要 1. 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对…

Win11 没有网络bug

1.问题描述 没有网络,dns一直是固定的,但是dns已经是自动获取了(MAC地址随机) 2.解决办法 1.首先,删除所有网络的手动dns配置,控制中心那个dns管理没有用,在设置中删除网络,不然问题还会出现 - 2.然后,进入注册表\HKEY_LOCAL_MACH…

第五十三回 入云龙斗法破高廉 黑旋风下井救柴进-AI训练数据处理和读取

罗真人教了公孙胜五雷天罡正法,并让他记住“逢幽而止,遇汴而环”八个字。三人辞别了罗真人,戴宗先回去报信,李逵和公孙胜结伴而行。 走了三天,来到了武冈镇,李逵碰到一个铁匠,叫金钱豹子汤隆&a…

docker学习进阶

一、dockerfile解析 官方文档: Dockerfile reference | Docker Docs 1.1、dockfile是什么? dockerfile是用来构建docker镜像的文本文件,由一条条构建镜像所需的指令和参数构成的脚本。 之前我们介绍过通过具体容器反射构建镜像(docker comm…

【硬件工程师面经整理24_其它】

文章目录 1 功放线性指标调试方法2 功放线性指标之间的关系3 光衰减器的原理4 材料硬度由什么决定?5 晶振市场失效率?6 原码、反码和补码 1 功放线性指标调试方法 调试功放线性指标的方法可以根据具体的情况和要求而有所不同,以下是一般性的…