【详解】卷积神经网络(CNN)概念及大体流程

本文详细介绍了卷积神经网络的构成,包括卷积层、激励层、池化层的作用及其工作原理,展示了如何通过堆叠卷积-池化结构提取图像特征并进行分类。重点讲解了ReLU激励函数、ZeroPadding保持尺寸、全连接层的分类功能,以及CNN的基本流程图。

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

什么是卷积神经网络?

卷积神经网络结构包括:卷积层,池化层,全连接层。每一层有多个特征图,每个特征图通过一种卷积滤波器提取输入的一种特征,每个特征图有多个神经元。

卷积层:卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。

卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。比如我们看一张猫的图片,可能看到猫的眼镜或者嘴巴就知道这是张猫片,而不需要说每个部分都看完了才知道,啊,原来这个是猫啊。所以如果我们可以用某种方式对一张图片的某个典型特征识别,那么这张图片的类别也就知道了。这个时候就产生了卷积的概念。举个例子,现在有一个4*4的图像,我们设计两个卷积核(卷积核也称为特征提取器,或者过滤器),看看运用卷积核后图片会变成什么样。

                                 激励层:对卷积层的输出结果进行一次非线性映射
                                              常用的激励函数:Sigmoid函数、Tanh函数、ReLU函数.
                                              CNN激励函数一般为ReLU,其特点为:收敛快、求梯度简单、较脆弱。

池化层: 池化层夹在连续的卷积层中间,有两个作用:

1、为了减少训练参数的数量,降低卷积层输出的特征向量的维度;

2、只保留最有用的图片信息,减少噪声的传递。

通常来说,池化方法一般有以下两种:

MaxPooling(最大池化):取滑动窗口里最大的值

AveragePooling(平均池化):取滑动窗口内所有值的平均值

通过上一层2 * 2的卷积核操作后,我们将原始图像由4 * 4的尺寸变为了3 * 3的一个新的图片。池化层的主要目的是通过降采样的方式,在不影响图像质量的情况下,压缩图片,减少参数。简单来说,假设现在设定池化层采用MaxPooling,大小为2 * 2,步长为1,取每个窗口最大的数值重新,那么图片的尺寸就会由3 * 3变为2 * 2(计算公式:输出边长=(输入边长–卷积核边长)/步幅+ 1;(3-2)+1=2)。从上例来看,会有如下变换:

接下来说一下Zero Padding:到现在为止,我们的图片由4 * 4,通过卷积层变为3 * 3,再通过池化层变化2 * 2,这只是一层卷积,如果我们再添加几层,那么图片岂不是会越变越小?这个时候我们就会引出“Zero Padding”(补零),它可以帮助我们保证每次经过卷积或池化输出后图片的大小不变,如,上述例子我们如果加入Zero Padding,再采用3*3的卷积核,那么变换后的图片尺寸与原图片尺寸相同,如下图所示:

通常情况下,我们希望图片做完卷积操作后保持图片大小不变,所以我们一般会选择尺寸为3 * 3的卷积核和1的zero padding,或者5 * 5的卷积核与2的zero padding,这样通过计算后,可以保留图片的原始尺寸。那么加入zero padding后的feature_map尺寸 =( width + 2 * padding_size - filter_size )/stride + 1。

全连接层: 两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部。也就是跟传统的神经网络神经元的连接方式是一样的。

作用:全连接层在整个卷积神经网络起到“分类器”的作用。提取特征、进行分类。

这就是一个完整的卷积神经网络,如果想要叠加层数,一般也是叠加“Conv-Pooing",通过不断的设计卷积核的尺寸,数量,提取更多的特征,最后识别不同类别的物体。做完Max Pooling后,我们就会把这些数据“拍平”,丢到Flatten层,然后把Flatten层的output放到full connected Layer里,采用softmax对其进行分类。

1.1总结

CNN基本流程图:

