深入浅出讲解神经网络的种类及举例说明

  • 本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅!
  • 个人主页:有梦想的程序星空
  • 个人介绍:小编是人工智能领域硕士,全栈工程师,深耕Flask后端开发、数据挖掘、NLP、Android开发、自动化等领域,有较丰富的软件系统、人工智能算法服务的研究和开发经验。
  • 如果文章对你有帮助,欢迎关注点赞收藏订阅。

1.神经网络的分类

神经网络可以分为三种主要类型:前馈神经网络、反馈神经网络和图神经网络。

2.前馈神经网络

前馈神经网络(feedforward neural network)是一种简单的神经网络,也被称为多层感知机(multi-layer perceptron,简称MLP),其中不同的神经元属于不同的层,由输入层-隐藏层-输出层构成,信号从输入层往输出层单向传递,中间无反馈,其目的是为了拟合某个函数,由一个有向无环图表示,如下所示:

图1 前馈神经网络结构图

前馈神经网络中包含激活函数(sigmoid函数、tanh函数等)、损失函数(均方差损失函数、交叉熵损失函数等)、优化算法(BP算法)等。

常用的模型结构有:卷积神经网络、BP神经网络、RBF神经网络、感知器网络等。

下面介绍下经典的卷积神经网络:

卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积运算且具有深度结构的前馈神经网络(Feedforward Neural Networks)。

相比早期的BP神经网络,卷积神经网络最重要的特性在于“局部感知”与“参数共享”。

整体架构:输入层——卷积层——池化层——全连接层——输出层

 图2 卷积神经网络结构图

输入层:以图片为例,输入的是一个三维像素矩阵,长和宽表示图像的像素大小,深度表示色彩通道(黑白为1,RGB彩色为3)。

卷积层:卷积层也是一个三维矩阵,它的每个节点(单位节点矩阵)都是上一层的一小块节点(子节点矩阵)加权得来,一小块的尺寸一般取3*3或5*5。此层的作用是对每一小快节点进行深入分析,从而提取图片更高的特征。

池化层:池化层不会改变三维矩阵的深度,其作用是缩小矩阵,从而减少网络的参数。

全连接层:跟全连接神经网络作用一样。

Softmax层:得到当前样例属于不同种类的概率分布,并完成分类。

CNN的整个训练过程如下所示

(1)首先是随机初始化所有滤波器以及其他参数和权重值;

(2)输入图片,进行前向传播,也就是经过卷积层,ReLU和pooling运算,最后到达全连接层进行分类,得到一个分类的结果,也就是输出一个包含每个类预测的概率值的向量;

(3)计算误差,也就是代价函数,这里代价函数可以有多种计算方法,比较常用的有平方和函数:

