神经网络与深度学习第四周课程总结

    1.1 AlexNet

    LeNet在数字手写体图像识别分类问题上取得了较好的成绩,但是受限于当时计算机的性能,并没有引起很多的关注。
        直到2012年,Alex等人提出的AlexNet网络(以作者的名字命名)在ImageNetILSVRC大赛上以远超第二名的成绩获得冠军,卷积神经网络乃至深度学习才真正引起了广泛的重视。
        ImageNet是一个大规模的图像数据集,其规模自从2009年问世以来仍然在不断的扩充。AlexNet在2012年比赛时对ImageNet中1000个不同的类别120万张高分辨率图像进行了分类,因此处理的数据集规模远大于MNIST。
        目前深度学习模型已经成为每年的ImageNetLSVRC挑战赛的主要技术手段。

网路结构:

 

AlexNet 的网络结构如下:

输入层(Input Layer):输入图像的大小为 227×227×3。

第一层卷积层(Convolutional Layer):96 个 11×11 的卷积核,步长为 4,进行图像卷积操作。同时使用 ReLU 激活函数对卷积后的特征图进行非线性变换。输出特征图大小为 55×55×96。

第一层局部响应归一化层(Local Response Normalization Layer):对第一层卷积后的特征图进行局部响应归一化,增强模型的泛化能力。

第一层最大池化层(Max Pooling Layer):进行最大池化操作,步长为 2,输出特征图大小为 27×27×96。

第二层卷积层(Convolutional Layer):256 个 5×5 的卷积核,步长为 1,进行图像卷积操作。同时使用 ReLU 激活函数对卷积后的特征图进行非线性变换。输出特征图大小为 27×27×256。

第二层局部响应归一化层(Local Response Normalization Layer):对第二层卷积后的特征图进行局部响应归一化,增强模型的泛化能力。

第二层最大池化层(Max Pooling Layer):进行最大池化操作,步长为 2,输出特征图大小为 13×13×256。

第三层卷积层(Convolutional Layer):384 个 3×3 的卷积核,步长为 1,进行图像卷积操作。同时使用 ReLU 激活函数对卷积后的特征图进行非线性变换。输出特征图大小为 13×13×384。

第四层卷积层(Convolutional Layer):384 个 3×3 的卷积核,步长为 1,进行图像卷积操作。同时使用 ReLU 激活函数对卷积后的特征图进行非线性变换。输出特征图大小为 13×13×384。

第五层卷积层(Convolutional Layer):256 个 3×3 的卷积核,步长为 1,进行图像卷积操作。同时使用 ReLU 激活函数对卷积后的特征图进行非线性变换。

第6个全连接层(Full Connected Layer):将第5个池化层输出的特征图展开成一维向量,输入到4096个神经元的全连接层中进行特征提取和分类

Dropout层(Dropout Layer):在第6个全连接层之后加入了一个Dropout层,随机丢弃50%的神经元,以防止过拟合。

第7个全连接层(Fully Connected Layer):对第6个全连接层的输出再次进行特征提取和

Softmax层(Softmax Layer):对第7个全连接层的输出进行softmax函数处理,得到每个类别的概率分布,用于图像分类任务。

AlexNet的全连接层参数量很大,且容易产生过拟合,因此后续的深度神经网络结构通常采用全局平均池化层和全连接层之间加入卷积层,以减少全连接层的参数数量和模型复杂度,提高模型的泛化能力。

 改进: (1) 池化层均采用最大池化; (2) 选用ReLU作为非线性环节激活函数; (3) 网络规模扩大,参数数量接近6000万; (4) 出现“多个卷积层+一个池化层”的结构。

普遍规律:随网络深入,宽、高衰减,通道数增加。

1.2 VGG-16

VGG-16是一种深度卷积神经网络结构,由Karen Simonyan和Andrew Zisserman在2014年提出,它的名称VGG是根据作者所在实验室Visual Geometry Group命名的。该网络结构通过增加卷积层的深度,使用小尺寸的卷积核和较小的步长,来提高特征提取的能力。VGG-16网络具有16个卷积层和3个全连接层。

VGG-16网络结构中的卷积层和池化层的设计具有良好的通用性,被广泛应用于图像分类、物体检测和图像分割等计算机视觉任务中。同时,VGG-16网络结构中采用了Dropout技术和ReLU激活函数,有效地缓解了过拟合问题,提高了模型的泛化能力。

1.3 残差网络

 残差网络(Residual Network,简称ResNet)是由Kaiming He等人在2015年提出的深度神经网络结构,旨在解决深度神经网络中的梯度消失和梯度爆炸问题。ResNet通过引入残差块(Residual Block)来实现网络的层间跳连(Skip Connection),使得网络可以学习残差映射(Residual Mapping),从而更容易训练和优化。

