算法是什么,为什么会让人不舒服?
非洲工作室
“算法”是一个被大量抛出的词。但是当我们围绕YouTube或Facebook算法建立对话时,我们实际谈论的是什么?什么是算法,为什么人们如此抱怨它们?
算法是解决问题的指令
我们生活在一个只能模糊地理解计算机的世界,即使它们渗透到我们生活的每一个时刻。但是有一个计算机科学领域,任何人都可以理解正在发生的事情的基础知识。计算机科学领域被称为编程。
编程不是很有魅力的工作,但它是所有计算机软件的基础,从Microsoft Office到robocallers。即使你的编程知识完全源于糟糕的90年代电影和不受欢迎的新闻报道,你也许不需要任何人向你解释程序员的作用。程序员为计算机编写代码,计算机遵循该代码的指令来执行任务或解决问题。
嗯,在计算机科学的世界里,算法只是代码的一个奇特的词。任何告诉计算机如何解决问题的指令都是一种算法,即使任务非常简单。当您打开计算机时,它会遵循一组“如何打开”说明。这是一种算法。当NASA计算机使用原始无线电波数据渲染外太空的照片时,这也是一种算法。
“算法”一词可用于描述任何指令集,甚至可以在计算领域之外。例如,您在抽屉中分类银器的方法是一种算法,使用浴室后洗手的方法也是如此。
fizkes /存在Shutterstock
但是,事情就是这样:现在,“算法”这个词往往被保留用于一些非常具体的技术对话。你没有听到人们谈论“基础数学”算法或“MS Paint涂鸦工具”算法。相反,你听到Instagram用户抱怨朋友建议算法,或隐藏Facebook的数据收集算法的隐私组织。
如果“算法”是计算指令的笼统术语,那么为什么我们几乎只使用它来描述数字世界的混乱,神奇和邪恶方面呢?
大多数人使用“算法”和“机器学习”可互换
在过去,程序员和流行文化将大多数计算指令称为“代码”。在大多数情况下,今天仍然如此。机器学习是计算的大而混乱的领域,我们倾向于使用“算法”而不是“代码”。这可以理解地导致围绕“算法”这个词的混乱和不安。
机器学习已经存在了很长时间,但它在过去15年左右才成为数字世界的重要组成部分。虽然机器学习听起来像一个复杂的想法,但它很容易理解。程序员无法为每种情况编写和测试特定代码,因此他们编写可以自行编写的代码。
将其视为一种更实用的人工智能形式。如果您将老板的电子邮件分类为垃圾邮件,那么您的电子邮件客户端将开始将所有老板的电子邮件自动推送到垃圾邮件文件夹中。同样,Google使用机器学习来确保YouTube搜索结果保持相关性,亚马逊使用机器学习来建议您应该购买哪些产品。
当然,机器学习并不是一切都很好。 “机器学习”这个名字听起来令人毛骨悚然,让一些人感到不舒服,机器学习的一些流行用途在道德上是有问题的。 Facebook用于数据挖矿或网络上的用户的算法是机器学习的一个不好的例子。
在媒体上,您将听到用于排名搜索结果的“Google算法”,用于推荐视频的“YouTube算法”,以及用于确定您在时间轴中看到哪些帖子的“Facebook算法”。这些都是争论和辩论的主题。
相关:AI的问题:机器正在学习,但无法理解它们
为什么算法是有争议的
长除法是用于划分数字的熟悉算法(以及许多其他算法)。它只是由学童而不是计算机实现的。您的Intel CPU在分割数字时完全使用不同的算法,但结果是相同的。
语音到文本通常使用机器学习,但没有人谈论语音到文本的“算法”,因为每个人都可以立即识别出客观正确的答案。没有人关心计算机如何计算你所说的内容或是否是机器学习。我们只关心机器是否得到了正确的答案。
但是机器学习的其他应用没有“正确”答案的好处。这就是为什么算法已成为媒体中常见的对话主题。
按字母顺序对列表进行排序的算法只是完成定义任务的一种方式。但像Google这样的算法“以某种方式”为搜索排名最佳网站“或YouTube用于”推荐最佳视频“的算法更加模糊,并且无法完成定义的任务。人们可以争论该算法是否产生应该得到的结果,人们会对此有不同的看法。但是,通过我们的字母排序示例,每个人都可以同意列表最终按字母顺序排序。没有争议。
我们该如何使用单词“算法?”
算法是所有软件的基础。没有算法,你就没有电话或电脑,你可能正在一张纸上阅读这篇文章(实际上,你根本就不会阅读它)。
但是,普通公众并没有使用“算法”这个词作为计算机代码的一个术语。事实上,大多数人都认为计算机代码和算法之间存在差异 – 但事实并非如此。由于“算法”这个词与机器学习有关,它的含义变得模糊,但它的使用变得更加具体。
Evgeny Atamanenko / Shutterstock
您是否应该开始使用“算法”这个词来描述最简单的计算机代码?可能不是,因为不是每个人都会明白你的意思。语言总是在变化,而且总是有很大的变化。人们需要一个词来描述令人困惑,不透明,有时可疑的机器学习世界,而“算法”正在成为这个词 – 现在。
话虽这么说,但要记住,算法(和机器学习)的核心是一堆用来解决任务的代码。没有魔术;它只是我们已经熟悉的软件的一个更复杂的迭代。
资料来源:Slate,Wikipedia,GeeksforGeeks