PREFACE
前言
为什么还要写一本关于人工智能的书?的确,在过去的几十年里,已经有数百种关于人工智能(Artificial Intelligence,AI)的出版物,包括科研论文和教科书。大多数的AI出版物主要聚焦于AI背后的理论方法,即逻辑、推理、统计基础等,却很少关注AI应用的工程化。
现代复杂的IT应用并不是从头开始的,而是通过集成现成的组件(库、框架和服务)开发的。当然,人工智能应用也是这样开发的。在过去的几十年中,已经开发了很多具有AI基础功能(如逻辑、推理和统计)的现成组件。将这些组件集成到用户友好、高性能和可维护的AI应用中需要特定的工程技能,本书重点关注这些技能。
我的专业背景是一名软件工程师。我在德国攻读计算机科学学士、硕士学位,随后在澳大利亚攻读博士学位,毕业后在德国一家大型软件公司工作了十多年。在大规模的团队中,我们为客户开发定制软件,我们的客户有跨国银行、信用卡发行商、旅游运营商、电信运营商、时尚公司,等等。我在团队中的工作与涉及的行业领域和技术一样是多元化的。涉及的工作从软件开发、软件架构、项目管理,到管理部门和管理公司的研发团队。
15年前我重新进入大学担任教授,我的所有课程都有一个共同主题,那就是根据工程原理和实践进行软件的专业开发。AI一直都是我感兴趣的研究领域,但我的行业项目与AI关系不大。人工智能应用,如强大的图像处理、语音分析和生成等,正在迅速进入市场,这再次引起了我的兴趣。在工业界和公众资助的研发项目中,我逐渐积累了工程化人工智能应用的专业知识。在与同事、研究生和行业合作伙伴组成的团队中,我们为酒店门户网站、图书馆、艺术博物馆、医院的肿瘤科、心理治疗诊所的边缘型人格治疗科和机器人制造商开发应用。无论行业领域多么多样化,许多方法和技术都可以跨项目使用,从而开发满足用户良好体验的应用。这些应用可满足功能性要求和非功能性要求,特别是高性能要求。总体而言,我们致力于将通用软件工程技能与人工智能专业知识相结合。
2014年,当我意识到商业和消费市场对人工智能应用的需求日益增长时,我就在达姆施塔特应用技术大学开设了一门新的硕士课程,这本书反映了这门课程的主题。我一直在不断学习,从项目经验中学习,向我的同事和合作伙伴学习,向我的学生学习,希望也能向这本书的读者学习。所以,不管你赞同或不赞同书中的一些内容,都可以联系我(bernhard.humm@h-da.de)。
为了帮助大家掌握这些主题,我在第1~8章中都添加了“快速测验”一节,该节由铅笔符号标示。
最后感谢我的朋友和项目伙伴——爱尔兰NSilico Lifescience公司的Paul Walsh,感谢他提出宝贵的意见并且带给我很大的启示。