<think>好的,我现在需要帮助用户查找关于一维卷积神经网络(1D CNN)的流程图或架构图。首先,我需要回顾用户提供的引用内容,看看是否有相关的信息可以借鉴。 用户提到了引用[2]中的论文《A convolutional neural network for modelling sentences》,其中讨论了多层卷积和动态池化在句子处理中的应用,并提到了特征图的层次结构类似于语法分析树。虽然这是针对文本处理的二维卷积,但可能对理解一维卷积的结构有帮助,因为一维卷积通常用于序列数据,如文本或时间序列。 接下来,用户提到引用[3]中的图粗化过程,使用Graclus聚类算法进行池化操作。这部分内容涉及图卷积网络(GCN)中的池化方法,可能与一维CNN的池化层有相似之处,但需要区分一维卷积和GCN的不同之处。 用户的需求是寻找1D CNN的架构图,因此我需要整理一维卷积神经网络的典型结构。通常,1D CNN由输入层、多个卷积层、激活函数、池化层、全连接层等组成。例如,处理时间序列数据时,输入是一维序列,卷积核在时间维度上滑动,提取局部特征。 此外,我需要确保回答中包含LaTeX公式,如卷积运算的数学表达式。例如,卷积操作可以表示为: $$(f * g)(t) = \sum_{\tau=-\infty}^{\infty} f(\tau) \cdot g(t - \tau)$$ 在架构描述中,可能需要提到每层的参数,如卷积核大小、步长、填充方式等。例如,一个卷积层的输出尺寸可以用公式: $$L_{\text{out}} = \frac{L_{\text{in}} + 2P - K}{S} + 1$$ 其中,$L_{\text{in}}$是输入长度,$P$是填充大小,$K$是卷积核大小,$S$是步长。 用户可能需要示意图,但由于无法直接提供图片,可以建议他们参考特定论文或资源,如《Semi-supervised Classification with Graph Convolutional Networks》中的结构图,或者使用工具如TensorFlow、Keras的模型可视化功能。 最后,根据用户的要求生成相关问题,例如1D CNN的应用场景、与2D CNN的区别,或者超参数调整方法。这些问题需要与架构图相关,帮助用户深入理解。</think>### 一维卷积神经网络(1D CNN)架构图描述 一维卷积神经网络(1D CNN)的典型架构包含以下核心组件(示意图可通过论文或工具生成): 1. **输入层** 输入为一维序列数据(如时间序列、文本嵌入向量),形状为$(L, C)$,其中$L$为序列长度,$C$为通道数(如传感器信号通道数或词向量维度)。 2. **卷积层** - 使用一维卷积核在序列上滑动,提取局部特征。 - 数学表达式: $$y_i = \sum_{k=1}^{K} w_k \cdot x_{i+k-1} + b$$ 其中$w_k$为卷积核权重,$b$为偏置项,$K$为卷积核大小。 - 输出特征图尺寸公式: $$L_{\text{out}} = \left\lfloor \frac{L_{\text{in}} + 2P - K}{S} \right\rfloor + 1$$ $P$为填充大小,$S$为步长。 3. **激活函数层** 常用ReLU: $$\text{ReLU}(x) = \max(0, x)$$ 4. **池化层(如最大池化)** - 降低特征图维度,增强平移不变性。 - 池化窗口大小$M$和步长$S$决定输出尺寸: $$L_{\text{pool}} = \left\lfloor \frac{L_{\text{in}} - M}{S} \right\rfloor + 1$$ 5. **全连接层** 将展平后的特征映射到目标输出空间。 --- ### 示意图生成建议 1. **经典论文参考** - 《Semi-supervised Classification with Graph Convolutional Networks》[^3]中类似的层次结构可类比理解。 - 文献[^2]中图1的动态卷积特征图层次结构(见图1子图)可间接参考卷积核的层级作用。 2. **工具生成** - 使用`TensorFlow/Keras`的`model.summary()`或`visualkeras`库生成架构图。 - 代码示例: ```python from keras.models import Sequential from keras.layers import Conv1D, MaxPooling1D, Dense, Flatten model = Sequential() model.add(Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=(100, 1))) model.add(MaxPooling1D(pool_size=2)) model.add(Flatten()) model.add(Dense(10, activation='softmax')) model.summary() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上游

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值