|
|
|
|
移动端

1.2.1 机器学习与传统编程

《精通数据科学:从线性回归到深度学习》第1章数据科学概述,本书从数学统计学,讲到机器学习、深度学习中用到的算法及模型,借鉴经济学视角给出模型的相关解释,深入探讨模型的可用性,并结合大量的实际案例和代码帮助读者学以致用,将具体的应用场景和现有的模型相结合,从而更好地发现模型的潜在应用场景。本节为大家介绍机器学习与传统编程。

作者:唐亘来源:人民邮电出版社|2018-05-24 09:04

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


1.2.1 机器学习与传统编程

首先,通过一个假想的例子来体会这两者之间的差异。假设我们需要构建一个能区分老虎和斑马图片的系统,而这个任务被交给了程序员小李和数据科学家小胡。

程序员小李拿到这个任务之后,他首先总结了两条分辨这两种动物的经验:

斑马的毛发是黑白相间的,而老虎的毛发有3种颜色:黑色、白色和黄色。

斑马的耳朵比较大,而老虎的耳朵比较小。

然后,小李将上面的两条经验总结成规则:如果图中的动物有黄色毛发或者耳朵比较小,那么图中的动物是老虎,反之则为斑马。

最后,他将规则翻译成程序代码交给计算机去执行。

数据科学家小胡的做法则完全不同。他并不去总结区别这两种动物的规则,而是假设毛发颜色和耳朵大小能区别这两者。于是小胡将这个逻辑翻译成学习程序运行在计算机上。与此同时,他还从网络上收集了一大堆老虎和斑马的图片,并将这些图片做好标记,即每张图片对应的动物是什么。然后小胡将数据(图片+标记)输入给之前编写好的学习程序,而后者就可以根据数据不断累积经验和总结规则,这个过程被称为模型训练。经过一段时间的训练后,学习程序最后得到了一个模型(以代码的形式存在)。这个得到的模型和小李自己编写的程序一样,可以用来区分老虎和斑马的图片。

小李和小胡各自的工作流程如图1-3所示。从编程的角度来看,机器学习是一种能自动生成程序的特殊程序。

也许上面的例子有点过于抽象了,下面再来看一个简单而具体的例子。假设我们想通过一个成年人的身高(用变量x表示)来预测他的体重(用变量y表示)。这项工作同样被交给了小李和小胡。

小李拿到问题之后,首先上网查阅了成年人身高与体重的相关研究资料。他发现这两者的关系可以用如下的公式表示。

接着他将公式(1-1)转换为程序里面的函数,这个函数的输入参数是身高,输出是预测的体重。

小胡接到任务后,首先假设身高和体重的关系可以用线性回归模型来表示,也就是公式(1-2),其中a和b为未知的模型参数

同图片识别中的做法类似,小胡接下来收集了大量的人体身高和体重的数据。他将这些数据输入给模型,而模型将根据得到的数据估计未知参数a,b。估计的原则是使得模型预测值与实际值的差距达到最小。经过计算之后,得到参数的估计值为\hat{a}=0.8,\hat{b}=-100。也就是说经过模型训练后,小胡得到了如公式(1-3)所示的程序

图1-4所示是小李和小胡各自提供的解决方案。

总结一下,传统的编程方式是人类自己积累经验,并将这些经验转换为规则或数学公式,然后就是用编程语言去表示这些规则和公式。而机器学习可以被看作一种全新的编程方式。在进行机器学习时,人类不需要总结具体的规则或公式,只需制订学习的步骤,然后将大量的数据输入给计算机。后者可以根据数据和人类提供的学习步骤自己总结经验,自动升级。计算机“学习”完成之后会得到一个模型程序,而这个由程序生成的程序可以达到甚至超过人类自身的水平。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络系统开发实例精粹(JSP版)

《网络系统开发实例精粹》以实际的软件开发项目实例介绍贯穿始末,逐层深入的介绍了应用JSP开发Web应用程序的详细过程。全书以深透软件工程...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