《深入浅出图神经网络》读书笔记 1-2
第1章 图的概述
- 图神经网络(Graph Neural Networ, GNN)的发展历程:
年份 | 人 | 贡献 | 论文 |
---|---|---|---|
2005 | Marco Gori | 首次提出图神经网络的概念,在此之前,处理图数据的方法是在数据的预处理阶段将图转换为一组向量 | A new model for learning in graph neural networks |
2009 | Micheli A;Marco组 | 使用监督学习的方法来训练GNN,早期研究以迭代的方式,通过循环神经网络传播邻居信息,直到稳定的固定状态。计算量大 | A contextual constructive approach; The graph neural network model |
2013 | Bruna | 首次将卷积引入图神经网络,基于频域的图卷积网络模型 | Spectral networks and locally connected networks on graphs |
2016 | Kipf | 将频域图卷积的定义进行简化,使图卷积的操作能在空域进行,极大地提升了图卷积模型的计算效率 | Semi-supervised classification with graph convolutional networks |
- 图数据的相关任务
– 节点层面:分类+回归。社交网络中用户标签的分类、恶意账户检测等。
– 边层面:分类+预测(某两个节点之间是否有边)。推荐等。
– 图层面:分类+表示+生成等。对药物分子的分类、酶的分类等。
第2章 神经网络基础
2.1 机器学习基本概念
-
常见分类
– 训练数据是否有标签。监督学习、半监督学习和无监督学习。
– 算法输出的形式。分类问题(模型的输出值为离散)和回归问题(模型的输出值为连续)。 -
机器学习流程
示例:对商品进行分类。假设只有一批商品的图片数据,分为羽绒服、毛呢大衣、连衣裙和卫衣等。建立一个模型,使用这批商品的图片数据训练模型,得到一个可以对未知的图片进行分类预测的模型。主要步骤如下:
– 提取商品图片的特征。例如衣服的颜色、风格等。这些特征可以是人为定义的,也可以使用算法自动提取。后者的典型方法是深度学习。
– 建立模型。传统的模型有:逻辑回归和随机森林等。深度学习:多层感知器和卷积网络等。模型可以看作是一个复杂的函数 y = f ( X ; W ) y=f(X;W) y=f(X;W),目的是建立输入到标签 y y y之间的映射,其中 X X X是前面定义的特征, W W W是 模型的参数。
– 确定损失函数和进行优化求解。损失函数用来衡量模型输出与标签之间的差异程度,当预测结果与标签差异偏大时,损失函数值较大,反之则小。基于损失函数给出的值,通过优化方法调整模型以不断减少损失值。– 集合 X = { ( x i , y i ) ∣ i = 1 , 2 , . . . , N } X=\{(x_i,y_i)| i=1,2,...,N\} X={ (xi,yi)∣i=1,2,...,N},每一个样本 x i x_i xi 都有对应的标签 y i y_i yi,其中 x i ∈ R d x_i \in R^d xi∈Rd, y i ∈ Y = { 0 , 1 , . . . , K } y_i \in Y = \{0,1,...,K\} yi∈Y={ 0,1,...,K}。模型为 f : R d → R k f: R^d \rightarrow R^k f:Rd→Rk。经过 f f f 映射,输出在每个类别上的概率分布 P ( Y ∣ x i ) = f ( x i ; θ ) P(Y|x_i)=f(x_i;\theta) P(Y∣xi)=f(xi;θ),取概率最大的类别作为结果,即 y i ∗ = arg max ( P ( Y ∣ x i ) ) y_i^* = \argmax(P(Y|x_i)) yi∗=argmax(P(Y∣xi))
– 损失函数(loss function),用来估量模型的预测值 y ∗ y^* y∗ 与真实值 y y y 的差异程度,非负实值函数,通常用 L ( y , f ( x ; θ ) ) L(y,f(x;\theta)) L(y,f(x;θ)) 表示。
θ ∗ = arg min [ 1 N ∑ i = 1 N L ( y i , f ( x i ; θ ) ) + λ