百面机器学习知识点归纳整理汇总
这篇书评可能有关键情节透露
第1章 特征工程
特征工程是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。从本质上来讲,特征工程是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。

第2章 模型评估
“没有测量,就没有科学。”这是科学家门捷列夫的名言。在计算机科学特别是机器学习领域中,对模型的评估同样至关重要。只有选择与问题相匹配的评估方法,才能快速地发现模型选择或训练过程中出现的问题,迭代地对模型进行优化。模型评估主要结为离线评估和在线评估两个阶段。针对分裂、排序、回归、序列预测等不同类型的机器学习问题,评估指标的选择也有所不同。知道每种评估指标的精确定义、有针对性地选择合适的评估指标、根据评估指标的反馈进行模型调整,这些都是机器学习在模型评估阶段的关键问题,也是一名合格的算法工程师应当具备的基本功。

第3章 经典算法
没有最好的分类器,只有最合适的分类器。随着神经网络模型曰趋火热,深度学习大有一统江湖之势,传统机器学习算法似乎已经彻底被深度学习的光环所笼罩。然而,深度学习是数据驱动的,失去了数据,再精密的深度网络结构也是画饼充饥,无的放矢。在很多实际问题中,我们很难得到海量且带有精确标注的数据,这时深度学习也就没有大显身手的余地,反而许多传统方法可以灵活巧妙地进行处理。本章将介绍有监督学习中的几种经典分类算法,从数学原理到实例分析,再到扩展应用,深入浅出地为读者解读分类问题历史长河中的胜败兴衰。掌握机器学习的基本模型,不仅是学好深度学习、成为优秀数据工程师的基础,更可以将很多数学模型、统计理论学以致用,探寻人工智能时代数据海洋中的规律与本源。

第4章 降维
机器学习中的数据维数与现实世界的空间维度本同末离。在机器学习中,数据通常需要被表示成向量形式以输入模型进行训练。但众所周知,对向维向量进行处理和分析时,会极大地消耗系统资源,甚至产生维度灾难。因此,进行降维,即用一个低维度的向量表示原始高维度的特征就显得尤为重要。常见的降维方法有主成分分析、线性判别分析、等距映射、局部线性嵌入、拉普拉斯特征映射、局部保留投影等。本章将选取比较经典的主成分分析和线性判别分析进行介绍和对比,以便读者更深入地理解降维的基本思想。

第5章 非监督学习
在实际工作中,我们经常会遇到这样一类问题:给机器输入大量的特征数据,并期望机器通过学习找到数据中存在的某种共性特征或者结构,亦或是数据之间存在的某种关联。例如,视频网站根据用户的观看行为对用户进行分组从而建立不同的推荐策略,或是寻找视频播放是否流畅与用户是否退订之间的关系等。这类问题被称作“非监督学习”问题,它并不是像监督学习那样希望预测某种输出结果。相比于监督学习,非监督学习的输入数据没有标签信息,需要通过算法模型来挖掘数据内在的结构和模式。非监督学习主要包含两大类学习方法:数据聚类和特征变量关联。其中,聚类算法往往是通过多次迭代来找到数据的最优分割,而特征变量关联则是利用各种相关性分析方法采找到变量之间的关系。

第6章 概率图模型
如果用一个词来形容概率图模型(Probabilistic Graphical Model )的话,那就是“优雅”。对于一个实际问题,我们希望能够挖掘隐含在数据中的知识。概率图模型构建了这样一幅图,用观测结点表示观测到的数据,用隐含结点表示潜在的知识,用边来描述知识与数据的相互关系,最后基于这样的关系图获得一个概率分布,非常“优雅”地解决了问题。
概率图中的节点分为隐含节点和观测节点,边分为有向边和无向边。从概率论的角度,节点对应于随机变量,边对应于随机变量的依赖或相关关系,其中有向边表示单向的依赖,无向边表示相互依赖关系。
概率图模型分为贝叶斯网络(Bayesian Network ) 和马尔可夫网络(Markov Network)两大类。贝叶斯网络可以用一个有向图结构表示,马尔可夫网络可以表示为一个无向图的网络结构。更详细地说,概率图模型包插了朴素贝叶斯模型、最大熵模型、隐马尔可夫模型、条件随机场、主题模型等,在机器学习的诸多场景中都有着广泛的应用。

