【字节跳动计算机视觉算法面经】

1、题目:、乙两人轮流投一枚均匀硬币,甲先投,谁先得到正面谁获胜,求投币不超过四次即决定胜负的概率(  )

解析:由硬币的均匀性,可知出现正、反面的概率均为1/2,而且各次投币是相互独立的.在4次之内决定胜负,有下面4种互斥情形:正;反正;反反正;反反反正,可知所求概率是1/2 + 1/4 + 1/8 + 1/16=15/16

2、LR、SVM的公式推导

参考博客:https://www.jianshu.com/p/e8dca5613da6

2.1理解LR模型

Logistic本质上是一个基于条件概率的判别模型(DiscriminativeModel)。逻辑回归模型是一个分类模型,対生成的结果是0或1的概率进行建模,通过采用最大似然估计的方法最大化似然函数,采用梯度上升的方法得到使似然函数最大的参数。

2.1.1 对数概率

一个事件发生的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率是p,那么该事件的几率为p/(1-p) ,该事件的对数几率(log odds)或logit函数是:


对LR而言,根据模型表达式可以得到:

即在LR模型中,输出y=1的对数几率是输入x的线性函数,或者说y=1的对数几率是由输入x的线性函数表示的模型,即LR模型。

2.1.2 模型参数估计

2.1.2.1 Sigmoid函数

下图所示即为sigmoid函数,它的输入范围为−∞→+∞,而值域刚好为(0,1),正好满足概率分布为(0,1)的要求。用概率去描述分类器,自然要比阈值要来的方便。而且它是一个单调上升的函数,具有良好的连续性,不存在不连续点。

函数图像为:

通过sigma函数计算出最终结果,以0.5为分界线,最终结果大于0.5则属于正类(类别值为1),反之属于负类(类别值为0)。图所示即为sigmoid函数,它的输入范围为−∞→+∞,而值域刚好为(0,1),正好满足概率分布为(0,1)的要求。用概率去描述分类器,自然要比阈值要来的方便。而且它是一个单调上升的函数,具有良好的连续性,不存在不连续点。

此外非常重要的,sigmoid函数求导后为:


如果将上面的函数扩展到多维空间,并且加上参数,则函数变成:

2.1.2.1 LR的优缺点

优点

一、预测结果是界于0和1之间的概率;

二、可以适用于连续性和类别性自变量;

三、容易使用和解释;

缺点

一、对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。​需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;

二、预测结果呈“S”型,因此从log(odds)向概率转化的过程是非线性的,在两端随着​log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感。 导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值。

2.2 SVM


SVM-SupportVectorMachine,支持向量机,,其含义是通过支持向量运算的分类器。思想:找到一个划分两类训练样本的超平面,并使间隔最大化。实际中,分为线性可分SVM,线性SVM和非线性SVM。

见下图,在一个二维环境中,其中点 R,S,G 点和其它靠近中间黑线的点可以看作为支持向 量,它们可以决定分类器,也就是黑线的具体参数。

核函数的作用:

核函数目的:把原坐标系里线性不可分的数据用 Kernel 投影到另一个空间,尽量使得数 据在新的空间里线性可分。

核函数方法的广泛应用,与其特点是分不开的:

1)核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数 n 对核函数矩阵无影响,因此,核函数方法可以有效处理高维输入。

2)无需知道非线性变换函数Φ的形式和参数.

3)核函数的形式和参数的变化会隐式地改变从输入空间到特征空间的映射,进而对特征空间的性质产生影响,最终改变各种核函数方法的性能。

4)核函数方法可以和不同的算法相结合,形成多种不同的基于核函数技术的方法,且这两部分的设计可以单独进行,并可以为不同的应用选择不同的核函数和算法。

(1)超平面:表达式


(2)函数间隔


(3)几何间隔


(4) 间隔最大化


SVM主要特点及缺点:

(1)非线性映射是 SVM 方法的理论基础,SVM 利用内积核函数代替向高维空间的非线性映射;

(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;

(3)支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。

(4)SVM 是 一种有坚实理论基础的新颖的小样本学习方法。它基本上不涉及概率测度及大数定律等,因此 不同于现有的统计方法。从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练 样本到预报样本的“转导推理”,大大简化了通常的分类和回归等问题。

(5)SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数 目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。

(6)少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、 “剔除”大量冗余样 本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。这种“鲁棒”性主要体现在:

①增、删非支持向量样本对模型没有影响;

②支持向量样本集具有一定的鲁棒性;

③有些成功的应用中,SVM 方法对核的选取不敏感

SVM 的两个不足:

(1)SVM 算法对大规模训练样本难以实施

由 于 SVM 是借助二次规划来求解支持向量,而求解二次规划将涉及 m 阶矩阵的计算(m 为样本的个数),当 m 数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。

(2) 用 SVM 解决多分类问题存在困难

经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解 决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一 对一组合模式和 SVM 决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服 SVM 固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗集理论结合, 形成一种优势互补的多类问题的组合分类器。

LR和SVM的区别

线性回归的应用场合大多是回归分析,一般不用在分类问题上,原因可以概括为以下两个:

1)回归模型是连续型模型,即预测出的值都是连续值(实数值),非离散值;

2)预测结果受样本噪声的影响比较大。

1、LR采用log损失,SVM采用合页损失。

2、LR对异常值敏感,SVM对异常值不敏感。

3、在训练集较小时,SVM较适用,而LR需要较多的样本。

4、LR模型找到的那个超平面,是尽量让所有点都远离他,而SVM寻找的那个超平面,是只让最靠近中间分割线的那些点尽量远离,即只用到那些支持向量的样本。

5、对非线性问题的处理方式不同,LR主要靠特征构造,必须组合交叉特征,特征离散化。SVM也可以这样,还可以通过kernel。

6、svm 更多的属于非参数模型,而logistic regression 是参数模型,本质不同。其区别就可以参考参数模型和非参模型的区别。

那怎么根据特征数量和样本量来选择SVM和LR模型呢?Andrew NG的课程中给出了以下建议:

如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM

如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel

如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况。(LR和不带核函数的SVM比较类似。)


3、深度学习中评价指标的解释,mAP、PR曲线

1、mAP

P,precision,即准确率。准确率表示预测样本中实际正样本数占所有正样本数的比例,计算公式为:

准确率 = 预测样本中实际正样本数 / 所有的正样本数

R,recall,即召回率。召回率表示预测样本中实际正样本数占所有预测的样本的比例,召回率 = 预测样本中实际正样本数 / 预测的样本数。

PR曲线

即 以precisionrecall作为纵、横轴坐标的二维曲线。通过选取不同阈值时对应的精度和召回率画出总体趋势,精度越高,召回越低,当召回达到1时,对应概率分数最低的正样本,这个时候正样本数量除以所有大于等于该阈值的样本数量就是最低的精度值。

一般来说,precisionrecall鱼与熊掌的关系,往往召回率越高,准确率越低。

AP值:

Average Precision,即 平均精确度

如何衡量一个模型的性能,单纯用 precision 和 recall 都不科学。于是人们想到,哎嘛为何不把 PR曲线下的面积 当做衡量尺度呢?于是就有了 AP值 这一概念。另外,P-R曲线围起来的面积就是AP值,通常来说一个越好的分类器,AP值越高。这里的 average,等于是对 precision 进行 取平均

mAP值:

Mean Average Precision,即平均AP值,是对多个验证集个体求平均AP值。

mAP 计算:mAP = 所有类别的平均精度求和除以所有类别。

公式


你可能感兴趣的:(【字节跳动计算机视觉算法面经】)