1.概念
CNN -> 深度学习模型,主要用于图像识别、语音识别、自然语言处理等。
2.卷积操作
1.滑动卷积核(一个小矩阵、滤波器)对输入图像进行特征提取
2.滑动在图像上,对每个位置的像素进行加权求和 -> 新的输出矩阵(特征图)
3.通过不同的卷积可以提取不同的特征,比如边缘、角点、纹理等
4.可以通过多个卷积层实现卷积操作,每一层包含多个卷积核,提取不同的特征
3.池化操作
1.CNN中卷积操作通常是与池化(Pooling)操作结合使用
2.池化操作可以对特征图进行降采样 -> 减少特征图大小,提高模型鲁棒性
3.多次卷积、池化,CNN可以逐层提取图像的高级特征,从而实现图像的分类、检测、分割等任务
4。多次卷积得到的特征图可能尺寸很大,导致后续计算量很大,也会增加过拟合风险
5.池化操作可以对特征图进行降采样,即将特征图中某些像素合并成一个像素,从而缩小特征图大小
6.例如,最大池化就是在一个固定大小的窗口内,选取最大值作为新的像素值,减少尺寸,降低后续计算复杂度
7.总之,池化操作可以对特征值进行降采样,从而减少特征图大小,提高模型鲁棒性,使得卷积神经网络具有更好的计算效率和泛化能力
注释:
1.鲁棒性
1.鲁棒性 -> 一个系统或模型对输入数据变化的适应能力
2.在机器学习领域,鲁棒性通常指模型对于噪声、异常值、数据缺失、对抗性攻击等不同形式的干扰的稳健能力
3.鲁棒性较强的模型可以在面对新数据时,仍保持良好的性能和预测准确率,不会受到输入数据的微小变化或异常值的影响,反之,容易受干扰,导致预测结果不准确或失效。
4.实际应用中,鲁棒性是一个非常重要的因素,真实场景中,输入数据往往包含各种不同的噪声、异常值干扰,鲁棒性不强的模型容易失效,影响效果。
2.模型过拟合
1.机器学习模型在训练数据上表现非常好,但在测试数据上表现较差的现象,即模型在训练数据上过于追求完美的拟合,无法泛化到新的数据上去
2.原因 -> 模型过于复杂或训练数据太少,导致模型过于死记硬背训练数据,而无法无法对新数据有效的预测
3.过拟合模型会在训练数据上学习到训练集的噪音和细节,而忽略真实数据的本质特征和规律,使得模型在新数据上预测效果变差
4.特点 -> 过于复杂、过于细致、对训练集中异常值和噪声过于敏感等
2.处理方法 -> 增加数据量,降低模型死记硬背的风险
采用正则化方法,如L1, L2正则化等
采用交叉验证法,选择合适的模型和参数
降低模型复杂度,采用更简单的模型结构
数据增强,如旋转、翻转、缩放等
3.正则化
1.在机器学习中,其是一种常用技术,用于减少模型的过拟合风险
2.基本思想 -> 在损失函数中增加一个正则化项,以惩罚模型参数大小,这样可以强制模型参数更加接近0,从而降低模型复杂度,减少过拟合风险
3.常用方法 -> L1正则化,在损失函数中增加模型参数的L1范数,即模型参数绝对值之和,其会使模型参数中一部分变为0,从而实现特征选择效果
即通过减少无用特征,提高模型的泛化能力
L2正则化,在损失函数中添加模型参数的L2范数,即模型参数的平方和,L2正则化会使得模型参数值变得较小,但不会使其变为0,从而保留了所有特征,避免了特征选择效果,其还可以防止模型参数过大,避免梯度爆炸问题
4.全连接
1.全连接层,也称作稠密连接层,是神经网络中最基本的一种层类型。
2.它的作用是将前一层的所有节点都连接到当前层的每一个节点上。全连接层通常用于对图像、语音、文本等高维数据进行分类或回归预测。
3.在全连接层中,每个节点与前一层中所有节点相互连接,每个连接都有一个权重。这些权重是模型的学习参数,通过反向传播算法来更新。每个节点的输出值是它与前一层所有节点的加权和,加权系数即为权重值。
5.全连接层的输出可以进一步输入到下一层,并继续进行计算。
6.全连接层通常具有很强的拟合能力,可以学习到输入数据的复杂非线性特征。
7.但是在神经网络较深或输入数据较大时,全连接层需要的参数数量非常庞大,容易导致过拟合和计算量过大的问题,因此在实际应用中,通常会和其他层类型(如卷积层、池化层等)配合使用,以减少参数数量和计算复杂度。
question
1.为什么要将模型参数调小
降低模型复杂度,避免过拟合风险,机器学习中模型复杂度是由模型参数数量和取值大小决定,太复杂容易过拟合
2.模型过拟合是数据少还是数据多了
通常是在数据较少的情况下出现,数据增多时,模型的泛化能力会提高,过拟合风险会降低,更多数据可以提供更多信息,更好理解数据本质归律
但当模型数据量非常大,也可能出现过拟合问题,此时模型复杂度可能很高,要采取一些方法避免过拟合
3.数据欠缺
指数据中缺失了一些重要信息,导致模型无法正确学习数据的本质,会出现欠拟合,既无法在训练数据和测试数据上都表现良好,通常因为模型复杂度过低或特征提取不足等原因导致
4.全局最大池化为什么选第二维度,不选第一维度
在卷积神经网络中,第一维度通常是批次维度,表示一次训练或推断中处理的样本数。如果选择第一维度进行最大值的计算,那么将对每个样本中所有特征图的所有像素值进行比较,从而得到一个大小为 [batch_size, 1, num_filters] 的结果张量。这个结果张量并不包含对特征图的提取和比较,只是对每个样本进行了汇总,因此不能提供对每个特征图的最重要的特征的描述。
此外,第一维度是批次维度,对于每个样本,它们所包含的有效信息可能是不同的,因此在第一维度进行全局最大池化操作可能会导致信息的混杂,影响模型的性能。
因此,在卷积神经网络中,第二个维度通常是特征图维度(feature map dimension),表示每个卷积核在卷积后得到的特征图。在进行全局最大池化操作时,选择第二维度进行最大值的计算,可以对每个特征图提取最重要的特征,而忽略其它不重要的特征。这样可以更精确地描述每个特征图的特征,提高模型的性能。同时,选择特征图的维度进行最大值的计算也可以使模型对输入数据的位置不变性提高,即不管输入数据的位置如何变化,模型都可以提取出相同的特征,进一步提高模型的泛化能力。因此,在卷积神经网络中,通常选择特征图的维度(第二个维度)进行全局最大池化操作。
5.为什么不管输入数据的位置如何变化,模型都可以提取出相同的特征
在卷积神经网络中,通过使用卷积核对输入数据进行卷积操作,可以提取出输入数据中的局部特征。卷积操作是一种局部操作,它只考虑输入数据中的局部区域,而不考虑这个区域在整体中的位置。因此,即使输入数据的位置发生变化,卷积操作仍然能够提取相同的局部特征。在全局最大池化操作中,选择特征图的维度进行最大值的计算,可以对每个特征图提取最重要的特征,而忽略其它不重要的特征。这样可以更加精确地描述每个特征图的特征,进一步提高模型的泛化能力,使模型对于输入数据的位置变化更加鲁棒。因此,无论输入数据的位置如何变化,模型都可以提取出相同的特征,从而保证模型的性能。