残差块是ResNet中的基本单元,它由两个卷积层和一个跳连组成。残差块的输入经过一个卷积层、批量归一化和激活函数处理后,再经过另一个卷积层和批量归一化。最后将输入和卷积层输出进行加和操作,得到残差块的输出。跳连是指将输入信号直接添加到卷积层的输出中,即形成了一个直接通道,避免了网络层数过多时梯度消失的问题。

除了引入残差块和跳连,ResNet还通过不同深度的残差块堆叠来实现网络深度的增加。其中,ResNet50、ResNet101、ResNet152分别有50、101、152个层,是目前比较常用的ResNet模型。同时,ResNet也采用了全局平均池化层和softmax分类器,用于将特征图映射到类别概率分布,用于图像分类任务。

1.3.1非残差网络的缺点

非残差网络存在梯度消失和梯度爆炸的问题,尤其是在深度增加时更为严重。梯度消失问题指的是在反向传播过程中,梯度逐渐变小,导致深层网络的训练变得非常困难,甚至无法收敛;梯度爆炸问题则是指在反向传播过程中,梯度逐渐变大,导致权重更新过程不稳定,甚至溢出。

另外,非残差网络的训练时间也比较长,因为在每个卷积层中都存在大量的参数需要优化。而且随着网络深度的增加,特征图的尺寸不断缩小,导致信息丢失和感受野不足的问题,影响了模型的性能。

1.3.2残差网络的优势

为了解决这些问题,残差网络的出现是一种重要的进步。引入了残差块和跳连之后,网络可以更容易地学习残差映射,避免了梯度消失和梯度爆炸的问题,同时也加快了网络的收敛速度。此外,残差网络中采用全局平均池化层和softmax分类器,降低了网络的复杂度和参数数量,提高了模型的泛化能力。

残差网络在解决深度神经网络训练中的梯度问题上具有重要的意义,为更深层次的网络提供了可行的解决方案。在实践中,残差网络已经被广泛应用于各种视觉任务中,成为了当今计算机视觉领域中最流行和有效的深度神经网络结构之一。

1.3.3 梯度消失问题

 1.3.4 构建残差网络

定义输入层:输入层通常是一个卷积层或池化层。

定义若干个残差块:每个残差块通常由两个或三个卷积层和一个跳连组成。其中,第一个卷积层的输出经过批量归一化和激活函数处理,然后经过第二个卷积层和批量归一化,最后将输入和卷积层输出进行加和操作,得到残差块的输出。若干个残差块可以堆叠起来,形成一个残差网络的基本结构。

定义全局平均池化层:对于残差网络的最后一层卷积层的输出,通常使用全局平均池化层将其转换为一个固定长度的向量。

定义输出层:输出层通常是一个全连接层,将全局平均池化层的输出映射到目标类别的概率分布。

1.4 数据集

  1. MNIST:手写数字识别数据集,包含60,000个训练样本和10,000个测试样本,每个样本是28x28像素的灰度图像。

  2. CIFAR-10/CIFAR-100:由加拿大计算机科学家Alex Krizhevsky等人创建的图像分类数据集,分别包含10个和100个类别的彩色图像。

  3. ImageNet:由斯坦福大学创建的大规模图像分类数据集,包含超过1500万张图像和1000个类别。

  4. PASCAL VOC:视觉对象分类挑战赛(Visual Object Classes)的数据集,包含20个对象类别的图像,用于目标检测和图像分割等任务。

  5. COCO:由微软创建的通用对象识别、检测和分割数据集,包含超过33万张图像和80个类别。

  6. KITTI:自动驾驶领域的数据集,包含城市驾驶场景中的图像序列、激光雷达点云和车辆运动轨迹等数据。

这些数据集广泛应用于深度学习中的图像分类、目标检测、图像分割、人脸识别等计算机视觉任务中,对算法的验证和比较非常重要。在实际应用中,可以根据具体任务和数据特点,选择适合的数据集进行训练和测试。

2.1 算法评估

算法评估是指对机器学习或深度学习模型进行性能评估和比较的过程。在评估算法时,需要考虑以下几个方面:

  1. 数据集的选择:数据集应该包含与任务相关的典型样本,能够覆盖模型可能遇到的各种情况,以保证评估结果的客观性和可靠性。

  2. 评估指标的选择:针对不同的任务,可以选择不同的评估指标。如图像分类任务可以采用准确率(Accuracy)作为评估指标,目标检测任务可以采用平均精度(mAP)作为评估指标。

  3. 训练集和测试集的划分:需要将数据集划分为训练集、验证集和测试集,用训练集训练模型,用验证集调整超参数和防止过拟合,最后在测试集上评估模型的性能。

  4. 交叉验证:交叉验证可以在数据较少时增加数据量,减少模型训练时的偏差和方差,提高模型的泛化能力。

  5. 模型比较:在评估多个算法时,需要在相同的数据集和评估指标下进行比较,并进行统计学分析,以确定哪种算法最优。

  6. 结果可视化:结果可视化可以更加直观地展示模型的性能,对模型的改进提供参考。

