锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

面试 | 22道机器学习常见面试题目

时间:2022-09-29 01:30:00 熵指数传感器entropy

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达  本文转自|视觉算法分享22道常考的机器学习面试题,给正在准备面试的朋友们。 (1) 没有监督和监督算法的区别? 监督学习:学习具有概念标记(分类)的训练样本,尽可能标记(分类)预测训练样本集以外的数据。所有的标记(分类)都已知。因此,训练样本的歧义性较低。无监督学习:学习没有概念标记(分类)的训练样本,找到训练样本集中的结构性知识。所有的标记(分类)都是未知的。因此,训练样本的歧义性很高。聚类是典型的无监督学习。(2) SVM 推导,特点?多分类怎么处理?SVM它是最大的间隔分类器。几何间隔与样品的误分数之间存在关系。dual问题,引入kernel(线性kernel,多项式,高斯),最后soft margin。线性:简单,捷,但需要线性可分。多项式:比线性核拟合程度更强,知道具体维度,但高次容易出现值不稳定,参数选择较多。高斯:拟合能力最强,但要注意拟合问题。但只有一个参数需要调整。多分类问题,一般有三种方式将二分类推广到多分类,一对一,一对多,多对多。一对一:将N类两两配对,产生N(N-1)二分类任务,测试阶段的新样本同时交给所有分类器,最终结果通过投票产生。一对多:每次以一个例子为例,其他例子为例,训练N个分类器,如果只有一个分类器预测为类,相应的类别是最终结果,如果有多个,一般选择最可信的。从分类器的角度来看,一对一更多,但每次只使用两个类别,所以一对一的费用通常更小(只要训练的复杂性高于O(N)即可得到此结果)。多对多:多种类型作为正类,多种类型作为反类。必须特别设计正反类。(3) LR 推导,特点?LR优点是实现简单,计算量很小,速度快,存储资源低。缺点是模型简单,复杂情况下会出现欠拟合,只能处理2分类问题(一般二元可以转换为多元化或使用)softmax回归)。(4) 决策树的特点?基于树结构的决策树与人类面临问题时的处理机制非常相似。其特点是需要在分支过程中选择信息增益最大的属性,定义如下   在划分中我们希望决策树的分支节点所包含的样本属于同一类别,即节点的纯度越来越高。决策树计算量简单,解释性强,更适合处理缺乏属性值的样品,可以处理不相关的特征,但容易拟合,需要使用剪枝或随机森林。信息增益是熵减去条件熵,代表信息不确定性较小。信息增益越大,不确定性越大。因此,这一特征对分类非常重要。因为信息增益标准会偏好数量较多的属性,所以一般使用信息增益率(c4.5) 分母可视为属性本身的熵。值的可能性越大,属性熵就越大。Cart决策树使用基尼指数来选择划分属性,直观的来说,Gini(D)它反映了从数据集D中随机抽取两个样本的可能性,其类别标记不一致。因此,基尼指数越小,数据集D的纯度越高。一般来说,为了防止过度拟合,有预剪和后剪通常使用cross validation集剪枝。对于连续属性,处理连续值和缺失值a,将a在D根据划分点t,对上面出现的不同值进行排序D分为两个子集。一般以每个连续两个值的中点为划分点,然后根据信息增益选择最大值。与离散属性不同,如果当前节点划分属性为连续属性,则该属性也可作为其后代的划分属性。(5) SVM、LR、对比决策树?SVM可用于分类问题,也可用于回归问题,并可通过核函数快速计算,LR实现简单,训练速度很快,但模型相对简单,决策树容易拟合,需要剪枝等。从优化函数的角度来看,soft margin的SVM用的是hinge loss,而带L2正则化的LR对应的是cross entropy loss,另外adaboost对应的是exponential loss。所以LR但是SVM对outlier不敏感,因为只关心support vector,SVM特征可以映射到无限维空间,但是LR不,在一般的小数据中SVM比LR但是LR可以预测概率SVM不可以,SVM依靠数据测量,首先要做归一化,LR一般不需要,大量数据LR应用更广泛,LR向多分类扩展更直接,类别不平衡SVM一般用权重解决,即目标函数中对正负样本的代价函数不同,LR可采用一般方法,也可直接调整最终结果(通过阈值),一般小数据样本维度较高SVM效果更好。(6) GBDT 与随机森林不同?(6) GBDT 与随机森林不同?随机森林采用bagging的思想,bagging又称为bootstrap aggreagation,通过在训练样本集中放回采样获得多个采样集,基于每个采样集训练一个基础学习器,然后将基础学习器结合起来。随机森林在决策树上bagging随机属性选择是在决策树训练过程中引入的。在选择划分属性时,传统的决策树是在当前节点属性集中选择最佳属性,而随机森林是包含k属性的子集,然后选择最佳属性,k控制随机引入程度的参数。另外,GBDT训练是基于Boosting在每个迭代中,样本权重都是根据错误更新的,因此是串行生成的序列化方法,而随机森林是bagging因此,思想是并行化的方法。(7) 如何判断函数凸还是非凸?什么是凸优化?如果x,y属于某一集C,而且一切都属于c,如果一个函数的定义域是凸集,那么定义域是凸集,那么它就是凸函数。以上条件也可以推出更一般的结果, 若函数有二阶导数,则若函数二阶导数为正,或多元函数,Hessian矩阵半正定则为凸函数。(也可引用SVM,或者凸函数局部最优也是全局最优的证明,或者上述公式的预期Jessen(8) 如何解决类别不平衡的问题?在某些情况下,训练集中的样本分布非常不平衡,如肿瘤检测,样本的数量往往很少。从线性分类器的角度来看,在对新样本进行分类时,实际上是将预测的y值与y值进行比较,例如y>0.5时判为正例,否则判为反例。概率反映了正例可能性与反例可能性之比,阈值0.5恰好说明分类器认为正反的可能性是一样的。在样本不平衡的情况下,应判断分类器的预测概率高于观测概率,因此应以时间预测为例,称为策略rebalancing。然而,培训集并不一定是真实样本的整体无偏差采样。通常有三种方法,一种是对培训集的负样本进行取样,另一种是对例子进行升取样,第三种是直接基于原始培训集进行学习,然后在预测时改变阈值,称为阈值移动。需要注意的是,通过插入训练集的例子产生额外的例子,而反例分为不同的学习器。(9) 解释对偶的概念。一个优化问题可以从两个角度,一个是primal 问题,一个是dual 问题是对偶问题。一般来说,对偶问题给出了主要问题的最佳下限。当强对偶性建立时,对偶问题可以获得主要问题的最佳下限。对偶问题是凸优化问题,可以更好地解决,SVM中就是将primal问题转换为dual解决问题,从而进一步引入核函数的思想。(10) 如何选择特征?(10) 如何选择特征?特征选择是一个重要的数据预处理过程,主要有两个原因。首先,在实际任务中,我们会遇到维度灾难(样本密度非常稀疏)的问题。如果我们能选择一些特征,这个问题可以大大缓解。此外,消除无关特征将降低学习任务的难度,提高模型的泛化能力。冗余特征是指该特征中包含的信息可以从其他特征中推断出来,但这并不意味着该冗余特征不能工作。例如,可以在未拟合的情况下添加冗余特征,以增加简单模型的复杂性。理论上,如果没有任何领域知识作为先验假设,那么只能遍历所有可能的子集。但这显然是不可能的,因为需要遍历的数量是组合爆炸。一般来说,我们分为两个过程:子集搜索和子集评估。子集搜索一般采用贪婪算法,每轮添加或删除候选特征,成为前后搜索。或两者结合的双向搜索。子集评价一般采用信息增益,连续数据排序后往往选择中点作为分割点。常见的特征选择有过滤、包装和嵌入,filter,wrapper和embedding。Filter类型首先选择数据集的特征,然后训练学习器。Wrapper最终学习器的性能直接作为特征子集的评价标准,通常通过不断的候选子集进行使用cross-validation通常,计算量相对较大。嵌入式特征选择将特征选择过程与训练过程相结合,在训练过程中自动选择特征,如L1正则化更容易获得稀疏解,L2正则化更难过拟合。L可通过正则化PGD,近端梯度下降以求解。(11) 为什么会产生过拟合?预防或克服过拟合的方法有哪些?一般来说,在机器学习中,学习器在训练集中的误差称为训练误差或经验误差,新样本中的误差称为泛化误差。显然,我们想要一个小泛化误差的学习器,但我们事先不知道新样本,所以我们经常试图最小化经验误差。然而,当学习器学习良好的训练样本时,训练样本本身的特征可能被视为潜在样本的一般性质。这将导致泛化性能下降,称为过拟合。相反,欠拟合一般是指训练样本的一般性质学习不好,训练集中仍存在较大误差。欠拟合:一般来说,欠拟合更容易解决,比如增加模型的复杂性,增加决策树的分支,增加神经网络的训练次数等等。过拟合:一般认为过拟合是不可避免的,因为机器学习面临的问题通常是np-hard,但是一个有效的解决方案必须在多项式内工作,所以它会牺牲一些泛化能力。过拟合解决方案一般包括增加样本数量、降低样本维度、降低模型复杂性、使用先验知识(L1,L2正则化),利用cross-validation,early stopping等等。(12) 偏差和方差是什么?泛化误差可分解为偏差平方加方差加噪声。偏差测量了学习算法的期望预测和真实结果的偏差程度,描述了学习算法本身的拟合能力,方差测量了相同大小的学习性能变化,描述了数据干扰的影响,噪声表达了当前任务中任何学习算法都能实现的期望泛化误差,描述了问题本身的难度。偏差和方差一般称为bias和variance,一般训练程度越强,偏差越小,方差越大。泛化误差通常在中间有最小值。如果偏差大,方差小,一般称为欠拟合,偏差小,方差大称为过拟合。偏差:方差:(13) 如何训练神经网络的原理?神经网络自发展以来已经是一个非常庞大的学科,一般而言认为神经网络是由单个的神经元和不同神经元之间的连接构成,不够的结构构成不同的神经网络。最常见的神经网络一般称为多层前馈神经网络,除输入输出层外,中间隐藏层的数量称为神经网络的层数。BP算法是训练神经网络中最著名的算法,其本质是梯度下降和链法。(14) 介绍卷积神经网络和 DBN 有什么区别?卷积神经网络的特点是卷积核,CNN中使用了权共享,通过不断的上采用和卷积得到不同的特征表示,采样层又称为pooling亚采样基于局部相关原理,在减少数据量的同时保持有用的信息。DBN是深度信念网络,每一层都是一个RBM,整个网络可以视为RBM堆叠通常采用无监督逐层训练,从第一层开始,每层采用上一层输入进行训练,等各层训练结束之后再利用BP算法对整个网络进行训练。(15) 采用 EM 算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?用EM算法求解的模型一般有GMM或者协同过滤,k-means其实也属于EM。EM算法一定会收敛,但是可能收敛到局部最优。由于求和的项数将随着隐变量的数目指数上升,会给梯度计算带来麻烦。(16) 用 EM 算法推导解释 Kmeans。k-means算法是高斯混合聚类在混合成分方差相等,且每个样本仅指派一个混合成分时候的特例。注意k-means在运行之前需要进行归一化处理,不然可能会因为样本在某些维度上过大导致距离计算失效。k-means中每个样本所属的类就可以看成是一个隐变量,在E步中,我们固定每个类的中心,通过对每一个样本选择最近的类优化目标函数,在M步,重新更新每个类的中心点,该步骤可以通过对目标函数求导实现,最终可得新的类中心就是类中样本的均值。(17) 用过哪些聚类算法,解释密度聚类算法。k-means算法,聚类性能的度量一般分为两类,一类是聚类结果与某个参考模型比较(外部指标),另外是直接考察聚类结果(内部指标)。后者通常有DB指数和DI,DB指数是对每个类,找出类内平均距离/类间中心距离最大的类,然后计算上述值,并对所有的类求和,越小越好。类似k-means的算法仅在类中数据构成簇的情况下表现较好,密度聚类算法从样本密度的角度考察样本之间的可连接性,并基于可连接样本不断扩展聚类蔟得到最终结果。DBSCAN(density-based spatial clustering of applications with noise)是一种著名的密度聚类算法,基于一组邻域参数进行刻画,包括邻域,核心对象(邻域内至少包含个对象),密度直达(j由i密度直达,表示j在i的邻域内,且i是一个核心对象),密度可达(j由i密度可达,存在样本序列使得每一对都密度直达),密度相连(xi,xj存在k,i,j均有k可达),先找出样本中所有的核心对象,然后以任一核心对象作为出发点,找出由其密度可达的样本生成聚类蔟,直到所有核心对象被访问过为止。(18) 聚类算法中的距离度量有哪些?聚类算法中的距离度量一般用闽科夫斯基距离,在p取不同的值下对应不同的距离,例如p=1的时候对应曼哈顿距离,p=2的情况下对应欧式距离,p=inf的情况下变为切比雪夫距离,还有jaccard距离,幂距离(闽科夫斯基的更一般形式),余弦相似度,加权的距离,马氏距离(类似加权)作为距离度量需要满足非负性,同一性,对称性和直递性,闽科夫斯基在p>=1的时候满足读来那个性质,对于一些离散属性例如{飞机,火车,轮船}则不能直接在属性值上计算距离,这些称为无序属性,可以用VDM(Value Diffrence Metrix),属性u上两个离散值a,b之间的VDM距离定义为 其中表示在第i个簇中属性u上a的样本数,样本空间中不同属性的重要性不同的时候可以采用加权距离,一般如果认为所有属性重要性相同则要对特征进行归一化。一般来说距离需要的是相似性度量,距离越大,相似度越小,用于相似性度量的距离未必一定要满足距离度量的所有性质,例如直递性。比如人马和人,人马和马的距离较近,然后人和马的距离可能就很远。(19) 解释贝叶斯公式和朴素贝叶斯分类。贝叶斯公式:最小化分类错误的贝叶斯最优分类器等价于最大化后验概率。基于贝叶斯公式来估计后验概率的主要困难在于,条件概率是所有属性上的联合概率,难以从有限的训练样本直接估计得到。朴素贝叶斯分类器采用了属性条件独立性假设,对于已知的类别,假设所有属性相互独立。这样,朴素贝叶斯分类则定义为 如果有足够多的独立同分布样本,那么可以根据每个类中的样本数量直接估计出来。在离散情况下先验概率可以利用样本数量估计或者离散情况下根据假设的概率密度函数进行最大似然估计。朴素贝叶斯可以用于同时包含连续变量和离散变量的情况。如果直接基于出现的次数进行估计,会出现一项为0而乘积为0的情况,所以一般会用一些平滑的方法,例如拉普拉斯修正,         这样既可以保证概率的归一化,同时还能避免上述出现的现象。(20) 解释L1和L2正则化的作用。L1正则化是在代价函数后面加上,L2正则化是在代价函数后面增加了,两者都起到一定的过拟合作用,两者都对应一定的先验知识,L1对应拉普拉斯分布,L2对应高斯分布,L1偏向于参数稀疏性,L2偏向于参数分布较为稠(21) TF-IDF是什么?TF指Term frequecy,代表词频,IDF代表inverse document frequency,叫做逆文档频率,这个算法可以用来提取文档的关键词,首先一般认为在文章中出现次数较多的词是关键词,词频就代表了这一项,然而有些词是停用词,例如的,是,有这种大量出现的词,首先需要进行过滤,比如过滤之后再统计词频出现了中国,蜜蜂,养殖且三个词的词频几乎一致,但是中国这个词出现在其他文章的概率比其他两个词要高不少,因此我们应该认为后两个词更能表现文章的主题,IDF就代表了这样的信息,计算该值需要一个语料库,如果一个词在语料库中出现的概率越小,那么该词的IDF应该越大,一般来说TF计算公式为(某个词在文章中出现次数/文章的总词数),这样消除长文章中词出现次数多的影响,IDF计算公式为log(语料库文章总数/(包含该词的文章数)+1)。将两者乘乘起来就得到了词的TF-IDF。传统的TF-IDF对词出现的位置没有进行考虑,可以针对不同位置赋予不同的权重进行修正,注意这些修正之所以是有效的,正是因为人观测过了大量的信息,因此建议了一个先验估计,人将这个先验估计融合到了算法里面,所以使算法更加的有效(22) 文本中的余弦距离是什么,有哪些作用?余弦距离是两个向量的距离的一种度量方式,其值在-1~1之间,如果为1表示两个向量同相,0表示两个向量正交,-1表示两个向量反向。使用TF-IDF和余弦距离可以寻找内容相似的文章,例如首先用TF-IDF找出两篇文章的关键词,然后每个文章分别取出k个关键词(10-20个),统计这些关键词的词频,生成两篇文章的词频向量,然后用余弦距离计算其相似度。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章