移动端AI与ML应用开发:基于iOS和Android
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 什么是人工智能

根据我的经验,人工智能已成为有史以来最容易被误解的技术之一。或许这是因为它的名字——人工智能听起来像智能的人工创造。也许是科幻小说和流行文化中广泛使用了该术语,其中AI通常用于描述外观和声音都像人类的机器人。我记得《星际迷航:下一代》中的角色数据便是人工智能的缩影,他的故事使他成为人类,因为他很聪明,有自我意识,但缺乏情感。像这样的故事和人物很可能引起对人工智能的讨论。而其他的,例如各种电影和书籍中的邪恶AI,则已经导致人们对“AI可以成为什么”产生了恐惧。

考虑到AI以这些方式出现,很容易得出他们对AI的定义。然而,这些都不是AI的实际定义或示例,至少在今天的术语中是这样。这不是智能的人工创造,而是智能的人工表象。当你成为AI开发人员时,你并不是在构建一种新的生命形式,而是在编写与传统代码行为方式不同的代码,并且可以非常轻松地模拟智能对事物的反应方式。一个常见的例子是在计算机视觉中使用深度学习,而不是编写包含大量可解析像素的if...then规则的代码来试图理解图像内容,你可以让计算机学习通过“看”大量样本来知道内容是什么。

例如,假设你想编写代码来区分T恤和鞋子(如图1-1所示)。

图1-1:T恤和鞋子

你会怎么做?好吧,你可能想要寻找特定的形状。T恤上明显平行的垂直线条,以及身体轮廓,是其作为一件T恤的很好的标识。底部的粗水平线和鞋底则很好地表明右图是一双鞋。但是,你必须编写大量代码才能检测到这一点。并且这只是一般的情况——当然,非传统设计会有很多例外,例如镂空T恤。

如果要让一个聪明人在鞋子和T恤之间做出选择,你会怎么做?假设他以前从未见过它们,你可以展示很多鞋子和T恤的例子,这会帮助他弄清楚什么是鞋子,以及什么是T恤。你不需要给他提供很多规则来说明哪个是哪个。人工智能以同样的方式运作。不需要弄清楚所有这些规则,也不需要将它们输入计算机来做区分,而是向计算机提供大量T恤和鞋子的示例,计算机就会弄清楚如何区分它们。

但是计算机本身不会这样做。它使用你编写的代码来完成。该代码的外观和感觉与典型代码大不相同,计算机用来学习区分的框架是,不需要你自己来弄清楚如何编写。已经存在用于此目的的几个框架了。在本书中,你将学习如何使用TensorFlow来创建我刚刚提到的应用程序!

TensorFlow是一个端到端的机器学习开源平台。你将在本书中广泛使用它,从创建使用ML和深度学习的模型,到使用TensorFlow Lite将它们转换为适合移动设备的格式并在移动设备上执行它们,再到使用TensorFlow-Serving为它们提供服务。它还支持诸如ML Kit之类的技术,该技术将许多常见模型作为一站式方案提供,并带有围绕移动场景设计的高级API。

正如你在阅读本书时会看到的,人工智能技术并不是特别新颖或令人兴奋。当前人工智能技术的爆炸式发展得益于不断增强的低成本计算能力以及海量数据的可用性。拥有两者是使用机器学习构建系统的关键。但是为了演示这个概念,让我们从小地方着手,这样更容易掌握。