深度学习相关概念

📅 2026/7/27 17:21:01
深度学习相关概念
二、相关概念卷积层基础概念图片的卷积和池化操作全连接层fc全连接层的作用、卷积层的作用、pooling层、激活函数的作用深入理解卷积层全连接层的作用意义将经过卷积层和池化层的输出摊平flatten局部特征“摊平”之后就变成了全局特征。FC层整合了前面卷积层和池化层提取的高维特征信息将它们整合成全局信息。FC层“整合”之后会损失掉许多位置信息这就是为什么不能在目标检测、图像分割此类不仅对语义信息严格也对定位信息要求严格的任务中采用全连接层。全连接层是用来分类的。全连接层的参数很多一般占用网络的60%-80%。超参Hyper-parametric超参是可以调整的参数可以控制模型训练优化的过程不同的超参值数值可能会影响模型训练和收敛速度。损失函数损失函数用来评价模型的预测值和目标值之间的误差。优化器函数优化器函数用于计算和更新梯度模型优化算法的选择直接关系到最终模型的性能。有时候最终模型效果不好未必是特征或者模型设计的问题很有可能是优化算法的问题。梯度下降算法梯度下降算法是一个被广泛用来最小化模型误差的参数优化算法梯度下降算法通过多次迭代并在每一步中最小化损失函数来估计模型的参数。学习率learning rate学习率在模型迭代过程中控制模型的学习进度。如果学习率偏小会导致收敛的速度变慢如果学习率偏大则可能会导致训练不收敛等不可预测的结果。**相关研究表明更大的学习率有利于提高模型的泛化能力尽量使用大的学习率。**当然也有个度学习率过大也会导致模型震荡难以收敛。批次大小batch size数据集进行分批读取训练设定每个批次数据的大小。batch size太小相邻批次间的差异相差过大那么相邻两次迭代的梯度震荡情况会比较严重不利于收敛batch size越大相邻批次间的差异相对越小虽然梯度震荡情况会比较小一定程度上利于模型收敛。但如果batch size极端大则相邻批次间的差异过小相邻两个批次的梯度没有区别整个训练过程就会沿着一个方向蹭蹭蹭往下走很容易陷入局部最小值不出来。总结**batch size过小花费时间多同时梯度震荡严重不利于收敛batch size过大不同batch的梯度方向没有任何变化容易陷入局部极小值。**因此需要选择合适的batch size可以有效提高模型精度、全局收敛。学习轮次epoch训练时遍历数据集的次数。收敛与网络性能收敛与网络性能好坏没有绝对的关系。收敛情况好并不意味着网络的性能好网络收敛好意味着较好的拟合但是并不意味着会对测试数据作出很好的拟合这存在一个“泛化”问题。降维与升维维度是指channel的维度升维是指增加channel降维是指减少channel。用1x1的卷积实现降维和升维的操作。算子Operator算子操作运算比如AI的ReLU、Conv、Pooling、Scale、Softmax等。算子Operator是一个数学概念它将一个元素在向量空间或 模中转换为另一个元素的映射。举个例子f(x) abs(x)abs就是算子它的作用就是求x的绝对值。x被称作操作数(operand)。一个或多个算子操作数就组成了算法。算子名称算子的名称用于标志网络中的某个算子同一网络中算子的名称需要保持唯一。算子类型网络中每一个算子根据算子类型进行算子实现的匹配相同类型的算子的实现逻辑相同。张量TensorTensor是算子中的数据包括输入数据与输出数据。TensorDescTensor描述符是对输入数据与输出数据的描述TensorDesc数据结构包含如下属性如下表所示。属性定义名称name用于对Tensor进行索引不同Tensor的name需要保持唯一。形状shapeTensor的形状比如10,或者10241024或者234等。详细介绍请参见[ 形状shape]。默认值无形式(i1, i2,…in)其中i1到in均为正整数数据类型dtype功能描述指定Tensor对象的数据类型。默认值无取值范围float16, float32, int8, int16, int32, uint8, uint16, bool。数据排布格式format详细请参见[ 数据排布格式format]。数据排布格式Format在深度学习框架中多维数据通过多维数组存储比如卷积神经网络的特征图用四维数组保存四个维度分别为批量大小Batch, N、特征图高度Height, H、特征图宽度Width, W以及特征图通道Channels, C。由于数据只能线性存储因为这四个维度有对应的顺序。不同深度学习框架会按照不同的顺序存储特征图数据比如Caffe排列顺序为[Batch, Channels, Height, Width]即NCHW。Tensorflow中排列顺序为[Batch, Height, Width, Channels]即NHWC。如下图所示以一张格式为RGB的图片为例NCHW中C排列在外层实际存储的是“RRRGGGBBB”即同一通道的所有像素值顺序存储在一起而NHWC中C排列在最内层实际存储的则是“RGBRGBRGB”即多个通道的同一位置的像素值顺序存储在一起。形状Shape如形状(3,4)表示第一维有3个元素第二维有4个元素(3,4)表示一个3行4列的矩阵数组。假设有一些照片每个像素点都由红/绿/蓝3色组成即shape里面3的含义照片的宽和高都是20也就是20*20400个像素总共有4张的照片这就是shape(4, 20, 20, 3)的物理含义。如果体现在编程上可以简单把shape理解为操作Tensor的各层循环比如我们要对shape(4, 20, 20, 3)的A tensor进行操作循环语句如下produce A{for(i,0,4){for(j,0,20){for(p,0,20){for(q,0,3){A[((((((i*20)j)*20)p)*3)q)]a_tensor[((((((i*20)j)*20)p)*3)q)]}}}}}轴axis轴是相对Shape来说的轴代表张量的shape的下标比如张量a是一个5行6列的二维数组即shape是(5,6)则axis0表示是张量中的第一维即行。axis1表示是张量中的第二维即列。例如张量数据[[[1,2],[3,4]], [[5,6],[7,8]]]Shape为(2,2,2)则轴0代表第一个维度的数据即[[1,2],[3,4]]与[[5,6],[7,8]]这两个矩阵轴1代表第二个维度的数据即[1,2]、[3,4]、[5,6]、[7,8]这四个数组轴2代表第三个维度的数据即12345678这八个数。轴axis可以为负数此时表示是倒数第axis个维度。权重weight当输入数据进入计算单元时会乘以一个权重。例如如果一个算子有两个输入则每个输入会分配一个关联权重一般将认为较重要数据赋予较高的权重不重要的数据赋予较小的权重为零的权重则表示特定的特征是无需关注的。假设输入数据为X1与其相关联的权重为W1那么在通过计算单元后数据变为了X1*W1。偏置bias偏置是除了权重之外另一个被应用于输入数据的线性分量。它被加到权重与输入数据相乘的结果中用于改变权重与输入相乘所得结果的范围。假设输入数据为X1与其相关联的权重为W1偏差为B1那么在通过计算单元后数据变为了X1*W1B1。机器学习与深度学习三、常见神经网络模型LeNet、AlexNet经典CNN网络LeNet和AlexNet网络Resnet18经典CNN网络Resnet18网络结构输入和输出ResNet18结构、各层输出维度【猫狗数据集】可视化resnet18的输出Resnet18、34 残差网络复现附python完整代码CIF10实战(ResNet18)一个小改动CNN输入固定尺寸图像改为任意尺寸图像卷积层有17个FC层1个所以是18。VGG16经典CNN网络VGG16-输入和输出VGG是Oxford的Visual Geometry Group的组提出的大家应该能看出VGG名字的由来了。R-CNN目标检测R-CNN系列MobileNet v1经典CNN网络MobileNet V1DenseNet经典CNN网络DenseNetYOLOyolo目标检测MediaPipeMediaPipe高级机器视觉四、CV领域Opencvopencv机器视觉