首页 > 其他分享 >机器学习(2)

机器学习(2)

时间:2024-10-18 21:58:48浏览次数:3  
标签:分类器 机器 梯度 分类 学习 超平面 类别 数据

线性分类(LinearClassification)

线性可分性(Linear Separability)

线性可分性是指在一个特征空间中,能够用一个 超平面 将不同类别的数据点完全分开。换句话说,如果存在一个 线性函数(通常是一个线性方程或线性组合),能够将两类数据点划分为两侧,则这些数据被称为线性可分

1

  • 超平面

    • 在二维空间中,超平面是一个线段
    • 在三维空间中,它是一个平面
    • 在更高维空间中,超平面是一个维度减一的空间

    超平面可以用线性方程表示,如 w⋅x+b=0,其中 w 是权重向量,x 是特征向量,b 是偏置项

  • 线性可分

    如果存在这样的超平面,使得所有属于类A的数据点位于超平面的一侧,而所有属于类B的数据点位于另一侧,则称这两类数据是线性可分的

  • 线性不可分

    如果无法用一个超平面将两类数据完全分开,那么这些数据被称为线性不可分。此时,可能需要使用更复杂的模型,例如非线性分类器(如支持向量机的核方法、神经网络等)

二分类(Binary Classification)

目的是将输入数据分为 两个类别(一般是0和1)

它通常用于解决具有 两个明确标签的问题,例如

  • 是/否
  • 正/负
  • 成功/失败

线性分类器(Linear Classifier)

是一种用于分类任务的 机器学习模型,它通过线性组合特征来进行决策。线性分类器的核心思想是通过一个 超平面 将不同类别的数据点划分开

支持向量机(Support Vector Machine)

支持向量机的意思就是让支持向量和超平面之间的间隔尽可能的大

支持向量 (Support Vector)

支持向量指的是在训练数据集中,距离决策边界最近 的样本点。这些样本点对模型的决策边界有 直接影响

最大间隔解(Maximum Margin Solution)

这里有多种划分解,但是那种更好呢?如何评估。就是用 间隔 来衡量的
2

最大间隔的计算

3

最大间隔分类器(Maximum Margin Classifier)

在支持向量机中,最大间隔分类器的目标是找到一个超平面,该超平面将不同类别的数据点分开,并且使得两类之间的间隔(margin)最大化。间隔是指到最近的数据点(支持向量)到超平面的距离

什么是稳定性(Stability)与扰动(Perturbations)

  • 扰动:指的是输入数据的微小变化或噪声

  • 稳定性:指模型对输入数据变化的敏感程度。一个稳定的模型在面对输入的小变化时,输出的变化应该是小的

最大间隔的稳定性

最大间隔解之所以被认为对输入扰动最稳定,原因如下:

  • 较大的间隔:最大间隔分类器在分类时有较大的安全区域(即间隔),这意味着即使 某些数据点受到小的扰动,它们仍然可能落在正确的分类区域内 。因此,模型的决策边界不会因为输入的轻微变化而发生显著改变

  • 支持向量的重要性:只有 距离决策边界最近的支持向量对模型的决策有直接影响 ,而其它远离边界的数据点不太会影响分类决策。因此,模型对输入扰动的健壮性提高

优化问题

让 ||w|| 最小即可
5

考虑到一些异常值可能会影响超平面的选择,所以提供了一个超参数C
6

以下是更详细的解释
7

梯度下降(Gradient Descent)

批量梯度下降

在批量梯度下降中,我们计算 整个数据集的平均梯度,然后 一次性更新 所有参数。这能确保每次参数更新时都考虑了整个数据集的信息,但缺点是 计算量很大,尤其当数据集非常庞大时

8

这里就是用梯度下降的去解决支持向量机中的优化问题(就是那个最小化的问题)

计算次梯度

当我们处理不可微的函数(如绝对值函数、分段线性函数等)时,传统的梯度下降算法无法使用,因为这些函数在某些点可能没有定义明确的梯度。在这种情况下,次梯度为我们提供了一个替代方案

10

损失函数的比较

9

随机梯度下降(Stochastic Gradient Descent)

SGD的关键点是:每次更新参数时,仅使用 一个样本的数据来计算梯度并更新参数

