卷积神经网络(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 总结



掌握卷积神经网路的组成


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


掌握池化的计算过程原理


目录
相关文章
|
16天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
18天前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
78 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
12天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
24天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-GRU-SAM网络在时间序列预测中的应用。算法通过卷积层、GRU层、自注意力机制层提取特征,结合粒子群优化提升预测准确性。完整程序运行效果无水印,提供Matlab2022a版本代码,含详细中文注释和操作视频。适用于金融市场、气象预报等领域,有效处理非线性数据,提高预测稳定性和效率。
|
27天前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
27天前
|
域名解析 网络协议 关系型数据库
【网络原理】——带你认识IP~(长文~实在不知道取啥标题了)
IP协议详解,IP协议管理地址(NAT机制),IP地址分类、组成、特殊IP地址,MAC地址,数据帧格式,DNS域名解析系统
|
27天前
|
存储 JSON 缓存
【网络原理】——HTTP请求头中的属性
HTTP请求头,HOST、Content-Agent、Content-Type、User-Agent、Referer、Cookie。
|
27天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
27天前
|
XML JSON 网络协议
【网络原理】——拥塞控制,延时/捎带应答,面向字节流,异常情况
拥塞控制,延时应答,捎带应答,面向字节流(粘包问题),异常情况(心跳包)
|
29天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
107 1