很多人问“AI人工智能操控”到底是什么意思?其实在深入之前,我们先得把定义捋清楚:人工智能(AI)到底是什么?如果你让十个技术人员给个定义,大概率会收到十几种不同的回答,其中至少一半会加一句“看情况”。
简单来说,人工智能就是一种能从经验中学习、并据此调整自身行为的机器或程序。虽然我很喜欢聊天机器人和语音界面,但我通常不会把它们归入严格的AI范畴——因为它们的知识和交互方式是静态的,开发者可能会从日志中学习并更新应用,但程序本身并没有在学习。真正意义上的AI,今天用得最多的是游戏智能(比如下棋或跑酷)、自动驾驶汽车,以及物体操控和感知。没错,这些都不是新鲜事——早在2002年我上大学时就学过一些AI模块,而它的历史还能追溯到更早。只是最近硬件价格下降、需求激增,才让AI的活动、兴趣和项目如雨后春笋般冒出来。
你可能还听过很多其他AI技术,比如训练智能的机器学习,以及处理输入输出的各种技术(语言处理、图像识别等)。这个话题很重要,我会尽量说得简单明了。好了,咱们开始吧。
机器学习
可以把机器学习(大致)想象乘人类上学。这是你的应用获得初步知识的过程,而它必须利用这些知识,并在经验基础上继续发展。就像上学的人类一样,它根据所学内容和教学方式,具备判断和行动的能力。如果给应用提供的是断断续续、有限或有偏见的信息集,那效果就会大打折扣。平衡训练AI的难度确实不低——甚至比技术领域的常态还要难——而且完全取决于你的用例。如果你是为小众场景创建AI,用较小的数据集就够,不需要像从海量数据源中学习的AI那样接受广泛的训练。
深度学习和神经网络
深度学习是机器学习的子集,重点在于尝试复制人脑的工作方式。听起来很神秘,因为我们甚至还没完全搞懂人脑是怎么工作的。不过,现在的计算能力已经让我们能够更好地模仿我们所以为的人脑运作方式,以及它从经验中学习的过程。神经网络是深度学习背后的方法:多个节点共同承担任务,通过考虑示例并与网络中的其他节点共享经验来学习。如果一个节点弄明白了成功完成任务的关键,就可以和其他所有节点分享,然后进行新的实验。
认知计算
如果你觉得上面的定义已经很宽泛了,那准备好被惊讶——因为目前还没有公认的认知计算定义。这里尝试给出一个自己的解释:如果说神经网络试图模拟大脑,那么认知计算就是通过有用的感官信息来增强“大脑”。这些信息包括文本、口语、图像、热量、空间感知等。提供给网络的额外数据流有助于它适应变化、做出反应,并据此做出决策。
计算机视觉
虽然有些人现在把它归入认知计算,但计算机视觉的历史更悠久。在AI语境下,“视觉”还包括我们肉眼看不到的图像——机器也能处理X射线或红外线这些人类无法感知的视觉输入。
自然语言处理(NLP)
作为写作者,NLP是AI中最让我兴奋的部分。同样,这不是新学科,但最近的进展让它更进一步。NLP负责翻译书面或口头的人类语言,理解其内容、上下文和意图,并根据所学对人类做出恰当回应。
工具和库
说到工具和库,每个领域都有一些推荐,有些则跨多个类别。这个领域的库大多面向Python开发者,但也会尽量包含支持其他语言的。顶尖的云服务商都在发力:IBM的Watson提供了覆盖多数用例的服务和库;谷歌、微软Azure、亚马逊AWS也都有自己的产品。另外还有大量可自行安装的开源选项,随便搜一下就能找到几十个。下面列几个常见的:
- Keras:高级神经网络Python库,可以运行在其他深度学习库之上,旨在简化模型的实验。
- MXNet:较新但已经很火的深度学习库,支持多种编程语言和部署方式。
- Deeplearning4j:基于JVM的深度学习库,有企业友好型产品,内置可视化实验笔记本。
- Spark MLib:如果你已经在用Spark做数据流处理,这个附加库能帮你做更多数据分析。
- OpenCV:广泛使用且支持良好的计算机视觉库。
- SimpleCV:和OpenCV类似,紧随其后。
- NLTK:用于处理和理解自然语言的Python库。
- 对于JVM用户,可以看看OpenNLP。
伦理
技术出身的读者可能纳闷为什么加这部分——但这很重要。随着企业和社会越来越依赖AI承担更多任务,我们必须谨慎。杀手机器人的科幻预测听起来有点远,但真实的AI相关问题是迫在眉睫的。技术行业缺乏多样性,会在无监督自动化系统的决策中放大偏见——比如训练数据中隐含的潜意识偏见。工程师很少会故意在机器学习模型里加入有偏数据,但如果没有团队里的人提醒“这不对劲”,我们常常意识不到自己的偏见。记住:算法没有偏见,但人有。
