一、进度概述
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 是一个无监督模型,不一定适用于有监督数据。
这里关于特征选择和特征提取的例子中就能感受到一定程度上的缺陷。
14、半监督学习
基本概念
(1)监督学习: 训练数据都有标签, 相应的任务为分类、回归等.
(2)无监督学习:训练数据都没有标签, 相应的任务为聚类、特征提取 (如 PCA) 等.
(3)半监督学习:部分训练数据没有标签, 相应任务与监督学习一致.
从三者的关系可以看出, 半监督学习是从监督学习与无监督学习自然推导出来的.
对于学习场景的理解,除了文中举得十分形象的例子外,以下链接中的讲解也十分不错。
关于学习场景的理论讲解:机器学习:监督学习、无监督学习、半监督学习、强化学习-CSDN博客
关于常见半监督学习模型的讲解:一文看遍半监督学习模型(Semi-Supervised Learning)_effective self-training for parsing-CSDN博客
15、主动学习
主动学习的提出,其关键是如何更低成本的获得更多高质量的标签。
关于主动学习更细节上的讲解,可以参考这几篇文章:
超详细的主动学习Active Learning介绍【理论+代码】-CSDN博客
主动学习(Active Learning)概述及最新研究
从主动学习的提出我们可以发现,其核心问题在于 “哪些样本的标签更有价值?”
- 代表性强的样本. 把数据进行聚类, 聚类中心的样本具有良好的代表性. 其它样本很可能与它有相同的标签. 用这种思想可以设计出"基于聚类的主动学习方法".
- 不确定性强的样本. 有些样本有墙头草的潜质, 难于界定正负. 如果知道它们的标签, 就可以使用 SVM 进行分类, 相应地, 这次样本可能成为支撑向量 (support vector).
16、代价敏感学习
引入代价敏感学习,其意义在于使得模型与现实更加相符合。
对于代价敏感学习,需要注意的两点是:
- 代价作为基础数据, 都应该事先给出, 要么专家给出, 要么制度给出. 它们必须是输入, 而绝不会是输出 (被机器学习出来). 这是常识.
- 代价敏感学习的优化目标必须由代价定义, 而不应该是准确率之类.
同时也补充关于代价敏感错误率的相关知识:误分类代价与类不均衡数据-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博客
后记
在完成今天的学习任务后,有一个挺大的感触是,机器学习其实是比较依赖统计学的。对于很多学习,从数学原理上的分析,个人认为这其实与线性回归分析中讲过的挺多概念重合了。统计学更着重于如何从数学上去实现,而机器学习则是着重于如何把这个人工的任务交给机器,从而更高效的获得更准确的信息。
还需要注意的一点是,实际上对每个概念的理解还是很有限的,很多东西由于能力的不足,还停留在表面(甚至连深一点的问题都提不出来,这是比较致命的),在后续需要补足相关训练来加深理解。