第7章 优化算法
优化是应用数学的一个分支,也是机器学习的核心组成部分。实际上,机器学习算法=模型表征+模型评估+优化算法。其中,优化算法所做的事情就是在模型表征空间中找到模型评估指标最好的模型。不同的优化算法对应的模型表征和评估指标不尽相同,比如经典的支持向量机对应的模型表征和评估指标分别为统性分类模型和最大间隔,逻辑回归对应的模型表征和评估指标则分别为线性分类模型和交叉熵。
随着大数据和深度学习的迅猛发展,在实际应用中面临的大多是大规模、高度非凸的优化问题,这给传统的基于全量数据、凸优化的优化理论带来了巨大的挑战。如何设计适用于新场景的、高效的、准确的优化算法成为近年来的研究热点。优化虽然是一门古老的学科,但是大部分能够用于训练深度神经网络的优化算法都是近几年才被提出,如Adam算法等。
虽然,目前大部分机器学习的工具已经内置了常用的优化算法,实际应用时只需要一行代码即可完成调用。但是,鉴于优化算法在机器学习中的重要作用,了解优化算法的原理也很有必要。

第8章 采样
采样,顾名思义,就是从特定的概率分布中抽取相应样本点的过程。采样在机器学习中有着非常重要的应用:它可以将复杂的分布简化为离散的样本点;可以用重采样对样本集进行调整以更好地适应后期的模型学习;可以用于随机模拟以进行复杂模型的近似求解或推理。另外,采样在数据可视化方面也有很多应用,可以帮助人们快速、直观地了解数据的结构和特性。
对于一些简单的分布,如均匀分布、高斯分布等,很多编程语言里面都有直接的采样函数。然而,即使是这些简单分布,其采样过程也并不是显而易见的,仍需要精心设计。对于比较复杂的分布,往往并没有直接的采样函数可供调用,这时就需要其他更加复杂的采样方法。因此,对采样方法的深入理解是很有必要的。
本章会通过一系列的问题与解答采展现采样的相关知识,包括采样的作用、常见的采样方法、采样在一些分布或模型上的具体实现,以及采样的应用。

第9章 前向神经网络
深度前向网络(Deep Feedforward Networks ) 是一种典型的深度学习模型。其目标为拟合某个函数,即定义映射将输入转化为某种预测的输出,并同时学习网络参数的值,使模型得到最优的函数近似。由于从输入到输出的过程中不存在与模型自身的反馈连接,此类模型被称为“前馈”。深度前馈网络通常由多个函数复合在一起来表示,该模型与一个有向无环图相关联,其中图则描述了函数的复合方式,例如“链式结构”。链的全长定义为网络模型的“深度”。假设真实的函数为,在神经网络的过程中,我们试图令拟合的值,而训练数据则提供在不同训练点上取值的的近似实例(可能包含躁声),即每个样本伴随一个标签 ,指明输出层必须产生接近标签的值;而网络学习算法则需要决定如何使用中间的“隐藏层”来最优的实现的近似。
深度前馈网络是一类网络模型的统称,我们常见的多层感知机、自编码器、限制玻尔兹量机,以及卷积神经网络等,都是其中的成员。

第10章 循环神经网络
循环神经网络(RecurrentNeural Network, RNN)是用来建模序列化数据的一种主流深度学习模型。我们知道,传统的前馈神经网络一般的输入都是一个定长的向量,无法处理变长的序列信息,即使通过一些方法把序列处理成定长的向量.模型也很难捕捉序列中的长距离依赖关系。RNN则通过将神经元串行起来处理序列化的数据。由于每个神经元能用它的内部变量保存之前输入的序列信患,因此整个序列被浓缩成抽象的表示,并可以据此进行分类或生成新的序列。近年来,得益于计算能力的大幅提升和模型的改进,RNN在很多领域取得了突破性的进展一一机器翻译、序列标注、图像描述、推荐系统、智能聊天机器人、自动作词作曲等。

第12章 集成学习
面对一个机器学习问题,通常有两种策略。一种是研发人员尝试各种模型,选择其中表现最好的模型做重点调参优化。这种策略类似于奥运会比奏,通过强强竞争来选拔最优的运动员,并逐步提高成绩。另一种重要的策略是集各家之长,如同贤明的君主广泛地昕取众多谋臣的建议,然后综合考虑,得到最终决策。后一种策略的核心,是将多个分类器的结果统一成一个最终的决策。使用这类策略的机器学习方法统称为集成学习。其中的每个单独的分类器称为基分类器。
俗语说“三个臭皮匠,顶一个诸葛亮“基分类器就类似于“臭皮匠”,而之前介绍的很多复杂模型可以认为是“诸葛亮”。即使单一一个“臭皮匠”的决策能力不强,我们有效地把多个“臭皮匠”组织结合起来,其决策能力很有可能超过“诸葛亮"。 而如何将这些基分类器集成起来,就是本章要讨论的重点。
集成学习不仅在学界的研究热度不减,在业界和众多机器学习竞赛中也有非常成功的应用。例如在Kaggle竞赛中所向披靡的XGBoost,就是成功应用集成学习思想的一个例子。
