Machine learning:what and why?
我们正在进入大数据时代。例如,大约有1万亿个网页1; 每秒1小时的视频上传到YouTube,每天上传的内容可以播放10年2; 数千人的基因组,每个基因组长度为3.8×10 9个碱基对,已经被各个实验室测序; 沃尔玛每小时处理超过1M笔交易,数据库包含超过2.5 PB(2.5×10 15)的信息(Cukier 2010); 等等。
大量的数据需要自动化的数据分析方法,机器学习恰好可以提供。 特别是,我们将机器学习定义为一组方法,可以自动检测数据中的模式(pattern),然后使用未覆盖的模式预测未来的数据(data),或者在不确定的情况下做出其他类型的决策(例如计划如何收集更多数据!)
这本书采用的观点是:解决这类问题的最好方法是使用概率论这个工具。概率论可以被应用于任何涉及不确定性的问题中。在机器学习中,不确定性以多种形式出现:根据过去的一些数据,对未来的最佳预测是什么? 什么是解释一些数据的最佳模型? 机器学习的概率方法与统计学领域密切相关,但其重点和术语略有不同。
我们将描述各种各样的概率模型,适用于各种数据和任务。 我们还将描述用于学习和使用这些模型的各种算法。 我们的目标不是关于特别技术的食谱(cook book),而是通过概率建模和推理的视角来呈现统一的视角。 虽然我们会关注计算效率,但是关于如何将这些方法扩展到真正海量数据集的细节在其他书籍中有更好的描述,例如(Rajaraman和Ullman 2011; Bekkerman et al。2011)。
Type of machine learning
机器学习通常被分为两种主要的类型。在监督学习方法中,目标是:在给定输入-输出对构成的标记数据集时,学习一个从x到y的映射image.png
。D被称为训练集,N是训练数据的数量。
- 当给定了奖励和惩罚信号时,强化学习能够学习做出什么样的行动(act)或者行为(behave)。(举例子来说,考虑一下小孩子是怎么学会走路的)
- 有时候,当我们对一个预测没有足够的confidence,返回“我不知道”可能比返回一个我们不trust的label更合适。比如:当参加Jeopardy比赛时,如果答错将会扣分,IBM制作的系统就会首先计算confidence,有时会返回“我不知道”
- 使用降维技术有时是有用的。当我们将低维度的数据作为输入,预测准确度经常会变高。因为,模型能够更加聚焦于物体的本质,过滤掉了非本质的特征。同时,低维度的数据能够使得加快速度。
- 介绍一个电影推荐的模型,戳这里
- 在本书中,我们将侧重于形式p(y | x)或p(x)的概率模型,取决于是监督学习还是非监督学习。 定义这些模型有很多方法,但最重要的区别是:模型的参数数量是否固定,或者参数数量是否随着训练数据的数量增加? 前者称为参数模型,后者称为非参数模型。 参数模型的优势在于使用速度更快,但缺点是对数据分布的性质做出更强的假设。 非参数模型更灵活,但对于大型数据集通常在计算上难以处理。 我们将在下面的部分给出两种模型的例子。 尽管我们的许多讨论也适用于无监督学习,但我们注重监督学习的简单性。(K近邻法属于非参数模型,即形式为p(x)的概率模型)
- K近邻分类器很简单,并且可以比较好地起效果,前提是给定了一个良好的距离度量方法和足够的标注数据。然而,KNN的主要问题是,当输入数据的维度过高,分类器就不会work地那么好。
- 当我们适应高度灵活(flexible)的模型时,我们需要小心过拟合,也就是说,我们应该避免尝试对输入中的每一个微小变化建模,因为更可能是噪声而不是真实信号。
- 在训练模型时,我们无法访问测试集(假设),所以我们不能使用测试集来选择正确复杂度的模型。 但是,我们可以通过将训练集分为两部分:一部分用于训练模型,另一部分用于选择模型复杂度,称为验证集。 然后,我们让所有模型拟合训练集,并在验证集上评估它们的性能,并选择最好的。 一旦我们选择了最好的模型,我们就可以用整个数据集来重新训练模型。 如果我们有单独的测试集,我们可以评估其性能,以估计我们方法的准确性。
- No free lunch theorem. 机器学习的大部分内容都涉及到找出不同的模型和不同算法去拟合数据。 我们可以使用交叉验证等方法来凭经验选择适合我们特定问题的最佳方法。 然而,没有普遍的最佳模式 - 这有时被称为没有免费的午餐。 原因在于,在一个领域中运作良好的一组假设可能在另一个领域中效果不佳。根据没有免费午餐定理,我们需要开发许多不同类型的模型,以涵盖现实世界中各种各样的数据 。 对于每个模型,我们可以使用许多不同的算法来训练模型,这些算法会进行不同程度的速度 - 精度 - 复杂度折衷(tradeoffs)。