来源:
卷积神经网络(CNN)到底卷了啥?8分钟带你快速了解!_哔哩哔哩_bilibili卷积神经网络(CNN)到底卷了啥?8分钟带你快速了解!共计2条视频,包括:卷积神经网络(CNN)到底卷了啥?、什么是循环神经网络?RNN的变体LSTM和GRU的运作原理又是怎样的?(人工智能丨深度学习丨机器学习丨自然语言处理)等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1MsrmY4Edi/?spm_id_from=333.337.search-card.all.click&vd_source=87f8c6f71fc5a150d17b858a02bf33d9
整体流程:
图片输入(RGB) ↓
卷积层(提取局部特征)↓
池化层(压缩特征图)↓
重复卷积+池化(提取更高阶特征)↓
Flatten(扁平化)↓
全连接层(分类逻辑推理)↓
输出层(得到分类结果)
一、前置了解
卷积核/滤波器/滑动窗口
卷积核本质上是一个加权矩阵,一般我们用3X3尺寸的卷积核,每个值是“权重”
卷积核的操作——卷积:
1.卷积核从图像的左上角开始,逐步滑动(按步长stride)遍历整个图像。
2.每次滑动,卷积核和图像的某个区域(称为感受野)进行逐元素相乘并求和,结果成为输出图像的新像素值。
3.将每次计算的结果拼接起来,得到新的矩阵,称为特征图或输出图。
在图像处理中,卷积就是用一个小矩阵(卷积核)在图像上滑动,对局部区域进行加权求和,提取特征。
卷积本身是一种线性操作
随着特征信息的提取程度,会损失空间信息(6X6的原始图片经过卷积之后会称提取为4X4的特征图片)
Padding(填充)
我们会损失边缘信息,我们就引入了padding方法:
如果padding=1,我们就在原始图像上填充一圈0
这样能保持输出图尺寸与输入图相同(如果 stride=1)
二、步骤
第一步:先对原始图像padding,再卷积——提取特征图片
- 对输入图像先进行 padding(通常填充 0);
- 然后用卷积核滑动提取特征图。
第二步:最大池化(Max Pooling)——提取精华特征
目的:将图片数据进一步压缩,仅反应特征图中最突出的特点
步骤:将6*6的特征图用2*2的网格分割,放入池化后的3*3网络中,保留最精华的特征
第三步:扁平化处理
将上面两个卷积核得到池化后的特征图像素叠加,形成一维的数据条
本质是将二维张量展平,使其能够输入到全连接层中。
第四步:输入全连接层中
概念:每个神经元与前一层的所有神经元连接;
本质:线性变换 + 激活函数:
output=Activation(Wx+b)
W
是特征权重矩阵;x
是输入的特征向量;b
是偏差项。
偏差项 b
的引入可以增加模型的灵活性,使得神经元在所有输入为零的情况下仍能有非零的输出,从而帮助模型更好地拟合数据。它相当于在激活函数前添加一个“偏移量”,确保模型能够更精准地捕捉数据的非线性规律。
通过全连接层进行逻辑推理与特征整合。
在全连接层的输出函数常见的是ReLU
- 概率大于0,就取本身
- 概率小于0,就是0
这样可以使每层网络更有针对性的学习某个特征,使学习效率提高
第五步:输出
最后一层是输出层,输出分类结果
输出层的激活函数:
- Sigmoid:二分类,把一个值压缩到0-1,0就是不是,1就是是
- softmax:多分类,所有类别的概率加起来是1
三、激活函数为什么叫激活?
“激活函数”中的“激活”这个词,其实是借用了神经生物学中的概念。
在生物神经网络中,神经元接收到足够强的刺激后才会被“激活”,进而传递信号。这种“激活”就像是触发机制,不是任意输入都会有输出,只有当输入超过某个阈值,神经元才会兴奋、发出脉冲。
类比到人工神经网络中:
- 神经元计算的结果需要通过某种“触发机制”才能决定是否输出,以及输出多少;
- 这个“触发机制”就是激活函数(Activation Function),它决定神经元是否被“激活”并输出信号。
所以叫“激活函数”,就是表示:
它控制着神经元是否被激活、输出信号,就像大脑中的神经元一样。
比如:
ReLU(x) = max(0, x)
表示:只有输入大于 0 时才被激活,才会有输出;Sigmoid(x)
表示:输入越大,激活越强,输出越接近 1。
简而言之:
“激活函数”= 模拟神经元被激活的过程,决定是否传递信号。
四、卷积层VS全连接层
1.作用不同
卷积层 | 全连接层 |
负责提取图像的局部特征(如边缘、角点、纹理等) | 负责进行分类/推理,整合前面提取的特征,得出最终判断 |
注重空间结构和位置关系 | 注重抽象特征和逻辑关系,最终输出预测结果 |
2.连接方式不同
卷积层 | 全连接层 |
每个神经元只连接输入图像的局部区域(感受野) | 每个神经元与上一层的所有神经元相连 |
局部连接 + 参数共享(卷积核共享) | 全连接,不共享参数 |
3.参数量不同
卷积层 | 全连接层 |
参数量较少(卷积核小,参数共享) | 参数量很大(连接数 = 输入数 × 输出数) |
适合处理高维图像数据 | 多用于最后几层,输入是扁平化后的特征向量 |
4.输入格式不同
卷积层 | 全连接层 |
输入是二维(或三维)图像张量 | 输入是一维向量(需经过 Flatten) |
保留空间结构(宽×高×通道) | 不保留空间结构,只关心整体特征表达 |
5.举个例子
- 卷积层就像用放大镜观察图像的某一小块,并提取它的纹理;
- 全连接层就像把所有小块信息组合起来,做一个最终判断,比如“这是一只猫”。
6.总结一句话:
卷积层关注的是“哪里有什么特征”,而全连接层关注的是“这些特征说明这是什么”。