卷积神经网络(CNN)是一种深度学习模型,专门用于处理网格结构数据,例如图像、视频或音频谱图。与将输入数据视为扁平向量的传统神经网络不同,CNN 通过应用卷积运算来保留空间关系。这些操作使用小的滤波器(或称为核),在输入数据上滑动以检测局部模式,如边缘、纹理或形状。例如,一个滤波器可能在遇到图像中的垂直边缘时被激活。通过堆叠多个卷积层,CNN 可以分层学习越来越复杂的特征,从简单的线条到物体的部分再到整个物体。
CNN 由三个核心组件构建:卷积层、池化层和激活函数。卷积层应用滤波器来提取特征,而池化层(如最大池化)则减小空间维度,从而使模型计算高效且对输入中的微小偏移具有鲁棒性。激活函数(例如 ReLU,即修正线性单元)引入非线性,使网络能够学习复杂的关联。例如,一个典型的用于图像分类的 CNN 可能首先是一个检测边缘的卷积层,然后是一个池化层对特征图进行下采样,再是一个卷积层将边缘组合成圆形或角落等形状。最后,全连接层使用这些高级特征来执行分类等任务。
CNN 在计算机视觉任务中表现出色,例如图像识别、目标检测和分割。例如,自动驾驶汽车系统可以利用 CNN 通过分析像素模式来识别摄像机画面中的行人。它们的效率源于参数共享(同一个滤波器扫描整个输入)和空间层次结构(逐步抽象细节)。除了图像,CNN 也适用于其他领域:一维卷积处理时间序列数据,三维卷积分析视频帧。TensorFlow 或 PyTorch 等框架通过提供预构建的层和优化工具来简化 CNN 的实现。虽然最初是为视觉任务设计的,但 CNN 仍然用途广泛,因为它能够模拟任何网格状数据中的局部依赖关系。