Error=\frac{1}{2}\sum (y'-y)^{2}

其中,y'为实际值,y为预测值。

(4)使用反向传播来计算网络中对应各个权重的误差的梯度,一般是使用梯度下降法来更新各个滤波器的权重值,目的是为了让输出的误差,也就是代价函数的值尽可能小。

(5)重复上述第二到第四步,直到训练次数达到设定好的值。

卷积神经网络是一种特殊的多层神经网络,像其它的神经网络一样,卷积神经网络也使用一种反向传播算法来进行训练,不同之处在于网络的结构。

卷积神经网络(CNN)具有一些传统技术所没有的优点

(1)良好的容错能力、并行处理能力和自学习能力,可处理环境信息复杂,背景知识不清楚,推理规则不明确情况下的问题;

(2)它允许样本有较大的缺损、畸变,运行速度快,自适应性能好,具有较高的分辨率;

(3)它是通过结构重组和减少权值将特征抽取功能融合进多层感知器,省略识别前复杂的图像特征抽取过程。

3.反馈神经网络

反馈神经网络(feedback neural network)的输出不仅与当前输入以及网络权重有关,还和网络之前的输入有关。它是一个有向循环图或是无向图,具有很强的联想记忆能力和优化计算能力。

常用的模型结构有:RNN、Hopfield网络、玻尔兹曼机、LSTM等。

图3 反馈神经网络结构图

下面介绍下经典的循环神经网络:

循环神经网络(recurrent neural network,简称RNN)源自于1982年由Saratha Sathasivam 提出的霍普菲尔德网络。

循环神经网络,是指在全连接神经网络的基础上增加了前后时序上的关系,可以更好地处理比如机器翻译等的与时序相关的问题。

RNN的目的就是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题都无能无力。比如你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。

RNN之所以称为循环神经网络,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。

RNN用于解决训练样本输入是连续的序列,且序列的长短不一的问题,比如基于时间序列的问题。基础的神经网络只在层与层之间建立了权连接,RNN最大的不同之处就是在层之间的神经元之间也建立的权连接。

RNN神经网络的结构如下:

 图4 循环神经网络的结构图

循环神经网络的输入是序列数据,每个训练样本是一个时间序列,包含多个相同维度的向量。网络的参数如何通过训练确定?这里就要使用解决循环神经网络训练问题的 Back Propagation Through Time 算法,简称BPTT

循环神经网络的每个训练样本是一个时间序列,同一个训练样本前后时刻的输入值之间有关联,每个样本的序列长度可能不相同。训练时先对这个序列中的每个时刻的输入值进行正向传播,再通过反向传播计算出参数的梯度值并更新参数。

RNN包含四个步骤,简述如下

(1)正向计算每个神经元的输出值;

(2)反向计算每个神经元的误差项 ,它是误差函数对神经元的加权输入的偏导数;

(3)计算每个权重的梯度;

(4)用随机梯度下降算法更新权重。

循环神经网络在进行反向传播时也面临梯度消失或者梯度爆炸问题,这种问题表现在时间轴上。如果输入序列的长度很长,人们很难进行有效的参数更新。通常来说梯度爆炸更容易处理一些。梯度爆炸时我们可以设置一个梯度阈值,当梯度超过这个阈值的时候可以直接截取。

有如下三种方法解决梯度消失的问题:

(1)合理的初始化权重值。初始化权重,使每个神经元尽可能不要取极大或极小值,以躲开梯度消失的区域。

(2) 使用 ReLu 代替 sigmoid 和 tanh 作为激活函数。

(3) 使用其他结构的RNNs,比如长短时记忆网络(LSTM)和 门控循环单元 (GRU),这是最流行的做法。

4.图神经网络

图(graph)是一种在拓扑空间内按图结构组织来关系推理的函数集合,包括社交网络、知识图谱、分子图神经网络等。

图5 图结构示例

近年来,深度学习领域关于图神经网络(Graph Neural Networks,GNN)的研究热情日益高涨,图神经网络已经成为各大深度学习顶会的研究热点。GNN处理非结构化数据时的出色能力使其在网络数据分析、推荐系统、物理建模、自然语言处理和图上的组合优化问题方面都取得了新的突破。

图神经网络通常有以下几种网络模型:图卷积网络、图自编码器、图生成网络、图循环网络、图注意力网络

相关论文A Comprehensive Survey on Graph Neural Networks
论文地址:https://arxiv.org/pdf/1901.00596v1.pdf

GNN是直接在图数据结构上运行的神经网络。GNN的典型应用便是节点分类

图神经网络就是将图数据和神经网络进行结合,在图数据上面进行端对端的计算。

单层的神经网络计算公式:

H=\sigma (XW)

相比较于神经网络最基本的网络结构全连接层(MLP),特征矩阵乘以权重矩阵,图神经网络多了一个邻接矩阵。计算形式很简单,三个矩阵相乘再加上一个非线性变换:

H=\sigma (AXW)

 图6 图神经网络的结构示例

图神经网络的计算过程总结起来就是聚合邻居。图神经网络是直接在图上进行计算,整个计算的过程,沿着图的结构进行,这样处理的好处是能够很好的保留图的结构信息。而能够对结构信息进行学习,正是图神经网络的能力所在。图数据无处不在,图神经网络的应用场景自然非常多样。

 图7 图神经网络的应用场景

关注微信公众号【有梦想的程序星空】,了解软件系统和人工智能算法领域的前沿知识,让我们一起学习、一起进步吧!​​​​​​​

  • 22
    点赞
  • 190
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序遇上智能星空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值