CNN网络的基本介绍(三)
七、全连接层
全连接层在整个网络卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的特征表示映射到样本的标记空间的作用。
一段来自知乎的通俗理解:
从卷积网络谈起,卷积网络在形式上有一点点像咱们正在召开的“人民代表大会”。卷积核的个数相当于候选人,图像中不同的特征会激活不同的“候选人”(卷积核)。池化层(仅指最大池化)起着类似于“合票”的作用,不同特征在对不同的“候选人”有着各自的喜好。
全连接相当于是“代表普选”。所有被各个区域选出的代表,对最终结果进行“投票”,全连接保证了receiptive field 是整个图像,既图像中各个部分(所谓所有代表),都有对最终结果影响的权利。
在实际使用中,全连接层可由卷积操作实现:对前层是全连接的全连接层可以转换为卷积核为1*1的卷积;而前层是卷积层的全连接层可以转换为卷积核为前层卷积输出结果的高和宽一样大小的全局卷积。
全连接层实现原理
在卷积神经网络的最后,往往会出现一两层全连接层,全连接一般会把卷积输出的二维特征图转化成一维的一个向量,这是怎么来的呢?目的何在呢?
最后的两列小圆球就是两个全连接层,在最后一层卷积结束后,进行了最后一次池化,输出了20个12*12的图像,然后通过了一个全连接层变成了1*100的向量。
这是怎么做到的呢,其实就是有20*100个12*12的不同卷积核卷积出来的,我们也可以这样想,就是每个神经元的输出是12*12*20个输入值与对应的权值乘积的和。对于输入的每一张图,用了一个和图像一样大小的核卷积,这样整幅图就变成了一个数了,如果厚度是20就是那20个核卷积完了之后相加求和。这样就能把一张图高度浓缩成一个数了。
八、卷积神经网络
卷积神经网络是一种层次模型,其输入是原始数据,如RGB图像、音频等。卷积神经网络通过卷积(convolution)操作、汇合(pooling)操作和非线性激活函数的映射等一系列操作的层层堆叠,将高层语义信息逐层由原始信息中抽取出来,逐层抽象。
基本结构
卷积神经网络的基本结构通常由三部分组成:
- 输入层:数据输入
- 多个卷积层和池化层(也称下采样层、采样)
- 卷积层:进行特征提取。
- 池化层:减少参数规模,降低计算复杂度。
- 全连接层和输出层
- 全连接层:实现图片分类
- 输出层:输出识别结果
网络训练过程
深度卷积神经网络的学习过程就是对卷积神经网络的训练过程,有计算信号的正向传播和误差的反向传播两个过程组成。
正向传播
正向传播是指从输入层到输出层的信息传播过程,该过程的基本操作包括:
- 从输入层到卷积层或从池化层到卷积层的卷积操作
- 从卷积层到池化层的池化操作
- 全连接层的分类操作
反向传播
卷积神经网络的反向传播涉及两个基本问题,误差的反向传播和参数的反向调整。
前者与当前网络层的类型有关,即卷积层、池化层、全连接层的误差反向传播方法不同;后者一般通过梯度计算来实现。
反向传播算法(Back-Propagation algorithm)将误差或损失由最后一层逐层向前反馈,更新每层参数,并在更新参数后再次前馈,如此反复,知道网络模型手链,从而达到模型训练的目的。
九、目标函数
目标函数,亦称损失函数或代价函数,是整个网络模型的指挥棒,通过样本的预测结果与真实标记产生的误差来反向传播指导网络参数学习和表示学习。
交叉熵损失函数
交叉熵损失函数又称为Softmax损失函数,是目前卷积神经网络中最常用的分类目标函数,softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!
其形式为:
它能将一个含任意实数的K维向量 z “压缩”到另一个K维实向量 σ ( z ) 中,使得每一个元素的范围都在 ( 0 , 1 ) 之间,并且所有元素的和为1。
例如:输入向量 [ 1 , 2 , 3 , 4 , 1 , 2 , 3 ] 对应的Softmax函数的值为 [ 0.024 , 0.064 , 0.175 , 0.475 , 0.024 , 0.064 , 0.175 。输出向量中拥有最大权重的项对应着输入向量中的最大值“4”。这也显示了这个函数通常的意义:
对向量进行归一化,凸显其中最大的值并抑制远低于最大值的其他分量。