大多数的AI书籍主要聚焦于AI背后的理论方法,却很少关注AI应用程序的工程化。目前存在哪些AI库、框架和服务?在哪种情况下应该选择哪种库、框架和服务?如何将它们整合到一个具有良好用户体验、易于维护的AI应用程序中?如何满足功能性要求和非功能性要求,特别是高性能要求?针对上述问题,本书结合当前的新兴技术和具体实例给出了很好的答案。
本书首先介绍AI的定义以及AI的简要发展史,接着介绍主要的AI方法,包括机器学习和知识表示,之后给出AI应用程序架构设计的指导原则,最后聚焦于AI的各个分领域,包括信息检索、自然语言处理及计算机视觉。书中涵盖大量应用实例,其中,虚拟博物馆实例贯穿全书。此外,本书还提供相关AI产品列表及源代码样例,方便读者快速开发自己的应用。
前 言
为什么还要写一本关于人工智能的书?的确,在过去的几十年里,已经有数百种关于人工智能(Artificial Intelligence,AI)的出版物,包括科研论文和教科书。大多数的AI出版物主要聚焦于AI背后的理论方法,即逻辑、推理、统计基础等,却很少关注AI应用的工程化。
现代复杂的IT应用并不是从头开始的,而是通过集成现成的组件(库、框架和服务)开发的。当然,人工智能应用也是这样开发的。在过去的几十年中,已经开发了很多具有AI基础功能(如逻辑、推理和统计)的现成组件。将这些组件集成到用户友好、高性能和可维护的AI应用中需要特定的工程技能,本书重点关注这些技能。
我的专业背景是一名软件工程师。我在德国攻读计算机科学学士、硕士学位,随后在澳大利亚攻读博士学位,毕业后在德国一家大型软件公司工作了十多年。在大规模的团队中,我们为客户开发定制软件,我们的客户有跨国银行、信用卡发行商、旅游运营商、电信运营商、时尚公司,等等。我在团队中的工作与涉及的行业领域和技术一样是多元化的。涉及的工作从软件开发、软件架构、项目管理,到管理部门和管理公司的研发团队。
15 年前我重新进入大学担任教授,我的所有课程都有一个共同主题,那就是根据工程原理和实践进行软件的专业开发。AI一直都是我感兴趣的研究领域,但我的行业项目与AI关系不大。人工智能应用,如强大的图像处理、语音分析和生成等,正在迅速进入市场,这再次引起了我的兴趣。在工业界和公众资助的研发项目中,我逐渐积累了工程化人工智能应用的专业知识。在与同事、研究生和行业合作伙伴组成的团队中,我们为酒店门户网站、图书馆、艺术博物馆、医院的肿瘤科、心理治疗诊所的边缘型人格治疗科和机器人制造商开发应用。无论行业领域多么多样化,许多方法和技术都可以跨项目使用,从而开发满足用户良好体验的应用。这些应用可满足功能性要求和非功能性要求,特别是高性能要求。总体而言,我们致力于将通用软件工程技能与人工智能专业知识相结合。
2014年,当我意识到商业和消费市场对人工智能应用的需求日益增长时,我就在达姆施塔特应用技术大学开设了一门新的硕士课程,这本书反映了这门课程的主题。我一直在不断学习,从项目经验中学习,向我的同事和合作伙伴学习,向我的学生学习,希望也能向这本书的读者学习。所以,不管你赞同或不赞同书中的一些内容,都可以联系我(bernhard.humm@h-da.de)。
为了帮助大家掌握这些主题,我在第1~8章中都添加了“快速测验”一节,该节由铅笔符号标示。
最后感谢我的朋友和项目伙伴—爱尔兰NSilico Lifescience公司的Paul Walsh,感谢他提出宝贵的意见并且带给我很大的启示。
伯恩哈德·G. 胡姆(Bernhard G. Humm)
德国达姆施塔特应用技术大学计算机科学系的软件工程和项目管理学教授,达姆施塔特应用信息学研究所(aIDa)的常务董事和博士协调员,他的研究重点是应用人工智能和软件架构。他与工业和研究组织合作,主持多个国家和国际研究项目。在重新进入大学担任教授之前,他在IT行业工作了11年,担任过德国一家大型软件公司的软件架构师、首席顾问、IT经理和研究部门负责人,其客户来自金融、旅游、贸易和航空等行业。他拥有澳大利亚伍伦贡大学博士学位。
目 录
译者序
前言
作者简介
第1章 引言 1
1.1 本书概述 2
1.2 什么是AI 3
1.3 AI简史 6
1.4 AI对社会的影响 7
1.5 著名的AI项目 8
1.6 扩展阅读 11
1.7 快速测验 11
第2章 机器学习 13
2.1 机器学习应用 14
2.2 机器学习领域和任务 16
2.3 机器学习方法 19
2.4 示例:使用决策树对客户进行分类 26
2.5 机器学习方法论 29
2.6 服务图和产品图 46
2.7 机器学习应用工程化 49
2.8 快速测验 52
第3章 知识表示 55
3.1 本体 56
3.2 知识表示方法 60
3.3 语义网标准 62
3.4 查询本体 71
3.5 基于规则的推理 76
3.6 知识表示服务图和知识表示产品图 82
3.7 提示和技巧 83
3.8 快速测验 86
第4章 AI应用架构 88
4.1 AI参考架构 88
4.2 应用示例:虚拟博物馆向导 90
4.3 数据集成/语义增强 91
4.4 应用逻辑/代理 92
4.5 呈现方式 95
4.6 编程语言 95
4.7 快速测验 96
第5章 信息检索 97
5.1 信息检索服务图 98
5.2 信息检索产品图 99
5.3 提示和技巧 100
5.4 应用示例:语义自动建议功能 101
5.5 快速测验 102
第6章 自然语言处理 104
6.1 重点 105
6.2 简单方法:词袋模型 107
6.3 深层语义分析:从字母到句子 109
6.4 服务图和产品图 112
6.5 示例 115
6.6 快速测验 121
第7章 计算机视觉 122
7.1 计算机视觉应用 122
7.2 计算机视觉任务和方法 128
7.3 服务图和产品图 129
7.4 示例 131
7.5 快速测验 140
第8章 复杂事件处理 141
8.1 基础 142
8.2 应用示例:智能工厂中的故障检测 143
8.3 服务图和产品图 147
8.4 快速测验 148
第9章 结论 149
附录 产品表 150
参考文献 162