【学习笔记】Day 20

news2024/11/26 15:01:30

一、进度概述

        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博客


后记

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

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

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

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

相关文章

[C语言]-基础知识点梳理-文件管理

前言 各位师傅们好,我是qmx_07,今天给大家讲解文件管理的相关知识,也就是常见的 读取,删除一类的操作 文件 为什么要使用文件? 程序的数据是存储在电脑的内存中,如果程序退出,内存回收&…

基于django的学生作业提交与管理系统,有管理后台,可作为课设使用

在本项目中,我们设计并实现了一个基于Django框架的学生作业提交与管理系统,旨在为教师和学生提供一个高效、便捷的作业管理平台。Django作为一个高效的Web框架,因其强大的功能和灵活的架构,使得本系统能够快速开发并扩展。 系统功…

KeyShot 2024.2:卓越的Mac与Windows 3D渲染与动画制作软件

KeyShot 2024.2作为一款专为Mac和Windows用户设计的3D渲染与动画制作软件,凭借其出色的性能和丰富的功能,在业界树立了新的标杆。这款软件不仅继承了KeyShot系列一贯的实时渲染和动画优势,还在多个方面进行了全面升级和优化,为3D设…

C++:二叉搜索树(binary search tree)

目录 1: 二叉搜索树概念 2:二叉搜索树操作 3:二叉树的模拟实现 4:二叉搜索树的应用 5:二叉搜索树的性能分析 6:复习前中后序遍历 7:二叉树进阶面试题 1: 二叉搜索树概念 二叉搜…

基于协同过滤算法的体育商品推荐系统_t81xg

TOC springboot618基于协同过滤算法的体育商品推荐系统_t81xg--论文 绪 论 近年来,随着互联网科技的进步和发展,人们的生活水平得到了极大的提高,图书的数量也在快速增加,以至于体育商品推荐的数量不断扩大,管理个性…

嵌入式学习——(Linux高级编程——线程)

线程 一、pthread 线程概述 pthread(POSIX threads)是一种用于在程序中实现多线程的编程接口。它与进程一样,可以用于实现并发执行任务,但与进程相比有一些不同的特点。 二、优点 1. 比多进程节省资源:进程在创建时…

如何用Java SpringBoot+Vue搭建太原学院商铺管理系统【实战教程】

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【中项第三版】系统集成项目管理工程师 | 第 12 章 执行过程组

前言 本章属于10大管理的内容,上午题预计会考8-10分,下午案例分析也会进行考查。学习要以教材为主。 目录 12.1 指导与管理项目工作 12.1.1 主要输入 12.1.2 主要输出 12.2 管理项目知识 12.2.1 主要输入 12.2.2 主要输出 12.3 管理质量 12.3.…

新160个crackme - 037-fireworx.2

运行分析 图标是火炬,估计是Delphi程序,需要破解Name和Serial PE分析 Delphi程序,32位,无壳 静态分析&动态调试 - ida找到关键字符串,双击进入 ida动态调试,LStrCatN是一个拼接函数Serial v10 Name …

兴顺物流管理系统pf

TOC springboot539兴顺物流管理系统pf 第一章 课题背景及研究内容 1.1 课题背景 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性&#xff…

VAuditDemo审计之安装教学

目录 Xampp安装VAditDemo 第一步: 第二步: 第三步: 第四步: 第五步: 第六步: 第七步: 第八步: Xampp安装VAditDemo 第一步: 解压VAuditDemo 先上传好zip文件…

PL3322B 升级为PC3322C

PL3322C 是一款高效率、高集成度、原边调节的电源驱动芯片,PL3322C可去除光耦以及次级控制电路,简化了充电器/适配器等传统的恒流/恒压的设计,高精度的电压和电流调节。PL3322C提供SOT23-6封装;PL3322C集成多种保护功能&#xff0…

ffmpeg6.1集成Plus-OpenGL-Patch滤镜

可参考上一篇文章。ffmpeg6.1集成ffmpeg-gl-transition滤镜-CSDN博客 安装思路大致相同, 因为 Plus-OpenGL-Patch也是基于 ffmpeg 4.x 进行开发的,所以在高版本上安装会有很多报错。 这是我安装后的示例,需要安装教程或者改代码可私信我。 …

工程技术研究杂志工程技术研究杂志社工程技术研究编辑部2024年第12期目录

工程前沿 基于Midas Civil的钢结构人行天桥荷载试验和承载力评价 陈新祥;刘欣;吕美忠; 1-5 基于价值工程理论的基坑支护方案优选 王晓毅;吴军杰; 6-8 建筑工程桩基检测中存在的问题及优化策略研究 张旭;李德君; 9-11 挤密桩参数对黄土地基加固效果的影响研究 杨…

开源介绍 - html2canvas

What is html2canvas ? The script allows you to take “screenshots” of webpages or parts of it, directly on the users browser. The screenshot is based on the DOM and as such may not be 100% accurate to the real representation as it does not mak…

Java 入门指南:集合概述

Java集合概述 Java 集合(Collections)是 Java 中提供的一种容器,用于存储和管理多个对象。与数组不同,集合的长度是可变的,且只能存储对象(包括对象的引用),不能存储基本数据类型。…

jmeter中导入java方法并使用

1、首先打开idea,在idea中点击File-New-Project ,创建一个项目,项目名为JmtOne 2、项目创建完成后,直接在main函数中定义两个方法,记住该主函数的包名跟类名,后面会用到,在类中定义了两种拆分字符串的方法&…

FLUX.1 当前支持FLUX.1的Lora模型

首先,我们来梳理一下本次Xlabs-AI团队放出的七款Lora模型,分别是 写实、Furry(但是目前该模型还不支持ComfyUI)、MJV6、动漫、迪斯尼、风景和艺术风格。每种模型都经过精心训练,能够为 Flux 模型带来卓越的风格转换能…

嵌入式day31

mplayer项目问题分析: 知识短时间内可以获取到 能力的提升一定需要练习 IPC 进程间通信方式 共享内存 //最高效的进程间通信方式 共享内存: 1.是一块 内核预留的空间 2.最高效的通信方式 //避免了用户空间到内核空间的数据拷贝 操作: …

第三方软件测评机构进行安全测试的好处

根据报告显示,2023年全球因网络安全事件造成的损失是8万亿美元,其中70%是由于软件漏洞引起的。这一数据足以表明,企业在软件开发过程中必须重视安全测试。软件安全测试不仅是对软件质量的保障,更是对用户信息和财务安全的保护。 …