SGD步骤

14

11

SGD优缺点

  • 优点

    • 计算效率高:每次只用一个样本,更新速度快,适合大规模数据
    • 能跳出局部最优:由于每次使用一个样本,更新方向会有更多的波动,这种随机性有助于避免陷入局部最优,找到全局最优解
  • 缺点

    • 噪声较大:每次更新只考虑一个样本,更新过程 波动较大,可能导致收敛速度较慢,甚至在最优解附近 震荡
    • 不稳定:由于梯度计算不完全基于全体数据,SGD可能会在最优解附近不稳定

改进SGD

为了提高SGD的收敛性和稳定性:

  • 学习率衰减:随着训练进行,逐渐降低学习率,以便更精细地调整参数
  • 动量:使用过去梯度的加权平均值,来平滑参数更新过程,减少震荡

小批量随机梯度下降(Mini-Batch Stochastic Gradient Descent)

其实就是BGD和SGD的综合版本

小批量随机梯度下降在每次更新参数时使用一个 小的样本集合(即小批量),而不是单个样本或整个数据集。小批量的大小通常是一个超参数,常见的选择包括32、64或128等

步骤

15

12

优缺点

  • 计算效率:比批量梯度下降快,因为每次只计算小批量的梯度
  • 稳定性:比SGD更稳定,因为小批量平均了多个样本的梯度,减少了噪声
  • 并行处理:小批量使得计算可以更容易并行化,提高训练速度

多类别分类(Multi-class Classification)

转换为二分类(Convert to Binary Classification)

将多类别分类问题转换为二分类问题。二分类任务的目标是将数据点分为两个类别

  • 一对多(One-vs-Rest, OvR)

    对于 每个 类别,训练一个二分类模型,区分该类别和所有其他类别

    例如,如果有三个类别 A、B 和 C,模型将分别训练 A vs. (B+C)、B vs. (A+C) 和 C vs. (A+B)

  • 一对一(One-vs-One, OvO)

    对于 每对 类别训练一个二分类模型

    例如,对于三个类别 A、B 和 C,将训练 A vs. B、A vs. C 和 B vs. C 的模型

从二分类扩展(Extend from Binary Classification)

从已有的二分类模型或方法扩展到处理多类别分类问题

在二分类模型的基础上,通过采用上述的一对多或一对一策略来实现多类别分类

例如 KNN算法

KNN

  • 计算距离

KNN 的第一步是计算待分类对象(测试对象)与训练集中的每个对象之间的距离。常用的距离度量包括:

  • 欧几里得距离(Euclidean Distance):最常用的距离计算方式,适用于连续数据

    21

  • 曼哈顿距离(Manhattan Distance):也称为城市街区距离,适用于高维空间

    22

  • 找到邻居
    计算完距离后,KNN 会根据距离的大小选择最近的 K 个训练对象作为邻居。K 的选择非常重要:

    • 小的 K 值:可能会导致对噪声过于敏感,容易出现过拟合
    • 大的 K 值:可能会导致信息的平滑处理,降低模型的灵活性,容易出现欠拟合
  • 投票标签

一旦找到了 K 个邻居,KNN 会根据这 K 个邻居的标签进行投票,选择出现频率最高的标签作为测试对象的预测类别。如果是回归问题,则取邻居的平均值作为预测值

  • 总结

    KNN 算法简单易于理解,且无需模型训练,但它的计算量较大,尤其是在处理大型数据集时。KNN 对数据的分布和邻居的选择非常敏感,因此在实际应用中,通常需要对数据进行适当的标准化或归一化处理

层次分类(Hierarchical Classification)

在具有层次结构的类别体系中进行分类,类别之间的关系呈现出层级结构

使用 Label tree,通过将输出空间(即所有可能的类别标签)划分成一个树状结构来实现分类

  • 叶子节点只包含单一类别:每个叶子节点代表一个明确的类别,确保分类结果的清晰性

  • 父节点划分为多个聚类:每个父节点根据其子类被分成多个子节点,每个子节点对应一个特定的类别。

  • 在每个节点上训练简单分类器:每个节点训练一个简单的分类器来区分不同的子类,从而提高分类的准确性和效率

20

