卷积神经网络整体架构
总结
- 输入层:原始数据(图像)
- 例如可以输入一张RGB图像,其可以标示为一个三维矩阵,宽W高H和通道数C=3对应着RGB
- 卷积层:提取局部特征,变换输入数据为丰富的特征图
- 网络使用多个卷积核(滤波器)在输入图像上进行卷积操作。每个卷积核会在图像上滑动,通过点积运算提取局部特征(如边缘、角点、纹理等)
- 经过第一层卷积后,得到的输出特征通常仍是二维布局,但通道数可能增加(因为多个卷积核的存在),且特征图的宽高可能比原图略小(取决于卷积核大小、步幅和填充策略)
- 类似于多个专家针对一个文物不同角度的分析,每个专家就代表一个卷积核,每个卷积核都会得到针对性的特征总结
- 池化层:下采样,减少数据维度和过拟合风险,保留主要特征
- 通过池化操作,可以大幅降低特征图的空间维度(宽和高的大小)从而减少参数量和计算量
- 池化还具有一定的平移不变性作用,即即使图像有小幅度的位移,池化后的特征仍较为稳定
- 池化层就像缩小图片的分辨率,虽然丢失了一些细节,但是保留了整体的轮廓和主要特征
- 重复多个卷积+池化模块:逐层提取更高级、更抽象的特征
- 一个CNN会多次重复“卷积层 + 激活函数(如ReLU) + 池化层”的组合
- 前面的卷积层可能提取一些低级特征(如边缘、线条),后面的卷积层则在这些低级特征的基础上提取更高级的特征(如特定形状、局部纹理、物体部分的组合);随着不断的深入,特征数会越来越多,从而实现了对原始数据的多层抽象
- 最初你在一幅复杂的画中仅识别出一些简单的线条和轮廓(低级特征),接着通过进一步分析这些线条组合成小的形状或局部结构(中级特征),最终再将这些局部结构组合成特定物体的轮廓或类别特征(高级特征)
- 全连接层:将抽象的高级特征映射到输出空间(比如分类类别)
- 当特征图被压缩到足够小的空间尺寸后(例如变为几行几列但有较多特征通道),会将其“铺平”(flatten)成一维向量,再输入到全连接层进行分类或回归任务
- 经过多层的特征提取后,你手头有一组有用的高层特征,这些特征就像一个描述物体特性的列表。全连接层相当于一位专家评审,根据特征的分布和数值,对物体进行最终的类别判断
- 输出层:输出预测结果(如类别概率分布)
- 最后的输出层(例如使用Softmax激活)会根据前面层提取的高层次特征,给出最终的分类结果或回归结果
- 输出层就像是评委宣布最终判决的时刻,根据前面提供的所有证据(特征)最终下结论,这个图像中到底是什么物体
卷积层
主要步骤
- 卷积核扫描输入数据:通过滑动窗口方式,将卷积核与输入数据的局部区域进行元素级别的乘积和求和,提取局部特征
- 加偏置:在卷积结果上添加偏置项,调整特征的整体水平
- 应用激活函数:通过非线性激活函数(如 ReLU)增强模型的表达能力,允许网络学习复杂的模式
- <