机器学习与深度学习一些基础知识点

本文详细介绍了机器学习和深度学习的基础概念,包括dropout的原理、维数灾难、伪标签技术、SSD小目标检测的问题以及Xception、ResNext和ShuffleNet等深度学习模型的解析。此外,还探讨了ROC曲线、核函数、正则化方法、超参数搜索策略、目标检测中的Focal loss、中心损失等关键概念,旨在帮助读者深入理解相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、dropout的原理:

  • 可以把dropout看成是 一种ensemble(集成)方法,每次做完dropout相当于从原网络中找到一个更瘦的网络,具体的,它是通过一定概率对神经元连接进行舍弃,这样减弱了神经元节点间的联合适应性,增强泛化能力,同时使用dropout得到更多的局部簇,同等数据下,簇变多了,因而区分性变大,稀疏性也更大。要注意的是,在网络的测试阶段drop out对数据的处理比较特别,它是将输入X乘以1-dropout的概率
    (dropout2d,则是对特征通道进行随机置0)
    补充知识点:稀疏性
    解析角度一
    在线性空间中,学习一个整个空间的特征集合是足够的,但是当数据分布在非线性不连续的空间中得时候,则学习局部空间的特征集合会比较好。
    解析角度二
    假设有一堆数据,这些数据由M个不同的非连续性簇表示,给定K个数据。那么一个有效的特征表示是将输入的每个簇映射为特征以后,簇之间的重叠度最低。使用A来表示每个簇的特征表示中激活的维度集合。重叠度是指两个不同的簇的Ai和Aj之间的Jaccard相似度最小,那么

  • 当K足够大时,即便A也很大,也可以学习到最小的重叠度

  • 当K小M大时,学习到最小的重叠度的方法就是减小A的大小,也就是稀疏性

上述的意思就是:我们要把不同的类别区分出来,就要是学习到的特征区分度比较大,在数据量足够的情况下不会发生过拟合的行为,不用担心。但当数据量小的时候,可以通过稀疏性,来增加特征的区分度。

因而使用了dropout后,相当于得到更多的局部簇,同等的数据下,簇变多了,使得网络不会产生过拟合,稀疏性则是drop out 的外在表现。

2、维数灾难
假如我们要训练一个分类器,我们可以加入许多特征对分类器进行训练,那是不是我们的分类器性能会随着特征数量的增加而逐步提高呢?答案也许有些让人沮丧,事实上,当特征数量达到一定规模后,分类器的性能是在下降的。随着维度(特征数量)的增加,分类器的性能可以用下图来描述:
在这里插入图片描述
Figure 1 随着维度的增加,分类器性能逐步上升,到达某点之后,其性能便逐渐下降。
简单说,维数灾难就是过拟合了。

3、伪标签技术:
将test数据集中的数据加入到train数据集中,其对应的标签为基于原有数据集训练好的模型预测得到的。
伪标签技术在一定程度上起到一种正则化的作用。如果训练开始就直接使用该技术,则网络可能会有过拟合风险,但是如果经过几轮训练迭代后(只是用原有训练集数据)将训练集和未打标签的数据一起进行训练,则会提升网络的泛化能力,操作过程中一般每个batch中的1/4到1/3的数据为伪标签数据。

4、为什么SSD对小目标检测效果不好
小目标对应的anchor比较少,其对应的feature map上的pixel难以得到训练,这也是为什么SSD在augmentation之后精确度上涨(因为crop之后小目标就变为大目标),要检测小目标需要足够大的feature map来提供精确特征,同时也需要足够的语义信息来与背景作区分。

5、Xception,ResNext和ShuffleNet
Xception是google继Inception后提出的对Inception v3的另一种改进,主要是采用depthwise separable convolution来替换原来Inception v3中的卷积操作。
什么是depthwise separable convolution?这是mobileNet里面的内容,其实就是将传统的卷积操作分成两步,假设原来是33的卷积,那么depthwise separable convolution就是先用M个33卷积核一对一卷积输入的M个feature map,不求和,生成M个结果;然后用N个1*1的卷积核正常卷积前面生成的M个结果,求和,最后生成N个结果。

ResNext的提出,传统的要提高模型的准确率,都是加深或加宽网络,但是随着超参数数量的增加(比如channels数,filter size等等),网络设计的难度和计算开销也会增加。因此提出的 ResNeXt 结构可以在不增加参数复杂度的前提下提高准确率,同时还减少了超参数的数量
Inception 系列网络,简单讲就是 split-transform-merge 的策略,但是 Inception 系列网络有个问题:网络的超参数设定的针对性比较强,当应用在别的数据集上时需要修改许多参数,因此可扩展性一般。
ResNeXt,同时采用 VGG 堆叠的思想和 Inception 的 split-transform-merge 思想,但是可扩展性比较强,可以认为是在增加准确率的同时基本不改变或降低模型的复杂度。

