ResNet即残差网络(Residual Network),是一种深度卷积神经网络架构,由何凯明等人在2015年提出,以下是对其的详细介绍:
提出背景
随着神经网络层数的增加,出现了梯度消失或梯度爆炸问题,导致网络难以训练。同时,网络越深,模型的准确率可能会达到饱和甚至下降,出现退化问题。ResNet旨在解决这些问题,使训练极深的网络成为可能。
核心思想
- 残差学习:引入了残差块(Residual Block)的概念,其核心是通过捷径连接(Shortcut Connection)将输入直接加到输出上,使得网络可以学习到输入与输出之间的残差。即不是直接学习目标函数 (H(x)),而是学习残差函数 (F(x)=H(x)-x),那么最终的输出就是 (H(x)=F(x)+x)。
网络结构
- 残差块:通常由两个或多个卷积层组成,卷积层之间可能会有批量归一化(Batch Normalization)和激活函数,如ReLU。在残差块中,输入 (x) 经过一系列卷积操作后得到 (F(x)),然后通过捷径连接将 (x) 与 (F(x)) 相加得到输出 (H(x))。
- 整体架构:ResNet由多个残差块堆叠而成,根据网络的深度不同,有ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152等不同版本。一般来说,网络的前面部分是普通的卷积层,用于提取图像的低级特征,后面部分是多个残差块组成的主体部分,用于学习更高级的特征,最后通过全连接层和 softmax 函数进行分类。
优势
- 训练深度网络更容易:残差连接有效地缓解了梯度消失和梯度爆炸问题,使得网络能够在很深的层数下进行训练,从而可以学习到更复杂的特征。
- 性能提升显著:在图像分类、目标检测、语义分割等计算机视觉任务中,ResNet取得了非常好的效果,大幅提高了模型的准确率。
- 模型泛化能力强:通过学习残差,模型对输入的微小变化更加鲁棒,具有更好的泛化能力,在不同的数据集和任务上表现稳定。
应用
- 图像分类:在ImageNet数据集上取得了当时领先的分类准确率,成为图像分类领域的经典模型之一,推动了图像识别技术的发展。
- 目标检测:作为基础网络与其他目标检测算法结合,如Faster R-CNN、YOLO等,提高了目标检测的精度和速度。
- 语义分割:用于对图像进行像素级的分类,在Cityscapes、PASCAL VOC等语义分割数据集上也取得了很好的效果。
- 视频分析:在视频分类、动作识别等视频分析任务中也有广泛应用,能够学习视频中的时空特征。
发展与改进
- 改进网络结构:后续研究在ResNet的基础上进行了各种改进,如ResNeXt引入了分组卷积和 cardinality 的概念,进一步提高了模型的性能和效率。
- 与其他技术结合:与注意力机制、多尺度特征融合等技术结合,使模型能够更好地关注图像中的关键区域和多尺度信息,提升模型的性能。