深度学习参数对模型的影响:Loss(损失)、方差、Precision(精确度)、Recall(召回率

深度学习之Metrics

这一章主要介绍损失值的大小对模型的影响、对模型初始化对模型参数方差的影响,不同的方差对模型有什么影响,如何对Precision和Recall 进行阐释

一、 偏差、方差、精确率、召回率 四个概念

1.1 偏差:误差/损失值
如果训练损失很大,几乎不下降:
(1)网络几乎没有进行反向传播进行优化,考虑训练策略是否出问题
(2)网络结构太简单
如果损失很小,几乎等于0-过拟合
(1)网络结构过于复杂,没有drop-out/没有正则项
(2)喂入数据过少,学习到的都是数据的特性
1.2 方差 :数据的波动情况
如果方差过大,距离中心偏离过大的话,容易造成梯度消失或者梯度爆炸
如果方差过小,容易造成梯度消失或者梯度爆炸,网络的训练可能非常的缓慢。
而且对于激活函数而言,容易失活和饱和。
因此体现网络初始化的重要性。例如xvaier/He initialize method.
针对sigmoid/tanh,H=wx ,例如w服从(0,1).x服从(0,1),w拥有10个神经元,那么D(w1,x)=D(w1)D(x)=11=1, 一共10项,那么D(H)=10,每次都是这么传递,只会越来越大,如果把w初始化成(0,1/kenel_size),上述相乘就会近似服从于(0,1)分布;
1.3 精确率(precision)&&召回率(recall)

TP:识别正确/正样本 ,FP: 识别错误/正样本
TN: 识别正确/负样本 ,FN: 识别错误/负样本
对于分类而言:
精确率对于预测而言-即识别正确的/识别正确和识别错误的:Precision=TP/(TP+FP)
召回率对于数据而言-即正样本识别成正样本,负样本识别为负样本:Recall=
TP/(TP+FN)
其中对于目标检测而言:
Precision又称做查准率,recall又称作查全率。
TP:IOU>thr
FP:IOU<thr
FN: 漏检
更加详细请参考:
https://www.bilibili.com/video/BV1ez4y1X7g2?spm_id_from=333.999.0.0

二、一个好的模型对这几个指标有什么样的要求?

随着网络模型的训练,损失值大概在0.2左右,不至于过大对检测造成影响,不至于过小造成过拟合;通过观察训练集损失,可以知道模型是否在优化,通过观察验证集和训练集的损失的趋势可以判断模型是否过拟合。
根据不同的激活函数使用不同的初始化方法,让每一层的输入与输出都服从正态分布,避免数据值有大的波动;
Precision和recall都很高,模型查的既准、又全!
Precision决定了检测出来的目标是否准确,但是如果没有检测出来呢? 5个目标识别出一个目标,precision=1.0 ,但是模型性能还是很差。
Recall 决定了检测的目标中是否包括了全部的目标,值越大那么检测到目标的性能越好。

三、 基于问题2,若出现指标不理想的情况(1)什么原因?(2)什么原因?(3)如何解决?

其中第一点和第二点已经在上述两节谈过;
3.1 精确率(precision)&&召回率(recall)
(1)精确率低,由公式precision=TP/(TP+FP),模型识别的不够准
1>模型小,学习的特征少
2>数据少,学不到太多信息
(2)精确率很高。模型太准,容易发生过拟合
1> 模型大
2> 数据少
3.2 如何解决上述问题?
(1)对数据做预处理与初始化方法
(2)选中合适的损失函数
(3)选中合适的激活函数
(4)针对不同的数据集选中不同大小和不同场景的模型
(5)选用不同的采样策略

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
要提高深度学习模型的准确率,以下是一些常用的方法和技巧: 1. 更大的模型:增加模型的容量可以提高模型的拟合能力,从而提高准确率。你可以尝试增加模型的层数、每层的神经元数量或者增加网络的宽度。 2. 更复杂的模型结构:尝试使用更复杂的模型结构,例如使用卷积神经网络 (CNN) 或循环神经网络 (RNN)。这些网络结构可以更好地捕捉数据中的空间或时间信息,有助于提高准确率。 3. 数据增强:通过对训练数据进行一系列的随机变换来增加样本的多样性,如平移、旋转、缩放、翻转等。这样可以扩充训练数据集,提高模型的泛化能力。 4. 正则化技术:使用正则化技术可以减少模型过拟合的风险,包括 L1 或 L2 正则化、dropout 或批量归一化等。这些方法可以帮助模型更好地泛化到新的数据上。 5. 调整学习率:尝试不同的学习率调度策略,如逐渐降低学习率、使用学习率衰减等。适当的学习率可以帮助模型更好地收敛到最优解。 6. 批量归一化:在网络的每一层使用批量归一化技术,可以加速训练,提高模型的稳定性和准确率。 7. 模型集成:尝试使用模型集成的方法,如投票、平均或堆叠多个模型的预测结果。模型集成可以减少模型方差,提高准确率。 8. 超参数调优:通过网格搜索或随机搜索等方法,对模型的超参数进行调优,如学习率、正则化参数、批量大小等。 9. 更长的训练时间:增加模型的训练时间可以让模型更好地拟合数据,但需要注意过拟合的风险。 10. 更多的数据:增加训练数据量可以提高模型的泛化能力。如果可能,尽量收集更多的训练数据。 需要注意的是,并非所有方法都适用于每个问题,因此需要根据具体情况进行尝试和调整。此外,还需要注意模型选择、数据预处理和特征工程等方面的问题,以及针对具体问题的调优技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅层阳光__&&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值