当前位置: 首页 > news >正文

【学习笔记】Day 20

一、进度概述

        1、机器学习常识12-18,以及相关代码复现

二、详情

12、SVM(support vector machines,支持向量机)

        实际上,支持向量机是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。
        关于例子与基本方案的说明,这篇文章所提及的例题有助于理解:
机器学习常识 12: SVM_svm数据线性分类图-CSDN博客
        需要注意的是,对于上一个链接中的基本方案,表明了 SVM 的核心思想就是最大间隔化。
        关于核函数,其使用动机可能如下:

        映射可以看作是一种拉伸,把低维数据拉伸到了高维。虽然现在我们到了高维空间号称线性可分,但是有几个困难:

  • 不知道什么样的映射函数是完美的。
  • 难以在各种映射函数中找到一个合适的。
  • 高维空间计算量比较大。这样就会产生维灾难,计算内积是不现实的。

        幸运的是,在计算中发现,我们需要的只是两个向量在新的映射空间中的内积结果,而映射函数到底是怎么样的其实并不需要知道。于是这样就引入了核函数的概念。
核函数事先在低维上计算,而将实质上的分类效果表现在了高维上,也就是

  • 包含映射,内积,相似度的逻辑。
  • 消除掉把低维向量往高维映射的过程。
  • 避免了直接在高维空间内的复杂计算。

        即核函数除了能够完成特征映射,而且还能把特征映射之后的内积结果直接返回。即把高维空间得内积运算转化为低维空间的核函数计算。

        核函数相当于一种映射,可以将原本不可线性分割的数据转化到另一个维度,实现线性分割(如典型的圆分布)。上文链接中提到的那个不忍直视的例子,虽然很不忍直视,但确实挺生动形象的。
        对于软间隔,可以理解为针对极端数据的一种处理方法,如下文中那个跑到红点中去的蓝点,具体介绍如下:
SVM学习笔记(二)——软间隔(soft-margin)_soft-margin linear svm-CSDN博客
        关于代码实现,参考了以下文章中鸢尾花的实战:
        机器学习之支持向量机(SVM)-CSDN博客

13、PCA(principal component analysis, 主成分分析)

        这个在线性回归分析中有讲过,现回去复习复习,同时也给出几个讲的挺好的文章链接。
        降维算法之PCA:从原理到应用,8000多字,助你彻底理解!_pca降维-CSDN博客
        PCA(主成分分析方法)-CSDN博客
        其实 PCA 的数学基础十分厚实,但是在数据处理中一般只是用于预处理。
        从数学角度来讲这是因为(1)主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。(2)方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
        对于机器学习的角度,则是 PCA 是一个无监督模型,不一定适用于有监督数据。
        这里关于特征选择和特征提取的例子中就能感受到一定程度上的缺陷。

        特征选择是指从已有的特征里面选择出一个子集. 例如: 身高、体重、性别、年龄、体温、血相等等, 如果要一个人是否患流感,身高、体重等不但没有作用, 反而还会让分类器效果变差. 回头想想  kNN, 在计算距离时考虑一些不相关的特征, 会使得相似的样本变得不相似.
        特征提取则是指从已有特征中生成新的特征. 例如: 人们常说自己有多重, 然后表达想减肥的意愿. 但这种想法是错误的, 应该从身高和体重计算 BMI, 以此确定自己是否偏胖. 这里 “从计算 BMI”, 就是一个特征提取的过程.
        总的来说, 特征选择相对简单, 而特征提取有很大的相像空间. 后面将会介绍的神经网络, 其最本质的任务就是特征提取.

14、半监督学习

        基本概念
        (1)监督学习: 训练数据都有标签, 相应的任务为分类、回归等.
        (2)无监督学习:训练数据都没有标签, 相应的任务为聚类、特征提取 (如 PCA) 等.
        (3)半监督学习:部分训练数据没有标签, 相应任务与监督学习一致.
        从三者的关系可以看出, 半监督学习是从监督学习与无监督学习自然推导出来的.
        对于学习场景的理解,除了文中举得十分形象的例子外,以下链接中的讲解也十分不错。

