热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

卷积神经网络基础知识

1.卷积神经网络与全连接网络的异同两种神经网络的的区别在于相邻两层的不同节点之间的连接方式不同,全连接网络(FC),位于相邻两层上的任意两个节点都是全部连接的,而卷积神经网络(CN

1.卷积神经网络与全连接网络的异同
卷积神经网络基础知识两种神经网络的的区别在于相邻两层的不同节点之间的连接方式不同,全连接网络(FC),位于相邻两层上的任意两个节点都是全部连接的,而卷积神经网络(CNN)的相邻两层之间,只有部分节点相连。

2.卷积核

对于输入图像中的一部分区域,进行加权求和的处理,其中这个过程的权重,由一个函数定义,这个函数就是卷积核。

3.卷积的计算方法
如下图,原图是一个553的矩阵,由于padding=1,所以图像变成了773,这里使用333的卷积核W0为例,步长为2,所以这个卷积运算的输出将会是一个 3×3的矩阵,下面来说明是如何计算得到这个 3×3矩阵的,为了计算卷积结果的第一个元素,在左上角的那个元素,使用 3×3 的过滤器,将其覆盖在输入图像,然后进行点乘运算(即对应数字相乘然后相加),所以卷积运算的第1维结果为0*(-1)+01+00+00+01+10+00+21+21=4,同理,第二维为0,第三维为1,然后将该三个维度的计算结果相加,再加上偏置值b0,所以第一个卷积的计算结果为4+0+1+1=6。
卷积神经网络基础知识下面是两个动图可以帮助大家理解卷积的工作原理:
卷积神经网络基础知识
卷积神经网络基础知识
4.卷积输出结果的计算
卷积神将网络的计算公式为:
output=(N+2P-F)/S+1
其中N:输出大小
N:输入大小
F:卷积核大小
P:填充值的大小
S:步长大小

我们以前面的例子为例计算一下,原图的图片为55,即输入大小W=5,卷积核的大小为33,即F=3,填充值的大小P=1,步长大小S=2,所以输出结果为(5-3+2*1)/2+1=3,与我们之前得到的结果相同。

5.池化层
除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性,对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征。

先举一个池化层的例子。假如输入是一个 4×4 矩阵, 用到的池化类型是最大池化(max pooling)。执行最大池化的树池是一个 2×2 矩阵。执行过程非常简单,把 4×4 的输入拆分成不同的区域,我把这个区域用不同颜色来标记。
因为我们使用的过滤器为 2×2,最后输出是 9。然后向右移动 2 个步幅,计算出最大值
2。然后是第二行,向下移动 2 步得到最大值 6。最后向右移动 3 步,得到最大值 3。这是一个 2×2 矩阵,即???? = 2,步幅是 2,即???? = 2。

卷积神经网络基础知识最大化操作的功能就是只要在任何一个象限内提取到某个特征,它都会保留在最大化的池化输出里。所以最大化运算的实际作用就是,如果在过滤器中提取到某个特征,那么保留其最大值。如果没有提取到这个特征, 可能在右上象限中不存在这个特征,那么其中的最大值也还是很小,这就是最大池化的直观理解。

6.池化层的输出结果
来看一个有若干个超级参数的示例,输入是一个 5×5 的矩阵。我们采用最大池化
法,它的过滤器参数为 3×3,即???? = 3,步幅为 1,???? = 1,输出矩阵是 3×3。之前讲的计算卷积层输出大小的公式同样适用于最大池化,即(????+2????−????)/s + 1,这个公式也可以计算最大池化的。


推荐阅读
author-avatar
情都欧阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有