欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

1.1 什么是机器学习

程序员文章站 2022-03-11 15:09:55
第1章  绪论 1.1  什么是机器学习 随着计算机技术的发展,我们现在已经拥有存储和处理海量数据以及通过计算机网络从远程站点访问数据的能力。目前大多数的数据存取设...

第1章  绪论

1.1  什么是机器学习

随着计算机技术的发展,我们现在已经拥有存储和处理海量数据以及通过计算机网络从远程站点访问数据的能力。目前大多数的数据存取设备都是数字设备,记录的数据也很可靠。以一家连锁超市为例,它拥有遍布全国各地的数百家分店,并且在为数百万顾客提供数千种商品的零售服务。销售点的终端设备记录每笔交易的详细资料,包括日期、顾客识别码、购买商品和数量、消费总额等。这是典型的每日几个G字节的数据。只有分析这些数据,并且将它转换为可以利用的信息时,这些存储的数据才能变得有用,例如做预测。

1我们不能确切地知道哪些人比较倾向于购买哪种特定的商品,也不知道应该向喜欢读海明威作品的人推荐哪位作者。如果我们知道,我们就不需要任何数据分析;我们只管供货并记录下编码就可以了。但是,正因为我们不知道,所以才只能收集数据,并期望从数据中提取这些问题或相似问题的答案。

Glühwein是一种温热、有点甜味、加香料的葡萄酒。圣诞节期间,在欧洲很受欢迎。--译者注我们确信存在某种过程,可以解释我们所观测到的数据。尽管我们不清楚数据产生过程(例如顾客行为)的细节,但是,我们知道数据产生不是完全随机的。人们并不是去超市随机购买商品。当人们买啤酒时,也会买薯片;夏天买冰淇淋,而冬天则为Glühwein?买香料。数据中存在确定的模式。

我们也许不能够完全识别该过程,但是我们相信,我们能够构造一个好的并且有用的近似(good and useful approximation)。尽管这样的近似还不可能解释一切,但其仍然可以解释数据的某些部分。我们相信,尽管识别全部过程也许是不可能的,但是我们仍然能够发现某些模式或规律。这正是机器学习的定位。这些模式可以帮助我们理解该过程,或者我们可以使用这些模式进行预测:假定将来,至少是不远的将来,情况不会与收集样本数据时有很大的不同,则未来的预测也将有望是正确的。

机器学习方法在大型数据库中的应用称为数据挖掘(data mining)。类似的情况如大量的金属氧化物以及原料从矿山中开采出来,处理后产生少量非常珍贵的物质。同样地,在数据挖掘中,需要处理大量的数据以构建简单有用的模型,例如具有高精度的预测模型。数据挖掘的应用领域非常广泛:除零售业以外,在金融业,银行分析他们的历史数据,构建用于信用分析、诈骗检测、股票市场等方面的应用模型;在制造业,学习模型可以用于优化、控制以及故障检测等;在医学领域,学习程序可以用于医疗诊断等;在电信领域,通话模式的分析可用于网络优化和提高服务质量;在科学研究领域,比如物理学、天文学以及生物学的大量数据只有用计算机才可能得到足够快的分析。万维网(World Wide Web)是巨大的,并且在不断地增长,因此在万维网上检索相关信息不可能依靠人工完成。

然而,机器学习不仅仅是数据库方面的问题,它也是人工智能的组成部分。为了智能化,处于变化环境中的系统必须具备学习的能力。如果系统能够学习并且适应这些变化,那么系统的设计者就不必预见所有的情况,并为它们提供解决方案了。

机器学习还可以帮助我们解决视觉、语音识别以及机器人方面的许多问题。以人脸识别问题为例:我们做这件事毫不费力;即使姿势、光线、发型等不同,我们每天还是可以通过看真实的面孔或其照片来认出我们的家人和朋友。但是我们做这件事是下意识的,而且无法解释我们是如何做的。因为我们不能够解释我们所具备的这种技能,我们也就不可能编写相应的计算机程序。但是我们知道,脸部图像并非只是像素点的随机组合;人脸是有结构的、对称的。脸上有眼睛、鼻子和嘴巴,并且它们都位于脸的特定部位。每个人的脸都有各自的眼睛、鼻子和嘴巴的特定组合模式。通过分析一个人脸部图像的多个样本,学习程序可以捕捉到那个人特有的模式,然后在所给的图像中检测这种模式,从而进行辨认。这就是模式识别(pattern recognition)的一个例子。

机器学习使用实例数据或过去的经验训练计算机,以优化某种性能标准。我们有依赖于某些参数的模型,而学习就是执行计算机程序,利用训练数据或以往经验来优化该模型的参数的。模型可以是预测性的(predictive),用于未来的预测,或者是描述性的(descriptive),用于从数据中获取知识,也可以二者兼备。

机器学习在构建数学模型时利用了统计学理论,因为其核心任务就是从样本中推理。计算机科学的角色是双重的:第一,在训练时,我们需要求解优化问题以及存储和处理通常所面对的海量数据的高效算法。第二,一旦学习得到了一个模型,它的表示和用于推理的算法解也必须是高效的。在特定的应用中,学习或推理算法的效率,即它的空间复杂度和时间复杂度,可能与其预测精确度同样重要。