半监督学习的一大意义在于, 它导出了学习场景这个概念.

  • 上午来了 100 个就诊者, 主治医生啥也没说, 实习生自悟, 把他们分成几个簇, 并且无法解释每簇的语义 (是否患病之类), 这是无监督学习场景中的聚类问题.
  • 上午来了 100 个就诊者, 主治医生对每个人判断, 哪些患流感 (正例), 哪些没有 (负例). 实习生学习到流感的诊断方法. 下午来了新的就诊者, 实习生对他们进行诊断. 这是监督学习场景中的二分类问题.
  • 上午来了 100 个就诊者, 主治医生对其中的 40 个人判断, 哪些患流感 (正例), 哪些没有 (负例). 实习生对剩下的 60 人进行诊断. 这是封闭世界半监督学习场景中的二分类问题.
  • 上午来了 100 个就诊者, 主治医生对其中的 40 个人判断, 哪些患流感 (正例), 哪些没有 (负例). 下午来了新的就诊者, 实习生对他们进行诊断. 这是开放世界半监督学习场景中的二分类问题.

        关于学习场景的理论讲解:机器学习:监督学习、无监督学习、半监督学习、强化学习-CSDN博客
        关于常见半监督学习模型的讲解:一文看遍半监督学习模型(Semi-Supervised Learning)_effective self-training for parsing-CSDN博客

15、主动学习

        主动学习的提出,其关键是如何更低成本的获得更多高质量的标签。

        机器学习主要研究计算机如何利用经验数据提高自身性能。在监督学习中,数据的质量和数量直接决定模型的性能高低,监督学习不仅要求数据全部是标记好的,并且需要大量的数据,然而人工标注大量数据需要耗费巨大的时间和精力,一个更合理的方案是挑选一部分数据进行标注,这就要提到机器学习中的主动学习。

        实际上,不同数据样本对于学习模型的贡献度不一样,过多的低质量数据反而会降低模型的鲁棒性,如果我们能够选取一部分最有价值的数据进行标注,就有可能仅基于少量数据就能获得同样高效的模型。实现这一目标的关键在于,如何选择出最有价值的数据样本并去获取它们的标记信息。

        主动学习地目的是通过标记少量的数据训练处表现较好的模型。其核心任务是制定选择样本的标准,从而选择尽可能少的样本进行标注来选出一个好的学习模型。

        关于主动学习更细节上的讲解,可以参考这几篇文章:
        超详细的主动学习Active Learning介绍【理论+代码】-CSDN博客
        主动学习(Active Learning)概述及最新研究
        从主动学习的提出我们可以发现,其核心问题在于 “哪些样本的标签更有价值?”

  • 代表性强的样本. 把数据进行聚类, 聚类中心的样本具有良好的代表性. 其它样本很可能与它有相同的标签. 用这种思想可以设计出"基于聚类的主动学习方法".
  • 不确定性强的样本. 有些样本有墙头草的潜质, 难于界定正负. 如果知道它们的标签, 就可以使用 SVM 进行分类, 相应地, 这次样本可能成为支撑向量 (support vector). 

16、代价敏感学习

        引入代价敏感学习,其意义在于使得模型与现实更加相符合。

代价是基础数据, 与应用有紧密联系.

  • 测试代价. 很多数据不是免费的, 如体检时, 测血常规花 20 2020 元, 心电图花 15 1515 元, B 超花 200 200200 元. 这些代价被称为测试代价 (test cost).
  • 标记代价. 在主动学习场景下, 请专家给数据打标签需要付钱, 如每个标签花费 100 元. 这被称为标记代价 (label cost).
  • 误分类代价. 将患有流感的病人叫回家, 医院要赔偿 10 , 000 10,00010,000 元, 即 c (FN) = 10 , 000 c(FN) = 10,000c(FN)=10,000; 将没有流感的就诊者留着住院治疗, 医院要赔偿 500 500500 元, 即 c (FP) = 500 c(FP) = 500c(FP)=500. 相应地, 可以给出一个误分类代价矩阵.
  • 延迟代价. 不清楚就诊者是否患病, 让其留院观察, 就诊者的误工开销为 200 200200 元.

        对于代价敏感学习,需要注意的两点是:

  • 代价作为基础数据, 都应该事先给出, 要么专家给出, 要么制度给出. 它们必须是输入, 而绝不会是输出 (被机器学习出来). 这是常识.
  • 代价敏感学习的优化目标必须由代价定义, 而不应该是准确率之类.

        同时也补充关于代价敏感错误率的相关知识:误分类代价与类不均衡数据-CSDN博客
        这个例子在线性回归分析中着重讲过好几次,其实第一二类错误有着其在具体问题下的现实意义,在考虑实际中的预测时是需要考虑到这点的。

