- 引言
- 本文是学习刘忠雨老师所著的《深入浅出图神经网络》过程中的笔记和记录整理,最后会有参考文献标注对应章节和内容中可能出现的参考文献、博文出处。
神经网络基础
机器学习分类
-
是否有标签
- 监督学习
- 训练数据中每个样本都有标签,通过标签可以指导模型进行学习,学到具有判别性的特征。
- 无监督学习
- 训练数据完全没有标签,通过算法从数据中发现一些数据之间的约束关系,比如数据之间的关联、距离关系等。典型的无监督算法如聚类。
- 半监督学习
- 介于监督学习和无监督学习之间的一种学习方式。它的训练数据既包含有标签数据,也包含无标签数据。假设标签数据和无标签数据都是从同一个分布采样而来,那无标签数据中含有一些数据分布相关的信息,可以作为标签数据之外的补充。这种情况事实上是很常见的。比如在互联网行业,每天都会产生大量的数据,这些数据部分可能携带标签,但更多的数据是不带标签的,如果靠人工去标记这些无标签数据,代价是相当大的,而半监督学习可以提供一些解决思路。
-
算法的输出
损失函数
平方损失函数
L(y,f(x:θ))=i=1∑N(yi−f(xi:θ))2/N
其中 N 是样本数量,它衡量的是模型预测的结果与标签之间的平方差,常用于回归类问题。
交叉熵函数
L(y,f(x))=H(p,q)=−i=1∑N(p(yi∣xi)log[q(yi^∣xi)])/N
其中 p,q 分别表示数据标签的真实分布和模型预测给出的分布, p(yi∣xi) 表示样本 xi 标签的真实分布。一般来说,样本 xi 只属于某个类别 ck,因此 p(yi=ck∣xi)=1,在其他类别上概率为0. q(yi^=ck∣xi)=1 表示给定样本 xi 模型预测在各个类别上的概率分布。如果样本 xi的标签为 ck,那么上式可以简化为
L(y,f(x))=−i=1∑N(log[q(yi^∣xi)])/N
可以看出在这种情况下,最小化交叉熵损失的本质就是最大化样本标签的似然概率。
**函数
- **函数是神经网络中一个非常重要的概念。它的非线性是的神经网络几乎可以任意逼近任何非线性函数。如果不适用**函数,无论神经网络有多少层,其每一层的输出都是上一层输入的线性组合,这样构成的神经网络仍然是一个线性模型,表达能力有限。
- **函数的一个基本要求是它们是连续可导的,可以允许在少数点上不可导
S型**函数
- 特点:有界,并且输入的绝对值越大,对应的梯度就越小,越趋近于0
Sigmoid
σ(x)=1/(1+e−x)
Tanh
tanh(x)=ex−e−x/(ex+e−x)
- 上述几种**函数的图像如下图所示:
ReLU及其变种
ReLU
- 线性整流函数(Rectified Linear Unit, ReLU)是目前深度学习模型中经常使用的**函数。
- 定义
ReLU(x)={x0 if x⩾0 if x<0
- ReLU对输入的处理:当输入为负时,全部置零,当输入为正时,保持不变,这个特性被称为单侧抑制。
- 在隐藏层中,单侧抑制会为隐藏层的输出带来一定的稀疏性。同时由于它在输入为正时,输出保持不变,梯度为1,可以缓解梯度消失的问题。
- 梯度
∇xReLU(x)={10 if x⩾0 if x<0
- 单侧抑制在某些情况下可能会导致某个神经元死亡,原因是如果某个神经元输出始终为负,那么在反向传播时,梯度永远为0,导致无法有效更新。
LeakyReLU
-
在输入为负时,可以允许一定量的信息通过。
-
定义
LeakyReLU (x)={xλx if x>0 if x⩽0
其中,λ>0是一个超参数,通常取值0.2。这样就可以避免ReLU出现神经元死亡的现象。
-
梯度
∇x LeakyReLU (x)={1λ if x>0 if x≤0
PReLU
-
PReLU(Parametric ReLU)在LeakyReLU基础上更进一步,它将LeakyReLU中的超参数λ改进为可训练的参数,并且每个神经元可以使用不同的参数。
-
定义
PReLU(x)={xαx if x>0 if x≤0
ELU
- 不同于LeakyReLU和PreLU在输入为负时,进行线性压缩,指数线性单元(Exponential Linear Unit,ELU)在输入为负时,进行非线性变换。
- 定义
ELU(x)={xα(ex−1) if x⩾0 if x<0}
其中α>0,α是一个超参数,控制着输入为负时的饱和区。它具有调节**值的均值为0的功能,可以加速神经网络的收敛。
- 上述几种**函数的图像如下图所示:
优化困境
梯度消失
- 导致梯度消失的原因在于**函数的饱和性,比如Sigmoid、Tanh等都会到来这种问题,它们在函数值趋近于上下边界时,梯度通常比较小,再与误差项相乘将会变得更小。
局部最优
鞍点
- 由于维度过高,深度神经网络模型常常存在很多鞍点。鞍点是值在该处梯度为0,但是它并不是最小值或最大值。当处于鞍点区域并且误差较大时,由于这部分区域梯度较小,模型收敛速度将受到极大影响,给人造成一种陷入局部最优的家乡。
参考文献
- 刘忠雨,李彦霖,周洋. 深入浅出图神经网络:GNN原理解析[M]. 北京:机械工业出版社,2020:17-38