卷积神经网络(CNN)原理(二)

简介: 卷积神经网络(CNN)原理(二)

3.2.4 stride-步长



以上例子中我们看到的都是每次移动一个像素步长的结果,如果将这个步长修改为2,3,那结果如何?


image.png


这样如果以原来的计算公式,那么结果


N + 2P - F + 1 = 6 + 0 -3 +1 = 4N+2P−F+1=6+0−3+1=4


但是移动2个像素才得出一个结果,所以公式变为


\frac{N + 2P - F}{2} + 1 = 1.5 + 1 = 2.52N+2P−F+1=1.5+1=2.5,如果相除不是整数的时候,向下取整,为2。这里并没有加上零填充。


所以最终的公式就为:


对于输入图片大小为N,过滤器大小为F,步长为S,零填充为P,


(\frac{N + 2P - F}{S} + 1),(\frac{N + 2P - F}{S} + 1)(SN+2P−F+1),(SN+2P−F+1)


3.2.5 多通道卷积



当输入有多个通道(channel)时(例如图片可以有 RGB 三个通道),卷积核需要拥有相同的channel数,每个卷积核 channel 与输入层的对应 channel 进行卷积,将每个 channel 的卷积结果按位相加得到最终的 Feature Map。


image.png


3.2.5.1 多卷积核


当有多个卷积核时,可以学习到多种不同的特征,对应产生包含多个 channel 的 Feature Map, 例如上图有两个 filter,所以 output 有两个 channel。这里的多少个卷积核也可理解为多少个神经元。


image.png


相当于我们把多个功能的卷积核的计算结果放在一起,比如水平边缘检测和垂直边缘检测器。


3.2.6 卷积总结



我们来通过一个例子看一下结算结果,以及参数的计算


  • 假设我们有10 个Filter,每个Filter3 X 3 X 3(计算RGB图片),并且只有一层卷积,那么参数有多少?


计算:每个Filter参数个数为:3 3 3 + 1 bias = 28个权重参数,总共28 * 10 = 280个参数,即使图片任意大小,我们这层的参数也就这么多。


  • 假设一张200 200 3的图片,进行刚才的FIlter,步长为1,最终为了保证最后输出的大小为200 * 200,需要设置多大的零填充


(\frac{N + 2P - F}{s} + 1) = N(sN+2P−F+1)=N


P = \frac{(N -1) * s + F - N}{2} = \frac{199 + 3 - 200}{2} = 1P=2(N−1)∗s+F−N=2199+3−200=1


3.2.6.1 设计单个卷积Filter的计算公式


假设神经网络某层ll的输入:


  • inputs: n_{h}^{[l -1]},n_{w}^{[l -1]},n_{c}^{[l -1]}nh[l−1],nw[l−1],nc[l−1]


卷积层参数设置:


  • f^{[l]}f[l]:filter的大小
  • p^{[l]}p[l]:padding的大小
  • s^{[l]}s[l]:stride大小
  • n_{c}^{[l]}nc[l]:filter的总数量


  • outputs:n_{h}^{[l]},n_{w}^{[l]},n_{c}^{[l]}nh[l],nw[l],nc[l]


所以通用的表示每一层:


  • 每个Filter:f^{[l]} * f^{[l]} * n_{c}^{[l -1]}f[l]∗f[l]∗nc[l−1]
  • 权重Weights:f^{[l]} * f^{[l]} * n_{c}^{[l -1]} * n_{c}^{[l]}f[l]∗f[l]∗nc[l−1]∗nc[l]
  • 应用激活函数Activations:a^{[l]} = n_{h}^{[l]},n_{w}^{[l]},n_{c}^{[l]}a[l]=nh[l],nw[l],nc[l]
  • 偏差bias:1 * 1 * 1 * n_{c}^{[l]}1∗1∗1∗nc[l],通常会用4维度来表示


之前的式子我们就可以简化成,假设多个样本编程向量的形式


Z^{[l]} = W^{[l]} * X^{[l-1]} + b^{[l]}Z[l]=W[l]∗X[l−1]+b[l]


A^{[l]} = g(Z^{[l]})A[l]=g(Z[l])


3.2.7 池化层(Pooling)



池化层主要对卷积层学习到的特征图进行亚采样(subsampling)处理,主要由两种


  • 最大池化:Max Pooling,取窗口内的最大值作为输出
  • 平均池化:Avg Pooling,取窗口内的所有值的均值作为输出


意义在于:


  • 降低了后续网络层的输入维度,缩减模型大小,提高计算速度
  • 提高了Feature Map 的鲁棒性,防止过拟合


image.png


对于一个输入的图片,我们使用一个区域大小为2 2,步长为2的参数进行求最大值操作。同样池化也有一组参数,f, sf,s,得到2 2的大小。当然如果我们调整这个超参数,比如说3 * 3,那么结果就不一样了,通常选择默认都是f = 2 * 2, s = 2f=2∗2,s=2


池化超参数特点:不需要进行学习,不像卷积通过梯度下降进行更新。


如果是平均池化则:


image.png


3.2.8 全连接层



卷积层+激活层+池化层可以看成是CNN的特征学习/特征提取层,而学习到的特征(Feature Map)最终应用于模型任务(分类、回归):


  • 先对所有 Feature Map 进行扁平化(flatten, 即 reshape 成 1 x N 向量)
  • 再接一个或多个全连接层,进行模型学习


image.png


3.2.9 总结



掌握卷积神经网路的组成


  • 掌握卷积的计算过程
  • 卷积过滤器个数
  • 卷积过滤器大小
  • 卷积过滤器步数
  • 卷积过滤器零填充


掌握池化的计算过程原理


目录
相关文章
|
4天前
|
机器学习/深度学习 人工智能 网络架构
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
20 1
|
6天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。
|
7天前
|
机器学习/深度学习 人工智能 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
17 1
|
11天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
11天前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
29 3
|
6天前
|
机器学习/深度学习 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
23 0
|
12天前
|
机器学习/深度学习 人工智能 自动驾驶
深入解析深度学习中的卷积神经网络(CNN)
深入解析深度学习中的卷积神经网络(CNN)
29 0
|
1月前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第7天】本文将深入探讨卷积神经网络(CNN)的基本原理,以及它如何在图像识别领域中大放异彩。我们将从CNN的核心组件出发,逐步解析其工作原理,并通过一个实际的代码示例,展示如何利用Python和深度学习框架实现一个简单的图像分类模型。文章旨在为初学者提供一个清晰的入门路径,同时为有经验的开发者提供一些深入理解的视角。
|
12天前
|
机器学习/深度学习 计算机视觉 网络架构
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
纵观近年的顶会论文和研究热点,我们不得不承认一个现实:CNN相关的研究论文正在减少,曾经的"主角"似乎正逐渐淡出研究者的视野。
45 11
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
|
26天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。

热门文章

最新文章

下一篇
无影云桌面