计算机视觉中的神经网络通过学习多层数学运算中的分层模式来处理图像。最常见的架构是卷积神经网络 (CNN),它使用专门的层来检测视觉特征。输入层接收原始像素值,随后的卷积层应用滤波器(小矩阵)来提取边缘、纹理或形状。例如,滤波器可能突出显示第一层中的垂直边缘,而更深层结合这些边缘来检测眼睛或车轮等复杂结构。池化层减少空间维度,使网络对输入中的小位移不变。 ReLU 等激活函数引入非线性,允许模型学习复杂关系。通过堆叠这些层,网络构建特征层次结构,将像素转换为有意义的表示,用于分类等任务。
训练 CNN 涉及调整其参数以最大限度地减少预测误差。 在前向传播期间,图像通过网络,生成预测(例如,标记为猫)。 损失函数(例如,交叉熵)量化预测和真实标签之间的差异。 反向传播计算损失相对于每个参数的梯度,随机梯度下降 (SGD) 等优化算法更新权重以减少误差。 例如,如果网络将狗错误分类为猫,则梯度指示如何调整滤波器权重以纠正此错误。 诸如数据增强(旋转、翻转图像)和 dropout(随机禁用神经元)之类的技术可防止过度拟合。 在大型数据集(如 ImageNet)上训练的预训练模型(如 ResNet 或 VGG16)通常针对特定任务进行微调,从而节省计算时间。
在实践中,CNN 为图像分类、对象检测和分割等应用程序提供动力。 对于分类,最后一层使用 softmax 输出每个类别的概率(例如,90%“猫”)。 YOLO 或 Faster R-CNN 等对象检测模型添加边界框回归层以在图像中定位多个对象。 诸如 U-Net 之类的语义分割网络使用编码器-解码器架构来为每个像素分配类标签,这在医学成像中对于识别肿瘤边界很有用。 这些模型部署在现实世界的系统中:自动驾驶汽车使用 CNN 检测行人,而面部识别系统则映射特征以进行识别。 通过结合架构创新(例如,ResNet 中的跳跃连接)与大规模训练,CNN 实现了高精度,同时在设备或服务器上进行部署时仍具有计算效率。