跳转至

第1章 快速了解人工智能与 PyTorch

1.1 图神经网络与深度学习

图神经网络是一类处理图域信息的方法。它是图分析方法与深度神经网络的融合,即将图领域相关技术融入深度学习中。

1.1.1 深度神经网络

在人工智能领域,人们起初从简单的神经网络开始研究。该研究的进展中,神经网路模型越来越庞大,结构也越来越复杂,于是人们将其命名为深度学习。

深度学习的本质为一个可以模拟人脑进行分析学习的神经网络,他模仿人脑的机制来解释数据(例如图形、声音和文本),通过组合低层特征,形成更为抽象的高层特征,来拟合我们日常生活中的各种事情。

深度学习应用广泛,如机器翻译、人脸识别、语音识别、医疗辅助等。

1.1.1 图神经网络

图神经网络(Graph Neural Networks, GNN)是一类能够从图结构数据中学习的神经网络。

很多问题场景下所使用的样本并不是独立的,它们彼此之间是具有关联的,而这个关联一般都会用图来表示。

图是一种数据结构,它对一组对象(节点)及其关系(边)进行建模,形成一种特别的度量空间。这个空间仅仅体现和节点之间的关系,它不同于二维、三维之类的空间数据,因此被称为非欧式空间数据。

图神经网络的主要作用是将图结构的数据利用起来,通过机器学习的方法进行拟合、预测。

神经网络是对单个样本的特征进行拟合,而图神经网络在拟合单个样本特征基础之上,又加入了样本间的关系信息,这不但有较好的解释性,而且大大提升了模型性能。

1.2 PyTorch 是做什么的

PyTorch 是 Facebook 开发的一套开源深度学习框架,于2017年初发布,之后迅速称为 AI 研究者广泛使用的框架。

PyTorch 是当今深度学习领域最热门的框架之一。在 GitHub 上,其排名与 TensorFlow 旗鼓相当。

目前,越来越多的学术论文研究人员更倾向于使用 PyTorch 开发自己的模型,因此推荐初学者和科研人员优先选择 PyTorch 进行开发。

1.3 PyTorch 的特点

PyTorch 是用 C++ 开发的,并使用 Python 来驱动应用。利用 C++ 开发可以保证其运行的效率;Python 作为其上层应用语言,可以为研究人员节省大量的开发时间。

相比其他深度学习框架,PyTorch 的优点如下:

  1. 灵活强大的接口
  2. 丰富的课程资源
  3. 更多的项目拓展

1.4 PyTorch 与 TensorFlow 各有所长

  • TensorFlow 是主流,PyTorch 是清流
  • TensorFlow 更适合工程应用,PyTorch 更适合科学研究