左边是ResNet的基本结构,右边是ResNeXt的基本结构在这里插入图片描述

ShuffleNet:轻量性网络,提出两个操作:逐点群卷积(pointwise group convolution)和通道混洗(channel shuffle),与现有先进模型相比在类似的精度下大大降低计算量。作者通过分析 Xception 和 ResNeXt 模型,发现这两种结构通过卷积核拆分虽然计算复杂度均较原始卷积运算有所下降,然而拆分所产生的逐点卷积计算量却相当可观,成为了新的瓶颈。受 ResNeXt 的启发,作者提出使用分组逐点卷积(group pointwise convolution)来代替原来的结构。通过将卷积运算的输入限制在每个组内,模型的计算量取得了显著的下降。然而这样做也带来了明显的问题:在多层逐点卷积堆叠时,模型的信息流被分割在各个组内,组与组之间没有信息交换,从而影响模型的精度。在使用分组逐点卷积的同时,需要引入组间信息交换的机制。作者通过引入“通道重排”(channel shuffle,见图 1© )可以很方便地实现这一机制;并且由于通道重排操作是可导的,因此可以嵌在网络结构中实现端到端的学习。
在这里插入图片描述

6、绘制ROC的标准和快速方法以及ROC对比PR曲线的优势:
标准方法:横坐标为FPR, 纵坐标为TPR, 设置一个区分正负预测结果的阈值并进行动态调整,从最高得分(实际上是正无穷)开始逐渐下降,描出每个阈值对应的点最后连接.

快速方法:根据样本标签统计出正负样本数,将坐标轴根据样本数进行单位分割,根据模型预测结果将样本进行排序后,从高到低遍历样本,每遇到一个正样本就沿纵轴方向绘制一个单位长度的曲线,反之则沿横轴,直到遍历完成

PR曲线的横坐标是Recall,纵坐标是Precision,相对于PR曲线来说,当正负样本发生剧烈变化时,ROC曲线的形状能够基本保持不变,而PR曲线的形状会发生剧烈改变

7、核函数
核函数并不是一种映射,它只是用来计算映射到高维空间后数据内积的一种方法。核函数K(kernel function)就是指K(x, y) = <f(x), f(y)>,其中x和y是n维的输入值,f(·) 是从n维到m维的映射(通常,m>>n)。<x, y>是x和y的内积(inner product)(也称点积(dot product)。

举个例子:
令 x = (x1, x2, x3, x4); y = (y1, y2, y3, y4);
令 f(x) = (x1x1, x1x2, x1x3, x1x4, x2x1, x2x2, x2x3, x2x4, x3x1, x3x2, x3x3, x3x4, x4x1, x4x2, x4x3, x4x4); f(y)亦然;
令核函数 K(x, y) = (<x, y>)^2.
接下来,让我们带几个简单的数字进去看看是个什么效果:x = (1, 2, 3, 4); y = (5, 6, 7, 8). 那么:
f(x) = ( 1, 2, 3, 4, 2, 4, 6, 8, 3, 6, 9, 12, 4, 8, 12, 16) ;
f(y) = (25, 30, 35, 40, 30, 36, 42, 48, 35, 42, 49, 56, 40, 48, 56, 64) ;
<f(x), f(y)> = 25+60+105+160+60+144+252+384+105+252+441+672+160+384+672+1024
= 4900.
如果我们用核函数呢?
K(x, y) = (5+12+21+32)^2 = 70^2 = 4900.
kernel其实就是帮我们省去在高维空间里进行繁琐计算的“简便运算法”。甚至,它能解决无限维空间无法计算的问题!因为有时f(·)会把n维空间映射到无限维空间去。

8、L0、L1和L2范数:

  • L0范数:很难优化求解(NP难问题)
  • L1范数:是L0的最优凸近似(L1是L0的最紧的凸放松),且具有特征自动选择和使得模型更具解释性的优点
  • L2范数:使得权重接近于0但是不等于0,有利于处理条件数不好情况下矩阵求逆问题(条件数用来衡量病态问题的可信度,也就是当输入发生微小变化的时候,输出会发生多大变化,即系统对微小变动的敏感度,条件数小的就是well-conditioned的,大的就是ill-conditioned的),对于线性回归来说,如果加上L2规则项,原有对XTX(转置)求逆就变为可能,而目标函数收敛速率的上界实际上是和矩阵XTX的条件数有关,XTX的 condition number 越小,上界就越小,也就是收敛速度会越快;另外从优化的角度来看,加入规则项实际上是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值