机器学习
基本概念
机器学习指利用数学手段,使得计算机拥有相认一样的学习与总结能力。具体来说就是通过寻找数据中的规律,然后预测未知数据的技术。
机器学习大致可分为3类:
- 监督学习:学习已知数据特征与数据标签,预测未来数据的标签
- 非监督学习:直接通过数据特征来预测数据标签
- 强化学习:通过不断的训练回馈来优化的模型
机器学习任务可分2类:
- 监督学习:分类、回归
- 非监督学习:聚类、降维
数据集
数据集样本是需要观察的数据的集合。通常用D(x_i)来表示,x_i是一个向量,表述数据集合中的第i个样本。
其中x的元素称为数据特征,它可以是连续值也可以是离散值。
数据集分类
- 训练集:提供特征与标签,用于模型拟合的数据
- 校验集:提供特征与标签,用于评估模型的数据
- 测试集:提供特征,用于模型预测的数据
常见数据集
- 图像分类:
- MMIST手写数据:http://yann.lecun.com/exdb/mnist/
- CIFAR-10, CIFAR-100, ImageNet
- https://www.cs.toronto.edu/~kriz/cifar.html
- http://www.image-net.org/
- 电影评论情感分类
- Large Movie Review Dataset v1.0
- http://ai.stanford.edu/~amaas/data/sentiment/
- Large Movie Review Dataset v1.0
- 图像生成诗歌
- https://github.com/researchmm/img2poem
误差分析
误差通常指算法预测的结果与样本真实结果之间的差异
- 模型在训练时的误差叫”训练误差“
- 模型在总体样本的误差叫”泛化误差“
- 模型在测试集上的误差叫”测试误差“
通常情况下,我们无法知道模型在测试集甚至总体上的体现。所以我们智能尽量的缩小训练误差。
过拟合是指模型能够很好的拟合训练样本,但到了测试样本表现非常差。也就是过分的去拟合训练样本的数据规律。为了防止”过拟合“的出现,通常可以使用减少参数、降低模型复杂度、正则化等手段
欠拟合是指模型还没有很好的训练出数据的规律。为了防止”欠拟合“的出现,可以选择调整参数、增加迭代深度、使用更复杂模型等
泛化误差分析
假设数据集上需要预测的样本为Y,特征为X。潜在模型为Y=f(X)+ ϵ \epsilon ϵ,这里b是噪声,估计模型为f^(x)。
那么则有:
KaTeX parse error: No such environment: gather* at position 8: \begin{̲g̲a̲t̲h̲e̲r̲*̲}̲ Err(\widehat{f…
**偏差(bias)**反应模型在样本上的期望与真实标记的差距
**方差(variance)**反应了模型在不同训练数据集下学得的输出与期望的差距
欠拟合:高偏差低方差
- 寻找更好的特征,提升对数据的刻画能力
- 增加特征数量
- 重新选择更加复杂的模型
过拟合:低偏差高方差
- 增加训练样本数量
- 减少特征维数,高维空间密度小
- 加入正则化项,使得模型更加平滑
交叉验证
交叉验证就是将数据集分为K份,每次采样只取其中的K-1份作为训练集,剩余的1份作为验证机。然后通过不断的交叉训练+验证来优化模型。对应的就是K折交叉验证。
- K折重复多次,每次重复中产生不同的分割
- 留一交叉验证(Leave-One-Out)
有监督学习
- 数据集有标记(答案)
- 数据集通常扩展为(𝑥_𝑖,𝑦_𝑖)(x**i,y**i),其中𝑦_𝑖∈Yy**i∈Y是 𝑥_𝑖x**i 的标记,YY 是所有标记的集合,称为“标记空间”或“输出空间”
- 监督学习的任务是训练出一个模型用于预测 𝑦y 的取值,根据 𝐷={(𝑥_1,𝑦_1 ),(𝑥_2,𝑦_2),⋯, (𝑥_𝑛,𝑦_𝑛)}D={(x1,y1),(x2,y2),⋯,(x**n,y**n)},训练出函数𝑓,使得𝑓(𝑥)≅𝑦f(x)≅y
- 若预测的值是离散值,如年龄,此类学习任务称为“分类”
- 若预测的值是连续值,如房价,此类学习任务称为“回归”
线性回归
通过线性模型来完成回归的任务。一般公式为
f
(
x
)
=
∑
i
=
1
m
ω
i
x
i
+
b
f(x)=\sum^m_{i=1}\omega_ix_i+b
f(x)=i=1∑mωixi+b
逻辑回归
基于线性回归公式,套上sigmoid函数完成的二分类任务。一般公式为
g
(
x
)
=
1
1
+
e
−
f
(
x
)
g(x)=\frac{1}{1+e^{-f(x)}}
g(x)=1+e−f(x)1
支持向量机
支持向量机是一种基于线性判别器的模型,主要是使用线性公式寻找一个超平面分割点。其重要的部分在于和函数的不同
决策树
一种通过树模型实现的分类算法,决定叶子是否分割的重要因素信息熵。
当中用的最多的就是信息增益或Gini系数
随机森林
- 集成学习(Ensemblelearning)
- 组合多个弱监督模型以期得到一个更好更全面的强监督模型,集成学 习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分 类器也可以将错误纠正回来。
- 随机森林用随机的方式建立起一棵棵决策树,然后由这些决策树组成 一个森林,其中每棵决策树之间没有关联,当有一个新的样本输入 时,就让每棵树独立的做出判断,按照多数原则决定该样本的分类 结果。
随机森林构建的基本步骤
- 随机有放回地从训练集中的抽取m个训练样本,训练集 D_tD**t.
- 从 D_tD**t 对应的特征属性中随机选择部分特征,构建决策树
- 重复上述步骤构建多个决策树
预测步骤
- 向建立好的随机森林中输入一个新样本
- 随机森林中的每棵决策树都独立的做出判断
- 将得到票数最多的分类结果作为该样本最终的类别
非监督学习
- 数据集没有标记信息(自学)
- 聚类:我们可以使用无监督学习来预测各样本之间的关联度,把关 联度大的样本划为同一类,关联度小的样本划为不同类,这便是 “聚类”
- 降维:我们也可以使用无监督学习处理数据,把维度较高、计算复 杂的数据,转化为维度低、易处理、且蕴含的信息不丢失或较少丢 失的数据,这便是“降维”
聚类
直接识别数据特征,通过计算特征来使得数据聚拢在某几类。通常会使用欧式距离、余弦相似度等公式进行判断。最长出现的聚类方法有K-means、DBSCAN、层次聚类等、
K-means聚类是一个反复迭代的过程,算法分为四个步骤:
- 选取数据空间中的K个对象作为初始中心,每个对象代表一个聚 类中心;
- 对于样本中的数据对象,根据它们与这些聚类中心的欧氏距离, 按距离最近的准则将它们分到距离它们最近的聚类中心(最相似) 所对应的类;
- 更新聚类中心:将每个类别中所有对象所对应的均值作为该类别 的聚类中心,计算目标函数的值;
- 判断聚类中心和目标函数的值是否发生改变,若不变,则输出结 果,若改变,则返回2)
降维
降维的目的就是将原始样本数据的维度𝑑降低到一个更小的数𝑚,且尽量使得样本蕴含信息量损失最小,或还原数据时产生的误差最小。比如主成分分析法…
降维的优势:
- 数据在低维下更容易处理、更容易使用;
- 相关特征,特别是重要特征更能在数据中明确的显示出来;
- 如果只有二维或者三维的话,能够进行可视化展示;
- 去除数据噪声,降低算法开销等。