CNN Matlab例子RGB_理解卷积神经网络(CNN)

b3671d9c9105ba775949e932853c0cf9.png

深度学习1-理解卷积神经网络(CNN)

在神经网络中,卷积神经网络(ConvNets或CNNs)是进行图像识别、图像分类的主要类别之一。物体探测、人脸识别等是CNNs应用最广泛的领域之一。

CNN图像分类采用一个输入图像,对其进行处理,并将其分类到特定的类别中(例如:,狗,猫,老虎,狮子)。计算机将输入图像视为像素阵列,它取决于图像的分辨率。根据图像分辨率,可以看到h x w x d(h =高度,w =宽度,d =尺寸)。例如,一幅6x6x3矩阵阵列的RGB图像(3指RGB值)和一幅4x4x1矩阵阵列的灰度图像。

8ceac71820fa54cd95b825b6c6435cc7.png

从技术上讲,深度学习CNN模型进行训练和测试,每个输入图像都将通过一系列带有过滤器(Kernals)、池化、全连接层(FC)的卷积层,并应用Softmax函数对概率值在0到1之间的对象进行分类。下图是CNN处理输入图像的完整流程,并根据值对对象进行分类。

634d247960a068ac5c39e69065c3e4f9.png

卷积层

卷积是从输入图像中提取特征的第一层。它是一个数学运算,需要两个输入,如图像矩阵和一个滤波器(或核)。这个过程我们可以理解为我们使用一个过滤器(卷积核)来过滤图像的各个小区域,得到这些小区域的特征值,从而保持像素之间的关系。

5113fc16baa39405247dc08cae1e4887.gif

用不同的滤波器对图像进行卷积,可以通过应用滤波器进行边缘检测、模糊和锐化等操作。下面的例子展示了应用不同类型的过滤器(内核)后的各种卷积图像。

d3580b2381662780782444f7dc0f43a9.png

步长(Stride)

Stride是在输入矩阵上移动的像素个数。当步幅为1时,我们将过滤器每次移动1个像素。当步长为2时,我们将过滤器每次移动2个像素,以此类推。下图显示了卷积可以以2的步长工作。

7d96cbb99895c5e37bdfb3b4b19a8070.png

填充

有时滤波器不能很好地拟合输入图像。我们有两个选择:

  • 用零(补零)填充图片,使它适合
  • 删除图像中过滤器不适合的部分。这称为有效填充,只保留图像的有效部分。

padding是增加各个边的pixels的数量,目的是保持feature map 不要太小,但也没必要超过原图的大小,所以不可以任意数量;

padding的上限是维持feature map 大小与原图大小一致,具体增加pixel的数量多少,由filter的尺寸和stride大小共同决定.

非线性(ReLU)

ReLU是非线性操作的修正线性单元。输出是

。 为什么ReLU很重要:ReLU的目的是在我们的卷积神经网络中引入非线性。因为,真实世界的数据会让我们的卷积神经网络学习非负的线性值。

50a0c7f1ceb4fceffbc30389421a08d8.png

还有其他非线性函数,如tanh或sigmoid,也可以用来代替ReLU。现在大多数情况都使用ReLU,因为ReLU除了在名字上看起来更高大上一些之外,更重要的是在性能方面优于其他两个。

Pooling

当图像太大时,池化图层部分会减少参数的数量。空间汇聚也称为次采样或下采样,它降低了图像的维度,但保留了重要的信息。Pooling可以有不同的类型:

  • Max Pooling
  • Average Pooling
  • Sum Pooling Max pooling顾名思义就是从校正后的feature map中取最大的元素。Average Pooling 取的是平均值,而Sum Pooling取的是总和。

9d94e219bbafa314b7fe210edb0bbcce.png

之所以这么做的原因,是因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行下采样。

池化层相比卷积层可以更有效的降低数据维度,这么做不但可以大大减少运算量,还可以有效的避免过拟合。

全连接层

我们称这一层为FC层,我们将矩阵平铺成向量,并将其作为一个完全连接的层,就像一个神经网络。

a0f62a438219c28646d0170090222060.png

在上图中,将feature map矩阵转换为向量(x1, x2, x3,…)。通过完全连接的层,我们将这些特性组合在一起来创建一个模型。最后,我们有一个激活函数,如softmax或sigmoid来分类输出为猫,狗,汽车,卡车等。

在神经网络的全连通操作中,输入表示被压扁成一个特征向量,并通过神经元网络来预测输出概率。下图描述了扁平化操作:

d5ef68a093c1eab5644f3a2daa761c80.png

这些行被连接起来形成一个长特征向量。如果存在多个输入层,则将其行连接起来形成更长的特征向量。

4dc6e98562b3765e4e6c9cfbce5b5b45.png

总结

这篇文章描述了经典的CNN的架构,当Yann LeCun发表了他关于开发一种新型神经网络架构——卷积神经网络(Convolutional neural network, CNN)——的研究成果时,他的工作基本上没有引起注意。

在2012年的ImageNet计算机视觉大赛上,来自多伦多大学的一组研究人员花了14年的时间将CNN引入公众视野。他们以首席架构师亚历克斯·克里日夫斯基的名字命名AlexNet,当他们从数千个类别的中对数百万张图片进行分类时,只产生了15.8%的错误。快进到2018年,当前最先进的卷积神经网络实现的精度超过人类水平的性能。

Reference:

Convolutional Neural Networks from the ground up

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值