第一部分:CNN的基础概念
1. 什么是CNN?
卷积神经网络(Convolutional Neural Networks, CNN)是一种专门用于处理网格状数据(如图像或时间序列)的深度学习神经网络。CNN通过引入卷积操作、池化操作和全连接层,能够高效地提取数据中的空间特征,特别适用于图像分类、目标检测、图像分割等任务。
与传统全连接神经网络相比,CNN的优势在于:
- 参数共享:卷积核在整个输入上滑动,减少了参数量。
- 局部感知:通过感受野(receptive field)捕捉局部特征。
- 平移不变性:对输入的平移具有一定的鲁棒性。
2. CNN的核心思想
CNN的设计灵感来源于生物视觉系统(如猫的视觉皮层)。Hubel和Wiesel的研究发现,视觉神经元对局部区域的刺激敏感,且不同神经元负责检测不同类型的特征(如边缘、纹理)。CNN通过以下机制模拟这一过程:
- 卷积层:提取局部特征(如边缘、角点)。
- 池化层:降低空间维度,保留重要信息,增强鲁棒性。
- 激活函数:引入非线性,增强模型的表达能力。
- 全连接层:将提取的特征整合,用于分类或回归。
3. CNN的典型应用场景
- 图像分类:如ImageNet上的物体识别。
- 目标检测:如YOLO、Faster R-CNN。
- 图像分割:如U-Net、DeepLab。
- 人脸识别:如DeepFace。
- 自然语言处理:如文本分类(通过一维卷积)。
- 时间序列分析:如语音信号处理。
第二部分:CNN的数学与核心组件
1. 卷积操作
卷积是CNN的核心操作,用于提取输入数据的局部特征。数学上,二维卷积定义为:(I∗K)(x,y)=∑m∑nI(x+m,y+n)⋅K(m,n)(I * K)(x, y) = \sum_{m} \sum_{n} I(x+m, y+n) \cdot K(m, n)(I∗K)(x,y)=∑m∑nI(x+m,y+n)⋅K(m,n),其中:
- III:输入图像(或特征图),通常为 H×W×CH \times W \times CH×W×C(高、宽、通道数)。
- KKK:卷积核(kernel/filter),通常为 kh×kw×Ck_h \times k_w \times Ckh×kw×C。
- ∗*∗:卷积运算。
- (x,y)(x, y)(x,y):输出特征图的像素位置。
卷积的超参数
- 卷积核大小:如 3×33 \times 33×3、5×55 \times 55×5。
- 步幅(Stride):卷积核滑动的步长,控制输出尺寸。
- 填充(Padding):在输入边缘填充零(zero-padding),保持输出尺寸。
- 输出尺寸公式:Hout=⌊Hin+2⋅padding−khstride⌋+1H_{\text{out}} = \left\lfloor \frac{H_{\text{in}} + 2 \cdot \text{padding} - k_h}{\text{stride}} \right\rfloor + 1H

最低0.47元/天 解锁文章
4009

被折叠的 条评论
为什么被折叠?



