赞
踩
本节书摘来异步社区《机器学习项目开发实战》一书中的第1章,第1.1节,作者:【美】Mathias Brandewinder(马蒂亚斯·布兰德温德尔),更多章节内容可以访问云栖社区“异步社区”公众号查看
什么是机器学习?机器学习的核心是编写能够学习如何根据经验执行任务的程序,而不需要明确地编程说明如何解决问题。这仍然是一个模糊的定义,产生了这样的问题:如何精确地定义“学习”?下面是一个有些乏味的定义。
如果一个程序得到更多的数据点,它就自然能够更好地执行指定的任务,那么我们就称它是“学习”。也可以反过来看这个定义:如果你不顾观察到的结果,一次又一次地重复进行相同的工作,那当然就没有“学习”。
上述定义很好地总结了“进行机器学习”的含义。你的目标是编写一个自动执行某些任务的程序。这个程序应该能够从经验中学习,经验的形式可能是预先存在的过往观测数据集,也可能是程序本身执行任务时积累的数据(称作“在线学习”)。随着可用数据越来越多,无须更改程序代码本身,程序就应该变得更加擅长此项任务。
编写这样一个程序时,你的任务包括两个方面。首先,你的程序需要可从中学习的数据。机器学习的一个重要组成部分是收集数据,并准备数据使其形式可供程序使用。将原始数据重新组织为更好地表现问题域、程序可理解格式的过程称作特征抽取。此后,程序必须能够理解自己执行任务的质量,以便根据经验调整和学习。因此,定义一个指标,准确地计量任务完成质量,是至关重要的。
最后,机器学习需要一些耐心、好奇心和许多创意!你需要选择一种算法,为它提供数据以训练某种预测模型,验证模型的表现,还需要改进和迭代——可能是定义新功能,也可能是选择新的算法。
这一周期——从训练数据中学习,评估验证数据并改进——是机器学习过程的核心。这也是真正起作用的科学方法:你努力地找出一种模型,通过公式化各种假设,进行一系列验证试验确定如何推进,准确地预测世界的发展。
在进入我们的第一个问题之前,必须简要地说明两点。首先,这只是对机器学习的宽泛描述。机器学习适用于多个领域的问题,从检测垃圾邮件和自动驾驶汽车,到推荐你可能喜欢的电影,自动翻译或者使用医疗数据帮助诊断。虽然只有深入理解各个领域的专业知识及需求才能成功地应用机器学习技术,但是原理和方法大体相同。
其次,请注意我们的机器学习定义中明确地提到了“编写程序”,和主要考虑验证模型是否正确的统计学不同,机器学习的最终目标是创建一个在生产环境中运行的程序。这本身就使之成为一个有趣的领域,因为本质上机器学习是跨学科的(在统计方法和软件工程上都成为专家是很难的),它也为软件工程师开创了一个非常激动人心的新领域。
现在我们已经有了基本的定义,下面进入第一个问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。