写点什么

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

  • 2019-01-08
  • 本文字数:1250 字

    阅读完需:约 4 分钟

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

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


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

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


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


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


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

输入

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


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

处理

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


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

预测

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

结论

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


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


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

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

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

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

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

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


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


2019-01-08 15:157238
用户头像

发布了 34 篇内容, 共 27.4 次阅读, 收获喜欢 56 次。

关注

评论

发布
暂无评论
发现更多内容

互联网就业系列文(一)

HZFEStudio

互联网 就业

区块链 | 让付费的知识真正“物超所值”

旺链科技

区块链 知识付费

重启心智解锁,重新获得一份能力精进指南,面对不确定性的未来,我们可以和世界的变化做好友。

叶小鍵

全新升级IoT Stack 2.0和度能2.0,百度持续加码为产业智能化安全护航

百度大脑

百度智能云

100个开箱即用的shell脚本,CV大法好,工作不费脑!

北游学Java

Java Shell

政治局会议再提工业互联网产业数字化|区块链如何协同发力?

旺链科技

区块链 工业互联网

网络安全逐渐成为程序员的必备技能

学神来啦

Linux 程序员 安全 渗透

vue编码之优化手段

法医

Vue 大前端 6月日更

敏捷绩效管理三剑客:OKR 、KPI、CFR

CODING DevOps

DevOps OKR 敏捷绩效 绩效管理

一群不想鸡娃的直男程序员,决定对一支笔下手了

脑极体

Go 语言学习路线来啦

roseduan

学习 Go 语言

实时音视频开发理论必备:如何省流量?视频高度压缩背后的预测技术

JackJiang

音视频 即时通讯 IM 视频编解码

Python——元组的使用

在即

6月日更

JAVA笔记(二)--Java初始

加百利

Java 后端 6月日更

缓存的世界Redis(一)

卢卡多多

redis 缓存 6月日更

并发王者课-黄金3:雨露均沾-不要让你的线程在竞争中被“饿死”

MetaThoughts

Java 多线程 并发 并发王者课

【LeetCode】山脉数组的峰顶索引Java题解

Albert

算法 LeetCode 6月日更

Flink Metric

Alex🐒

flink 翻译 flink1.13

击破行业痛点,区块链赋能智慧物流高速发展

旺链科技

区块链 智慧物流

让宝妈宝爸告别安全顾虑,区块链构建母婴行业新生态

旺链科技

区块链 母婴

推荐学Java——应该了解的前端内容

逆锋起笔

Java 大前端 后端 JAVA开发

ARTS 打卡第11周

steve_lee

文档代码同源

不脱发的程序猿

开发规范 文档代码同源

更好链接资金需求 | 区块链如何赋能“链”金融

旺链科技

金融

【译】JavaScript 代码整洁之道-概述篇

KooFE

JavaScript 大前端 6月日更 整洁代码

EMQ映云科技边缘计算里程碑—Kuiper加入LF Edge基金会

EMQ映云科技

开源 云端 边缘流式数据 emq LF Edge

你应该知道的数仓安全

华为云开发者联盟

数据加密 数仓安全 透明加密 SQL函数加密

【融云视角】沉浸式音频与通讯技术未来趋势

融云 RongCloud

GIT基本概念与核心命令

IT视界

git 版本管理

详解Vue八大生命周期钩子函数

华为云开发者联盟

Vue 对象 函数 Vue实例 八大生命周期

什么是Python中的套接字编程?

华为云开发者联盟

Python 编程 socket 网络 套接字

谈谈基于机器学习的编程到底比传统编程强在哪里?_AI_甜梨_InfoQ精选文章