目录

摘要:

传统卷积神经网络:

一维卷积神经网络:

网络的架构定义情况:

网络运行结果:

本文Matlab代码分享: 


摘要:

本文要用到的卷积神经网络(ConvolutionalNeural Network,CNN),主要包含卷积技术以及深度神经网络。区别传统的机器学习,卷积神经网络将特征提取器与机器学习有机的结合了起来。卷积神经网络处理的数据形式,具有局部与整体的关系,并且由低层次特征组合可以形成高层次的特征,还能得到不同特征间的空间相关性。

本文基于Matlab平台与自带的深度学习工具箱(Deep Learing toolbox),构建了一维卷积神经网络,实现多输入特征的一维向量分类任务。(以使用卷积神经网络对文本数据进行分类为参考示例)。代码注释详细,几乎每一行都有说明。

网络的输入为:输入N个特征的一维序列

网络的输出为:输出n类分类标签

传统卷积神经网络:

CNN的基本结构与普通神经网络类似,即基础单元均为具有学习能力的权重和偏置的神经元。CNN独有的两大特性:第一个是局部连接性;第二个是权值共享性。一般在一组有实际意义的数据矩阵中,局部区域内元素的相关性更强,联系更为紧密,而相距较远的各元素间的相关性减弱,联系更为松散。在此基础上,CNN中的局部连接概念应运而生,即单个神经元仅需对数据矩阵的局部区域进行感知,提取数据矩阵的局部特征,然后,在网络的更高层对所有局部特征进行全连接,从而得到全局特征。权值共享性是指同一个数据矩阵中的不同区域共享同一个权值,以此提取数据矩阵中不同空间位置的同一特征。CNN的这两大特点使得网络减少了一定量的权值参数、降低了计算复杂度,同时还能够保证提取特征的准确率。

CNN通常有4个基本组成部分:输入层、卷积层、池化层、全连接层。一般模型结构如图,首先,输入层对输入的数据进行预处理;其次,多个交替连接的卷积层与池化层对输入数据进行特征提取和压缩尺寸之后通过全连接层输出。

matlab 3d卷积神经网络 matlab卷积神经网络代码_cnn

一维卷积神经网络:

应用在图像问题上的CNN通常是二维卷积(因为图像有RGB三个通道),而语音问题上的CNN输入是一个矩阵平面,可以用一维卷积。本文就讲讲一维卷积是怎么处理的。所谓一维卷积是指卷积核只在一个方向上移动。具体到语音上,假设一段语音提取特征后是一个M行N列(M表示特征维度,N表示帧数)的矩阵平面,卷积核要在帧的方向上从小到大移动。

matlab 3d卷积神经网络 matlab卷积神经网络代码_分类_02

上图来自网络,侵删

网络的架构定义情况:

a.将输入大小指定为1,它对应于整数序列输入的通道维度。

b.使用维度为100的单词嵌入来嵌入输入。

c.对于n元分词长度2、3、4和5,创建包含卷积层、批量归一化层、ReLU层、丢弃层和最大池化层的层块。

d.对于每个模块,指定200个大小为1×N的卷积滤波器和一个全局最大池化层。

e.将输入层连接到每个块,并使用串联层串联各块的输出。

f.要对输出进行分类,请包括一个输出大小为K的全连接层、一个softmax层和一个分类层,其中K是类的数量。

网络运行结果:

matlab 3d卷积神经网络 matlab卷积神经网络代码_卷积神经网络_03

matlab 3d卷积神经网络 matlab卷积神经网络代码_分类_04

matlab 3d卷积神经网络 matlab卷积神经网络代码_cnn_05

matlab 3d卷积神经网络 matlab卷积神经网络代码_分类_06

分类准确率

matlab 3d卷积神经网络 matlab卷积神经网络代码_卷积神经网络_07