深度学习基础--卷积--局部连接层(Locally-Connected Layer)

本文探讨了局部连接层(Locally-Connected Layer)的概念及其在特定场景下的应用优势,尤其是在人脸识别等任务中,如何通过放松参数共享限制来学习不同位置的特征。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

局部连接层(Locally-Connected Layer)

  locally-conv的概念来自传统ML中的模型初始化(随机树方法中每个图像的crop都对应特定的一棵树)。
  参数共享这个策略并不是每个场景下都合适的。有一些特定的场合,我们不能把图片上的这些窗口数据都视作作用等同的。(特别是当卷积神经网络的输入图像是一些明确的中心结构时候。)
  当图像局部相似匹配时,我们就应该期望在图片的不同位置学习到完全不同的特征。

什么时候用local-conv?什么时候用全卷积(每一个点用同一个filter)?

  当数据集具有全局的局部特征分布时,也就是说局部特征之间有较强的相关性,适合用全卷积。在不同的区域有不同的特征分布时,适合用local-Conv。

典型例子就是人脸识别

  在这个例子中,通常就放松参数共享的限制。
  一般人的面部都集中在图像的中央,你可能期望不同的特征,比如眼睛特征或者头发特征可能(也应该)会在图片的不同位置被学习。
  因此我们希望,数据窗口滑过这块区域的时候,权重和其他边缘区域是不同的。

### 谱域图卷积相关论文 谱域图卷积的研究始于将图信号处理理论应用于图结构数据的分析。早期的工作由 Bruna 等人在 2013 年提出,他们首次定义了基于频域的图卷积操作[^2]。这一方法的核心思想是通过图拉普拉斯矩阵的特征分解来实现滤波器的设计,从而允许在图的频域上执行卷积运算。 以下是几篇重要的谱域图卷积相关论文: #### 1. **Spectral Networks and Locally Connected Networks on Graphs** 这篇论文由 Joan Bruna、Wojciech Zaremba、Armand Szlam 和 Yann LeCun 提出,被认为是图神经网络领域的重要奠基工作之一。作者提出了两种类型的图卷积:一种是在频域中定义的卷积 (Spectral Convolution),另一种是在空间域中定义的卷积 (Spatial Convolution)。该论文展示了如何利用傅里叶变换和逆变换来进行高效的频域卷积计算[^1]。 - 论文链接: [https://arxiv.org/abs/1312.6203](https://arxiv.org/abs/1312.6203) #### 2. **Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering** Defferrard 等人在这项工作中引入了一种更高效的方法——Chebyshev 多项式近似法,用于加速谱域中的卷积计算。这种方法避免了显式的特征值分解过程,使得模型能够扩展到更大的图结构数据集[^3]。 - 论文链接: [https://arxiv.org/abs/1606.09375](https://arxiv.org/abs/1606.09375) #### 3. **First-order spectral graph convolutions** Kipf 和 Welling 进一步简化了谱域图卷积的操作,提出了 GCN (Graph Convolutional Network) 模型。他们的方法仅保留了 Chebyshev 展开的一阶多项式,极大地降低了计算复杂度并提高了训练效率。 - 论文链接: [https://arxiv.org/abs/1609.02907](https://arxiv.org/abs/1609.02907) #### 4. **Over-Smoothing Problem in GNNs** 尽管谱域图卷积在网络表示学习方面取得了显著进展,但它也面临一些挑战,比如过平滑问题 (Over-smoothing)。当数增加时,节点之间的特征会逐渐趋同,导致信息丢失[^4]。因此,在设计新的谱域图卷积架构时,需要特别注意这一点。 --- ### 示例代码 以下是一个简单的 PyTorch 实现谱域图卷积的过程: ```python import torch from torch_geometric.nn import ChebConv # 定义输入参数 num_nodes = 100 in_channels = 16 out_channels = 32 edge_index = ... # 图边索引 x = torch.randn(num_nodes, in_channels) # 输入特征张量 # 创建 ChebConv 卷积 conv_layer = ChebConv(in_channels=in_channels, out_channels=out_channels, K=3) # 执行前向传播 output = conv_layer(x, edge_index) print(output.shape) # 输出形状应为 (num_nodes, out_channels) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值