前言
在IT行业从业近二十年,非常幸运能够进入到AI领域的研发和工作当中,这得感恩从新加坡回国创业的梁旭明博士给了我得以从事AI算法研发的机会,这是在我的人生中非常重要的机会,他是我的引路人,是他让我从一名纯粹的算法工程师转变为了AI算法工程师。虽然做人工智能算法研发的大部分是科学家和学者,但我始终把自己当作一名工程师,AI算法又是产品或项目的核心技术,并决定了产品或项目的生死,而要研发出可以成功落地并实用的AI算法,是件非常不容易且成功率不高的工作,时常有一种“如履薄冰”的感觉和压力。这么多年的AI算法研发工作,我经历了太多种类的算法研发,有名片识别、证件识别、钞票识别、车牌识别、车辆检测、人脸疲劳检测、运动物体跟踪、人脸识别、人机对话、文本分类、文本检索、工业大数据分析、大型中央空调节能操作优化等,涉及领域有办公、金融、交通、工业、节能、教育等,也目睹和亲历了AI技术的起起伏伏,越来越感到思想和方法的重要性,更是感受到数据的重要性,于是突发奇想,有了写这本书的念头。
虽然我平时喜欢思考,喜欢钻研AI算法的原理,并经常思索AI技术的实现路径,甚至于有段时间我还研究中国的哲学,以寻找哲学上的突破,但是,当我落笔要写时,才发现自己知识的浅薄,才发现自己缺乏体系化的思想框架,虽然这本书的主题非常明确:从数据分析的角度思考AI算法研发,但是要展开编写时便困难重重,并且这方面的研究资料也较少,于是只好边写边摸索和学习,甚至中途还停笔了很长时间,一本页数不多的书就这样写了近三年的时间。
本书的前三章可以算是我的工作经验总结,后三章是我的学习笔记,每个章节相对较为独立,主要是因为我把每一章当作一个独立的课题进行研究,以此通过不同的维度去思考和总结AI算法研发过程中的数据问题,这完全是从工程师的角度来研究AI算法,并且尽量采用易于理解的语言描述算法思想和原理,以减少阅读障碍,让人可以快速理解和掌握一些重要的算法实现方法。
第1章描述了数据在AI算法研发过程中的重要性,从思维方法的角度出发,结合了几个项目成功和失败的案例,概括性地描述了AI算法实践方法。
第2章描述了如何培养对数据的敏锐观察力,AI算法工程师对数据的感知和理解能力,是一个非常重要的能力,这是AI算法研发创新的源泉,也是解决问题的基本途径,体现了AI算法工程师应有的基本素质。
第3章描述了数据分析的方法,但有别于通常我们所说的数据统计分析方法,在这里,我们主要是结合AI算法研发的需要,针对性地讲解并总结了AI算法研发过程中所需要的数据分析方法,其中对高斯分布和傅里叶变换原理作了重点分析。高斯分布的数据是AI算法研发过程中最经常碰到的数据,而傅里叶变换属于数据频域分析方法,通过对数据进行傅里叶变换可以在另一个数据空间中进行分析并达到奇妙的效果,但是对于傅里叶变换原理的理解是一个难题,在这里,我们由浅入深、由形象到抽象,详细分析和描述了傅里叶变换的原理和方法,其中的内容主要摘自我于2008年发表在CSDN上的博客内容,当时在国内是第一篇全面描述和分析傅里叶变换原理的文章,为了写这个博客内容,足足花了我半年的业余时间,让我感到欣慰的是,这个博客内容解决了许多人对傅里叶变换理解上的烦恼,现在把它放进这本书的内容中,主要是想分享给更多的读者。这一章主要是总结了图像数据和自然语言数据的分析方法,并在最后分享了一个单纯从数据分析入手而设计出来的AI算法实现案例,以此说明以数据分析为基础工作的重要性,也说明通过数据分析可以得到具有创新性的算法数学模型。
第4章描述了高维空间中的数据,高维空间中的数据具有什么特点?高维空间中的数据有什么处理方法?这是我在早期做AI算法研发时最大的迷惑,也是让人最难以理解的地方,这一章节描述的内容不多,主要是因为涉及一些较抽象的数学理论,对于我这样非数学专业出身的工程师,虽然其中数学原理的证明过程勉强能够看得懂,但是看完后还是找不到感觉,甚至很快就忘了,其中的数学定理证明过程太复杂,如“高斯圆环定理”的证明过程就有十多页的内容。该章节最后通过一个多年前看到的论文作为案例来理解“JL引理”,主要是想避免陷入抽象的数学理解过程,虽然这是一个在现实中难以实用的算法案例,但可以让读者得以对高维空间中的数学原理能够有一个形象的、更易于理解的认识。
第5章的内容有点杂,描述的AI算法非常多,从简单的马尔可夫链,到复杂的神经网络,再到晦涩的卡尔曼滤波,最后阐述了知识图谱和事件图谱的系统框架设计,其中对卡尔曼滤波的数学原理进行了详细描述,因为这也是一个难以理解的数学过程,但是我觉得如果无法理解算法原理,则很难把算法用好。这一章节通过以数据之间的关系为线索把各种各样的算法串了起来,并上升到了系统层面的框架设计内容,这很像是一篇散文,希望通过这样的方式能够让读者对AI算法有一个整体的、宏观的认识,并能够根据数据的特点选择合适的AI算法。
第6章描述了人类语言的起源和特点,以此说明实现人机对话技术是一个极具有挑战性的工作,人机对话技术被称为是人工智能领域中“皇冠上的明珠”,ChatGPT的出现,让我们看到了人工智能技术新的希望,这方面技术上的突破犹如当年莱特兄弟实现飞机飞行技术,这是在AI技术上革命性的突破,为此,在这一章我们详细阐述了神经网络技术的发展历程,并详细描述了ChatGPT核心技术(Transformer模型)的实现原理,结合人脑思维过程的探索,以期让读者对AI技术有更深的理解和认识。
这是一本在AI算法领域“包罗万象”的书,以杂谈的方式描述各种各样的算法,并结合十多个我亲历过的AI算法实现案例,以让读者能够对AI算法实践有更深的理解和认识。但我并不想通过这本书能够让读者可以全面了解某个算法,若要深入了解某个算法则需要参考其他专业资料,我觉得了解算法的原理和思想比了解代码层级的实现方法更为重要,作为AI算法工程师不应该是算法的“搬运工”,而应该是算法的“创新者”,这里所指的创新是更为广泛意义上的创新,包含理论创新和工程技术上的微创新,理论创新很难,但工程技术上的微创新则相对容易些,而且要把算法技术成功应用起来,离不开工程技术上的微创新,为此,则需要能够理解算法原理和思想,否则难以在创新上有作为。写这本书的目的是让AI算法研发人员通过以数据为线索,快速全面了解多种AI算法,以便在工程实践中能够选择合适的AI算法,并能够通过合理的工程技术和工程思想创新性地实现AI技术。