对于一个数据科学家或机器学习工程师来说,建立一个卷积神经网络(CNN)不是一个很大的挑战。一个人一旦理解了它的体系结构,很容易用它来解决人工智能(AI)或机器学习(ML)方面的问题。
而这篇文章使CNN架构使得大众也很容易理解。
具有三维体积的神经元(3D volumes of neurons)
卷积神经网络利用输入是图片的特点,把神经元设计成三个维度 :width,height,depth(注意这个depth不是神经网络的深度,而是用来描述神经元的) 。比如输入的图片大小是 32 × 32 × 3 (rgb),那么输入神经元就也具有 32×32×3 的维度。下面是图解:
传统神经网络
一个卷积神经网络由很多层组成,它们的输入是三维的,输出也是三维的,有的层有参数,有的层不需要参数。
在机器学习中,卷积神经网络(CNN或ConvNet)是一类深度前馈人工神经网络,已成功应用于视觉图像分析。
有线电视网络使用多层感知器设计,需要最少的预处理。它们也被称为移位不变或空间不变的人工神经网络(SIANN),基于它们的共享权重结构和平移不变性特征。
卷积网络受到生物过程的启发,其中神经元之间的连接模式受到动物视觉皮层组织的启发。个别的皮层神经元只对被称为接收场的视野受限制的区域作出反应。不同神经元的接收域部分重叠,从而覆盖整个视野。
与其他图像分类算法相比,CNN使用相对较少的预处理。这意味着网络学习了传统算法中手工设计的滤波器。这种独立于先前知识和人力设计的特点是一大优势。
他们在图像和视频识别,推荐系统和自然语言处理中有应用。
在ANN(人工神经网络)中将会有一个输入层,其中输入将是输入的向量的长度(例如,28×28 = 784个神经元)。让我们一起来看看卷积网络与人工神经网络的不同之处。
积层(蓝色)的神经元,连接到它们的接收场(红色)
CNN与ANN的区别是什么?
1.ConvNet体系结构明确地假定输入是图像。
2.它们的体系结构不同于前馈神经网络,通过减少要学习的参数数量来提高它们的效率。
3.在人工神经网络中,如果你有一张150x150x3的图像,则第一个隐藏层中的每个神经元将有67500个权重来学习。
4. ConvNets具有神经元的三维输入,一个层中的神经元只连接到之前层的一个小区域。
ConvNets
ConvNet层的神经元排列成三维:高度、宽度、深度。
这里的深度并不是整个网络的深度。它是指层的第三个维度,因此是激活量的第三个维度。
本质上,ConvNet由具有简单API的层组成。将三维输入体积转换为三维输出体积,具有一些可能有或没有参数的可微函数。
卷积神经网络通常包含以下几种层:
卷积层(Convolutional layer),卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。
线性整流层(Rectified Linear Units layer, ReLU layer),这一层神经的活性化函数(Activation function)使用线性整流(Rectified Linear Units, ReLU)f(x)=max(0,x)。
池化层(Pooling layer),通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。
全连接层( Fully-Connected layer), 把所有局部特征结合变成全局特征,用来计算最后每一类的得分
CNN的体系结构
内核或滤波器
过滤器由一个权重向量表示,我们将其与输入进行卷积。你可以在输入卷上增加滤波器的数量,以增加获得的激活映射的数量。每个滤波器提供一个激活映射。
你得到的每个激活图都试图倾斜图像的不同方面,如边缘、颜色斑点等。
如果在32x32x3的图像卷上实现了12个5x5x3大小的滤镜,则第一个卷积图层在某些条件下将具有28x28x12的大小。
几个滤波器被用来提取NNet的卷积层中的几个特征。3X3矩阵的一个单步被称为“大步”。
CNN层三个维度的排列
激活功能
激活函数通常是代表单元格中动作电位的触发速率的抽象。主要有线性激活和非线性激活。如果没有非线性,神经网络将非常强大。用于引入非线性的激活功能是必需的。
线性整流层(ReLU)
ReLU是整流线性单位的缩写。该层应用非饱和激活函数{ displaystyle f(x)= max(0,x)} { displaystyle f(x)= max(0,x)}。它增加了决策函数和整个网络的非线性特性,而不影响卷积层的接受域。
其他函数也用于增加非线性,例如饱和双曲正切{ displaystyle f(x)= tanh(x)} { displaystyle f(x)= tanh(x)},{ displaystyle f(x )= tanh(x)} { displaystyle f(x)= tanh(x)}和sigmoid函数{ displaystyle f(x)=(1 + e ^ { - x})^ {-1}} f(x)=(1 + e ^ { - x})^ { - 1}。 ReLU通常比其他函数更受欢迎,因为它可以快速地训练神经网络,而不会对泛化精度造成严重的损失。
池化层
合并用于对图像的宽度、高度进行下采样,但深度保持不变。主要有三种类型的池化。最小值、最大值、平均值。
池化层独立地在每个深度层面上工作,使用指定的数学运算(例如MAX或Avg)调整其大小。等等
完全连接层
最后,经过几个卷积和最大汇聚层之后,神经网络中的高层推理是通过完全连接的层进行的。完整连接层中的神经元与前一层中的所有激活都有联系,正如常规神经网络中所见。因此可以用一个矩阵乘法和一个偏置偏移来计算它们的激活。
在完全连接层中使用softmax激活来获取最大概率并进行预测。
过度拟合的问题
在训练数据的分类精度方面可能会出现过度拟合,如果训练的准确性超出了我们的测试准确性,则意味着我们的模型是训练数据的学习细节和噪声,特别是训练数据的工作。
领取专属 10元无门槛券
私享最新 技术干货