什么是算法,为什么它们会让人不舒服?

“算法”是一个经常被抛来抛去的词。但是,当我们围绕YouTube或Facebook算法建立对话时,我们实际上在谈论什么?什么是算法,为什么人们对它们抱怨如此之多?

算法是解决问题的指令

我们生活在一个对计算机只有模糊理解的世界里,尽管它们渗透到我们生活的每一刻。但在计算机科学的一个领域中,任何人都可以了解正在发生的事情的基本情况。计算机科学的那个领域叫做编程。

编程并不是一项令人着迷的工作,但它是所有计算机软件的基础,从Microsoft Office到机器人呼叫器。即使你的编程知识完全来自90年代糟糕的电影和离经叛道的新闻报道,你也可能不需要任何人向你解释程序员是做什么的。程序员为计算机编写代码,计算机按照该代码的指令执行任务或解决问题。

嗯,在计算机科学的世界里,算法只是代码的一个花哨的词。任何告诉计算机如何解决问题的指令集都是一种算法,即使任务超级简单。当您打开计算机时,它会遵循一套“如何打开”的说明。这是一种有效的算法。当NASA的计算机使用原始无线电波数据来渲染外层空间的照片时,这也是一种有效的算法。

“算法”这个词可以用来描述任何指令集,甚至在计算领域之外。例如,您在抽屉中对银器进行分类的方法是一种算法,就像您在使用浴室后洗手的方法一样。

但是,事情是这样的:如今,“算法”这个词往往被保留在一些非常具体的技术对话中。你不会听到人们谈论“基础数学”算法或“MS涂鸦工具”算法。相反,你会听到Instagram用户抱怨朋友建议算法,或者隐私组织抨击Facebook的数据收集算法。

如果“算法”是计算指令的总称,那么为什么我们几乎只用它来描述数字世界令人困惑、神奇和邪恶的方面呢?

大多数人交替使用“算法”和“机器学习”。

过去,程序员和流行文化将大多数计算指令称为“代码”。在很大程度上,这一点在今天仍然是正确的。机器学习是计算的一个大而模糊的领域,我们倾向于使用“算法”一词而不是“代码”。可以理解,这导致了围绕“算法”这个词的混乱和不安。

机器学习已经存在很长一段时间了,但它只是在过去15年左右的时间里才成为数字世界的一大部分。虽然机器学习听起来像是一个复杂的想法,但它很容易理解。程序员不可能在每种情况下都编写和测试特定的代码,所以他们编写可以自行编写的代码。

把它想象成一种更实用的人工智能形式。如果您将足够多的老板的电子邮件归类为垃圾邮件,那么您的电子邮件客户将开始自动将您老板的所有电子邮件推入垃圾邮件文件夹。同样,谷歌使用机器学习来确保YouTube搜索结果保持相关性,而亚马逊使用机器学习来建议你应该购买哪些产品。

当然,机器学习也不是一帆风顺的。“机器学习”这个名字听起来令人毛骨悚然,足以让一些人感到不舒服,而且机器学习的一些流行用途在伦理上是有问题的。Facebook用来对网络上的用户进行数据挖掘的算法是机器学习的一个不讨人喜欢的例子。

在媒体上,你会听到“谷歌的算法”用来对搜索结果进行排名,“YouTube的算法”用来推荐视频,“Facebook的算法”用来决定你在时间轴上看到哪些帖子。这些都是争论不休、争论不休的话题。

相关:人工智能的问题:机器在学习东西,但不能理解它们

为什么算法有争议?

长除法是一种常见的数字除法算法(在许多算法中)。只是它是由小学生进行的,而不是由电脑进行的。英特尔CPU在除数时使用完全不同的算法,但结果是相同的。

语音转文字一般使用机器学习,但没有人谈到语音转文字的“算法”,因为有一个每个人都能瞬间识别的客观正确答案。没有人关心计算机“如何”计算出你说的话,或者它是否是机器学习。我们只关心机器是否得到了正确的答案。

但是机器学习的其他应用程序没有“正确”答案的好处。这就是为什么算法成为媒体经常谈论的话题。

按字母顺序对列表进行排序的算法只是完成定义任务的一种方式。但是,像谷歌的“搜索最佳网站排名”或YouTube的“推荐最佳视频”这样的算法要模糊得多,而且不能完成既定的任务。人们可以争论这个算法是否产生了它应该产生的结果,人们对此会有不同的看法。但是,在我们的字母排序示例中,每个人都会同意列表最终会按照应该的字母顺序排序。没有争议。

我们应该如何使用“算法”这个词呢?

算法是所有软件的基础。如果没有算法,你就不会有手机或电脑,你可能会在一张纸上阅读这篇文章(实际上,你根本不会阅读它)。

但是,普通公众并不使用“算法”这个词作为计算机代码的总称。事实上,大多数人认为计算机代码和算法是有区别的--但事实并非如此。由于“算法”这个词与机器学习联系在一起,它的含义变得模糊不清,但它的用法却变得更加具体。

您是否应该开始使用“算法”这个词来描述即使是最琐碎的计算机代码?可能不会,因为不是每个人都能理解你的意思。语言总是在变化,而且它总是有很好的理由变化。人们需要一个词来描述令人困惑的、不透明的、有时甚至是可疑的机器学习世界,而“算法”正成为这个词--就目前而言。

也就是说,最好记住算法(和机器学习)的核心是为解决任务而编写的一组代码。这不是什么魔术;它只是我们已经熟悉的软件的一个更复杂的迭代。

来源:Slate,Wikipedia,Geeksfor Geek