热身Warm up: 指的是用一个小的学习率先训练几个epoch,这是因为网络的参数是随机初始化的,一开始就采用较大的学习率容易数值不稳定。
backbone: 这个主干网络大多时候指的是提取特征的网络,其作用就是提取图片中的信息,共后面的网络使用
Step训练模型的步数:(遍历学习一次训练集数据所需要的Batch数量),跟iteration一样。每个step之后更新模型权重
Batch Size(批尺寸):计算梯度所需的样本数量,太小会导致效率低下,无法收敛。太大会导致内存撑不住,Batch Size增大到一定程度以后,其下降方向变化很小了,所以Batch Size是一个很重要的参数。
Epoch(回合):代表样本集内所有的数据经过了一次训练。
模型将过度拟合训练数据: 验证数据上的模型的准确性将在经过多个时期的训练后达到峰值,然后停滞或开始下降。
迭代优化:重复进行梯度计算和参数更新的过程,每一次迭代都会使得模型的预测效果变得更好(即损失函数的值更小)。这个过程会持续进行,直到达到预设的最大迭代次数,或者损失函数的值变化小于某个设定的阈值,此时可以认为模型已经收敛,不再进行迭代。
学习率(Learning Rate)是在机器学习或深度学习中优化算法(如梯度下降)的一个重要参数。就是控制神经网络参数在梯度方向上变化的幅度,学习率越大意味着神经网络权重参数在梯度方向上前进的越多,学习越激进越容易跨过最优权重,学习率越小则学的很慢但是一般能保证收敛。它控制着模型参数在每次迭代中更新的步长。但如何选择学习率,其实是一个值得思考的问题。
具体来说,如果学习率设定得过大,可能会使模型在寻找最优解时跳过最优解点,导致模型无法收敛;反之,如果学习率设定得过小,可能会使模型的训练速度过慢,需要花费过多时间才能收敛到最优解。因此,合适的学习率的选择对于模型的训练效果和训练速度都有重要的影响。通常,我们会在训练过程中动态调整学习率,如使用学习率衰减策略,或者使用一些自适应学习率的优化算法(如Adam、RMSprop等)。
- 首先,随机初始化模型参数。
- 然后,从训练数据集中随机选取一个小批量样本。
- 接着,对于这个小批量样本,计算损失函数的梯度。
- 根据梯度更新模型的参数。
- 重复步骤2-4,直到达到最大迭代次数,或者模型的损失小于预设的阈值。
数据归一化(Normalization)是一种在预处理数据时常用的技术。它的目的是调整数据的规模,使其落在一个较小的、特定的范围内,比如 [0,1] 或者 [-1,1]。通过数据归一化,可以使不同规模或单位的特征在模型训练中具有相等的权重,从而避免因某些特征的规模过大而对模型结果产生过大的影响。
Precision和Recall之间的此消彼长的矛盾关系:recall高,说明所有所有的杀人犯中99%的都被抓住了,那就会造成一个结果,抓的人特别多。和这桩杀人案有一丁点关系的人都被逮捕了。这必然导致,所有被抓的人中,实际是罪犯的比例变得很低,也就是precision低。
如果你希望Police抓的人中,实际是罪犯的比例高一些,(也就是precision高一些)。那Police就不敢乱抓人了,没有十足的证据就不敢去逮人。那结果是啥?那就是大量隐藏额的很好的罪犯都被漏掉了,也就是说所有的罪犯中实际被抓住的比例降低了。也就是recall低了。
既然一个模型的precision和recall是此消彼长的关系,不可能两个同时大,那怎么判断哪个模型更优呢?答案是,P-R曲线越往右上角凸起的曲线对应的模型越优秀。正如上图中红线A和黑线B都是比模型C要优秀的.
但是问题来了,模型A和模型B之间,孰优孰劣呢?那就引出了平衡点(""Balanced Error Point"" (BEP))这个概念。平衡点就是曲线上的Precision值=Recall值的那个点,也就是上图中那三个点,平衡点的坐标越大,模型越好。"
F1: 除了平衡点,也可以用F1 score来评估。F1 = 2 * P * R /( P + R )。F1-score综合考虑了P值和R值,是精准率和召回率的调和平均值, 同样,F1值越大,我们可以认为该学习器的性能较好。
Conv2d | 卷积 |
BatchNorm | 标准化 |
ReLU | 激活函数 |