几种主要的神经网络
一、全连接神经网络
顾名思义,全连接神经网络中,对n-1层和n层而言,n-1层的任意一个节点,都和第n层所有节点有连接。即第n层的每个节点在进行计算的时候,激活函数的输入是n-1层所有节点的加权,这个激活函数是非线性的。它的缺点就是权重太多了,计算量很大。
它可作用于大多数场景。
二、前馈神经网络(Feedforward neural network,FNN)
前馈神经网络采用一种单向多层结构。其中每一层包含若干个神经元。在此种神经网络中,各神经元可以接收前一层神经元的信号,并产生输出到下一层。第0层叫输入层,最后一层叫输出层,其他中间层叫做隐含层(或隐藏层、隐层)。隐层可以是一层,也可以是多层。
- 在前馈神经网络中,不同的神经元属于不同的层,每一层的神经元可以接受到前一层的神经元信号,并产生信号输出到下一层。第0层叫做输入层,最后一层叫做输出层,中间的叫做隐藏层,整个网络中无反馈,信号从输入层到输出层单向传播,可用一个有向无环图表示。在西瓜书5.2有提及。
三、卷积神经网络(Convolutional Neural Network,CNN)
卷积神经网络是一种具有局部连接,权重共享等特性的深层前馈神经网络。一般是由卷积层,汇聚层,全连接层交叉堆叠而成,使用反向传播算法进行训练。其有三个结构上的特征:局部连接,权重共享以及汇聚。这些特征使得卷积神经网络具有一定程度上的平移,缩放和旋转不变性。较前馈神经网络而言,其参数更少。
卷积神经网络的输入为二维的像素整阵列,输出为这个图片的属性,当网络训练学习后,所输入的图片或许经过稍微的变换,但卷积神经网络还是可以通过识别图片局部的特征而将整个图片识别出来。
- 数据输入层:该层要做的处理主要是对原始图像数据进行预处理,包括去均值(把输入数据各个维度都中心化为0,其目的就是把样本的中心拉回到坐标系原点上),归一化(幅度归一化到同样的范围);
卷积计算层:相当于滤镜,将图片进行分块,对每一块进行特征处理,从而提取特征,这是最重要的一层。具体操作还未仔细学习。
池化层:池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。通过对提取的高维特征进行降维,对于输入为图像的情况,这里最主要的作用应该就是压缩。
全连接层:对空间排列的特征化成一维的向量。
主要应用:计算机视觉,图像和视频分析的各种任务上,比如图像分类,人脸识别,物体识别,图像分割等,其准确率也远远超过了其他的人工神经网络。近年来,卷积神经网络也应用到自然语言处理和推荐系统等领域。
四、循环神经网络(Recurrent neural network,RNN )
- 循环神经网络是一类具有短期记忆能力的神经网络,在循环神经网络中,神经元不仅可以接受其他神经元的信息,还可以接受自身的信息,形成一个环路结构。在很多现实任务中,网络的输出不仅和当前的输入有关,也和过去一段时间的输出相关。
从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面结点的输出。即:循环神经网络的隐藏层之间的结点是有连接的,**隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。**类似于机器学习西瓜书的5.5.5介绍的Elman网络
常用于文本填充、时间序列、语音识别等序列数据。