机器学习基础概念

目录

    • 什么是机器学习?
    • 一、 专业术语
    • 二、模型的评估与选择
      • 1、经验误差和过拟合现象
      • 2、评估方法
        • 2.1 留出法
        • 2.2 交叉验证法(k折交叉验证)
        • 2.3 自助法
        • 2.4 调参
      • 3、性能度量
      • 4、比较检验
      • 5、偏差和方差

什么是机器学习?

Arthur Samuel(1959):在没有明确设置的情况下,使计算机具有学习能力的研究领域。
Tom Mitchell(1998):计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,通过P测定在T上的表现因经验E而提高。

一、 专业术语

归纳:特殊到一般的泛化过程。
演绎:一般到特殊的特化过程。
模型(学习器):泛指从数据中学得的结果,有文献使用“模型”指全局性的结果,而用“模式”指局部性的结果。
数据集:所有用于对对象描述的记录的集合,即”示例“的集合。
样本:有时指单独的示例,有时也可代指整个数据集。
属性(特征):反映事物或对象某方面表现或者性质的事物。
属性值:属性或特征的取值。
样本空间(属性空间):以属性为坐标轴,属性值为坐标的,用于描述事物的空间。
特征向量:一个示例被称为一个特征向量。
维数:属性的个数。
学习(训练):从数据中学得模型得过程,可以看作是在假设空间中搜索的过程,搜索的目标是找到与训练集匹配的假设。
训练数据:训练过程中使用的数据,每一个样本被称为训练样本,所有训练样本组成的集合被称为训练集。
假设:学得的模型中数据的某种潜在的规律,所有假设构成“假设空间”,与训练集一致的假设组成的集合被称为“版本空间”。
标签:示例结果的信息,所有标签的集合被称为输出空间。根据训练数据是否有标签,可将学习任务分为有监督学习(分类和回归)和无监督学习(聚类)。
样例:拥有标签的示例。
分类:预测值为离散值的学习任务。只涉及两个类别的为二分类问题,两个以上为多分类问题。
回归:预测值为连续值的学习任务。
测试:学得模型后对其进行预测的过程。
测试样本:被用于预测的样本。
泛化能力:学得模型适用于新样本的能力。
归纳偏好:机器学习算法在学习过程中对某种类型假设的偏好。最简单的偏好原则是奥卡姆剃刀原则。
没有免费午餐(NFL)定理:不同学习算法的期望性能相同,前提是所有问题出现的机会相同或对所有问题同等重要。寓意:算法的优劣需要针对具体的问题。
P问题:多项式时间内能解决的问题,例如求1到100的和。
NP问题:多项式时间内无法解决的问题,例如求地球上有多少沙子。

二、模型的评估与选择

1、经验误差和过拟合现象

  学习器在训练样本上的误差被称为“训练误差”或者“经验误差”,在新样本上的误差被称为“泛化误差”。学习的目的是让泛化误差最小化,由于无法知道新样本是什么,因此实际的做法是尽量让经验误差最小化,但是这种学习器往往表现不够好。
  过拟合现象指的是学习器在训练的过程中把训练集自身的特点当成了所有样本都具有的一般特点,导致在训练集上表现得很好,但是在新样本上(测试集)很差。相反,欠拟合是在训练集和测试集上表现都很差,也就是学习器还没有学好训练样本的一般性质。
  欠拟合比较好解决,可以增加训练次数等,但是过拟合比较麻烦,也是所有机器学习算法所面临的困难,很多算法都有针对过拟合的措施,但是过拟合现象无法彻底避免。因为 P ≠ N P P\neq NP P=NP

2、评估方法

  对学习器的泛化误差进行评估需要使用测试集,测试误差作为泛化误差的近似,测试集应尽可能与训练集互斥。以下是常用的训练集、测试集划分方法。

2.1 留出法

  将原始数据集分成两部分,可以按照一定的比例进行,同时要注意保持数据分布的一致性,否则将产生额外的偏差。单次使用留出法不够稳定可靠,需要进行若干次的随机划分,重复实验,取平均值作为评估的结果,常用的做法是2/3 - 4/5的样本用于训练,剩余样本作为测试。
问题:我们需要评估的是用数据集D训练出的模型,如果测试集过小,则评估结果不够准确,若测试集过大,则训练集和测试集差距明显,降低了评估结果的保真性(fidelity)。

2.2 交叉验证法(k折交叉验证)

  将数据集划分成k个大小相似的互斥子集,每个子集都尽可能保证数据分布的一致性,每次采用其中k-1个子集的并集作为训练集,剩下的作为测试集,进行k次训练和测试,对k次结果取平均。为减小样本划分而引入的差别,需要使用不同的划分方式重复p次,最终的结果是p次k折交叉验证结果的均值。当k等于数据集的样本数时,被称为留一法,该方法的结果比较准确,但是计算花费很大。

2.3 自助法

  由于我们想评估的是使用数据集D训练出的模型,无论是k折交叉验证还是留出法都会分出一小部分作为测试集,因此导致训练集比D要小,会有一定的估计偏差。自助法其实就是采用自助采样的方式,从具有m个样本的数据集D中有放回的抽取m次,将m次的结果组成新的数据集D’,通过这种采样方式,会有大约36.8%的样本不会被抽到,没被抽到的样本用作测试集,这种测试的结果被称为“包外估计”(out-of-bag estimate)。该方法在数据集较小、难以有效划分测试\训练数据集时比较有效,同时自助法能够产生很多不同的训练集,对于集成学习很有用,但是自助法改变了原有的数据分布,从而引入了新的偏差,因此当数据量比较大时往往采用留出法和k折交叉验证法。

2.4 调参

机器学习常常涉及两个参数,超参数和算法参数,超参数是提前设定好的,不会随训练而发生变化,比如epoch、batch以及学习率等,由于超参数是一个连续的值,难以通过遍历所有可能从而找出最优解,比较合适的方法是设定一定的步长和范围。一般训练数据分为训练集和验证集,训练集负责调整算法参数(权重),验证集用于超参数的整定。

3、性能度量

对学习器的泛化能力的评,不仅需要实验估计方法,还需要一些确定的评价标准,这就是性能度量,不同的性能度量会导致不同的评估结果。回归任务中常用的性能度量是均方误差(MSE)。在分类任务中则有很多性能度量的方法,比如错误率与精度、查准率(precision)、查全率(recall)与F1、ROC与AUC、代价敏感错误率与代价曲线,有时间的话我会对这几项展开叙述。

4、比较检验

一般的评估流程是采用某种实验评估方法测得某个性能度量结果,然后将不同结果进行比较,但是由于测试集上的结果并不就是模型的泛化能力的结果,不同的测试集会产生不同的结果,同时机器学习算法本身就具有一些随机性,即使是所有条件一致,产生的结果也不一样,因此就需要使用假设检验的方法来对不同学习器的性能进行比较,主要包括假设检验、交叉验证t检验、McNemar检验、Friedman检验与Nemenyi后续检验等。

5、偏差和方差

偏差和方差主要用于解释算法泛化性能,期望输出与真实值的差别被称为偏差(bias),泛化误差是偏差、方差和随机噪声之和。随着训练的加深,偏差会持续降低,同时方差不断升高,因此泛化误差也是由高到低再到高的过程。

你可能感兴趣的:(机器学习笔记,机器学习,算法,人工智能)