17、多标签学习

        多标签在我们的生活中是十分常见的,最典型的包括影视作品的分类(比如科幻、动作等)。多标签学习所主要应对的问题有以下三种:

  • 标签相关性. 例如, 从训练数据看, 有猫和狗的时候, 多半也有老鼠. 根据这种规律就可以把一些图片中不明显的老鼠找出来. 如何有效利用标签相关性, 是多标签学习的核心问题.
  • 标签稀疏性. 共有 100 种可能的动物, 但每张图片里一般只出现 1–5 种, 或者某些动物仅在少于 10 张图片里出现. 在极限多标签中, 标签稀疏性可能低于 1 % 1\%1%.
  • 数据稀疏性. 数据的多个属性值为空, 或者无效. 在极限多标签中很严重.

        对于多标签学习理论上的学习,可以参考这三篇文章:
        多标签学习之白话版_跨标签学习-CSDN博客
        多标签学习之数学语言版_arg min∥y xw∥2 + λ∥w∥1, 1维向量-CSDN博客
        论文笔记:多标签学习综述(A review on multi-label learning algorithms) - PilgrimHui - 博客园 (cnblogs.com)
        对于常见的多标签学习模型,可以参考以下文章:
        多标记学习(大大杂烩,有点乱)_多标签学习-CSDN博客

18、多示例学习

        与多标签学习类似, 多示例学习从数据的角度进行概念的扩展.
        一个数据集由若干包 (bag) 组成, 每个包有若干示例 (即样本、对象, sample). 如果某个包中含有至少一个正样本, 则它为正包, 否则为负包.
        感性上理解有点像逆向的聚类算法,不知道对不对。
        对于这个正包的理解,这篇文章给的两个例子还比较形象:多示例学习(Multiple Instance Learning)-CSDN博客
        常见方案如下:

  • 包映射. 将一个包映射为一个对象.
  • 新的距离计算方式. 两个包的距离可以定义为:
    • 最近点对的距离;
    • 最远点对的距离;
    • 包重心之间的距离.

        最后,这里再给出进一步了解多示例学习的一些参考:多示例学习 (multi-instance learning, MIL) 学习路线 (归类、重点文章列举、持续更新)_mil领域 llm-CSDN博客


后记

        在完成今天的学习任务后,有一个挺大的感触是,机器学习其实是比较依赖统计学的。对于很多学习,从数学原理上的分析,个人认为这其实与线性回归分析中讲过的挺多概念重合了。统计学更着重于如何从数学上去实现,而机器学习则是着重于如何把这个人工的任务交给机器,从而更高效的获得更准确的信息。

        还需要注意的一点是,实际上对每个概念的理解还是很有限的,很多东西由于能力的不足,还停留在表面(甚至连深一点的问题都提不出来,这是比较致命的),在后续需要补足相关训练来加深理解。

相关文章:

【学习笔记】Day 20

一、进度概述 1、机器学习常识12-18,以及相关代码复现 二、详情 12、SVM(support vector machines,支持向量机) 实际上,支持向量机是一种二分类模型,它将实例的特征向量映射为空间中的一些点,…...

StringBuffer与StringBuilder 2024-8-21 22-13

目录 一、StringBuffer二、StringBuilder三、总结 一、StringBuffer StringBuffer是一个可变的字符序列,它的存在是为了解决频繁操作字符串时产生大量临时对象的问题。 构造方法: StringBuffer():创建一个空的字符串缓冲区,初始容…...

会声会影剪辑视频收费吗,会声会影最新破解版

会声会影2024:引领视频创作新时代的创新之旅** 在数字时代的浪潮中,视频创作已成为连接世界、表达创意的重要方式。随着技术的不断进步,一款名为“会声会影2024”的视频编辑软件横空出世,它不仅继承了前代产品的优秀传统&#xf…...

在Windows11强制开启copilot

在 Windows 11 上启用自带的基于 GPT-4 的 Copilot 功能。以下是具体步骤: 更新系统: 确保你的 Windows 11 系统已经更新到最新版本(23H2 或更高版本)。你可以在“设置” > “Windows 更新”中检查并安装最新更新。 更改区域和…...

基于Java的开源CMS有哪些推荐,各自特点是什么

最强大、最易用的CMS,向大家做一个简要介绍。 01 Alfresco Alfresco是一个开源的企业网站内容管理系统,它提供了文档管理、多人协作、记录管理、知识管理网页内容和图像管理等功能。它使用Spring、 Hibernate、 Lucene 和JSF等最新java技术构建了模…...

IPC进程通信以及网络通信

一、IPC 进程间通信方式 共享内存 //最高效的进程间通信方式 不需要把用户的东西再复制到内核 他们与内核进行绑定 共享内存: 1、是一块,内核预留的空间 2、最高效的通信方式 //避免了用户空间到内核空间的数据拷贝 IPC通信方式 ---操作流程类似的…...

【脏数据 bug 解决】ValueError: mean must have 1 elements if it is an iterable, got 3

