希望这个寒假可以把西瓜书吃透,后续章节要上传自己手推公式的图片
第一章
机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能.
机器学习所研究的主要内容,是关于在计算机上从数据中产生“模型”(model)的算法,即“学习算法”(learning algorithm)
一些概念
- 用“模型”泛指从数据中学得的结果.
- 从数据中学得模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成.
- 训练过程中使用的数据称为“训练数据”(training data),其中每个样本称为一个“训练样本”(training sample),训练样本组成的集合称为“训练集”(training set).
- 这组记录的集合称为一个“数据集”(data set),其中每条记录是关于一个事件或对象(这里是一个西瓜)的描述,称为一个“示例”(instance)或“样本”(sample)
- 关于示例结果的信息,例如“好瓜”,称为“标记”(label);拥有了标记信息的示例,则称为“样例”(example)
- 若我们欲预测的是离散值,例如“好瓜”“坏瓜”,此类学习任务称为“分类”(classification);若欲预测的是连续值,例如西瓜成熟度0.95、0.37,此类学习任务称为“回归”(regression).
- 学得模型后,使用其进行预测的过程称为“测试”(testing),被预测的样本称为“测试样本”(testing sample).
- 根据训练数据是否拥有标记信息,学习任务可大致划分为两大类:“监督学习”(supervised learning)和“无监督学习”(unsupervised learning),分类和回归是前者的代表,而聚类则是后者的代表.
- 机器学习的目标是使学得的模型能很好地适用于“新样本”,而不是仅仅在训练样本上工作得很好;即便对聚类这样的无监督学习任务,我们也希望学得的簇划分能适用于没在训练集中出现的样本.学得模型适用于新样本的能力,称为“泛化”(generalization)能力.
假设空间
- 归纳:从特殊到一般的“泛化”(generalization)过程,即从具体的事实归结出一般性规律;“从样例中学习”显然是一个归纳的过程,因此亦称“归纳学习”(inductive learning)归纳学习有狭义与广义之分,广义的归纳学习大体相当于从样例中学习,而狭义的归纳学习则要求从训练数据中学得概念(concept),因此亦称为“概念学习”或“概念形成”.
- 演绎:从一般到特殊的“特化”(specialization)过程。Eg.在数学公理系统中,基于一组公理和推理规则推导出与之相洽的定理,这是演绎.
- 我们可以把学习过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标是找到与训练集“匹配”(fit)的假设,即能够将训练集中的瓜判断正确的假设.假设的表示一旦确定,假设空间及其规模大小就确定了.
- 现实问题中我们常面临很大的假设空间,但学习过程是基于有限样本训练集进行的,因此,可能有多个假设与训练集一致,即存在着一个与训练集一致的“假设集合”,我们称之为“版本空间”(version space).
归纳偏好
- 机器学习算法在学习过程中对某种类型假设的偏好,称为“归纳偏好”(inductive bias),或简称为“偏好”。
- 任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,而无法产生确定的学习结果.
- “奥卡姆剃刀”(Occam's razor)是一种常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选最简单的那个”.如果采用这个原则,并且假设我们认为“更平滑”意味着“更简单”
- 无论学习算法A多聪明、学习算法B多笨拙,它们的期望性能竟然相同!这就是“没有免费的午餐”定理(No Free Lunch Theorem,简称NFL定理) [Wolpert,1996;Wolpert and Macready,1995].
- NFL定理最重要的寓意,是让我们清楚地认识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好.要谈论算法的相对优劣,必须要针对具体的学习问题;在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用.
第二章 模型评估与选择
2.1经验误差与过拟合
- 分类错误的样本数占样本总数的比例称为“错误率”(errorrate),即如果在m个样本中有α个样本分类错误,则错误率E= a/m;相应的,1- a/m称为“精度”(accuracy),即“精度=1-错误率”
- 把学习器的实际预测输出与样本的真实输出之间的差异称为“误差”(error)
- 学习器在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error)
- 在新样本上的误差称为“泛化误差”(generalization error)
- 当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降.这种现象在机器学习中称为“过拟合”(over fitting).与“过拟合”相对的是“欠拟合”。
- 有多种因素可能导致过拟合,其中最常见的情况是由于学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了,过拟合是无法彻底避免的,我们所能做的只是“缓解”,或者说减小其风险。而欠拟合则通常是由于学习能力低下而造成的.欠拟合比较容易克服。
- 机器学习面临的问题通常是NP难甚至更难,而有效的学习算法必然是在多项式时间内运行完成,若可彻底避免过拟合,则通过经验误差最小化就能获最优解,这就意味着我们构造性地证明了“P=NP”;因此,只要相信“P≠NP”,过拟合就不可避免.
2.2评估方法
- 通过实验测试来对学习器的泛化误差进行评估并进而做出选择.为此,需使用一个“测试集”(testing set)来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”(testing error)作为泛化误差的近似.
- 通常我们假设测试样本也是从样本真实分布中独立同分布采样而得.但需注意的是,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过.
2.2.1留出法
- “留出法”(hold-out)直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即D=S并T, S交T=空集.在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计.
- 训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。如果从采样(sampling)的角度来看待数据集的划分过程,则保留类别比例的采样方式通常称为“分层采样”(stratified sampling)。
- 即便在给定训练/测试集的样本比例后,仍存在多种划分方式对初始数据集D进行分割.在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果.
- 常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试.
2.2.2 交叉验证法(看书)
2.2.3自助法(看书)