AI入门教程02:神经网络类型
AI范围
graph TD
A(AI) --> B[机器学习]
B --> C[深度学习]
B --> D[神经网络]
D -.-> C
C --> E[CNN]
C --> F[RNN]
C --> G[GANs]
C --> H[RL]
深度学习由神经网络发展而来,但是两者又相对独立。
全连接神经网络
全连接神经网络(Fully Connected Neural Network,FC),又名前馈神经网络(Feedforward Neural Network),是一种最基本的神经网络。由多个层组成,包括输入层、隐藏层和输出层。信号从输入层往输出层单向传递,中间无反馈,其目的是为了拟合某个函数,由一个有向无环图表示,如下所示:
flowchart LR
A(Image) --> B((A)) & C((B)) & D((C))
B((A)) & C((B)) & D((C)) --> E((D)) & F((E)) & G((F)) & H((G))
E((D)) & F((E)) & G((F)) & H((G)) --> I((H)) & J((I))
I((H)) & J((I)) --> K((J))
在全连接神经网络中,神经元(或节点)被组织成多个层,每一层的神经元与前一层和后一层的神经元全都相连,但同一层内的神经元之间没有连接。数据在网络中是从输入层向输出层单向传播的,没有反馈(或循环)连接,这也是"前馈"这个名字的由来。
全连接神经网络的每一个连接都有一个权重,这些权重是通过训练数据来学习的。 每个神经元会计算其所有输入的加权和,然后通过一个激活函数,如ReLU、Sigmoid或Tanh等,来得到其输出。
前馈神经网络中包含激活函数(sigmoid函数、tanh函数等)、损失函数(均方差损失函数、交叉熵损失函数等)、优化算法(BP算法)等。
常用的模型结构有:卷积神经网络、BP神经网络、RBF神经网络、感知器网络等。
卷积神经网络
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积运算且具有深度结构的前馈神经网络(Feedforward Neural Networks)。
只要包含卷积操作,它就不再是全连接神经网络了。
下面是一个简单的卷积神经网络模型,用于训练MNIST数据。
反馈神经网络
反馈神经网络(Feedback Neural Network)的输出不仅与当前输入以及网络权重有关,还和网络之前的输入有关。它是一个有向循环图或是无向图,具有很强的联想记忆能力和优化计算能力。
常用的模型结构有:RNN、Hopfield网络、玻尔兹曼机、LSTM等。
flowchart LR
A(Image) --> B((A)) & C((B)) & D((C))
B((A)) & C((B)) & D((C)) --> E((D)) & F((E)) & G((F)) & H((G))
E((D)) -.-> E((D))
F((E)) -.-> F((E))
G((F)) -.-> G((F))
H((G)) -.-> H((G))
E((D)) & F((E)) & G((F)) & H((G)) --> I((H)) & J((I))
I((H)) -.-> I((H))
J((I)) -.-> J((I))
I((H)) & J((I)) --> K((J))
循环神经网络
循环神经网络(recurrent neural network,简称RNN)源自于1982年由Saratha Sathasivam 提出的霍普菲尔德网络。
循环神经网络,是指在全连接神经网络的基础上增加了前后时序上的关系,可以更好地处理比如机器翻译等的与时序相关的问题。
RNN的目的就是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题都无能无力。比如你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。
RNN之所以称为循环神经网络,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。
RNN用于解决训练样本输入是连续的序列,且序列的长短不一的问题,比如基于时间序列的问题。基础的神经网络只在层与层之间建立了权连接,RNN最大的不同之处就是在层之间的神经元之间也建立的权连接。
图神经网络
图(graph)是一种在拓扑空间内按图结构组织来关系推理的函数集合,包括社交网络、知识图谱、分子图神经网络等。
flowchart LR
A((A)) --- B((B)) & C((C)) & D((D))
B((B)) --- C((C)) & E((E)) & F((F))
E((E)) --- F((F))
E((E)) & F((F)) --- G((G))
C((C)) --- D((D)) & H((H)) & G((G)) & F((F))
H((H)) --- D((D)) & G((G)) & I((I))
G((G)) --- I((I))
近年来,深度学习领域关于图神经网络(Graph Neural Networks,GNN)的研究热情日益高涨,图神经网络已经成为各大深度学习顶会的研究热点。GNN处理非结构化数据时的出色能力使其在网络数据分析、推荐系统、物理建模、自然语言处理和图上的组合优化问题方面都取得了新的突破。
图神经网络通常有以下几种网络模型:图卷积网络、图自编码器、图生成网络、图循环网络、图注意力网络。
对抗生成网络
对抗神经网络其实是两个网络的组合,可以理解为一个网络生成模拟数据,另一个网络判断生成的数据是真实的还是模拟的。生成模拟数据的网络要不断优化自己让判别的网络判断不出来,判别的网络也要不断优化自己让判断的更加精确。两者的关系形成对抗,因此叫对抗神经网络。
结构:GAN由generator(生成模型)和discriminator(判别式模型)两部分构成。 二者结合之后,经过大量次数的迭代训练会使generator尽可能模拟出以假乱真的样本,而discrimator会有更精确的鉴别真伪数据的能力,最终整个GAN会达到所谓的纳什均衡,即discriminator对于generator的数据鉴别结果为正确率和错误率各占50%。