深度学习|表示学习|卷积神经网络|局部链接是什么?|06

如是我闻: 局部连接(Local Connectivity),是卷积神经网络(CNN)中的一个关键特性。


什么是局部连接(Local Connectivity)?

局部连接指的是:
在卷积操作中,每个神经元(或输出单元)只与输入数据的一个局部区域相关联,而不是与整个输入数据相连。

换句话说:

  • 全连接网络(Fully Connected Layer) 中,每个神经元会与上一层所有的神经元相连。
  • 卷积网络(Convolutional Layer) 中,每个输出神经元只与输入数据的一个小区域(称为感受野,Receptive Field)相连。

局部连接的核心要点

  1. 感受野(Receptive Field):

    • 定义: 感受野是一个输出神经元在输入数据中"看到"的区域。
    • 在卷积操作中,每个输出神经元的值是通过感受野内的像素值和卷积核权重计算得到的。

    例如:

    • 输入图像大小为 6 × 6 6 \times 6 6×6。
    • 卷积核大小为 3 × 3 3 \times 3 3×3,感受野就是输入数据中的一个 3 × 3 3 \times 3 3×3 的局部区域。
  2. 局部计算:

    • 卷积核会对感受野中的像素点进行点积操作,然后得到一个输出值。
    • 这一过程会对整个输入图像逐步滑动(称为"滑窗"操作),最终生成输出特征图。
  3. 参数共享:

    • 在同一层中,相同的卷积核会应用于输入数据的所有局部区域。
    • 这意味着,模型只需学习卷积核的参数,而不是为每个感受野单独学习参数,从而大大减少了参数数量。

局部连接的示例

示例 1:单通道图像的卷积
  1. 输入数据:

    假设输入图像大小为 6 × 6 6 \times 6 6×6,如下所示:

    1 2 3 0 1 2 2 3 1 4 2 3 3 1 2 1 0 1 0 1 3 2 3 0 1 4 2 1 2 1 3 2 1 0 1 3 \] \\begin{bmatrix} 1 \& 2 \& 3 \& 0 \& 1 \& 2 \\\\ 2 \& 3 \& 1 \& 4 \& 2 \& 3 \\\\ 3 \& 1 \& 2 \& 1 \& 0 \& 1 \\\\ 0 \& 1 \& 3 \& 2 \& 3 \& 0 \\\\ 1 \& 4 \& 2 \& 1 \& 2 \& 1 \\\\ 3 \& 2 \& 1 \& 0 \& 1 \& 3 \\\\ \\end{bmatrix} 123013231142312321041210120321231013

    卷积核大小为 3 × 3 3 \times 3 3×3,如下:

    1 0 − 1 1 0 − 1 1 0 − 1 \] \\begin{bmatrix} 1 \& 0 \& -1 \\\\ 1 \& 0 \& -1 \\\\ 1 \& 0 \& -1 \\\\ \\end{bmatrix} 111000−1−1−1

    • 卷积核第一次操作的感受野是输入的左上角 3 × 3 3 \times 3 3×3 区域:

      1 2 3 2 3 1 3 1 2 \] \\begin{bmatrix} 1 \& 2 \& 3 \\\\ 2 \& 3 \& 1 \\\\ 3 \& 1 \& 2 \\\\ \\end{bmatrix} 123231312

      1 ⋅ 1 + 2 ⋅ 0 + 3 ⋅ ( − 1 ) + 2 ⋅ 1 + 3 ⋅ 0 + 1 ⋅ ( − 1 ) + 3 ⋅ 1 + 1 ⋅ 0 + 2 ⋅ ( − 1 ) = 1 − 3 + 2 − 1 + 3 − 2 = 0 1 \cdot 1 + 2 \cdot 0 + 3 \cdot (-1) + 2 \cdot 1 + 3 \cdot 0 + 1 \cdot (-1) + 3 \cdot 1 + 1 \cdot 0 + 2 \cdot (-1) = 1 - 3 + 2 - 1 + 3 - 2 = 0 1⋅1+2⋅0+3⋅(−1)+2⋅1+3⋅0+1⋅(−1)+3⋅1+1⋅0+2⋅(−1)=1−3+2−1+3−2=0

    • 这个感受野输出值为 0。

    • 卷积核向右滑动一个步长(stride),计算下一个感受野。

  2. 输出特征图:

    • 卷积核对输入的所有 3 × 3 3 \times 3 3×3局部区域滑动,最终生成一个 4 × 4 4 \times 4 4×4 的输出特征图。

