[深度学习]大白话之卷积神经网络

目录

1、卷积神经网络的结构

2、相关参数的表示法

2.1、输入层参数

2.2、padding

2.3、过滤器参数

2.4、步长

2.5、全连接神经数

3、卷积层

3.1 卷积实例1

3.2 卷积实例2

3.3 卷积实例3

3.4卷积实例4

4、池化层

5、全连接层


卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在图像处理方面有出色的表现,其目的就是抽取特征,目前已经被大范围使用到图像处理、自然语言处理等领域中。相比于其他神经网络结构,卷积神经网络需要的参数相对较少,训练较为容易,使的其能够广泛应用。

1、卷积神经网络的结构

我们来看下深度学习的模型结构

卷积神经网络的就是在隐藏层中的体现:

实际应用中,卷积层也叫过滤器、卷积核,我习惯叫过滤器。3个层次中可以增加或减少各个层次的数量以形成复杂的模型。

2、相关参数的表示法

2.1、输入层参数

n(H)Xn(W)Xn(c),表示输入参数。通常也表示为nXnXn,指输入高为n,宽为n,通道数为n的数据;如下面的RGB图像(208X208X208),高、宽和通道均为208。

 

2.2、padding

padding就是在n(H)Xn(W)Xn(c)的输入数据中填充一些数据,增大n(H)和n(W),使卷积后的n(H)和n(W)与卷积前的n(H)和n(W)保持不变,我习惯用p表示,后续会详细介绍。

2.3、过滤器参数

f(H)Xf(W)f(c), 和输入数据类似。表示用于和输入数据做卷积的过滤器大小,f(c)表示采用了多少个过滤器。

2.4、步长

步长表示卷积的时候过滤器以多长的距离进行移动,我习惯用s表示。

2.5、全连接神经数

FC(n),表示全连接层的神经元数量。

3、卷积层

卷积就是指在原始的输入上进行特征的提取。假如有一个5X5X3的RGB图片,用2X2的过滤器对R进行卷积。

3.1 卷积实例1

相关参数:

  1. 输入:5X5X3
  2. 1个过滤器:2X2
  3. 步长:s=1
  4. padding:p=0

经过卷积计算后结果为:4X4                  

那么输出的结果是怎么计算出来的呢?

比如输出中左上角的21,等于过滤器和输入中的左上角2X2的切片根据下面的计算结果得到:21=1*1+8*2+2*2+0*1

在输入数据中过滤器向右按步长s=1移动:17=8*1+4*2+0*2+1*1

在输入数据中过滤器向下按步长s=1移动:13=2*1+0*2+1*2+9*1

输出的结果就是过滤器在输入数据中按步长移动计算得到的结果。

3.2 卷积实例2

如果我把步长参数改为2,即相关参数:

  1. 输入:5X5X3
  2. 1个过滤器:2X2
  3. 步长:s=2
  4. padding:p=0

经过卷积计算后结果为:2X2

那么输出的结果是又怎么计算出来的呢?

比如输出中左上角的21,等于过滤器和输入中的左上角2X2的切片根据下面的计算结果得到:21=1*1+8*2+2*2+0*1

在输入数据中过滤器向右按步长s=2移动:13=4*1+2*2+1*2+3*1

 

在输入数据中过滤器向下按步长s=2移动:28=1*1+9*2+2*2+5*1

输出的结果就是过滤器在输入数据中按步长移动计算得到的结果。

3.3 卷积实例3

那么,padding是什么呢,假如我修改p=1,填充0,则:

可以看出,padding是在输入数据的长和宽填充p个长度的自定义值,填充值通常为一些对原来特性影响不大的值(比如0或1),填充后得到新的输出值,然后再卷积计算得到输出。

Padding的作用之一是在过滤器固定的情况下,为了得到一个和输入形状相同或相似的输出。

另外一个作用就是增加输入形状中边缘特征的被卷积次数,使边缘特征在卷积过程中不被弱化和丢失。

3.4卷积实例4

以上对R通道用2X2过滤器进行了卷积,即f=2X2X1;

对R通道进行卷积:

接下来怎么增加通道数呢?

我们假设对G、B通道(假设数据和R通道一样)分别用R通道的方式进行卷积

对G通道进行卷积:

对B通道进行卷积:

把对3个通道的卷积值进行合并,结果输出:4X4X3,这时我们称用的过滤器为f=4X4X3。事实上,对于多通道的输入数据,可以通过应用多个过滤器等到多个通道的输出。

下面,我们总结下输入参数(n(H)Xn(W)Xn(c))、padding(p)参数、过滤器参数(f(H)Xf(W)f(c))、步长参数(s)、输出参数(o(H)Xo(W)Xo(c))之间的关系,通过下面的公式可以计算等到输出参数:

                                                                                     

4、池化层

池化(pooling)的作用是强化重要的特性,同时弱化不重要的特性,常用的最大值池化(max-pooling)和平均值池化(avg-pooling),这里以最常用的最大值池(max-pooling)讲解:

相关参数:

  1. 输入:5X5X3
  2. 2X2max-pooling
  3. 步长:s=1
  4. padding:p=0

经过卷积计算后结果为:4X4

池化的过程和卷积的过程相似,先定义一个池化的参数(比如2X2)和池化的方式(比如max-pooling),然后按照卷积的的方式按步长大小进行移动即可,如输出中左上角的8=max(1,8,20)

向下移动1,9=max(2,0,1,9)

 

5、全连接层

如卷积实例3结果输出4X4X3=48个参数,我们的目的是最后输出3个类型(比如猫、狗、人),因此我们添加一个FC(3)的(即3个神经元)全连接层。全连接可以看做上一层输出的所有特征都要和全连接层的所有神经元进行连接,计算的参数为(n(H)Xn(W)Xn(C)XFC(n)),因此全连接层的计算非常复杂。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
卷积神经网络(CNN)是一种常用于图像处理和模式识别的深度学习模型。它的设计灵感来自于生物学中视觉皮层的神经元结构。为了用通俗的语言解释CNN,我们可以用以下方式来理解它: 假设你要识别一张猫的图片。首先,你的大脑会将这张图片的像素点转化成一系列数字,并且记录下它们的位置和颜色。然后,大脑会将这些数字输入到“卷积层”中。 在卷积层中,会有很多个“过滤器”。这些过滤器可以视为一双眼睛,它们通过抓取图片的不同特征来帮助你识别物体。每个过滤器都在图片上滑动并计算一个“特征图”,这个特征图描述了所检测到的特定特征。例如,一个过滤器可以检测到猫的边缘,另一个可以检测到猫的颜色等等。当所有过滤器完成计算后,就会得到一些不同的特征图。 在“池化层”中,每个特征图都会被压缩,去除一些不重要的信息。这样可以减少需要计算的数据量,并且使得特征更加鲁棒和不变形。 最后,在全连接层中,所有的特征图都被连接起来,形成一个巨大的向量。接下来,这个向量会通过一些神经元节点,最终输出识别结果,也就是“这是一张猫的图片”。 CNN的一个重要特点是参数共享,这意味着每个过滤器会在整个图片上进行计算,而不仅仅是某个局部区域。这样可以减少需要计算的参数量,提高训练速度和模型的泛化能力。 总结一下,CNN通过卷积层来提取图像的特征,并通过池化层降低特征的维度。最后,通过全连接层将所有特征连接起来并输出结果。这种结构使得CNN非常适合于图像分类和识别任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值