主要内容

了解卷积神经网络

卷积神经网络(ConvNets)是深度学习中广泛使用的工具。它们特别适用于图像作为输入,尽管它们也用于其他应用,如文本、信号和其他连续响应。它们与其他类型的神经网络在几个方面有所不同:

卷积神经网络的灵感来自视觉皮层的生物结构,其中包含简单和复杂细胞的排列[1].这些细胞根据视野的子区域被激活。这些子区域被称为接受野。受本研究结果的启发,卷积层中的神经元连接到该层之前的层的子区域,而不是像其他类型的神经网络中那样完全连接。神经元对图像中这些子区域之外的区域没有反应。

这些子区域可能会重叠,因此ConvNet的神经元产生空间相关的结果,而在其他类型的神经网络中,神经元不共享任何连接并产生独立的结果。

此外,在具有完全连接的神经元的神经网络中,参数(权重)的数量可以随着输入大小的增加而迅速增加。卷积神经网络通过减少连接数、共享权重和下采样来减少参数的数量。

ConvNet由多层组成,如卷积层、最大池化层或平均池化层以及全连接层。

卷积神经网络每一层的神经元以3-D方式排列,将3-D输入转换为3-D输出。例如,对于图像输入,第一层(输入层)保存图像作为3-D输入,尺寸为图像的高度、宽度和颜色通道。第一卷积层中的神经元连接到这些图像的区域,并将它们转换为3-D输出。每一层的隐藏单元(神经元)学习原始输入的非线性组合,这被称为特征提取[2].这些习得的特征,也称为激活,来自一层成为下一层的输入。最后,学习到的特征成为分类器或网络末端的回归函数的输入。

ConvNet的体系结构可以根据所包含的层的类型和数量而变化。所包含的层的类型和数量取决于特定的应用程序或数据。例如,如果你有分类响应,你必须有一个分类函数和一个分类层,而如果你的响应是连续的,你必须在网络的末端有一个回归层。只有一到两个卷积层的较小网络可能足以学习少量灰度图像数据。另一方面,对于拥有数百万彩色图像的更复杂的数据,您可能需要一个具有多个卷积和完全连接层的更复杂的网络。

你可以在MATLAB中连接卷积神经网络的层®以以下方式:

layers = [imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer];

定义网络的层之后,必须使用trainingOptions函数。例如,

options = trainingOptions('sgdm');

然后,您可以用您的训练数据训练网络使用trainNetwork函数。数据、层和训练选项成为训练函数的输入。例如,

convnet = trainNetwork(数据,层,选项);

有关ConvNet层的详细讨论,请参见指定卷积神经网络的层数.要设置训练参数,请参见参数设置与卷积神经网络训练

参考文献

[1]胡贝尔,h.d.和威塞尔,t.n.。猫纹状皮层中单个神经元的感受区生理学杂志.第148卷,574-591页,1959年。

[2]墨菲,k.p.。机器学习:一个概率的视角.马萨诸塞州剑桥:麻省理工学院出版社,2012年。

另请参阅

|

相关的话题