示例 2:RGB 图像中的局部连接
  • 如果输入是 RGB 图像(例如 32 × 32 × 3 32 \times 32 \times 3 32×32×3),每个卷积核的感受野是一个 K × K × 3 K \times K \times 3 K×K×3的局部区域:
    • K × K K \times K K×K:表示空间上的局部区域。
    • 3 3 3:表示图像的 3 个颜色通道(红、绿、蓝)。
  • 卷积核同时作用于这 3 个通道的局部区域,然后汇总信息,生成一个输出值。

局部连接的优点

  1. 参数大幅减少:

    • 在全连接网络中,每个神经元都连接整个输入,会产生大量参数。
    • 局部连接限制了连接区域,同时共享参数,显著减少了参数数量。
  2. 捕获局部特征:

    • 局部连接使卷积核能够专注于输入的局部模式(如边缘、纹理、形状等),这些模式是图像中关键的基本特征。
  3. 平移不变性:

    • 局部连接配合滑动窗口操作,使网络能够识别出无论模式出现在图像的哪个位置(如猫在左边或右边),都能正确提取特征。

局部连接与全连接的对比

特性 局部连接性(卷积层) 全连接(全连接层)
连接范围 只与局部区域连接 与整个输入连接
参数数量 参数共享,大幅减少参数数量 参数较多,计算成本高
适用场景 用于图像、视频等高维数据 用于小型特征数据(如分类器)
对局部特征的敏感性 能捕捉边缘、纹理等局部特征 不强调局部特征

总的来说

局部连接是 CNN 的核心特性:

  1. 每个输出神经元只与输入中的一个局部区域相连,而不是与整个输入连接。
  2. 通过卷积核的滑动,实现对局部区域的扫描,提取局部模式。
  3. 局部连接配合参数共享和池化操作,既降低了参数复杂度,又增强了对局部特征的提取能力。

以上

相关推荐
Aphelios3801 小时前
Java全栈面试宝典:线程机制与Spring IOC容器深度解析
java·开发语言·jvm·学习·rbac
就决定是你啦!1 小时前
机器学习 第一章 绪论
人工智能·深度学习·机器学习
日暮南城故里2 小时前
Java学习------源码解析之StringBuilder
java·开发语言·学习·源码
安全方案4 小时前
精心整理-2024最新网络安全-信息安全全套资料(学习路线、教程笔记、工具软件、面试文档).zip
笔记·学习·web安全
士别三日&&当刮目相看4 小时前
JAVA学习*Object类
java·开发语言·学习
liruiqiang054 小时前
循环神经网络 - 简单循环网络
人工智能·rnn·深度学习·神经网络·机器学习
鸿蒙布道师5 小时前
OpenAI战略转向:开源推理模型背后的行业博弈与技术趋势
人工智能·深度学习·神经网络·opencv·自然语言处理·openai·deepseek
序属秋秋秋5 小时前
算法基础_基础算法【高精度 + 前缀和 + 差分 + 双指针】
c语言·c++·学习·算法
爱吃馒头爱吃鱼6 小时前
QML编程中的性能优化二
开发语言·qt·学习·性能优化
白夜易寒6 小时前
Docker学习之容器虚拟化与虚拟机的区别(day11)
学习·docker·容器