问题描述: 在训练模型的过程中,出现 clip_image_processor 无法处理数据的问题,说明数据集中很可能出现了脏数据。本文使用的数据为 LAION-Aesthetics-V2-6.5plus,从 https://dagshub.com/DagsHub-Datasets/LAION-Aesthetics-V2-…...

【Vue3】集成 Ant Design Vue

【Vue3】集成 Ant Design Vue 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗…...

如何处理前端项目中的SEO优化:从SPA到SSR与SSG

如何处理前端项目中的SEO优化:从SPA到SSR与SSG 在前端开发的日常工作中,你可能经常会遇到这样的情况:辛辛苦苦写了一个功能丰富、界面炫酷的单页应用(SPA),但上线后发现搜索引擎的表现却不尽如人意。页面内…...

【UE5】Groom毛发系统的基本使用——给小白人添加头发

目录 效果 步骤 一、准备 二、使用3DsMax制作毛发 三、在UE中给小白人安装毛发 四、修改毛发材质 效果 步骤 一、准备 1. 新建一个第三人称模板工程 2. 在项目设置中,勾选“支持计算蒙皮缓存” 3. 在插件面板中,启用“Groom”和“Alembic Gro…...

DataWorks函数

文章目录 0、MaxCompute预置的函数分类1、日期函数2、数学函数3、算术运算符4、窗口函数5、聚合函数6、字符串函数7、复杂类型函数8、加密函数9、其他函数 0、MaxCompute预置的函数分类 函数类型说明日期函数支持处理DATE、DATETIME、TIMESTAMP等日期类型数据,实现…...

设计模式学习优质网站分享:refactoring.guru

地址 英文版地址:https://refactoring.guru/design-patterns 中文版地址:https://refactoringguru.cn/design-patterns 介绍 这个网站是专门学习 设计模式 和 软件重构 的网站 整体来说并不花哨,但我觉得他最大的优点就是: 概…...

JVM-Java的四种引用

引用分析 无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象是否可达,判定对象是否可被回收都与引用有关,Java 提供了四种强度不同的引用类型 强引用: 被强引用关联的对象不会被回收,只有所…...

探索《黑神话:悟空》品质保障的背后:ISO体系认证

《黑神话:悟空》横空出世 8月20日上午10点,国产首款大型3A游戏《黑神话:悟空》正式上线。游戏一经上线便吸引了无数国内外用户的关注,不仅仅是因为其高超的游戏制作技术,极高的画面精度,精良的的视觉和战斗…...

ArcGIS Pro 实现人口分布栅格TIFF数据的网格提取与可视化

这里在分享一个人口1km精度栅格数据,LandScan是由美国能源部橡树岭国家实验室(ORNL)提供的全球人口分布数据集,具有最高分辨率的全球人口分布数据,是全球人口数据发布的社会标准,是全球最为准确、可靠&…...

select的缺点;poll ;poll的缺点;epoll

1.select的缺点: 1.select监听的文件描述符集合是一个数组,有上限(1024个) 2.select监听的文件描述符集合在应用层,内核层监听事件后需要传递给用户层带来资源开销 3.select需要用户手动查找产生事件的文件…...

keli5_报错 Cannot Load Device Description问题

1原因 之前创建的keli5的项目软件版本与当前的软件版本不同 使其算法要重新选择 2解决方法 2-1 点击图中的魔术棒 2-2 在这个界面中进入 Settings选项(ST-Link Debugger 旁边) 2-3 点击Flash Download 选项进入图中界面 在点击天加 2-4选择fla…...

算法的学习笔记—把二叉树打印成多行(牛客JZ78)

😀前言 在算法面试中,二叉树的层序遍历是一个经典的题目。而这道题的要求是进一步将二叉树的每一层结点值打印成多行,即同一层结点从左至右输出,最终结果存放到一个二维数组中返回。接下来,我们将通过代码实例详细解析…...

FreeRTOS 时间管理

延时函数介绍 函数 描述 vTaskDelay() 相对延时 xTaskDelayUntil() 绝对延时 相对延时:指每次延时都是从执行函数vTaskDelay()开始,直到延时指定的时间结束 绝对延时:指将整个任务的运行周期看成一个整体,适用于需要按…...

F. Valuable Cards D. Smithing Skill

D题 F题 F题: 因为是连续的且都要选,我们直接从左到右去取每个区间到不合法的情况即可,可以在n1的位置添加一个x来结束区间判断。因为是要乘积为x,那么我们只需要放x的因子进去,不然会超时,同时也可以用v…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

【单片机期末】单片机系统设计

主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时,需要使用外部低速晶振...