在评估算法时,需要综合考虑以上因素,并根据具体任务和数据特点进行调整。只有通过充分的评估和比较,才能选择出最优的算法,并为实际应用提供支持。

2.2 相关概念

  1. 准确率(Accuracy):指分类正确的样本数占总样本数的比例,通常用于图像分类等任务的评估。

  2. 精确率(Precision)和召回率(Recall):针对目标检测等任务的评估指标,精确率指正确检测出目标的样本数占检测出的样本总数的比例,召回率指正确检测出目标的样本数占所有目标样本总数的比例。

  3. F1值:综合考虑精确率和召回率的指标,通常用于目标检测等任务的评估。

  4. 平均精度(mAP):目标检测中最常用的评估指标之一,表示所有类别的AP值的平均值。

  5. 均方误差(MSE):回归任务中常用的评估指标,表示预测值与真实值之间差值的平方的平均值。

  6. 交叉验证(Cross Validation):将数据集划分为训练集和验证集,反复训练模型并在验证集上评估模型的性能,以减少模型训练时的偏差和方差。

  7. 过拟合(Overfitting)和欠拟合(Underfitting):过拟合指模型在训练集上表现很好,但在测试集上表现很差的现象,欠拟合则指模型在训练集和测试集上表现都不好的现象。

  8. ROC曲线和AUC:ROC曲线是表示分类器灵敏度和特异度之间的权衡关系的曲线,AUC是ROC曲线下的面积,用于衡量分类器性能的指标。

3.1 目标检测

目标检测是计算机视觉中的一个重要任务,其目标是在图像或视频中检测和定位特定物体。目标检测的任务通常包括两个子任务:物体的定位和物体的分类。目标检测在实际应用中有着广泛的应用,如智能监控、自动驾驶、机器人导航等领域。

而YOLO(You Only Look Once)是一种基于卷积神经网络的目标检测算法,它能够实现实时目标检测,以及在处理视频时可以达到几乎实时的处理速度。唷

具体而言,YOLO算法在整张图像上运行一个单独的卷积神经网络,将图像分割成多个网格,每个网格预测固定数量的边界框和每个边界框的类别概率。每个边界框包含物体的位置和尺寸信息。在训练过程中,YOLO使用均方误差(MSE)来计算边界框位置和尺寸的损失,并使用交叉熵损失来计算类别概率的损失。通过最小化总体损失,来训练模型。

相比于其它目标检测算法,YOLO算法具有如下优点:

  1. 速度快:YOLO算法在处理单张图像时,只需要运行一次前向传播,就可以同时预测出多个物体的位置和类别,速度非常快。

  2. 精度高:相比于其它实时目标检测算法,如SSD和Faster R-CNN,YOLO算法的准确度更高。

  3. 简单易用:YOLO算法的网络结构相对简单,训练和部署也比较容易。

  4. 处理图像尺寸不变:由于YOLO算法采用卷积神经网络,因此可以处理任意尺寸的输入图像。

总的来说,YOLO算法是一种高效、准确的目标检测算法,在实际应用中得到了广泛的应用。

3.2 语义分割

语义分割是指将图像中的每个像素分配到相应的语义类别上,是计算机视觉中的一种重要任务。与目标检测不同,语义分割不仅可以检测出物体的位置,还可以对物体进行像素级的分类。语义分割在自动驾驶、图像搜索、医学影像分析等领域有着广泛的应用。

常见的语义分割算法包括基于全卷积神经网络(FCN)、深度级联网络(DeepLab)、U-Net等。这些算法通常通过对原始图像进行编码和解码操作,将图像进行下采样和上采样,从而获得更加准确的分割结果。在训练过程中,通常采用像素级的交叉熵损失函数,以最小化分类误差。

相比于其它图像分割算法,语义分割具有如下优点:

  1. 比较直观:语义分割的输出结果比较直观,可以看到每个像素属于哪个类别。

  2. 能够处理复杂场景:语义分割算法能够处理复杂场景中的多个物体,并能够识别出它们之间的交叉和重叠。

  3. 能够提供更多信息:相比于目标检测算法,语义分割可以提供更多的像素级信息,从而更加细致地描述图像内容。

总的来说,语义分割是计算机视觉中的一个重要任务,在图像理解和自动驾驶等领域有着广泛的应用。随着深度学习的发展,语义分割算法的准确度和效率不断提高,将会有更加广泛的应用前景。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值