人工智能算法系列图书以一种数学上易于理解的方式讲授人工智能相关概念,这也是本系列图书英文书名中“for Human”的含义。
本系列图书的每一卷均可独立阅读,也可作为系列图书整体阅读。但需要注意的是,卷1中列出了后续各卷所使用的各种基本算法,并且这些算法本身既是基础,也不失实用性。
2020年1月,人工智能算法系列图书第一卷出版。
欲建高楼,必重基础。本书会讲授诸如维度法、距离度量算法、聚类算法、误差计算、爬山算法、线性回归和离散学习这样的人工智能算法。这些算法对应于数据中特定模式的处理和识别,同时也是像亚马逊(Amazon)和网飞(Netflix)这类网站中,各种推荐系统背后的逻辑。
这些算法不仅是后续各卷所介绍的算法的基础,其本身也大有用处。在本书中,这些算法的讲解均附以可操作性强的数值计算示例。
在卷1中给出的网上学习资源
首先是可汗学院,上面收集整理了许多讲授各种数学概念的YouTube视频。你要是需要复习某个概念,可汗学院上很可能就有你需要的视频讲解,读者可以自行查找。
其次是网站“神经网络常见问答”。作为一个纯文本资源,上面拥有大量神经网络和其他人工智能领域的相关信息:
http://www.faqs.org/faqs/ai-faq/neural-nets/
此外,Encog项目的wiki页面也有许多机器学习方面的内容,并且这些内容并不局限于Encog项目:
http://www.heatonresearch.com/wiki/Main_Page
最后�Encog的论坛上也可以讨论人工智能和神经网络相关话题,这些论坛都非常活跃,你的问题很可能会得到某个社区成员甚至是我本人的回复:
http://www.heatonresearch.com/forum
2021年11月,《人工智能算法(卷2):受大自然启发的算法》出版
本书的示例采用伪代码,因此每个人都可以理解它们。本书的GitHub开源库提供了几种编程语言的版本,因此你可以通过实践来强化学习过程。你可以自行修改这些“无秘密”代码。这不是“黑盒子”演示。如果你是一名程序员,使用Java、R、Python、C#、C、Scala等语言之一(可能还有更多的语言),那么你可以下载并运行所有示例代码。这些代码已经过测试,能够正常运行。你无须花费时间来调试代码,只需享受体验AI学习过程。
在本卷中,Jeff介绍了诸如遗传算法、蚁群优化和粒子群优化等算法,展示了它们的用途(何时有用以及为何有用),以及如何实现它们。这些是重要的主题。他的“人工智能算法”系列图书介绍了一些令人兴奋的主题,许多人会认为这些主题令人生畏。这本书是在讲脑外科手术吗?不是!但是它涉及神经网络和一些前沿话题,例如深度信念网络。请享受本书,享受本系列图书,享受这场冒险!
本书介绍了基于基因、鸟类、蚂蚁、细胞和树的算法。这些算法可用于查找最佳路径、识别模式、查找数据背后的公式,甚至模拟简单的生命等。
有时,自然界中的生物会相互配合。如狼会一起狩猎,鸟会成群结队地迁徙。作为程序员,你可以设计一组虚拟生物,利用它们一起解决问题。
另一些时候,自然界中的生物相互竞争。我们可以利用“最适者生存”来指导程序的演化。演化算法允许多种潜在的解决方案竞争、繁殖和演化。经过许多代之后,一个潜在的优秀解会被演化出来。
重要的是,要记住我们只是从大自然中寻求灵感,而不追求复制自然,并且如果需要的话,我们可以偏离生物学过程。与先进的计算机能够模拟的过程相比,实际的生物过程通常都要复杂得多。
2021年3月,《人工智能算法 卷3 深度学习和神经网络》出版,目前已上新书榜。
神经网络的再次兴起,是因为Hinton G.(2006)提出了一种全新的深度神经网络训练算法。高速图形处理单元(Graphics Processing Unit,GPU)的最新进展,使程序员可以训练具有三层或更多层的神经网络。程序员逐步意识到深层神经网络的好处,从而促使该技术重新流行。
为了奠定本书其余部分的基础,我们从分析经典的神经网络开始,这些经典的神经网络对各种任务仍然有用。我们的分析包括一些概念,如自组织映射(Self-Organizing Map,SOM)、霍普菲尔德神经网络(Hopfield neural network)和玻尔兹曼机(Boltzmann machine)。我们还介绍了前馈神经网络(FeedForward Neural Network,FFNN),并展示了几种训练它的方法。
具有许多层的前馈神经网络变成了深度神经网络。这本书包含训练深度网络的方法,如GPU支持。我们还会探索与深度学习相关的技术,如随机Dropout、正则化和卷积。最后,我们通过一些深度学习的真实示例来演示这些技术,如预测建模和图像识别。
神经网络路线指引
本书包含各种类型的神经网络。我们将提供这些神经网络及其示例,展示特定问题域中的神经网络。并不是所有神经网络都适用于每一个问题域。作为神经网络程序员,你需要知道针对特定问题使用哪个神经网络。
这里提供了通往本书其余部分的高级路线指引,它将指导你阅读本书中你感兴趣的领域。表1展示了本书中的神经网络类型及其适用的问题域。
表1列出的问题域说明如下。
- 聚类:无监督的聚类问题。
- 回归:回归问题,神经网络必须根据输入,输出数字。
- 分类:分类问题,神经网络必须将数据点分为预定义的类别。
- 预测:神经网络必须及时预测事件,如金融应用程序的信号。
- 机器人:使用传感器和电机控制的机器人。
- 视觉:计算机视觉(Computer Vision,CV)问题,要求计算机理解图像。
- 优化:优化问题,要求神经网络找到最佳排序或一组值以实现目标。
勾选标记(√)的数量给出了每种神经网络类型对该特定问题的适用性。如果没有勾选,则说明无法将该神经网络类型应用于该问题域。
所有神经网络都有一些共同的特征,如神经元、权重、激活函数和层,它们是神经网络的构建块。在本书的第1章中,我们将介绍这些概念,并介绍大多数神经网络共有的基本特征。
小编祝您阅读愉快!