标签:分类器,机器,梯度,分类,学习,超平面,类别,数据
From: https://www.cnblogs.com/dylaris/p/18474210

相关文章

  • 视频编解码学习资料
    视频编解码学习资料一.包括H264/AVC官方提案网站,JM参考软件以及学习书籍和paper1.1H264spec(白皮书)下载网址:https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=131891.2H264视频编码标准提案下载网址:https://www.itu.int/wftp3/av-arch/jvt-site/1.3H264参......
  • RabbitMQ系列学习笔记(八)--发布订阅模式
    文章目录一、发布订阅模式原理二、发布订阅模式实战1、消费者代码2、生产者代码3、查看运行结果本文参考:尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件rabbitmqRabbitMQ详解Centos7环境安装Erlang、RabbitMQ详细过程(配图)一、发布订阅模式原理在开发过程中,有一......
  • RabbitMQ系列学习笔记(十)--通配符模式
    文章目录一、通配符模式原理二、通配符模式实战1、消费者代码2、生产者代码3、查看运行结果本文参考:尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件rabbitmqRabbitMQ详解Centos7环境安装Erlang、RabbitMQ详细过程(配图)一、通配符模式原理通配符模式(Topics)是在路......
  • C库函数 memset 学习
    见代码(很久以前的):本人实力不济,如有错误或建议及补充,请指出(评论或私信都行)/*码风很丑,见谅可用于数组之间的赋值,节省代码量*/#include<stdio.h>#include<stdlib.h>#include<string.h>#definem0(x)memset(x,0,sizeof(x))intmin(intx,inty){if(x<y)returnx......
  • 机器学习中的海量数据查找—倒排索引查找
    原文链接:机器学习中的海量数据查找—倒排索引查找–每天进步一点点(longkui.site)索引是一种用于数据快速查找的数据结构,哈希表、二分查找、分块查找也可以视为一种索引,这类索引的价值在于在较短的时间内获得最相关、最全、最深的数据集合。在通常使用的索引中,大多是基于顺序......
  • [学习笔记] Minimax 算法和 Alpha-Beta 剪枝
    题目引入在博弈论中,有这样一类题目:两个玩家A、B轮流行动,A先手,B后手。有一个结果,A想要使它最大,B想要使它最小。Minimax算法把每个状态作为一个点,每个转移作为一条边建出一棵树。这棵树好像叫博弈树。两种实现(都没有真正地建树):直接搜索(可能有结点被重复经过)记忆化......
  • ROS个人学习记录(跟随教程【Autolabor初级教程】ROS机器人入门:https://www.bilibili.co
    参考文档:http://www.autolabor.com.cn/book/ROSTutorials/index.html1.5ROS架构1.5.1ROS文件系统ROS文件系统级指的是在硬盘上ROS源代码的组织形式,其结构大致可以如下图所示:WorkSpace---自定义的工作空间|---build:编译空间,用于存放CMake和catkin的缓存信息、配置......
  • 库卡KUKA机器人KRC2示教器维修常见方法
    库卡KUKA机器人以稳定性而备受赞誉。作为其重要组成部分,KRC2示教器在机器人的编程、监控和调试过程中发挥着至关重要的作用。然而,就像其他任何电子设备一样,KRC2示教器在长期使用过程中也可能会遇到一些故障。本文将探讨库卡KUKA机器人KRC2示教器维修的常见方法,帮助用户更好地维护......
  • 学有感 - 学习外语的关键不是记性
    原文大意学习材料链接:【【语言学习】不要依赖记忆(史蒂夫最伟大的秘诀)-哔哩哔哩】https://b23.tv/W1DUIhr作者是斯蒂夫·考夫曼(SteveKaufmann)是一位很厉害的多语言学习者,掌握二十多门语言,其中精通的有十多门。他生于1945年,目前还在学习新的语言。大家好,我是Steve·Ka......
  • MSP430学习记录(1)一种简便的MSP430Ware安装方法
    目前在学习MSP430,用的具体型号是MSP430FR2476。现在是刚起步,以前从来没有学过,希望自己能够快速上手。---------------------------分割线---------------------------今天主要是安装了一下CCS,用的是11版本。看网上说是在TI官网下载例程,找倒是很好找,但是不好下载...为啥呢?它......