你以为的机器学习和传统编程并不一定是你以为的

renyonggang 41 0

有些人认为人工智能(AI)和机器学习(ML)被夸大了,它们只是语句或编程而已。但这是真的吗?本文为您提供了丰富的信息,我们将在其中比较这些术语,并显示这两个领域的专家之间的差异,例如软件工程师、机器学习专家、数据科学家、程序员等等。它们真的一样吗?如果是这样的话,机器学习和传统编程。


什么是机器学习?


有人说人工智能和机器学习只是陈述,更是如此,它们只是统计数据。或者机器学习只是一个描述数学+算法的新词。这种简化似乎是合理的,但显然机器学习更复杂。

简单地说,人工智能是一把伞,涵盖了图像处理、认知科学、神经网络等领域的知识,机器学习也属于这一范畴。机器学习的核心思想是计算机不仅要使用预先编写的算法,还要学习如何自己解决问题。亚瑟·塞缪尔(创造了单词ml)给出了一个很好的定义:


机器学习是一个研究领域,它允许计算机在不进行显式编程的情况下进行学习。机器学习可以解决各种复杂的任务,这些任务很难通过算法来解决。例如,它可以是手机、自动驾驶汽车(如谷歌的自动驾驶汽车)、疾病症状诊断(沃森)、书籍(亚马逊)、Netflix、spotify、siri等的人脸识别或语音识别。


机器学习的另一个重要方面是:任何可用的机器学习技术都可以归结为三个级别的可访问性。第一个层次是它特别适合像Google或IBM这样的大型科技巨头,第二个层次是拥有一定知识储备的人(比如学生)可以使用它。机器学习的可访问性的第三个层次是,即使是祖母也能处理它。


我们目前的发展阶段是机器学习介于第二层和第三层之间。在这项技术的帮助下,世界正在迅速变化。机器学习的最后一件事是机器学习任务可以分为教师学习(监督学习)和无教师学习(无监督学习)。“教师”是指人类对数据处理的干预。当教师在培训过程中进行干预,即监督学习时,我们可以根据数据预测事物。相反,无监督学习,通过这些数据,我们可以理解机器学习的本质。


你以为的机器学习和传统编程并不一定是你以为的-第1张图片-任永刚博客 - 专注人工智能、智慧城市和5G智能新生态的网站

机器学习和传统编程有什么区别?


在传统编程中,开发人员必须硬编码程序;在机器学习中,机器从数据中学习。因此,这些术语不可互换,数据工程师无法取代传统编程,反之亦然。尽管每个数据工程师必须至少使用一种编码语言,但传统编程只是他们工作的一小部分。相反,我们不能说软件开发人员正在使用机器学习算法来创建一个网站。


和人工智能一样,机器学习不是一种选择,而是对传统编程方法的一种补充。例如,机器学习可以用来构建在线交易平台的预测算法,而平台的ui、数据可视化等元素将使用主流编程语言(如ruby或java)来执行。


因此,最重要的是,当传统编程策略的机器学习不足以完全实现一项任务时,这在实践中意味着什么?以下是解决汇率预测经典问题的两种不同方法。不管解决方案如何,第一个任务是创建最合适的算法并编写代码。然后必须设置输入参数,如果算法正确,它将产生所需的结果。


软件开发者如何创建解决方


在预测某件事情时,需要一种具有各种输入参数的算法。对于汇率预测,我们必须以过去的汇率、发行国的内外部经济变化等为参考。因此,我们设计了一个能够接受一组参数并根据输入数据预测新汇率的方案。这很简单。我们需要添加上千个参数来构建一个非常基本且不可扩展的有限集模型。然而,手工处理如此大量的数据是很麻烦的。所以我们需要一种机器学习方法来完成这项任务。


为了用机器学习的方法来解决这个问题,数据工程师使用了与传统编程完全不同的过程。而不是开发自己的算法,他们需要收集一系列的历史数据用于半自动模型构建。在收集了令人满意的一组数据后,数据工程师将其加载到定制的机器学习算法中。结果是一个模型,可以预测新的结果,并可以接收新的数据作为输入。


数据工程师如何使用机器学习来开发解决方案


机器学习的一个重要特点是不需要建立模型,任务由机器学习算法来执行。机器学习专家只需要添加一个小编辑器就可以了。机器学习和编程之间的另一个显著差异是由模型所能处理的输入参数决定的。为了进行准确的预测,必须输入大量的参数,且精度要高,因为每个参数都会影响最终的预测结果,目前人工计算还不能满足这一要求。


但是,机器学习没有这样的限制。只要您有足够的处理器能力和内存,机器学习就可以使用任意数量的输入参数。毫无疑问,这一事实使得机器学习非常强大。 Wiki认为,数据科学是一个多学科领域,它使用科学方法,流程,算法和系统从结构化和非结构化数据中提取知识和见解。


它使用最强大的硬件、最强大的编程系统和最有效的算法来解决问题。2012年,《哈佛商业评论》称之为“21世纪最性感的工作”。因此,数据科学和计算机科学一样,但数据科学的目的是处理数据并从中提取有用的信息。


那编程呢?今天的数据科学家不仅是程序员,他们通常还应该有应用统计或研究背景。有些公司也从事软件工程,特别是那些在其产品中提供数据科学或机器学习服务的公司。


机器学习工程师的工作特点


机器学习工程师的职位更多的是“技术”。换句话说,机器学习工程师与经典的软件工程师比数据科学家有更多的共同之处。机器学习工程师通常与数据科学家相似,你需要能够处理数据并尝试不同的机器学习算法来解决问题,包括创建原型和现成的解决方案。

你以为的机器学习和传统编程并不一定是你以为的-第2张图片-任永刚博客 - 专注人工智能、智慧城市和5G智能新生态的网站

这里要强调的主要区别是:


精通一种或多种语言(通常是python)的编程技能;

较少强调在数据分析环境下工作的能力,而更多强调机器学习算法;

您可以为应用程序中的不同堆栈使用现成的库,例如,针对Python的NumPy/SciPy;

您可以使用Hadoop等创建分布式应用程序。


程序员的职业特点


程序员实际上就像数据分析师或业务系统开发人员。他们不必自己构建系统,他们只需要为现有系统编写松散结构的代码。数据科学可以说是一种新的编程浪潮,但编码只是其中的一小部分,所以要注意不要混淆它。


但如果我们深入挖掘,我们会发现其他软件工程师和软件开发人员并不相同。例如,软件工程师必须设计处理生产应用程序、分布式系统、并发性、构建系统和微服务的产品。此外,软件开发人员需要了解软件开发的所有周期,而不仅仅是实现步骤(有时不需要任何编程或编码)。


你现在能感觉到编程和机器学习之间的区别吗?希望本文能帮助您避免混淆这些术语。毫无疑问,他们有共同的技术,但他们之间的差异要大得多。因此,机器学习工程师、软件工程师和软件开发者是完全不可互换的。


打赏 支付宝打赏 微信打赏

标签: 机器学习

上一篇当前文章已是最后一篇了

下一篇当前文章已是最新一篇了

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~