卷积神经网络中二维卷积核与三维卷积核有什么区别?

深度解析:一维到三维卷积神经网络的通道理解与应用
本文详细介绍了从一维到三维卷积神经网络中通道的概念,包括单通道和多通道的区别,以及它们在图像处理、自然语言处理和医学领域中的实际应用。通过计算公式和实例演示,帮助读者深入理解CNN中的channel作用和参数计算方法。

目录

1 一维卷积神经网络(1D-CNN)

2 二维卷积神经网络(2D-CNN) 

2.1 单通道

2.2 多通道

2.3 2D卷积的计算

3 三维卷积

​​​​​​​3.1 3D卷积

3.2 3D卷积的计算

4 如何理解卷积神经网络中的通道(channel)

4.1 多通道

4.2 单通道


1 一维卷积神经网络(1D-CNN)

        一维卷积常用在序列模型、自然语言处理领域;

  • 图中的输入的数据维度为8,过滤器的维度为5。与二维卷积类似,卷积后输出的数据维度为8−5+1=4。
  • 如果过滤器数量仍为1,输入数据的channel数量变为16,即输入数据维度为8×16。这里channel的概念相当于自然语言处理中的embedding,而该输入数据代表8个单词,其中每个单词的词向量维度大小为16。在这种情况下,过滤器的维度由55变为5×16,最终输出的数据维度仍为4。
  • 如果过滤器数量为n,那么输出的数据维度就变为4×n。
  • 一维卷积常用于序列模型,自然语言处理领域。

2 二维卷积神经网络(2D-CNN) 

        二维卷积常用在计算机视觉、图像处理领域(在视频的处理中,是对每一帧图像分别利用CNN来进行识别,没有考虑时间维度的信息);

2.1 单通道

  • 图中的输入的数据维度为14×14,过滤器大小为5×5,二者做卷积,输出的数据维度为10×10(14−5+1=10)。。
  • 上述内容可以说channel的数量为1。如果将二维卷积中输入的channel的数量变为3,即输入的数据维度变为(14×14×3)。由于卷积操作中过滤器的channel数量必须与输入数据的channel数量相同,过滤器大小也变为5×5×3。在卷积的过程中,过滤器与数据在channel方向分别卷积,之后将卷积后的数值相加,即执行10×10次3个数值相加的操作,最终输出的数据维度为10×10。
  • 以上都是在过滤器数量为1的情况下所进行的讨论。如果将过滤器的数量增加至16,即16个大小为10×10×3的过滤器,最终输出的数据维度就变为10×10×16。可以理解为分别执行每个过滤器的卷积操作,最后将每个卷积的输出在第三个维度(channel 维度)上进行拼接。
  • 二维卷积常用于计算机视觉、图像处理领域。

2.2 多通道

        多通道卷积。每个卷积核都应用于上一层的输入通道,以生成一个输出通道。  所有输出通道组合在一起组成输出层。如下图所示:

动图:https://pica.zhimg.com/50/v2-9b822c07062fed010d0fecbac56c3763_720w.webp?source=1940ef5c

       输入层为的矩阵(即为三通道)。滤波器为的矩阵(即含有3个卷积核)。首先滤波器中的每个卷积核分别应用于输入层的三个通道。执行上次卷积计算,输出3个的通道。

https://pica.zhimg.com/50/v2-fa76727d15dfaa1f81c4eab712b4e866_720w.jpg?source=1940ef5c 

     

### 三维卷积的概念及其在深度学习中的实现 #### 什么是三维卷积? 三维卷积是一种扩展自二卷积的操作,主要用于处理具有时间度的数据集,例如视频数据或3D医学图像。它通过在一个立方体区域内应用滤波器来提取特征[^1]。卷积不同的是,三维卷积不仅考虑空间上的变化(宽度和高度),还额外引入了一个时间轴或者深度轴。 #### 数学定义 假设输入张量 \( X \in R^{T \times H \times W} \),其中 \( T, H, W \) 分别表示时间步数、高度和宽度,则三维卷积核可以被描述为一个大小为 \( K_T \times K_H \times K_W \) 的矩阵。对于每一个位置 (t,h,w),输出可以通过如下公式计算: \[ Y(t', h', w') = \sum_{k_t=0}^{K_T-1}\sum_{k_h=0}^{K_H-1}\sum_{k_w=0}^{K_W-1}X(t+t'-k_t, h+h'-k_h, w+w'-k_w)\cdot F(k_t,k_h,k_w) \] 这里 \( t' \), \( h' \), 和 \( w' \) 是输出的位置索引;\( F \) 表示卷积核权重参数[^2]。 #### 实现方式 在实际操作中,许多框架提供了内置支持用于执行三维卷积运算。以下是基于PyTorch的一个简单例子展示如何构建并训练带有3D卷积层的神经网络模型: ```python import torch.nn as nn import torch.optim as optim class Simple3DCNN(nn.Module): def __init__(self): super(Simple3DCNN, self).__init__() self.conv_layer = nn.Conv3d(in_channels=1, out_channels=8, kernel_size=(3, 3, 3)) self.pool = nn.MaxPool3d(kernel_size=(2, 2, 2)) def forward(self, x): x = self.conv_layer(x) x = self.pool(torch.relu(x)) return x model = Simple3DCNN() criterion = nn.CrossEntropyLoss() optimizer = optim.Adam(model.parameters(), lr=0.001) # 假设我们有一个随机生成的小批量样本作为演示用途 input_tensor = torch.randn(5, 1, 16, 64, 64) # batch size: 5; channels: 1; frames: 16; height & width: 64x64 pixels. output = model(input_tensor) print(output.shape) ``` 上述代码片段展示了创建一个简单的3D CNN架构的过程,并说明了其基本工作流程[^3]。 #### 应用场景 三维卷积广泛应用于动作识别、医疗影像分析等领域。比如,在视频分类任务里,它可以捕捉帧间运动模式以及单帧内的物体形状信息两者之间的关系。 ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值