四、卷积神经网路 (Convolutional networks (CNN))

本文详细介绍了卷积神经网络(CNN)的核心概念,包括卷积操作、动机(稀疏交互、参数共享、等变表示)、池化以及卷积函数的变体。CNN在图像处理中广泛应用,通过卷积层、池化层提取特征,实现对输入数据的高效表示和处理。

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


简单来说,卷积神经网路是神经网路至少有一层的矩阵乘操作替换 卷积操作(convolution)

1、卷积操作

卷积操作常见表示形式是两个实值函数之间的操作。下面以一个简单的问题解释卷积操作。

假设我们使用激光传感器来追踪一个飞船的位置,由此得到飞船位置关于时间的函数 x ( t ) x(t) x(t)。并且传感器工作在有噪声的环境里,为了降低噪声的影响,我们将采取加权平均来给予最近测量更大的权重。假设权重函数为 w ( a ) w(a) w(a),其中 a a a 是测量发生的时间。我们得到以下公式来预测飞船位置, s ( t ) = ∫ x ( a ) w ( t − a )   d a s(t)=\int x(a)w(t-a)\,da s(t)=x(a)w(ta)da上述即为卷积操作,卷积操作可以有 ∗ * 表示,则有 s ( t ) = ( x ∗ w ) ( t ) s(t)=(x*w)(t) s(t)=(xw)(t)。且在本例中 w w w 应为概率密度函数。在卷积神经网路中, x x x 函数为输入, w w wkernal

在实际问题中,激光传感器的时间是离散的,例如 1 秒一次采样。那么有离散形式的卷积操作, s ( t ) = ( x ∗ w ) ( t ) = ∑ a = − ∞ + ∞ x ( a ) w ( t − a ) s(t)=(x*w)(t)=\sum _{a=-\infin}^{+\infin}x(a)w(t-a) s(t)=(xw)(t)=a=+x(a)w(ta)在机器学习问题中,输入常是多维的。下面给出卷积操作的二维形式, S ( i , j ) = ( I ∗ K ) ( i , j ) ∑ m ∑ n I ( m , n ) K ( i − m , j − n ) S(i,j)=({I*K})(i,j)\sum_m \sum_n I(m,n)K(i-m,j-n) S(i,j)=(IK)(i,j)mnI(m,n)K(im,jn)卷积操作是交换,这意味着上式等价于, S ( i , j ) = ( K ∗ I ) ( i , j ) ∑ m ∑ n I ( i − m , j − n ) K ( m , n ) S(i,j)=({K*I})(i,j)\sum_m \sum_n I(i-m,j-n)K(m,n) S

### 卷积神经网络(CNN)的原理 卷积神经网络(Convolutional Neural Networks, CNN)是一种专门用于处理数据具有网格拓扑结构的任务的深度学习模型[^1]。它通过模拟生物视觉系统的分层特性来实现对输入信息的有效处理,特别擅长于图像和视频中的模式识别。 #### 基本组成单元 CNN 的核心组成部分包括以下几个主要模块: - **卷积层(Convolution Layer)**: 这一层负责执行局部感知野内的加权求和运算,从而提取输入数据的空间层次特征[^2]。 - **激活函数(Activation Function)**: 通常采用 ReLU 函数作为非线性变换工具,增强模型表达能力。 - **池化层(Pooling Layer)**: 主要作用是对特征图进行降采样操作,减少参数数量并控制过拟合现象的发生[^3]。 - **全连接层(Fully Connected Layer)**: 将前面各层所得到的高维抽象表示映射到具体类别标签上完成最终预测任务。 这些组件共同构成了一个完整的 CNN 架构,在训练过程中不断调整权重使得整个系统可以自动地从原始像素级描述逐步建立起高层次语义概念之间的联系。 ### 结构设计特点 相比于传统的全连接型人工神经网络(Fully Connected Feed Forward Network),CNN 具有如下显著优势: - 参数共享机制(Parameter Sharing Mechanism): 同一滤波器(Filter/Kernel)在整个感受域范围内重复利用相同的一组可学习系数(weights),这不仅极大地降低了总的自由度数目同时也赋予了该方法天然具备空间位移鲁棒性的特质即所谓的“平移不变性(Translation Invariance)”. - 局部稀疏交互(Local Sparse Interactions): 只考虑相邻区域间的相互关系而非全局范围内的任意两点关联情况,进一步简化了计算复杂度. 上述两项关键技术的应用使 CNN 成为了当前解决计算机视觉领域诸多难题最为有效的解决方案之一[^4]. ### 实际应用场景 由于其卓越性能表现,CNN 已经被广泛应用于多个实际场景当中,比如但不限于以下方面: - 图像分类(Image Classification) - 物体检测(Object Detection) - 面部识别(Face Recognition) 以下是基于 Python 编程语言的一个简单示例程序片段展示如何构建基础版本的 LeNet-5 模型来进行手写数字 MNIST 数据集上的实验验证工作: ```python import tensorflow as tf from tensorflow.keras import layers, models model = models.Sequential() # 添加第一个卷积层+最大池化层组合 model.add(layers.Conv2D(filters=6,kernel_size=(5,5),activation='relu',input_shape=(32,32,1))) model.add(layers.AvgPool2D(pool_size=(2,2))) # 继续堆叠更多类似的卷积+池化层... model.add(layers.Conv2D(filters=16,kernel_size=(5,5),activation='relu')) model.add(layers.AvgPool2D(pool_size=(2,2))) # Flatten 平展成向量形式送入后续 FC 层之前 model.add(layers.Flatten()) # 加入若干个 Dense(full-connected)层构成最后判别部分 model.add(layers.Dense(units=120, activation='relu')) model.add(layers.Dense(units=84, activation='relu')) # 输出层设置 Softmax 得到最后概率分布结果 model.add(layers.Dense(units=10, activation='softmax')) # 打印查看整体架构详情 print(model.summary()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值