7x24快讯 ·

谈谈基于机器学习的编程到底比传统编程强在哪里?

在本文开始之前,笔者要和大家分享两个在网络上流行的公式:

传统编程的公式:规则 + 数据 = 答案

机器学习的公式:答案 + 数据 = 规则

这两个公式中的三个关键词是一模一样的,分别是数据、规则和答案,但是这三个关键词在等号左右的排列位置却不同。从中我们不难看出,机器学习正在改变着整个编程行业。

而这一观点也得到了一些专家的佐证,以网络安全为例,Institute for Critical Infrastructure Technology 高级研究员 James Scott 曾表示,基于签名的恶意软件检测已死,取而代之的是基于机器学习的人工智能,它将成为防御变异哈希最好的方式。

那么,基于机器学习的编程到底与传统编程有哪些不同呢?顾名思义,机器学习大部分工作是由机器来完成的,而传统编程需要程序员自己根据具体的问题建模解决。除此之外,基于机器学习的编程比传统编程还强在哪里呢?

输入

首先,两者输入的都是数据,但是能够接受的数据类型不同。基于机器学习的编程基本可以接受所有的数据类型,例如声音、图片、视频、文本等等,而传统编程接受的数据类型要看程序员的设置,一般来说只可以接受程序员定义好的数据类型。

基于机器学习的数据选择还可以分为三部分,训练用数据、验证用数据和测试用数据。随着数据的不断累积,反复让之前的简单逻辑与数据结果进行比对,不断修正验证,最终结果会愈趋向正确。而传统编程是基于规则的算法,如果发生错误,那么在被发现之前,该错误会一直重复发生。

处理

基于机器学习的编程中,处理包括知识表示和模式匹配、搜索、逻辑、问题解决和学习。而在传统编程中,需要根据待解决的问题设计程序,并完成字符输入。

机器学习比较常见的 3 个应用场景分别是:一次性模型,要解决的问题是由上级严格定义的,并且提供了一些小型数据;嵌入模型,里面有许多变量,比如,模型是静态的还是迭代的,是局部的还是通过 API 远程调用的等等;深度模型,建立用于特定某个领域预测的模型,并通过经验和技巧来提升和证明其准确性。

预测

基于机器学习的编程是基于预测的,而传统编程是基于解释的。基于概率、基于反馈、基于总结,这是机器学习这种经验主义最大的特点,也是与传统程序设计这种基于因果关系的最大不同点。

结论

通过上文对比,基于机器学习的编程在很多方面都胜过传统编程,传统编程更适合于简单的任务,而基于机器学习的编程更适合解决复杂的问题。针对基于机器学习的编程步骤,普华永道也给出了描述,笔者在此贴出来,希望能对大家有用。

普华永道信息图总结的机器学习的主要流程 / 步骤:

选择数据:这一过程又分为三部分,分别是训练用数据、验证用数据、测试用数据

数据建模:使用训练数据构建涉及相关特征的模型

验证模型:用验证数据验证建立的模型

调试模型:为了提升模型的性能,使用更多的数据、不同的特征,调整参数,这也是最耗时耗力的一步

使用模型:部署模型训练好的模型,对新的数据进行预测

测试模型:使用测试用数据验证模型,并评估模型的性能

参考链接:https://www.analyticsindiamag.com/heres-why-machine-learning-wins-hands-down-against-conventional-programming/

参与评论