机器学习摸鱼笔记 #1: 初识机器学习(上)
本文包括字符共2418个字,全部读完可能需要8分钟。
引言
被誉为“现代计算机之父”的冯·诺依曼有不少逸闻趣事。其中一件是这样的:有一天,冯·诺依曼的某位物理学家朋友对他说:“我担心我不理解特征线法(求解准线性偏微分方程的一种方法)。”
冯·诺依曼回复他说:“Young man, in mathematics you don't understand things. You just get used to them(年轻人,在数学中你不理解事情,你只是习惯它们).”
时光如白驹过隙,如今的我们,可能正站在下一个时代的交汇点。人工智能似乎已经开始融入生活的方方面面,如果你也对其怀有兴趣和好奇心,期待个人的学习笔记能够帮到你,稍微感知到还在浅睡中的新世界的呼吸。
学习笔记由个人自学整理,如有错漏,还请不吝斧正~
1.1 人工智能和机器学习
Wikipedia上关于人工智能的定义:
人工智能(英语:Artificial Intelligence,缩写为 AI),亦称机器智能,指由人制造出来的机器所表现出来的智能。通常人工智能是指通过普通计算机程序的手段实现的人类智能技术。该词也指出研究这样的智能系统是否能够实现,以及如何实现。(维基百科)
对于人工智能的研究已有数十年的历史,基本遵循着一条以“推理”为重点,到以“知识”为重点,再到以“学习”为重点的基本脉络。
其中,机器学习(Machine Learning)是人工智能的一大分支,从历史上看,也是人工智能中发展最快的分支之一。你可以把机器学习看作是实现人工智能的一个途径,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科,特别是与统计学密切相关。
机器学习致力于设计和分析一些让计算机可以自动“学习”的算法,这些学习算法(learning algorithm)能够从数据中自动分析规律并生成模型(model),在借助这些模型在面对未知数据提供相应的预测和判断。
目前,机器学习已经在现实中应用广泛,一些典型实例如:垃圾邮件检测、语音识别、人脸识别、商品推荐系统、医学分析、金融交易等。
1.2 机器学习的常见类型
要进行机器学习,先要有数据。
其中,作为预测参考的输入数据在机器学习被称为训练数据(training data),你可以理解成一个由输入数据组成用于建立学习模型的集合。集合中的每一个样本被称为“训练样本”(training sample)。
而从训练数据中学得模型的过程被称为“学习(learning)”或“训练(training)” ,这个过程是通过执行机器学习的学习算法来完成。
根据训练数据的标签信息类型,我们可以大致将机器学习划分为监督学习、无监督学习、半监督学习、强化学习等。
1.2.1 监督学习
监督学习(Supervised learning)是指从带有已知标签信息的训练数据中分析并构建起一个学习模型(learning model),并依据此模型推测新的实例。
监督学习的训练集中的每一个训练样本都有对应的”正确答案”:也就是说训练数据样本和待分类的样本类别都已知,并且训练数据的样本都是带有人为标注的标签数据。
监督学习又称为有教师学习,可以理解成:在训练过程中,训练数据在学习算法中充当着类似教师的角色,学习模型就像是学生能够从教师那里获得足够的对错提示,并最终能够得知正确答案。在训练完成后,我们希望学习模型即使在面对没有见过的输入样本时,也能够借助在学习过程中所获得的“经验”举一反三,给出相对精确的预测,也就是所谓泛化能力(generalization ability)。
泛化能力(generalization ability)是指机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据对背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力被称为泛化能力。(百度百科)
监督学习的一个典型实例就是分类(classification)。
分类问题是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。对于这个假设情景的问题,在数学上,我们的目标就是要建立一个模型或者函数,将图片作为参数输入,然后输出预测结果。
比如说,如果我们想设计一个图片筛选系统,用于从网络中寻找包含喵星人的图片,如果包含喵星人的图片就会被保存,否则忽略。
在训练阶段,为了训练和优化模型性能,我们会持续输入带有人为分类标签的图片给模型“学习”,比如说包含喵星人的图片,我们会输入1作为标记(label),否则输入0。我们期待通过这样的训练方式,让学习模型“掌握”隐藏在训练数据背后的分类规律。一旦确立了这样一个预测准确的模型,我们就可以将模型部署到实际项目中,并且提供给其他人调用。
1.2.2 无监督学习
相比监督学习,无监督学习(Unsupervised Learning)不需要先验的知识进行指导,而是不断地自我认知,自我巩固,最后进行自我归纳。你可以理解成:如果说监督学习是教师指导学习,那么无监督学习就是学生在毕业后,进入社会工作,不再有教师指导而是自学的过程。
在机器学习中,无监督学习一般都是直接从不带对应类别标签的原始训练数据中学习,也就是说并不需要人为输入标签。
聚类(clustering)是无监督学习的典型应用,指的是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都有相似的一些属性。
关于聚类,我们可以举个例子,这个例子来自于南京大学周志华教授的《机器学习》:
……某一天傍晚,微雨过后,我们路过小街上的水果摊,想要买一个西瓜回家享受皮薄肉厚瓢甜的爽落感。对于挑西瓜的过程,我们可以看做是聚类的应用,也就是说把训练数据中的西瓜分成若干组,每一组称为一个“簇”(cluster)。这些自动形成的簇可能对应一些潜在的概念划分,例如“浅色瓜”“深色瓜”,甚至是“本地瓜”“外地瓜”。需要说明的是,在聚类学习中,“浅色瓜”“本地瓜”这样的概念是我们事先不知道的,并且学习过程中使用的训练样本通常不拥有标记信息。
从这个买西瓜的例子,我们可以看出聚类是样品进行分类的一种多元统计分析方法,在没有任何模式或者说没有先验知识的情况下“物以类聚”。它的基本原则是同一类中的个体有较大的相似性,不同类的个体差异性很大。聚类根据这样的相似性原则对事物进行分组,是常见的无监督学习任务。
在现实生活中,由于监督学习对于训练样本的标签获取往往需要大量的人力和物力成本,有时甚至非常困难,甚至是对于新样本,我们缺乏足够的先验知识,因此难以人工标注类别。而相对来说,我们更容易获取到大量未标记的训练数据,尤其是在互联网时代。因此,无监督学习的现实需求强烈,同时也是机器学习中非常活跃的研究领域。
(未完待续,连载更新中~)