机器学习基础总结

1、简要介绍SVM,如何调节惩罚因子、如何防止过拟合、手推SVM。

实际上只有“离群点”才有松弛变量与其对应。

松弛变量的值越大,离群点就越远。

惩罚因子C决定了你有多重视离群点带来的损失,当所有离群点的松弛变量的和一定时,C越大,对目标函数的损失也越大,此时就暗示着你非常不愿意放弃这些离群点。最极端的情况是你把C定为无限大,这样只要稍有一个点离群,目标函数的值马上变成无限大,马上让问题变成无解,这就退化成了硬间隔问题。

解决过拟合的办法是为SVM引入了松弛变量ξ(slack variable)。因为松弛变量能够容忍异常点的存在,我们的支持向量和超平面都不会受到它的影响。 
这样就达到一个平衡:既希望松弛变量能解决异常点问题,又不希望松弛变量太大导致分类效果太差。 

一对一:将N个类别两两配对,产生N(N-1)/2个二分类任务,测试阶段新样本同时交给所有的分类器,最终结果通过投票产生。第一个只回答“是第1类还是第2类”,第二个只回答“是第1类还是第3类”,第三个只回答“是第1类还是第4类”,

一对多:每一次将一个例作为正例,其他的作为反例,训练N个分类器,测试时如果只有一个分类器预测为正类,则对应类别为最终结果,如果有多个,则一般选择置信度最大的。会出现每一个分类器都说它是属于它那一类的,或者每一个分类器都说它不是它那一类的 。

2、简要介绍Tensorflow的计算图。

Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是一种有向图,Tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。

3、在k-means或kNN,我们常用欧氏距离来计算最近的邻居之间的距离,有时也用曼哈顿距离,请对比下这两种距离的差别。中

欧氏距离,是最常见的两点之间或多点之间的距离表示法。但也有明显的缺点。它将样品的不同属性(即各指标或各变量量纲)之间的差别等同看待。如点 x = (x1,...,xn) 和 y = (y1,...,yn) 之间的距离为:

曼哈顿距离只计算水平或垂直距离,有维度的限制。例如在平面上,坐标(x1, y1)的点P1与坐标(x2, y2)的点P2的曼哈顿距离为:

4、逻辑回归的认识,公式推导。

将所有的特征加权求和,然后利用sigmod函数进行非线性映射,其输出的结果就是样本属于某个类别的概率。

5、overfitting怎么解决?

regularization、dropout、batch normalizatin

早停止:如在训练中多次迭代后发现模型性能没有显著提高就停止训练

交叉验证、特征选择

如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的误差渐渐减小,但是在验证集上的误差却逐渐增大——因为训练出来的网络过拟合了训练集, 对训练集外的数据却泛化(generalization)性能不好。

正则化(Regularization)

L1正则化:目标函数中增加一个额外项,即所有权重w的绝对值之和, 使得更多w为零。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,考虑这些特征虽然可以降低训练误差,但在预测新的样本时,会干扰了对正确yi的预测。

L2正则化:目标函数中增加一个额外项,即所有权重w的平方之和,使得所有w尽可能趋向零但不为零

 

随机失活(dropout)

在训练的运行的时候,让神经元以超参数p的概率被激活(也就是1-p的概率被设置为0), 每个w因此随机参与, 使得任意w都不是不可或缺的。

逐层归一化(batch normalization)

这个方法给每层的输出都做一次归一化(网络上相当于加了一个线性变换层), 使得下一层的输入接近高斯分布. 这使得下一层的w在训练时避免了其输入以偏概全, 因而泛化效果非常好. 

 

6、 LR和SVM的联系与区别。

联系: 

1、LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题) 

2、两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。 
区别: 

 

1、LR是参数模型,SVM是非参数模型。 

 

2、从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。 

3、SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,减小了离分类平面较远的点的权重,提升了与分类最相关的数据点的权重。 

4、逻辑回归模型简单,大规模线性分类时比较方便。而SVM复杂一些,SVM转化为对偶问题后,分类只需要计算与几个支持向量的距离,这在进行复杂核函数计算时能够大大简化模型和计算。 

5、logistic 能做的 svm能做,svm能做的logistic有的做不了。

 

7、说说你知道的核函数

1)线性核是简单的核函数,它由内积<x,y>加上一个常数c构成。这个核存在的主要目的是使得“映射后空间中的问题”和“映射前空间中的问题”两者在形式上统一起来了(不用再分别写一个线性的,和一个非线性的)

2)多项式核

3)高斯核函数,如果选得很大的话,高次特征上的权重会衰减得很快;如果选得很小,则可以将任意的数据映射为线性可分——但是这可能导致过拟合问题。通过调控参数,高斯核实际上具有相当高的灵活性,也是使用最广泛的核函数之一。

8、LR与线性回归的区别与联系。

1)LR在线性回归的输出值上施加sigmoid函数将值收敛到0~1范围, 其目标函数也因此从差平方和函数(最小二乘)变为对数损失函数(似然函数)。 若要求多元分类,就要把sigmoid换成softmax了。

2)另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而逻辑回归的鲁棒性比线性回归要好。

9、(决策树、Random Forest、Booting、Adaboot)GBDT(Gradient Boosting Decision Tree)和XGBoost的区别是什么?

集成学习,(主要可以分为三大类,Boosting, Bagging, Stacking。Boosting的代表有AdaBoost (Adaptive Boosting), GBDT, xgboost。而Bagging的代表则是随机森林 (Random Forest)。Stacking 的话,好像还没有著名的代表,可以视其为一种集成的套路。

1)Boosting使用全部样本(可调权重)依次训练每个学习器(存在依赖关系,必须串行生成), 迭代训练后,将学习器进行加权集成。

 

  • AdaBoost (Adaptive Boosting),(自适应增强)的缩写
  • GBDT对函数残差近似值进行梯度下降, 用CART回归树做学习器, 集成为回归模型。
  • xgboost对函数残差近似值进行梯度下降, 迭代时利用了二阶梯度信息, 集成模型可用于分类也可回归. 由于它可在特征粒度上并行计算, 结构风险和工程实现都做了优化, 泛化,性能和扩展性都比GBDT要好

2)Bagging有放回地采样相同数量的样本,学习器可以并行训练生成(学习器间不存在强依赖关系), 再将其结果进行简单投票。

决策树属于最常用的学习器, 其学习过程是从根建立树, 也就是如何决策叶子节点分裂。ID3/C4.5决策树用信息熵计算最优分裂, CART决策树用基尼指数计算最优分裂, xgboost决策树使用二阶泰勒展开系数计算最优分裂.

 

1.损失函数是用泰勒展式二项逼近,而不是像gbdt里的就是一阶导数

 

2.对树的结构进行了正则化约束,防止模型过度复杂,降低了过拟合的可能性

3.节点分裂的方式不同,gbdt是用的gini系数,xgboost是经过优化推导后的

 

10、谈谈判别式模型和生成式模型

11、L1范数和L2范数的区别

 

  • L0范数:是向量中非零元素的个数。
  • L1范数: 是向量中各个元素绝对值之和。 

 

           

  • L2范数: 是向量中各个元素平方和的1/2次方。

              

 

  • Lp范数: 是向量中各个元素绝对值p次方和的1/p次方.

             

L1范数可以使权值稀疏,方便特征提取。 

L2范数可以防止过拟合,提升模型的泛化能力。

12、 L1和L2正则先验分别服从什么分布

L1是拉普拉斯分布,L2是高斯分布

有先验的好处就是可以在较小的数据集中有良好的泛化性能,从信息论的角度看,向系统加入了正确先验这个信息,肯定会提高系统的性能。

对参数引入拉普拉斯先验等价于 L1正则化。

对参数引入高斯正态先验分布相当于L2正则化

从上面两图可以看出, L2先验趋向零周围, L1先验趋向零本身。

13、CNN最成功的应用是在CV,那为什么NLP和Speech的很多问题也可以用CNN解出来?为什么AlphaGo里也用了CNN?这几个不相关的问题的相似性在哪里?CNN通过什么手段抓住了这个共性?

以上几个不相关问题的相关性在于,都存在局部与整体的关系,低层次的特征经过组合构成了高层次的特征,并且得到不同特征之间的空间相关性

CNN抓住此共性的手段主要有四个:局部感受野/共享权值/池化/多层次结构。

局部感受野使网络提取数据的局部特征;共享权值减少了网络的训练参数;池化操作与多层次结构一起,实现了数据的降维,将低层次的局部特征组合成为较高层次的特征,从而得到全局的信息。

14、说一下Adaboost,权值更新公式。当弱分类器是Gm时,每个样本的的权重是w1,w2...,请写出最终的决策公式。

15、当在浏览器中输入错误的单词后,搜索引擎会提示出正确的单词,这叫做‘拼写检查’,试用贝叶斯方法实现这一功能。

用户输入一个单词时,可能拼写正确,也可能拼写错误。如果把拼写正确的情况记做c(代表correct),拼写错误的情况记做w(代表wrong),那么"拼写检查"要做的事情就是:在发生w的情况下,试图推断出c。换言之:已知w,然后在若干个备选方案中,找出可能性最大的那个c,也就是求的最大值。
    根据贝叶斯定理,有:

因为其分母都是相同的,所以只需要最大化分子,即:

 

  • P(c)表示某个正确的词的出现"概率",它可以用"频率"代替。如果我们有一个足够大的文本库,那么这个文本库中每个单词的出现频率,就相当于它的发生概率。某个词的出现频率越高,P(c)就越大。比如在你输入一个错误的词“Julw”时,系统更倾向于去猜测你可能想输入的词是“July”,而不是“Jult”,因为“July”更常见。
  • P(w|c)表示在试图拼写c的情况下,出现拼写错误w的概率。为了简化问题,假定两个单词在字形上越接近,就有越可能拼错,P(w|c)就越大。举例来说,相差一个字母的拼法,就比相差两个字母的拼法,发生概率更高。你想拼写单词July,那么错误拼成Julw(相差一个字母)的可能性,就比拼成Jullw高(相差两个字母)。值得一提的是,一般把这种问题称为“编辑距离”,参见博客中的这篇文章。

    所以,我们比较所有拼写相近的词在文本库中的出现频率,再从中挑出出现频率最高的一个,即是用户最想输入的那个词。具体的计算过程及此方法的缺陷请参见这里

 

16、为什么朴素贝叶斯如此“朴素”?

朴素贝叶斯模型(Naive Bayesian Model)的朴素(Naive)的含义是"很简单很天真"地假设样本特征彼此独立. 这个假设现实中基本上不存在, 但特征相关性很小的实际情况还是很多的, 所以这个模型仍然能够工作得很好。

17、KNN中的K如何选取的?

如果K太小,模型就会变得复杂,容易发生过拟合。

如果K太大,模型将变得简单,这时与输入实例较远的点也会起预测作用。

如果K=N,则无论输入实例是什么,都将把它分类为训练样本中个数最多的类。

K一般取一个比较小的数值,通常采用交叉验证法来选取最优的值。

18、机器学习中,为何要经常对数据做归一化。

一般做机器学习应用的时候大部分时间是花费在特征处理上,其中很关键的一步就是对特征数据进行归一化,为什么要归一化呢?

两个变量的量纲不同 可能一个的数值远大于另一个那么他们同时作为变量的时候 可能会造成数值计算的问题,比如说求矩阵的逆可能很不精确 或者梯度下降法的收敛比较困难,还有如果需要计算欧式距离的话可能 量纲也需要调整

1)归一化后加快了梯度下降求最优解的速度;

2)归一化有可能提高精度。

 

1、 归一化为什么能提高梯度下降法求解最优解的速度?

     如下图所示,蓝色的圈圈图代表的是两个特征的等高线。其中左图两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是[1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;

      而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。

      因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。

               

 

2、 归一化有可能提高精度

     一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征的取值范围非常大,那么距离计算就主要取决于这个特征,有可能不符合实际情况(比如这时实际情况是值域范围小的特征更重要)。

 

3、 归一化与标准化

1)线性归一化函数

归一化是将原始数据进行线性变换,将其映射到[0,1]的范围。Xmax、Xmin分别为原始数据集的最大值和最小值。

比较适用在数值比较集中的情况。如果max和min不稳定,很容易使得归一化结果不稳定。实际使用中可以用经验常量值来替代max和min。归一化的缺点是,它会丢失一些信息,特别对于那些异常的点。

2)Z-score标准化

  数据的的标准化是将数据按比例缩放,使之落入一个小的特定区间,使得不同度量之间的特征具有可比性。经过处理后的数据符合标准正态分布,即均值为0,方差为1.

u为原始数据的均值,sigma是标准差。

 

1、在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。

 

2、在不涉及距离度量、协方差计算、数据不符合正态分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。

 

关于神经网络中归一化的方法可以参见:点击打开链接

 

19、哪些机器学习算法不需要做归一化处理?

树形模型不需要归一化,如决策树、RF。而像adaboost、svm、LR、KNN、KMeans之类的最优化问题就需要归一化。

    树形结构为什么不需要归一化原因:

 

    因为第一步都是按照特征值进行排序的,数值缩放不会影响分裂点位置。

    而对于线性模型,比如说LR,有两个特征,一个是(0,1)的,一个是(0,10000)的,这样运用梯度下降时候,损失等高线是一个椭圆的形状,就需要很多次迭代才能到达最优点;但是如果进行了归一化,那么等高线就是圆形的,那么SGD就会往原点迭代,需要的迭代次数较少。

    另外,注意树模型是不能进行梯度下降的,因为树模型是阶跃的,阶跃点是不可导的,并且求导没意义,所以树模型(回归树)寻找最优点是通过寻找最优分裂点完成的。

20、简要说说一个完整机器学习项目的流程

1 抽象成数学问题
明确问题是进行机器学习的第一步。机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的。
这里的抽象成数学问题,指的我们明确我们可以获得什么样的数据,目标是一个分类还是回归或者是聚类的问题,如果都不是的话,如果划归为其中的某类问题。

2 获取数据
数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。
数据要有代表性,否则必然会过拟合。
而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。
而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下。如果放不下就得考虑改进算法或者使用一些降维的技巧了。如果数据量实在太大,那就要考虑分布式了。

3 特征预处理与特征选择
良好的数据要能够提取出良好的特征才能真正发挥效力。
特征预处理、数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。
筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。

4 训练模型与调优
直到这一步才用到我们上面说的算法进行训练。现在很多算法都能够封装成黑盒供人使用。但是真正考验水平的是调整这些算法的(超)参数,使得结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。

5 模型诊断
如何确定模型调优的方向与思路呢?这就需要对模型进行诊断的技术。
过拟合、欠拟合 判断是模型诊断中至关重要的一步。常见的方法如交叉验证,绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。
误差分析 也是机器学习至关重要的步骤。通过观察误差样本,全面分析误差产生误差的原因:是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题……
诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代不断逼近的过程,需要不断地尝试, 进而达到最优状态。

6 模型融合
一般来说,模型融合后都能使得效果有一定提升。而且效果很好。
工程上,主要提升算法准确度的方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫。因为他们比较标准可复制,效果比较稳定。而直接调参的工作不会很多,毕竟大量数据训练起来太慢了,而且效果难以保证。

7 上线运行
这一部分内容主要跟工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。 不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。
这些工作流程主要是工程实践上总结出的一些经验。并不是每个项目都包含完整的一个流程。这里的部分只是一个指导性的说明,只有大家自己多实践,多积累项目经验,才会有自己更深刻的认识。
 

21、hash 冲突及解决办法

22、熵、联合熵、条件熵、相对熵、互信息的定义。

 

需要了解的概率必备知识有:

  1. 大写字母X表示随机变量,小写字母x表示随机变量X的某个具体的取值;
  2. P(X)表示随机变量X的概率分布,P(X,Y)表示随机变量X、Y的联合概率分布,P(Y|X)表示已知随机变量X的情况下随机变量Y的条件概率分布;
  3. p(X = x)表示随机变量X取某个具体值的概率,简记为p(x);
  4. p(X = x, Y = y) 表示联合概率,简记为p(x,y),p(Y = y|X = x)表示条件概率,简记为p(y|x),且有:p(x,y) = p(x) * p(y|x)。

 

熵:对随机变量不确定性的度量。

 

 

    联合熵:两个随机变量X,Y的联合分布,可以形成联合熵Joint Entropy,用H(X,Y)表示。
    条件熵:用H(Y|X)表示,用来衡量在已知随机变量X的条件下随机变量Y的不确定性。

    且有此式子成立:H(Y|X) = H(X,Y) – H(X),整个式子表示(X,Y)发生所包含的熵减去X单独发生包含的熵。至于怎么得来的请看推导:

 

 

 

简单解释下上面的推导过程。整个式子共6行,其中

  • 第二行推到第三行的依据是边缘分布p(x)等于联合分布p(x,y)的和;
  • 第三行推到第四行的依据是把公因子logp(x)乘进去,然后把x,y写在一起;
  • 第四行推到第五行的依据是:因为两个sigma都有p(x,y),故提取公因子p(x,y)放到外边,然后把里边的-(log p(x,y) - log p(x))写成- log (p(x,y)/p(x) ) ;
  • 第五行推到第六行的依据是:p(x,y) = p(x) * p(y|x),故p(x,y) / p(x) =  p(y|x)。

相对熵:又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度等。设p(x)、q(x)是X中取值的两个概率分布,则p对q的相对熵是:

 

 

 

 在一定程度上,相对熵可以度量两个随机变量的“距离”,且有D(p||q) ≠D(q||p)。另外,值得一提的是,D(p||q)是必然大于等于0的。

    互信息:两个随机变量X,Y的互信息定义为X,Y的联合分布和各自独立分布乘积的相对熵,用I(X,Y)表示:

 

且有I(X,Y)=D(P(X,Y) || P(X)P(Y))。下面,咱们来计算下H(Y)-I(X,Y)的结果,如下:

 

通过上面的计算过程,我们发现竟然有H(Y)-I(X,Y) = H(Y|X)。故通过条件熵的定义,有:H(Y|X) = H(X,Y) - H(X),而根据互信息定义展开得到H(Y|X) = H(Y) - I(X,Y),把前者跟后者结合起来,便有I(X,Y)= H(X) + H(Y) - H(X,Y),此结论被多数文献作为互信息的定义。

23、关于最大熵的相关知识

最大熵原理指出,当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。(不做主观假设这点很重要。)在这种情况下,概率分布最均匀,预测的风险最小。因为这时概率分布的信息熵最大,所以人们称这种模型叫“最大熵模型”。不要把所有的鸡蛋放在一个篮子里,其实就是最大熵原理的一个朴素的说法,因为当我们遇到不确定性时,就要保留各种可能性。点击打开链接

24、正则化

正则化可以防止模型训练过度复杂,防止模型过拟合。

在经验风险上加上一个正则化项(是模型参数向量的范数),如果模型越复杂,则结构风险也越大。

奥卡姆剃刀原理,能够很好的解释已知数据并且十分简单才是最好的模型。

25、简单说下有监督学习和无监督学习的区别。
有监督学习:对有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测。(LR,SVM,BP,RF,GBDT)
无监督学习:对未标记的样本进行训练学习,比发现这些样本中的结构知识。(KMeans)

26、方差、协方差、相关系数

1)方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。

2)协方差是来衡量两个变量是同向变化还是反向变化,以及同向或反向的程度如何。

A变大,B也变大,说明两个变量是同向变化的,这时协方差就是正的。协方差越大说明同向程度越高。

A变大,B也变小,说明两个变量是反向变化的,这时协方差就是负的。协方差越小说明反向程度越高。

如果两个变量是独立的,则其协方差就是0.

3)相关系数是一种特殊的协方差,介于-1到1之间。它剔除了两个变量变化幅度影响、只是单纯反应两个变量每单位变化时的相似程度

当他们的相关系数为1时,说明两个变量变化时的正向相似度最大,即,A变大一倍,B也变大一倍;A变小一倍,B也变小一倍。也即是完全正相关(以X、Y为横纵坐标轴,可以画出一条斜率为正数的直线,所以X、Y是线性关系的)。

随着他们相关系数减小,两个变量变化时的相似度也变小,当相关系数为0时,两个变量的变化过程没有任何相似度,也即两个变量无关。

当相关系数继续变小,小于0时,两个变量开始出现反向的相似度,随着相关系数继续变小,反向相似度会逐渐变大。

当相关系数为-1时,说明两个变量变化的反向相似度最大,即,A变大一倍,B变小一倍;A变小一倍,B变大一倍。也即是完全负相关(以X、Y为横纵坐标轴,可以画出一条斜率为负数的直线,所以X、Y也是线性关系的)。

点击打开链接

26、线性分类器与非线性分类器的区别以及优劣

 

线性分类器可解释性好,计算复杂度较低,不足之处是模型的拟合效果相对弱些。

非线性分类器效果拟合能力较强,不足之处是数据量不足容易过拟合、计算复杂度高、可解释性不好。

常见的线性分类器有:线性回归、LR、贝叶斯分类,单层感知机

常见的非线性分类器:决策树、RF、GBDT、多层感知机

 

SVM两种都有(看线性核还是高斯核)

 

27、数据的逻辑存储结构(如数组,队列,树等)对于软件开发具有十分重要的影响,试对你所了解的各种存储结构从运行速度、存储效率和适用场合等方面进行简要地分析。

 

 运行速度存储效率适用场合 
数组比较适合进行查找操作,还有像类似于矩阵等的操作 
链表较快较高比较适合增删改频繁操作,动态的分配内存 
队列较快较高比较适合进行任务类等的调度 
一般较高比较适合递归类程序的改写 
二叉树(树)较快一般一切具有层次关系的问题都可用树来描述 
一般一般除了像最小生成树、最短路径、拓扑排序等经典用途。还被用于像神经网络等人工智能领域等等。 

28、简单说说贝叶斯定

先复习一些概念:

条件概率(又称后验概率)就是事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A|B),读作“在B条件下A的概率”。

联合概率表示两个事件共同发生的概率。A与B的联合概率表示为或者

边缘概率(又称先验概率)是某个事件发生的概率。比如A的边缘概率表示为P(A),B的边缘概率表示为P(B)。

三者的关系:条件概率=联合概率/边缘概率

联合概率和边缘概率的关系:X的边缘概率为,把X,Y的联合概率中X固定,将Y的所有可能分布概率做加和或求积分。

 

接着,考虑一个问题:P(A|B)是在B发生的情况下A发生的可能性。

  1. 首先,事件B发生之前,我们对事件A的发生有一个基本的概率判断,称为A的先验概率,用P(A)表示;
  2. 其次,事件B发生之后,我们对事件A的发生概率重新评估,称为A的后验概率,用P(A|B)表示;

贝叶斯定理即为:已知结果求原因。

很容易推出以上公式:由1,2两式可以得到3式,将3式同时除以P(B)即可得到4式。

 

29 #include和#include“filename.h”有什么区别?计算机基础 编译原理 易
用 #include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。
用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 
 

30 某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A)   
   A. 关联规则发现       B. 聚类
   C. 分类               D. 自然语言处理
 

31 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C)  
   A. 频繁模式挖掘     B. 分类和预测     C. 数据预处理     D. 数据流挖掘
 

32 下面哪种不属于数据预处理的方法? (D)  
A变量代换   B离散化  C 聚集 D 估计遗漏值 
 

33 什么是KDD? (A)   
  A. 数据挖掘与知识发现    B. 领域知识发现
  C. 文档知识发现      D. 动态知识发现
 

34 当不知道数据所带标签时,可以使用哪种技术促使带同类标签的数据与带其他标签的数据相分离?(B)  
  A. 分类       B. 聚类      C. 关联分析      D. 隐马尔可夫链
 

35 建立一个模型,通过这个模型根据已知的变量值来预测其他某个变量值属于数据挖掘的哪一类任务?(C)  
  A. 根据内容检索    B. 建模描述
  C. 预测建模  D. 寻找模式和规则
 

36 以下哪种方法不属于特征选择的标准方法:(D)  
A嵌入  B 过滤    C  包装   D  抽样  

 

37、请用python编写函数find_string,从文本中搜索并打印内容,要求支持通配符星号和问号。

>>>find_string('hello\nworld\n','wor')
['wor']
>>>find_string('hello\nworld\n','l*d')
['ld']
>>>find_string('hello\nworld\n','o.')
['or']
答案

def find_string(str,pat):
    import re
    return re.findall(pat,str,re.I)

38、简单说下sigmoid激活函数

常用的非线性激活函数有sigmoid、tanh、relu等等,前两者sigmoid/tanh比较常见于全连接层,后者relu常见于卷积层。在神经网络中,上一层的信号(也就是wx+b算出的结果)在输入到下一层之前需要一次激活f = sigmoid(wx+b),因为并不是所有的上一层信号都可以激活下一层,如果所有的上一层信号都可以激活下一层,那么这一层相当于什么都没有做。因此我需要选择一些信号激活下一层的神经元。就是当activation function的输出结果是0,就代表抑制,是1,就代表激活。

sigmoid的函数表达式为:

sigmoid函数的功能是相当于把一个实数压缩至0到1之间。sigmod函数在定义域内处处可导,且两侧导数逐渐趋近于0,其导数为g(z)*(1-g(z)),可以节约计算时间。不足之处是sigmod函数在y趋于0或1时候会落入饱和区,导致向下传递的梯度会变得非常小,产生梯度消失现象。

39、什么是卷积。

对图像和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再相加)的操作就是所谓的『卷积』操作

举个具体的例子。比如下图中,图中左边部分是原始输入数据,图中中间部分是滤波器filter,图中右边是输出的新的二维数据。

 中间滤波器filter与数据矩阵做内积,其具体计算过程则是:4*0 + 0*0 + 0*0 + 0*0 + 0*1 + 0*1 + 0*0 + 0*1 + -4*2 = -8

40、什么是CNN的池化pool层。

 

池化,简言之,即取区域平均或最大

 

41、简述下什么是生成对抗网络。

 

GAN之所以是对抗的,是因为GAN的内部是竞争关系,一方叫generator(生成模型),它的主要工作是生成图片,并且尽量使得其看上去是来自于训练样本的。另一方是discriminator(判别模型),其目标是判断输入图片是否属于真实训练样本

直观的解释:

    假设有两个模型,一个是生成模型G,一个是判别模型D,判别模型的任务就是判断一个实例是真的还是由模型生成的,生成模型的任务是生成一个实例来骗过判别模型,两个模型相互对抗,发展下去就会达到一个平衡:生成模型生成的实例与真实的没有区别,判别模型无法区分实例是真实的还是模型生成的。

    以赝品制造商为例,赝品制造商(生成模型)制作出假的毕加索画来欺骗行家(判别模型),赝品制造商一直提升他的高仿水平来欺骗行家,行家也一直学习真的、假的毕加索画来提升自己的辨识能力,两个人一直博弈,最后赝品制造商高仿的毕加索画达到了以假乱真的水平,行家最后也很难区分正品和赝品了。

42、说说梯度下降

下面是一个典型的机器学习的过程,首先给出一个输入数据,我们的算法会通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也被称为构建一个模型

用X1,X2..Xn 代表特征里的分量,比如x1=房间的面积,x2=房间的卧室数量等,我们可以做出一个估计函数:

θ是衡量每个因素的权重。

令X0 = 1,就可以用向量的方式来表示了:

然后构建一个损失函数J来衡量h函数的预测能力,把对x(i)的估计值与真实值y(i)差的平方和作为损失函数。前面乘上的1/2是为了在求导的时候,这个系数就不见了

 

使得J(θ)取得最小值有很多方法,其中有最小二乘法(min square),是一种完全是数学描述的方法,另外一种就是梯度下降法。

    梯度下降法的算法流程如下:

    1)首先对θ赋初值,这个值可以是随机的,也可以是一个全零的向量。

    2)迭代更新θ的值,使得J(θ)按梯度下降的方向进行减少。

 

 

 

这是一个表示参数θ与误差函数J(θ)的关系图,红色的部分是表示J(θ)有着比较高的取值,深蓝色部分代表有着较低的取值。θ0,θ1表示θ向量的两个维度。

    假设随机给θ的初值是在图上的十字点。

    然后将θ按照梯度下降的方向进行调整,就会使得J(θ)往更低的方向进行变化,如下图所示,算法的结束将是在θ下降到无法继续下降为止。

此外不同的初始点可能导致梯度下降的终点是一个局部最小值。

 

下面描述一下梯度减少的过程,对于我们的函数J(θ)求偏导:

   image

下面是更新的过程,也就是θi会向着梯度最小的方向进行减少。θi表示更新之前的值,后面的部分表示按梯度方向减少的量,α表示步长,也就是每次按照梯度减少的方向变化多少。

image     

    用更简单的数学语言进行描述步骤2)是这样的:

   image

43、梯度下降法找到的一定是下降最快的方向么?

 

梯度下降法并不是下降最快的方向,梯度下降法是用当前位置负梯度方向作为搜索方向,最终不一定得到全局最优解,有可能得到的是局部最优解,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。。梯度下降法越接近目标值,步长越小,收敛速度明显变慢,所以其需要很多次的迭代。有两种改进版本:分别为随机梯度下降法和批量梯度下降法。

 

44、随机梯度下降

 

普通的梯度下降算法在更新权重时要遍历整个数据集,是一种批处理方法。这样训练数据特别忙庞大时,可能出现如下问题:

1)收敛过程可能非常慢;

2)如果误差曲面上有多个局部极小值,那么不能保证这个过程会找到全局最小值。

 

随机梯度下降的思想是利用单独的每个训练样本来更新权值,

这里做一个对比

设代价函数为

 

批量梯度下降:

 

 

参数更新为:

         

i是样本编号下标,j是样本维数下标,m为样例数目,n为特征数目。所以更新一个θj需要遍历整个样本集

随机梯度下降:

参数更新为:

        

i是样本编号下标,j是样本维数下标,m为样例数目,n为特征数目。所以更新一个θj只需要一个样本就可以。

45、牛顿法和梯度下降法有什么不同。

牛顿法又被称为是"切线法",最大的特点就在于它的收敛速度很快。

具体步骤:

首先,选择一个接近函数 f (x)零点的 x0,计算相应的 f (x0) 和切线斜率f  ' (x0)(这里f ' 表示函数 f  的导数)。然后计算穿过点(x0,  f  (x0)) 并且斜率为f '(x0)的直线和 x 轴的交点的x坐标,也就是求如下方程的解:

我们将新求得的点的 x 坐标命名为x1,通常x1会比x0更接近方程f  (x) = 0的解。因此我们现在可以利用x1开始下一轮迭代。迭代公式可化简为如下所示:

(二维情况)如下图所示:

关于牛顿法和梯度下降法的效率对比:

a)从收敛速度上看 ,牛顿法是二阶收敛,梯度下降是一阶收敛,牛顿法收敛速度更快。但牛顿法仍然是局部算法,梯度法仅考虑方向,牛顿法不仅考虑了方向还兼顾了步长的大小,其对步长的估计使用的是二阶逼近。

b)根据wiki上的解释,从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。

注:红色的牛顿法的迭代路径,绿色的是梯度下降法的迭代路径。

牛顿法的优缺点总结:

优点:二阶收敛,收敛速度快;

缺点:牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。

46、说说共轭梯度法?
    
   共轭梯度法是介于梯度下降法(最速下降法)与牛顿法之间的一个方法,它仅需利用一阶导数信息,克服了梯度下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hessian矩阵并求逆的缺点。共轭梯度法不仅是解决大型线性/非线性问题最有用的方法之一。其优点是所需存储量小,具有逐步收敛性,稳定性高,而且不需要任何外来参数。

    下图为共轭梯度法和梯度下降法搜索最优解的路径对比示意图:

 注:绿色为梯度下降法,红色代表共轭梯度法

 

47、最小二乘法

 

使观测值与真实值的差的平方和达到最小以寻求估计值的方法

48、说说Python到底是什么样的语言?

    Python运行前不需要编译,跑起来会比编译型语言慢。但是Python允许使用C扩展写程序

   Python是面向对象语言,所有允许定义类并且可以继承和组合。Python没有访问访问标识如在C++中的public、private

    Python能简化工作,使得程序员不用太关心底层的实现。

49、Python是如何进行内存管理的?

 

1).对象的引用计数机制

Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。

    引用计数增加的情况:

一个对象分配一个新名称,将其放入一个容器中(如列表、元组或字典)

    引用计数减少的情况:

使用del语句对对象别名显示的销毁

2).垃圾回收

当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。

3).内存池机制

Python引用了一个内存池(memory pool)机制,即Pymalloc机制(malloc:n.分配内存),用于管理对小块内存的申请和释放。

50、请写出一段Python代码实现删除一个list里面的重复元素

 

1,使用set函数,set(list)

2,使用字典函数,

>>>a=[1,2,4,2,4,5,6,5,7,8,9,0]

>>> b={}

>>>b=b.fromkeys(a)    #利用a中的元素作为键创建字典

>>>c=list(b.keys())

>>> c

3、

这个倒着比较,有两个4,4相同的情况下,删除了前一个4后,后面的一个又直接补上去了,所以a[i]还是指的4,继续向前一次比较。

51、Python里面如何生成随机数?

答:random模块

随机整数:random.randint(a,b):返回随机整数x,a<=x<=b

random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值。

随机实数:random.random( ):返回0到1之间的浮点数

random.uniform(a,b):返回指定范围内的浮点数。

52、说说常见的损失函数?

对于给定的输入X,由f(X)给出相应的输出Y,这个输出的预测值f(X)与真实值Y可能存在误差,用一个损失函数来度量预测错误的程度。损失函数记为L(Y, f(X))。

 

53、在分类问题中,我们经常会遇到正负样本数据量不等的情况,比如正样本为10w条数据,负样本只有1w条数据,以下最合适的处理方法是(  )? 

 

A 将负样本重复10次,生成10w样本量,打乱顺序参与分类
B 直接进行分类,可以最大限度利用数据
C 从10w正样本中随机抽取1w参与分类

 

D 将负样本每个权重设置为10,正样本权重为1,参与训练过程

准确的说,其实选项中的这些方法各有优缺点,需要具体问题具体分析,有篇文章对各种方法的优缺点进行了分析,讲的不错 感兴趣的同学可以参考一下:https://www.analyticsvidhya.com/blog/2017/03/imbalanced-classification-problem/。

54、数据不平衡问题

1、数据采样使各类别数据比例维持在一个合理的比例。可分为上采样下采样

 

(1)上采样上采样(Oversampling)把小众类的数据进行复制,但是基于这样采样方法训练出来的模型容易出现过拟合,可以在每次生成新数据的时候加入轻微随机扰动。

(2)下采样下采样(Undersampling)从大众类中剔除部分数据,但是这种采样方法容易丢失关键数据,可以通过多次随机下采样来解决(有放回采样,这样产生的训练集相互独立)。

2、数据合成利用已有样本的特征相似性生成更多新的样本,主要应用在小数据场景下,如医学图像分析。

 

3、加权的方法是通过对不同类别分类错误后设置不同的代价,使得不同类别的加权损失值近似相等

4、当正负样本比例严重失衡时,考虑用一分类(One-class Classification)来解决。最常见的一分类方法是One-class SVM,其基本思路如下:利用高斯核函数将样本空间映射到核空间,在核空间中找到一个能够包含所有数据的一个球体,如果测试数据位于这个高维球体之中,则将其归为多数类,否则就归为少数类

One Class SVM 是指你的训练数据只有一类正(或者负)样本的数据, 而没有另外的一类。在这时,你需要学习的实际上你训练数据的边界。而这时不能使用最大化软边缘了,因为你没有两类的数据。 所以呢,在这边文章中,“Estimating the support of a high-dimensional distribution”, Schölkopf 假设最好的边缘要远离特征空间中的原点。

左边是在原始空间中的边界,可以看到有很多的边界都符合要求,但是比较靠谱的是找一个比较紧的边界(红色的)。这个目标转换到特征空间就是找一个离原点比较远的边界,同样是红色的直线。当然这些约束条件都是人为加上去的,你可以按照你自己的需要采取相应的约束条件。比如让你data 的中心离原点最远。

总结

在样本数据量较大,且正负样本比例相差并不悬殊(两个数量级以内)的情况下,可以考虑使用采样加权的方法解决;在正负样本数据都非常小时,可以考虑用数据合成的方法解决;在正负样本数据比例相差悬殊的情况下,可以考虑用一分类的方法解决。

55、在深度学习中,涉及到大量的矩阵相乘,现在需要计算三个稠密矩阵A,B,C的乘积ABC,假设三个矩阵的尺寸分别为m*n,n*p,p*q,且m<n<p<q,以下计算顺序效率最高的是()?

A.(AB)C
B.AC(B)
C.A(BC)
D.所以效率都相同
正确答案:A
m*n*p<m*n*q,m*p*q< n*p*q, 所以 (AB)C 最小

 

56、Nave Bayes是一种特殊的Bayes分类器,特征变量是X,类别标签是C,它的一个假定是()。

A.各类别的先验概率P(C)是相等的

B.以0为均值,sqr(2)/2为标准差的正态分布

C.特征变量X的各个维度是类别条件独立随机变量

D.P(X|C)是高斯分布

正确答案:C
朴素贝叶斯的基本假设就是每个变量相互独立。

 

57、关于支持向量机SVM,下列说法错误的是() 

A.L2正则项,作用是最大化分类间隔,使得分类器拥有更强的泛化能力

B.Hinge 损失函数,作用是最小化经验分类错误

C.分类间隔为1/||w||,||w||代表向量的模

D.当参数C越小时,分类间隔越大,分类错误越多,趋于欠学习

正确答案:C

A正确。考虑加入正则化项的原因:想象一个完美的数据集,y>1是正类,y<-1是负类,决策面y=0,加入一个y=-30的正类噪声样本,那么决策面将会变“歪”很多,分类间隔变小,泛化能力减小。加入正则项之后,对噪声样本的容错能力增强,前面提到的例子里面,决策面就会没那么“歪”了,使得分类间隔变大,提高了泛化能力。

B正确。 

C错误。间隔应该是2/||w||才对,后半句应该没错,向量的模通常指的就是其二范数。 

D正确。考虑软间隔最大化的时候,C对优化问题的影响就在于把a的范围从[0,+inf]限制到了[0,C]。C越大,对错误分类(离群点)的惩罚就越大,分类其会竭尽全力在训练数据上少犯错误,容易造成过拟合。   当C过小时,对错误分类的惩罚变小,分类器就不太在乎分类错误,于是分类性能就变差(欠拟合)。

C越小,那么a就会越小,令目标函数拉格朗日函数导数为0可以求出,a变小使得w变小,因此间隔2/||w||变大

 

58、假定某同学使用Naive Bayesian(NB)分类模型时,不小心将训练数据的两个维度搞重复了,那么关于NB的说法中正确的是?

A.这个被重复的特征在模型中的决定作用会被加强
B.模型效果相比无重复特征的情况下精确度会降低
C.如果所有特征都被重复一遍,得到的模型预测结果相对于不重复的情况下的模型预测结果一样。
D.当两列特征高度相关时,无法用两列特征相同时所得到的结论来分析问题
E.NB可以用来做最小二乘回归
F.以上说法都不正确
正确答案:BD

NB的核心在于它假设向量的所有分量之间是独立的。在贝叶斯理论中,都有条件独立性假设:假设所有特征之间相互独立,这样才能将联合概率拆分

 

 

59、以下哪些方法不可以直接来对文本分类?机器学习 ML模型 易
A、Kmeans 
B、决策树 
C、支持向量机 

 

D、KNN

正确答案: A

Kmeans是聚类方法,典型的无监督学习方法。分类是监督学习方法,BCD都是常见的分类方法。

 

 

 

60、已知一组数据的协方差矩阵P,下面关于主分量说法错误的是()

A、主分量分析的最佳准则是对一组数据进行按一组正交基分解, 在只取相同数量分量的条件下,以均方误差计算截尾误差最小 
B、在经主分量分解后,协方差矩阵成为对角矩阵 
C、主分量分析就是K-L变换 
D、主分量是通过求协方差矩阵的特征值得到
正确答案: C
K-L变换与PCA变换是不同的概念,PCA的变换矩阵是协方差矩阵,K-L变换的变换矩阵可以有很多种(二阶矩阵、协方差矩阵、总类内离散度矩阵等等)。当K-L变换矩阵为协方差矩阵时,等同于PCA。

61、kmeans的复杂度?

 

k均值算法的计算过程非常直观:

1、从所有数据中随机取k个元素,作为k个簇的中心。

2、分别计算剩下的元素到k个簇中心的相似度,将这些元素分别划归到相似度最高的簇。

3、重新计算k个簇的中心,(计算方法是取簇中所有元素各自维度的算术平均数)。

4、将全部元素按照新的中心重新聚类。

5、重复第4步,直到聚类结果不再变化。

时间复杂度:O(T*k*m*n)

空间复杂度:O((m+k)*n)

T:第5步中迭代的次数,k:簇的数目,m:每个元素的特征的个数,n:元素个数

62、关于logit 回归和SVM 不正确的是(A)

A. Logit回归本质上是一种根据样本对权值进行极大似然估计的方法,而后验概率正比于先验概率和似然函数的乘积。logit仅仅是最大化似然函数,并没有最大化后验概率,更谈不上最小化后验概率。

B. Logit回归的输出就是样本属于正类别的几率,可以计算出概率。

C. SVM的目标是找到使得训练数据尽可能分开且分类间隔最大的超平面,应该属于结构风险最小化。

D. SVM可以通过正则化系数控制模型的复杂度,避免过拟合。

正确答案:A错误

Logit回归目标函数是最小化后验概率,Logit回归可以用于预测事件发生概率的大小;SVM目标是结构风险最小化,SVM可以有效避免模型过拟合。

63、输入图片大小为200×200,依次经过一层卷积(kernel size 5×5,padding 1,stride 2),pooling(kernel size 3×3,padding 0,stride 1),又一层卷积(kernel size 3×3,padding 1,stride 1)之后,输出特征图大小为()

 

A 95   B 96   C 97   D 98   E 99   F 100

正确答案:C

计算尺寸不被整除只在GoogLeNet中遇到过。卷积向下取整,池化向上取整。

输出尺寸=(输入尺寸-filter尺寸+2*padding)/stride+1

 

本题 (200-5+2*1)/2+1 为99.5,取99
(99-3)/1+1 为97
(97-3+2*1)/1+1 为97

 

研究过网络的话看到stride为1的时候,当kernel为 3 padding为1或者kernel为5 padding为2 一看就是卷积前后尺寸不变。

padding指对input的图像边界补充一定数量的像素,目的是为了保持边界信息,如果不加padding层的话,最边缘的像素点信息只会卷积核被扫描到一次,但是图像中间的像素点会被扫描到很多遍,那么就会在一定程度上降低边界信息的参考程度,但是在加了padding之后,在实际处理过程中就会从新的边界进行扫描,就从一定程度上解决了这些问题。还有一点就是可以利用padding层来对输入尺寸有差异图片进行补齐,是的输入图片尺寸一致;kernel_size指卷积核的大小;stride指步长,即卷积核或者pooling窗口的滑动位移。

padding的示例图。

(公式中的+1放在括号里面对于此题来说也OK)

 

64、影响聚类算法结果的主要因素有(B、C、D ) 机器学习 ML模型 易

A.已知类别的样本质量
B.分类准则
C.特征选取
D.模式相似性测度

答案D,已知类别的样本质量,说的是有监督的训练吧,因为只有有监督的训练才要知道样本的类别,然后作为监督训练 的训练集,样本的质量自然是重要的。

答案C,分类准则,大约说的是度量方式,例如KMeans 可以用欧式距离啊,也可用其他的距离,这也是分类准则。

 

65、模式识别中,马式距离较之于欧式距离的优点是(C、D)

 

A.平移不变性;
B.旋转不变性;
C尺度不变性;
D.考虑了模式的分布

 

马氏距离是用来度量一个样本点P与数据分布为D的集合的距离。假设样本点为x,数据集分布的均值为u,协方差矩阵为S。则样本点与数据集合的马氏距离为:

马氏距离也可以衡量两个来自同一分布的样本x和y的相似性:

详细的请看:点击打开链接

66、欧式距离具有(A、B),马氏距离具有(A、B、C、D)

A、平移不变性              B、旋转不变性

C、尺度不变性              D、不受量纲的影响

 

67、影响基本K-均值算法的主要因素有(ABD)

 

A.样本输入顺序;
B.模式相似性测度;
C.聚类准则;

 

D.初始类中心的选取

 

68、统计模式分类问题中,当先验概率未知时,可以使用(AD) 机器学习 ML模型 易

A. 最小最大损失准则;

B. 最小误判概率准则;

C. 最小损失准则; 

D. N-P判决

 

 

A. 考虑p(wi)变化的条件下,是风险最小。最大最小损失规则主要就是使用解决最小损失规则时先验概率未知或难以计算的问题的。

B. 最小误判概率准则, 就是判断p(w1|x)和p(w2|x)哪个大,x为特征向量,w1和w2为两分类,根据贝叶斯公式,需要用到先验知识

C. 最小损失准则,在B的基础之上,还要求出p(w1|x)和p(w2|x)的期望损失,因为B需要先验概率,所以C也需要先验概率

D. N-P判决,即限定一类错误率条件下使另一类错误率为最小的两类别决策,即在一类错误率固定的条件下,求另一类错误率的极小值的问题,直接计算p(x|w1)和p(x|w2)的比值,不需要用到贝叶斯公式

 

在贝叶斯决策中,对于先验概率p(y),分为已知和未知两种情况。 
1. p(y)已知,直接使用贝叶斯公式求后验概率即可; 
2. p(y)未知,可以使用聂曼-皮尔逊决策(N-P决策)来计算决策面。 

 

69、你有哪些deep learning(rnn、cnn)调参的经验?

 

点击打开链接

70、解释对偶的概念。
    一个优化问题可以从两个角度进行考察,一个是原始问题,一个是对偶问题,一般情况下对偶问题可以给出主问题最优值的下界,在对偶问题是凸优化问题,可以进行较好的求解,SVM中就是将原始问题转换为对偶问题进行求解,从而进一步引入核函数的思想。

71、何进行特征选择?机器学习 ML基础 中
特征选择是一个重要的数据预处理过程,主要有两个原因:一是减少特征数量、降维,使模型泛化能力更强,减少过拟合;二是增强对特征和特征值之间的理解
常见的特征选择方式:

1. 去除方差较小的特征。如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。

2. 正则化。1正则化能够生成稀疏的模型。L2正则化的表现更加稳定,由于有用的特征往往对应系数非零。

3. 随机森林,对于分类问题,通常采用基尼系数或者信息增益,对于回归问题,通常采用的是方差或者最小二乘拟合。一般不需要feature engineering、调参等繁琐的步骤。它的两个主要问题,1是重要的特征有可能得分很低(关联特征问题),2是这种方法对特征变量类别多的特征越有利(偏向问题)。

4. 稳定性选择。是一种基于二次抽样和选择算法相结合较新的方法,选择算法可以是回归、SVM或其他类似的方法。它的主要思想是在不同的数据子集和特征子集上运行特征选择算法,不断的重复,最终汇总特征选择结果,比如可以统计某个特征被认为是重要特征的频率(被选为重要特征的次数除以它所在的子集被测试的次数)。理想情况下,重要特征的得分会接近100%。稍微弱一点的特征得分会是非0的数,而最无用的特征得分将会接近于0。

 

72、数据预处理。

1. 缺失值,填充缺失值:
i. 离散:None,
ii. 连续:均值。

iii. 缺失值太多,则直接去除该列

 

2. 连续值:离散化。有的模型(如决策树)需要离散值
3. 对定量特征二值化。核心在于设定一个阈值,大于阈值的赋值为1,小于等于阈值的赋值为0。如图像操作

 

4. 皮尔逊相关系数,去除高度相关的列

 

73、对比Sigmoid、Tanh、ReLu这三个激活函数

sigmoid函数将输出映射到0-1范围之间,可以被看做是概率。

 

但sigmoid函数有如下几个缺点:

正向计算包含指数,反向传播的导数也包含指数计算和除法运算,因而计算复杂度很高。
输出的均值非0。这样使得网络容易发生梯度消失或梯度爆炸。这也是batch normalization要解决的问题。


假如sigmoid函数为f(x),那么f'(x)=f(x)(1-f(x)),因为f(x)输出在0-1之间,那么f'(x)恒大于0。 这就导致全部的梯度的正负号都取决于损失函数上的梯度。这样容易导致训练不稳定,参数一荣俱荣一损俱损。
同样的,f'(x)=f(x)(1-f(x)),因为f(x)输出在0-1之间,那么f'(x)输出也在0-1之间,当层次比较深时,底层的导数就是很多在0-1之间的数相乘,从而导致了梯度消失问题。


对于tanh来说,同sigmoid类似,但是输出值在-1到1之间,均值为0,是其相对于sigmoid的提升。但是因为输出在-1,1之间,因而输出不能被看做是概率。

对于ReLU来说,相对于sigmoid和tanh来说,有如下优点:
计算量下,没有指数和除法运算。
不会饱和,因为在x>0的情况下,导数恒等于1
收敛速度快,在实践中可以得知,它的收敛速度是sigmoid的6倍。
Relu会使一部分神经元的输出为0,这样就使得网络具有稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生
但是Relu的缺点在于,
如果有一个特别大的导数经过神经单元使得输入变得小于0,这样会使得这个单元永远得不到参数更新,因为输入小于0时导数也是0. 这就形成了很多dead cell。

为了解决ReLU的dead cell的情况,发明了Leaky Relu, 即在输入小于0时不让输出为0,而是乘以一个较小的系数,从而保证有导数存在。同样的目的,还有一个ELU

 

74、 为什么引入非线性激励函数?

 

 

如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了。

第二,非线性变换是深度学习有效的原因之一。原因在于非线性相当于对空间进行变换,变换完成后相当于对问题空间进行简化,原来线性不可解的问题现在变得可以解了。

下图可以很形象的解释这个问题,左图用一根线是无法划分的。经过一系列变换后,就变成线性可解的问题了。


75、衡量分类器的好坏?

TP-将正类预测为正类的数目

FN-将正类预测为负类的数目

FP-将负类预测为正类的数目

TN-将负类预测为负类的数目

精确率:

正确的正类数目/被分类为正类的数目

召回率:

正确的正类数目/原来所有的正类数目

F1值:

ROC曲线:ROC空间是一个以假阳性率(FPR)为X轴,真阳性率(TPR)为Y轴的二维坐标系所代表的平面。其中真阳率TPR = recall, 伪阳率FPR = FP / N。点击打开链接

ROC曲线所覆盖的面积称为AUC(Area Under Curve),可以更直观的判断学习器的性能,AUC越大则性能越好。

则AUC的物理意义为,任取一对(正、负)样本,正样本的score大于负样本的score的概率。

76、什么是梯度消失和梯度爆炸?

层数比较多的神经网络模型在训练时也是会出现一些问题的,其中就包括梯度消失问题(gradient vanishing problem)和梯度爆炸问题(gradient exploding problem)。梯度消失问题和梯度爆炸问题一般随着网络层数的增加会变得越来越明显。

例如,对于下图所示的含有3个隐藏层的神经网络,梯度消失问题发生时,接近于输出层的hidden layer 3等的权值更新相对正常,但前面的hidden layer 1的权值更新会变得很慢,导致前面的层权值几乎不变,仍接近于初始化的权值,这就导致hidden layer 1相当于只是一个映射层,对所有的输入做了一个同一映射,这是此深层网络的学习就等价于只有后几层的浅层网络的学习了。

以下图的反向传播为例(假设每一层只有一个神经元且对于每一层y_i=\sigma\left(z_i\right)=\sigma\left(w_ix_i+b_i\right),其中\sigma为sigmoid函数)

可以推导出

 

而sigmoid的导数\sigma'\left(x\right)如下图

 

可见,\sigma'\left(x\right)的最大值为\frac{1}{4},而我们初始化的网络权值|w|通常都小于1,因此|\sigma'\left(z\right)w|\leq\frac{1}{4},因此对于上面的链式求导,层数越多,求导结果\frac{\partial C}{\partial b_1}越小,因而导致梯度消失的情况出现。

这样,梯度爆炸问题的出现原因就显而易见了,即|\sigma'\left(z\right)w|>1,也就是w比较大的情况。但对于使用sigmoid激活函数来说,这种情况比较少。因为\sigma'\left(z\right)的大小也与w有关(z=wx+b),除非该层的输入值x在一直一个比较小的范围内。

其实梯度爆炸和梯度消失问题都是因为网络太深,网络权值更新不稳定造成的,本质上是因为梯度反向传播中的连乘效应。对于更普遍的梯度消失问题,可以考虑用ReLU激活函数取代sigmoid激活函数。另外,LSTM的结构设计也可以改善RNN中的梯度消失问题。

 

77、如何解决梯度消失和梯度膨胀?

 

(1)梯度消失:
根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都小于1的话,那么即使这个结果是0.99,在经过足够多层传播之后,误差对输入层的偏导会趋于0
可以采用ReLU激活函数有效的解决梯度消失的情况,也可以用Batch Normalization解决这个问题。关于深度学习中 Batch Normalization为什么效果好?参见:https://www.zhihu.com/question/38102762
(2)梯度膨胀
根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都大于1的话,在经过足够多层传播之后,误差对输入层的偏导会趋于无穷大
可以通过激活函数来解决,或用Batch Normalization解决这个问题。

78、神经网络中激活函数的真正意义?一个激活函数需要具有哪些必要的属性?还有哪些属性是好的属性但不必要的?深度学习 DL基础 中
 

1. 非线性:即导数不是常数。保证多层网络不退化成单层线性网络。

2. 几乎处处可微:可微性保证了在优化中梯度的可计算性。传统的激活函数如sigmoid等满足处处可微。对于分段线性函数比如ReLU,只满足几乎处处可微(即仅在有限个点处不可微)。对于SGD算法来说,由于几乎不可能收敛到梯度接近零的位置,有限的不可微点对于优化结果不会有很大影响。

3. 计算简单:激活函数在神经网络前向的计算次数与神经元的个数成正比,因此简单的非线性函数自然更适合用作激活函数。

4. 非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。最经典的例子是Sigmoid,它的导数在x为比较大的正值和比较小的负值时都会接近于0。更极端的例子是阶跃函数,由于它在几乎所有位置的梯度都为0,因此处处饱和,无法作为激活函数。ReLU在x>0时导数恒为1,因此对于再大的正值也不会饱和。但同时对于x<0,其梯度恒为0,这时候它也会出现饱和的现象(在这种情况下通常称为dying ReLU)。Leaky ReLU[3]和PReLU[4]的提出正是为了解决这一问题。

5. 单调性(monotonic):即导数符号不变。这个性质大部分激活函数都有,除了诸如sin、cos等。个人理解,单调性使得在激活函数处的梯度方向不会经常改变,从而让训练更容易收敛。

6. 输出范围有限:有限的输出范围使得网络对于一些比较大的输入也会比较稳定,这也是为什么早期的激活函数都以此类函数为主,如Sigmoid、TanH。但这导致了前面提到的梯度消失问题,而且强行让每一层的输出限制到固定范围会限制其表达能力。因此现在这类函数仅用于某些需要特定输出范围的场合,比如概率输出(此时loss函数中的log操作能够抵消其梯度消失的影响[1])、LSTM里的gate函数。

7. 接近恒等变换(identity):即约等于x。这样的好处是使得输出的幅值不会随着深度的增加而发生显著的增加,从而使网络更为稳定,同时梯度也能够更容易地回传。这个与非线性是有点矛盾的,因此激活函数基本只是部分满足这个条件,比如TanH只在原点附近有线性区(在原点为0且在原点的导数为1),而ReLU只在x>0时为线性。这个性质也让初始化参数范围的推导更为简单[5][4]。额外提一句,这种恒等变换的性质也被其他一些网络结构设计所借鉴,比如CNN中的ResNet[6]和RNN中的LSTM。

8. 参数少:大部分激活函数都是没有参数的。像PReLU带单个参数会略微增加网络的大小。还有一个例外是Maxout[7],尽管本身没有参数,但在同样输出通道数下k路Maxout需要的输入通道数是其它函数的k倍,这意味着神经元数目也需要变为k倍;但如果不考虑维持输出通道数的情况下,该激活函数又能将参数个数减少为原来的k倍。
9. 归一化(normalization):这个是最近才出来的概念,对应的激活函数是SELU[8],主要思想是使样本分布自动归一化到零均值、单位方差的分布,从而稳定训练。在这之前,这种归一化的思想也被用于网络结构的设计,比如Batch Normalization[9]。

 

 

 

79、逻辑回归相关问题

(1)公式推导一定要会

 

(2)逻辑回归的基本概念 

这个最好从广义线性模型的角度分析,逻辑回归是假设y服从Bernoulli分布。

 

(3)L1-norm和L2-norm 

其实稀疏的根本还是在于L0-norm也就是直接统计参数不为0的个数作为规则项,但实际上却不好执行,于是引入了L1-norm;而L1norm本质上是假设参数先验是服从Laplace分布的,而L2-norm是假设参数先验为Gaussian分布。但是L1-norm的求解比较困难,可以用坐标轴下降法或是最小角回归法求解。

 

(4)LR和SVM对比 

 

首先,LR和SVM最大的区别在于损失函数的选择,LR的损失函数为Log损失(或者说是逻辑损失都可以)、而SVM的损失函数为hinge loss。 
 
其次,两者都是线性模型。 

 

最后,SVM只考虑支持向量(也就是和分类相关的少数点) 

(5)LR和随机森林区别 

随机森林等树算法都是非线性的,而LR是线性的。LR更侧重全局优化,而树模型主要是局部的优化。 

(6)常用的优化方法 

逻辑回归本身是可以用公式求解的,但是因为需要求逆的复杂度太高,所以才引入了梯度下降算法。 
一阶方法:梯度下降、随机梯度下降、mini 随机梯度下降降法。随机梯度下降不但速度上比原始梯度下降要快,局部最优化问题时可以一定程度上抑制局部最优解的发生。 
二阶方法:牛顿法、拟牛顿法: 
这里详细说一下牛顿法的基本原理和牛顿法的应用方式。牛顿法其实就是通过切线与x轴的交点不断更新切线的位置,直到达到曲线与x轴的交点得到方程解。在实际应用中我们因为常常要求解凸优化问题,也就是要求解函数一阶导数为0的位置,而牛顿法恰好可以给这种问题提供解决方法。实际应用中牛顿法首先选择一个点作为起始点,并进行一次二阶泰勒展开得到导数为0的点进行一个更新,直到达到要求,这时牛顿法也就成了二阶求解问题,比一阶方法更快。我们常常看到的x通常为一个多维向量,这也就引出了Hessian矩阵的概念(就是x的二阶导数矩阵)。缺点:牛顿法是定长迭代,没有步长因子,所以不能保证函数值稳定的下降,严重时甚至会失败。还有就是牛顿法要求函数一定是二阶可导的。而且计算Hessian矩阵的逆复杂度很大。 
拟牛顿法: 不用二阶偏导而是构造出Hessian矩阵的近似正定对称矩阵的方法称为拟牛顿法。拟牛顿法的思路就是用一个特别的表达形式来模拟Hessian矩阵或者是他的逆使得表达式满足拟牛顿条件。主要有DFP法(逼近Hession的逆)、BFGS(直接逼近Hession矩阵)、 L-BFGS(可以减少BFGS所需的存储空间)。80、么是共线性, 跟过拟合有什么关联?

共线性:多变量线性回归中,变量之间由于存在高度相关关系而使回归估计不准确。

共线性会造成冗余,导致过拟合。

解决方法:排除变量的相关性/加入权重正则。

 

 

 

1、 神经网络模型(Neural Network)因受人类大脑的启发而得名。

神经网络由许多神经元(Neuron)组成,每个神经元接受一个输入,对输入进行处理后给出一个输出,如下图所示。请问下列关于神经元的描述中,哪一项是正确的?

  1. A 每个神经元可以有一个输入和一个输出

  2. B 每个神经元可以有多个输入和一个输出

  3. C 每个神经元可以有一个输入和多个输出

  4. D 每个神经元可以有多个输入和多个输出

  5. E 上述都正确

答案:(E)

每个神经元可以有一个或多个输入,和一个或多个输出。

 

2、下图是一个神经元的数学表示。

这些组成部分分别表示为:

- x1, x2,…, xN:表示神经元的输入。可以是输入层的实际观测值,也可以是某一个隐藏层(Hidden Layer)的中间值

- w1, w2,…,wN:表示每一个输入的权重

- bi:表示偏差单元/偏移量(bias unit)。作为常数项加到激活函数的输入当中,类似截距(Intercept)

- a:作为神经元的激励函数(Activation),可以表示为

- y:神经元输出

考虑上述标注,线性等式(y = mx + c)可以被认为是属于神经元吗:

A. 是

B. 否

答案:(A)

输入只有一个变量,激活函数为线性。所以可以被认为是线性回归函数。

3、在一个神经网络中,知道每一个神经元的权重和偏差是最重要的一步。如果知道了神经元准确的权重和偏差,便可以近似任何函数,但怎么获知每个神经的权重和偏移呢?

 A 搜索每个可能的权重和偏差组合,直到得到最佳值

 B 赋予一个初始值,然后检查跟最佳值的差值,不断迭代调整权重

 C 随机赋值,听天由命

 D 以上都不正确的
答案:(B)
选项B是对梯度下降的描述。

 

4、梯度下降算法的正确步骤是什么?

  1. 计算预测值和真实值之间的误差

  2. 重复迭代,直至得到网络权重的最佳值

  3. 把输入传入网络,得到输出值

  4. 用随机值初始化权重和偏差

  5. 对每一个产生误差的神经元,调整相应的(权重)值以减小误差

A. 1, 2, 3, 4, 5

B. 5, 4, 3, 2, 1

C. 3, 2, 1, 5, 4

D. 4, 3, 1, 5, 2

答案:(D)

5、已知:
- 大脑是有很多个叫做神经元的东西构成,神经网络是对大脑的简单的数学表达。
- 每一个神经元都有输入、处理函数和输出。
- 神经元组合起来形成了网络,可以拟合任何函数。
- 为了得到最佳的神经网络,我们用梯度下降方法不断更新模型
给定上述关于神经网络的描述,什么情况下神经网络模型被称为深度学习模型?

  A 加入更多层,使神经网络的深度增加
  B 有维度更高的数据
  C 当这是一个图形识别的问题时
  D 以上都不正确
答案:(A)
更多层意味着网络更深。没有严格的定义多少层的模型才叫深度模型,目前如果有超过2层的隐层,那么也可以及叫做深度模型。

6、使用CNN时,是否需要对输入进行旋转、平移、缩放等预处理?
A 需要
B 不需要
答案:(A)
把数据传入神经网络之前需要做一系列数据预处理(也就是旋转、平移、缩放)工作,神经网络本身不能完成这些变换。

7、下面哪项操作能实现跟神经网络中Dropout的类似效果?(B)
A Boosting
B Bagging
C Stacking
D Mapping

Dropout可以认为是一种极端的Bagging,每一个模型都在单独的数据上训练,同时,通过和其他模型对应参数的共享,从而实现模型参数的高度正则化。

8、下列哪一项在神经网络中引入了非线性?深度学习 DL基础 易

  1. A 随机梯度下降

  2. B 修正线性单元(ReLU)

  3. C 卷积函数

  4. D 以上都不正确

答案:(B)

修正线性单元是非线性的激活函数。

 

9、在训练神经网络时,损失函数(loss)在最初的几个epochs时没有下降,可能的原因是?(D)
A 学习率(learning rate)太低
B 正则参数太高
C 陷入局部最小值

D 以上都有可能

 

10、下列哪项关于模型能力(model capacity)的描述是正确的?(指神经网络模型能拟合复杂函数的能力)

  1. A 隐藏层层数增加,模型能力增加

  2. B Dropout的比例增加,模型能力增加

  3. C 学习率增加,模型能力增加

  4. D 都不正确

答案:(A)

11、如果增加多层感知机(Multilayer Perceptron)的隐藏层层数,分类误差便会减小。这种陈述正确还是错误?

  1. A 正确

  2. B 错误

答案:(B)

并不总是正确。层数增加可能导致过拟合,从而可能引起错误增加。

12、构建一个神经网络,将前一层的输出和它自身作为输入。

下列哪一种架构有反馈连接?

  1. A 循环神经网络

  2. B 卷积神经网络

  3. C 限制玻尔兹曼机

  4. D 都不是

答案:(A)

13、 在感知机中(Perceptron)的任务顺序是什么?
1 随机初始化感知机的权重
2 去到数据集的下一批(batch)
3 如果预测值和输出不一致,则调整权重
4 对一个输入样本,计算输出值
A. 1, 2, 3, 4
B. 4, 3, 2, 1
C. 3, 1, 2, 4
D. 1, 4, 3, 2
答案:(D)

14、假设你需要调整参数来最小化代价函数(cost function),会使用下列哪项技术?

A. 穷举搜索

B. 随机搜索

C. Bayesian优化

D. 梯度下降

答案:(D)

15、在下面哪种情况下,一阶梯度下降不一定正确工作(可能会卡住)?深度学习 DL基础 易

D. 以上都不正确

答案:(B)

这是鞍点(Saddle Point)的梯度下降的经典例子。

16、下图显示了训练过的3层卷积神经网络准确度,与参数数量(特征核的数量)的关系。

从图中趋势可见,如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么?

  1. A 即使增加卷积核的数量,只有少部分的核会被用作预测

  2. B 当卷积核数量增加时,神经网络的预测能力(Power)会降低

  3. C 当卷积核数量增加时,导致过拟合

  4. D 以上都不正确

答案:(C)

网络规模过大时,就可能学到数据中的噪声,导致过拟合

 

17、假设我们有一个如下图所示的隐藏层。隐藏层在这个网络中起到了一定的降维作用。假如现在我们用另一种维度下降的方法,比如说主成分分析法(PCA)来替代这个隐藏层。 

那么,这两者的输出效果是一样的吗?

A.是

B.否

答案:(B)

PCA 提取的是数据分布方差比较大的方向,隐藏层可以提取有预测能力的特征

18、下列哪个函数不可以做激活函数?

A. y = tanh(x)
B. y = sin(x)
C. y = max(x,0)
D. y = 2x

答案:(D)

线性函数不能作为激活函数。

19、下列哪个神经网络结构会发生权重共享?

A.卷积神经网络

B.循环神经网络

C.全连接神经网络

D.选项A和B

答案:(D)

20、批规范化(Batch Normalization)的好处都有什么?
A.在将所有的输入传递到下一层之前对其进行归一化(更改)
B.它将权重的归一化平均值和标准差
C.它是一种非常有效的反向传播(BP)方法
D.这些均不是
答案:(A)

21、在一个神经网络中,下面哪种方法可以用来处理过拟合?(D) 深度学习 DL基础 易
 A Dropout
 B 分批归一化(Batch Normalization)
 C 正则化(regularization)
 D 都可以
对于选项C,分批归一化处理过拟合的原理,是因为同一个数据在不同批中被归一化后的值会有差别,相当于做了data augmentatio。

22、下图所示的网络用于训练识别字符H和T,如下所示

网络的输出是什么?
enter_image_description_here
D.可能是A或B,取决于神经网络的权重设置
答案:(D)
不知道神经网络的权重和偏差是什么,则无法判定它将会给出什么样的输出。

23、假设我们已经在ImageNet数据集(物体识别)上训练好了一个卷积神经网络。然后给这张卷积神经网络输入一张全白的图片。对于这个输入的输出结果为任何种类的物体的可能性都是一样的,对吗?
A 对的
B 不知道
C 看情况
D 不对
答案:D,已经训练好的卷积神经网络, 各个神经元已经精雕细作完工, 对于全白图片的输入, 其j层层激活输出给最后的全连接层的值几乎不可能恒等, 再经softmax转换之后也不会相等, 所以"输出结果为任何种类的等可能性一样"也就是softmax的每项均相等, 这个概率是极低的。

24、当在卷积神经网络中加入池化层(pooling layer)时,变换的不变性会被保留,是吗?深度学习 DL模型 中
A 不知道
B 看情况
C 是
D 否
答案:(C)
池化算法比如取最大值/取平均值等, 都是输入数据旋转后结果不变, 所以多层叠加后也有这种不变性。

25、当数据过大以至于无法在RAM中同时处理时,哪种梯度下降方法更加有效?(A)
A 随机梯度下降法(Stochastic Gradient Descent)
B 不知道
C 整批梯度下降法(Full Batch Gradient Descent)
D 都不是
梯度下降法分随机梯度下降(每次用一个样本)、小批量梯度下降法(每次用一小批样本算出总损失, 因而反向传播的梯度折中)、全批量梯度下降法则一次性使用全部样本。这三个方法, 对于全体样本的损失函数曲面来说, 梯度指向一个比一个准确. 但是在工程应用中,受到内存/磁盘IO的吞吐性能制约, 若要最小化梯度下降的实际运算时间, 需要在梯度方向准确性和数据传输性能之间取得最好的平衡. 所以, 对于数据过大以至于无法在RAM中同时处理时, RAM每次只能装一个样本, 那么只能选随机梯度下降法。

 

26、下图是一个利用sigmoid函数作为激活函数的含四个隐藏层的神经网络训练的梯度下降图。这个神经网络遇到了梯度消失的问题。下面哪个叙述是正确的?(A)
 A、第一隐藏层对应D,第二隐藏层对应C,第三隐藏层对应B,第四隐藏层对应A
 B、第一隐藏层对应A,第二隐藏层对应C,第三隐藏层对应B,第四隐藏层对应D
 C、第一隐藏层对应A,第二隐藏层对应B,第三隐藏层对应C,第四隐藏层对应D
 D、第一隐藏层对应B,第二隐藏层对应D,第三隐藏层对应C,第四隐藏层对应A 

 

由于反向传播算法进入起始层,学习能力降低,这就是梯度消失。换言之,梯度消失是梯度在前向传播中逐渐减为0, 按照图标题所说, 四条曲线是4个隐藏层的学习曲线, 那么第一层梯度最高(损失函数曲线下降明显), 最后一层梯度几乎为零(损失函数曲线变成平直线). 所以D是第一层, A是最后一层。

 

27、对于一个分类任务,如果开始时神经网络的权重不是随机赋值的,而是都设成0,下面哪个叙述是正确的?(C)

A 其他选项都不对
B 没啥问题,神经网络会正常开始训练
C 神经网络可以训练,但是所有的神经元最后都会变成识别同样的东西
D 神经网络不会开始训练,因为没有梯度改变

令所有权重都初始化为0这个一个听起来还蛮合理的想法也许是一个我们假设中最好的一个假设了, 但结果是错误的,因为如果神经网络计算出来的输出值都一个样,那么反向传播算法计算出来的梯度值一样,并且参数更新值也一样(w=w−α∗dw)。更一般地说,如果权重初始化为同一个值,网络即是对称的, 最终所有的神经元最后都会变成识别同样的东西。

 

28、下图显示,当开始训练时,误差一直很高,这是因为神经网络在往全局最小值前进之前一直被卡在局部最小值里。为了避免这种情况,我们可以采取下面哪种策略?深度学习 DL基础 易
A  改变学习速率,比如一开始的几个训练周期不断更改学习速率
B 一开始将学习速率减小10倍,然后用动量项(momentum)
C 增加参数数目,这样神经网络就不会卡在局部最优处
D 其他都不对
答案:(A)

 

29、对于一个图像识别问题(在一张照片里找出一只猫),下面哪种神经网络可以更好地解决这个问题?(D)深度学习 DL基础 易
A 循环神经网络
B 感知机
C 多层感知机
D 卷积神经网络
卷积神经网络将更好地适用于图像相关问题,因为考虑到图像附近位置变化的固有性质。

 

30、假设在训练中我们突然遇到了一个问题,在几次循环之后,误差瞬间降低
你认为数据有问题,于是你画出了数据并且发现也许是数据的偏度过大造成了这个问题。 
你打算怎么做来处理这个问题?深度学习 DL基础 易

A 对数据作归一化
B 对数据取对数变化
C 都不对
D 对数据作主成分分析(PCA)和归一化
答案:(D)
首先您将相关的数据去掉,然后将其置零。具体来说,误差瞬间降低, 一般原因是多个数据样本有强相关性且突然被拟合命中, 或者含有较大方差数据样本突然被拟合命中. 所以对数据作主成分分析(PCA)和归一化能够改善这个问题。

 

31、下面那个决策边界是神经网络生成的? (E) 深度学习 DL基础 易
A A
B D
C C
D B 
E 以上都有
神经网络可以逼近方式拟合任意函数, 所以以上图都可能由神经网络通过监督学习训练得到决策边界。

 

32、在下图中,我们可以观察到误差出现了许多小的"涨落"。 这种情况我们应该担心吗?深度学习 DL基础 易
A 需要,这也许意味着神经网络的学习速率存在问题
B 不需要,只要在训练集和交叉验证集上有累积的下降就可以了
C 不知道
D 不好说
答案:(B)
选项B是正确的,为了减少这些“起伏”,可以尝试增加批尺寸(batch size)。具体来说,在曲线整体趋势为下降时, 为了减少这些“起伏”,可以尝试增加批尺寸(batch size)以缩小batch综合梯度方向摆动范围. 当整体曲线趋势为平缓时出现可观的“起伏”, 可以尝试降低学习率以进一步收敛. “起伏”不可观时应该提前终止训练以免过拟合

 

33、在选择神经网络的深度时,下面那些参数需要考虑?深度学习 DL基础 易
1 神经网络的类型(如MLP,CNN)
2 输入数据
3 计算能力(硬件和软件能力决定)
4 学习速率
5 映射的输出函数

A 1,2,4,5
B 2,3,4,5
C 都需要考虑
D 1,3,4,5
答案:(C)
所有上述因素对于选择神经网络模型的深度都是重要的。特征抽取所需分层越多, 输入数据维度越高, 映射的输出函数非线性越复杂, 所需深度就越深. 另外为了达到最佳效果, 增加深度所带来的参数量增加, 也需要考虑硬件计算能力和学习速率以设计合理的训练时间。

 

34、考虑某个具体问题时,你可能只有少量数据来解决这个问题。不过幸运的是你有一个类似问题已经预先训练好的神经网络。可以用下面哪种方法来利用这个预先训练好的网络?(C)深度学习 DL基础 易

A 把除了最后一层外所有的层都冻住,重新训练最后一层
B 对新数据重新训练整个模型
C 只对最后几层进行调参(fine tune)
D 对每一层模型进行评估,选择其中的少数来用


如果有个预先训练好的神经网络, 就相当于网络各参数有个很靠谱的先验代替随机初始化. 若新的少量数据来自于先前训练数据(或者先前训练数据量很好地描述了数据分布, 而新数据采样自完全相同的分布), 则冻结前面所有层而重新训练最后一层即可; 但一般情况下, 新数据分布跟先前训练集分布有所偏差, 所以先验网络不足以完全拟合新数据时, 可以冻结大部分前层网络, 只对最后几层进行训练调参(这也称之为fine tune)。

 

35、增加卷积核的大小对于改进卷积神经网络的效果是必要的吗?(C)深度学习 DL基础 易
A 没听说过
B 是
C 否
D 不知道
答案:C,增加核函数的大小不一定会提高性能。这个问题在很大程度上取决于数据集。

 

36、请简述神经网络的发展史。深度学习 DL基础 易

@SIY.Z。本题解析来源:https://zhuanlan.zhihu.com/p/29435406
sigmoid会饱和,造成梯度消失。于是有了ReLU。
ReLU负半轴是死区,造成梯度变0。于是有了LeakyReLU,PReLU。
强调梯度和权值分布的稳定性,由此有了ELU,以及较新的SELU。
太深了,梯度传不下去,于是有了highway。
干脆连highway的参数都不要,直接变残差,于是有了ResNet。
强行稳定参数的均值和方差,于是有了BatchNorm。
在梯度流中增加噪声,于是有了 Dropout。
RNN梯度不稳定,于是加几个通路和门控,于是有了LSTM。
LSTM简化一下,有了GRU。
GAN的JS散度有问题,会导致梯度消失或无效,于是有了WGAN。
WGAN对梯度的clip有问题,于是有了WGAN-GP。

 

37、常见的监督学习算法有哪些? 机器学习 ML基础 易
感知机、逻辑回归、KNN、朴素贝叶斯、SVM、神经网络、决策树

 

38、在其他条件不变的前提下,以下哪种做法容易引起机器学习中的过拟合问题()机器学习 ML基础 易
A. 增加训练集量
B. 减少神经网络隐藏层节点数
C. 删除稀疏的特征
D. SVM算法中使用高斯核/RBF核代替线性核
正确答案:D

一般情况下,越复杂的系统,过拟合的可能性就越高,一般模型相对简单的话泛化能力会更好一点。
B.一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向, svm高斯核函数比线性核函数模型更复杂,容易过拟合
D.径向基(RBF)核函数/高斯核函数的说明,这个核函数可以将原始空间映射到无穷维空间。对于参数 ,如果选的很大,高次特征上的权重实际上衰减得非常快,实际上(数值上近似一下)相当于一个低维的子空间;反过来,如果选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调整参数 ,高斯核实际上具有相当高的灵活性,也是 使用最广泛的核函数 之一。

 

39、下列时间序列模型中,哪一个模型可以较好地拟合波动性的分析和预测。机器学习 ML模型 易
A.AR模型
B.MA模型
C.ARMA模型
D.GARCH模型
正确答案:D

AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值。
MA模型(moving average model)滑动平均模型,其中使用趋势移动平均法建立直线趋势的预测模型。
ARMA模型(auto regressive moving average model)自回归滑动平均模型,模型参量法高分辨率谱分析方法之一。这种方法是研究平稳随机过程有理谱的典型方法。它比AR模型法与MA模型法有较精确的谱估计及较优良的谱分辨率性能,但其参数估算比较繁琐。
GARCH模型称为广义ARCH模型,是ARCH模型的拓展,由Bollerslev(1986)发展起来的。它是ARCH模型的推广。GARCH(p,0)模型,相当于ARCH(p)模型。GARCH模型是一个专门针对金融数据所量体订做的回归模型,除去和普通回归模型相同的之处,GARCH对误差的方差进行了进一步的建模。特别适用于波动性的分析和预测,这样的分析对投资者的决策能起到非常重要的指导性作用,其意义很多时候超过了对数值本身的分析和预测。

 

40、以下()属于线性分类器最佳准则?机器学习 ML模型 易
A.感知准则函数
B.贝叶斯分类
C.支持向量机
D.Fisher准则
正确答案:ACD
@刘炫320,本题题目及解析来源:http://blog.csdn.net/column/details/16442.html
线性分类器有三大类:感知器准则函数、SVM、Fisher准则,而贝叶斯分类器不是线性分类器。
感知准则函数 :准则函数以使错分类样本到分界面距离之和最小为原则。其优点是通过错分类样本提供的信息对分类器函数进行修正,这种准则是人工神经元网络多层感知器的基础。
支持向量机 :基本思想是在两类线性可分条件下,所设计的分类器界面使两类之间的间隔为最大,它的基本出发点是使期望泛化风险尽可能小。(使用核函数可解决非线性问题)
Fisher 准则 :更广泛的称呼是线性判别分析(LDA),将所有样本投影到一条远点出发的直线,使得同类样本距离尽可能小,不同类样本距离尽可能大,具体为最大化“广义瑞利熵”。
根据两类样本一般类内密集,类间分离的特点,寻找线性分类器最佳的法线向量方向,使两类样本在该方向上的投影满足类内尽可能密集,类间尽可能分开。这种度量通过类内离散矩阵 Sw 和类间离散矩阵 Sb 实现。

 

41、 基于二次准则函数的H-K算法较之于感知器算法的优点是()?深度学习 DL基础 易
A.计算量小
B.可以判别问题是否线性可分
C.其解完全适用于非线性可分的情况
D.其解的适应性更好
正确答案:BD
@刘炫320,本题题目及解析来源:http://blog.csdn.net/column/details/16442.html
HK算法思想很朴实,就是在最小均方误差准则下求得权矢量.
他相对于感知器算法的优点在于,他适用于线性可分和非线性可分得情况,对于线性可分的情况,给出最优权矢量,对于非线性可分得情况,能够判别出来,以退出迭代过程.

 

42、以下说法中正确的是() 机器学习 ML模型 中
A.SVM对噪声(如来自其他分布的噪声样本)鲁棒
B.在AdaBoost算法中,所有被分错的样本的权重更新比例相同
C.Boosting和Bagging都是组合多个分类器投票的方法,二都是根据单个分类器的正确率决定其权重
D.给定n个数据点,如果其中一半用于训练,一般用于测试,则训练误差和测试误差之间的差别会随着n的增加而减少
正确答案:BD

A、SVM对噪声(如来自其他分布的噪声样本)鲁棒
SVM本身对噪声具有一定的鲁棒性,但实验证明,是当噪声率低于一定水平的噪声对SVM没有太大影响,但随着噪声率的不断增加,分类器的识别率会降低。
B、在AdaBoost算法中所有被分错的样本的权重更新比例相同 
AdaBoost算法中不同的训练集是通过调整每个样本对应的权重来实现的。开始时,每个样本对应的权重是相同的,即其中n为样本个数,在此样本分布下训练出一弱分类器。对于分类错误的样本,加大其对应的权重;而对于分类正确的样本,降低其权重,这样分错的样本就被凸显出来,从而得到一个新的样本分布。在新的样本分布下,再次对样本进行训练,得到弱分类器。以此类推,将所有的弱分类器重叠加起来,得到强分类器。
C、Boost和Bagging都是组合多个分类器投票的方法,二者均是根据单个分类器的正确率决定其权重。
Bagging与Boosting的区别:
取样方式不同。
Bagging采用均匀取样,而Boosting根据错误率取样。
Bagging的各个预测函数没有权重,而Boosting是有权重的。
Bagging的各个预测函数可以并行生成,而Boosing的各个预测函数只能顺序生成。
@AntZ
A. SVM解决的是结构风险最小, 经验风险处理较弱, 所以对数据噪声敏感.
B. AdaBoost算法中, 每个迭代训练一个学习器并按其误分类率得到该学习器的权重alpha, 这个学习器的权重算出两个更新比例去修正全部样本的权重: 正样本是exp(-alpha), 负样本是exp(alpha). 所以所有被分错的样本的权重更新比例相同.
C. bagging的学习器之间无权重不同, 简单取投票结果; Boosting的adaboost根据误分类率决定权重, boosting的gbdt则是固定小权重(也称学习率), 用逼近伪残差函数本身代替权重.
D: 根据中心极限定律, 随着n的增加, 训练误差和测试误差之间的差别必然减少 -- 这就是大数据训练的由来

 

43、 一监狱人脸识别准入系统用来识别待进入人员的身份,此系统一共包括识别4种不同的人员:狱警,小偷,送餐员,其他。下面哪种学习方法最适合此种应用需求:()机器学习 ML基础 易

A. 二分类问题
B. 多分类问题
C. 层次聚类问题
D. k-中心点聚类问题
E. 回归问题
F. 结构分析问题
正确答案:B

二分类:每个分类器只能把样本分为两类。监狱里的样本分别为狱警、小偷、送餐员、其他。二分类肯 定行不通。瓦普尼克95年提出来基础的支持向量机就是个二分类的分类器,这个分类器学习过 程就是解一个基于正负二分类推导而来的一个最优规划问题(对偶问题),要解决多分类问题 就要用决策树把二分类的分类器级联,VC维的概念就是说的这事的复杂度。
层次聚类: 创建一个层次等级以分解给定的数据集。监狱里的对象分别是狱警、小偷、送餐员、或者其 他,他们等级应该是平等的,所以不行。此方法分为自上而下(分解)和自下而上(合并)两种操作方式。
K-中心点聚类:挑选实际对象来代表簇,每个簇使用一个代表对象。它是围绕中心点划分的一种规则,所以这里并不合适。
回归分析:处理变量之间具有相关性的一种统计方法,这里的狱警、小偷、送餐员、其他之间并没有什 么直接关系。
结构分析: 结构分析法是在统计分组的基础上,计算各组成部分所占比重,进而分析某一总体现象的内部结构特征、总体的性质、总体内部结构依时间推移而表现出的变化规律性的统计方法。结构分析法的基本表现形式,就是计算结构指标。这里也行不通。
多分类问题: 针对不同的属性训练几个不同的弱分类器,然后将它们集成为一个强分类器。这里狱警、 小偷、送餐员 以及他某某,分别根据他们的特点设定依据,然后进行区分识别。
 

44、关于 logit 回归和 SVM 不正确的是()机器学习 ML模型 易
A.Logit回归目标函数是最小化后验概率
B. Logit回归可以用于预测事件发生概率的大小
C. SVM目标是结构风险最小化
D.SVM可以有效避免模型过拟合
正确答案: A

A. Logit回归本质上是一种根据样本对权值进行极大似然估计的方法,而后验概率正比于先验概率和似然函数的乘积。logit仅仅是最大化似然函数,并没有最大化后验概率,更谈不上最小化后验概率。而最小化后验概率是朴素贝叶斯算法要做的。A错误
B. Logit回归的输出就是样本属于正类别的几率,可以计算出概率,正确
C. SVM的目标是找到使得训练数据尽可能分开且分类间隔最大的超平面,应该属于结构风险最小化。
D. SVM可以通过正则化系数控制模型的复杂度,避免过拟合。
 

45、有两个样本点,第一个点为正样本,它的特征向量是(0,-1);第二个点为负样本,它的特征向量是(2,3),从这两个样本点组成的训练集构建一个线性SVM分类器的分类面方程是()机器学习 ML基础 易
A. 2x+y=4
B. x+2y=5
C. x+2y=3
D. 2x-y=0
正确答案:C
解析:这道题简化了,对于两个点来说,最大间隔就是垂直平分线,因此求出垂直平分线即可。斜率是两点连线的斜率的负倒数-1/((-1-3)/(0-2)) = -1/2, 可得y=-(1/2)x + c, 过中点((0+2)/2, (-1+3)/2) = (1, 1), 可得c=3/2, 故选C.
 

46、下面有关分类算法的准确率,召回率,F1 值的描述,错误的是?机器学习 ML基础 易
A.准确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率
B.召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率
C.正确率、召回率和 F 值取值都在0和1之间,数值越接近0,查准率或查全率就越高
D.为了解决准确率和召回率冲突问题,引入了F1分数
正确答案:C
解析:
对于二类分类问题常用的评价指标是精准度(precision)与召回率(recall)。通常以关注的类为正类,其他类为负类,分类器在测试数据集上的预测或正确或不正确,4种情况出现的总数分别记作:
TP——将正类预测为正类数
FN——将正类预测为负类数
FP——将负类预测为正类数
TN——将负类预测为负类数
由此:
精准率定义为:P = TP / (TP + FP)
召回率定义为:R = TP / (TP + FN)
F1值定义为: F1 = 2 P R / (P + R)
精准率和召回率和F1取值都在0和1之间,精准率和召回率高,F1值也会高,不存在数值越接近0越高的说法,应该是数值越接近1越高。
 

47、以下几种模型方法属于判别式模型(Discriminative Model)的有() 机器学习 ML模型 易
1)混合高斯模型
2)条件随机场模型
3)区分度训练
4)隐马尔科夫模型
A.2,3
B.3,4
C.1,4
D.1,2
正确答案:A

常见的判别式模型有:
Logistic regression(logistic 回归)
Linear discriminant analysis(线性判别分析)
Supportvector machines(支持向量机)
Boosting(集成学习)
Conditional random fields(条件随机场)
Linear regression(线性回归)
Neural networks(神经网络)
常见的生成式模型有:
Gaussian mixture model and othertypes of mixture model(高斯混合及其他类型混合模型)
Hidden Markov model(隐马尔可夫)
NaiveBayes(朴素贝叶斯)
AODE(平均单依赖估计)
Latent Dirichlet allocation(LDA主题模型)
Restricted Boltzmann Machine(限制波兹曼机)
生成式模型是根据概率乘出结果,而判别式模型是给出输入,计算出结果。
 

 

48、

Nave Bayes是一种特殊的Bayes分类器,特征变量是X,类别标签是C,它的一个假定是:() 
A.各类别的先验概率P(C)是相等的

B.以0为均值,sqr(2)/2为标准差的正态分布

C.特征变量X的各个维度是类别条件独立随机变量

D.P(X|C)是高斯分布

 

机器学习 ML模型 中,正确答案:C

朴素贝叶斯的条件就是每个变量相互独立。

49

关于支持向量机SVM,下列说法错误的是() 
A.L2正则项,作用是最大化分类间隔,使得分类器拥有更强的泛化能力

B.Hinge 损失函数,作用是最小化经验分类错误

C.分类间隔为1/||w||,||w||代表向量的模

D.当参数C越小时,分类间隔越大,分类错误越多,趋于欠学习

机器学习 ML模型,易,正确答案:C

@刘炫320,本题题目及解析来源:http://blog.csdn.net/column/details/16442.html

A正确。考虑加入正则化项的原因:想象一个完美的数据集,y>1是正类,y<-1是负类,决策面y=0,加入一个y=-30的正类噪声样本,那么决策面将会变“歪”很多,分类间隔变小,泛化能力减小。加入正则项之后,对噪声样本的容错能力增强,前面提到的例子里面,决策面就会没那么“歪”了,使得分类间隔变大,提高了泛化能力。

B正确。

C错误。间隔应该是2/||w||才对,后半句应该没错,向量的模通常指的就是其二范数。

D正确。考虑软间隔的时候,C对优化问题的影响就在于把a的范围从[0,+inf]限制到了[0,C]。C越小,那么a就会越小,目标函数拉格朗日函数导数为0可以求出w=求和,a变小使得w变小,因此间隔2/||w||变大

 

50、 在HMM中,如果已知观察序列和产生观察序列的状态序列,那么可用以下哪种方法直接进行参数估计()  机器学习 ML模型 易
A.EM算法
B.维特比算法
C.前向后向算法
D.极大似然估计
正确答案:D

EM算法: 只有观测序列,无状态序列时来学习模型参数,即Baum-Welch算法
维特比算法: 用动态规划解决HMM的预测问题,不是参数估计
前向后向算法:用来算概率
极大似然估计:即观测序列和相应的状态序列都存在时的监督学习算法,用来估计参数
注意的是在给定观测序列和对应的状态序列估计模型参数,可以利用极大似然发估计。如果给定观测序列,没有对应的状态序列,才用EM,将状态序列看不不可测的隐数据。

 

51、假定某同学使用Naive Bayesian(NB)分类模型时,不小心将训练数据的两个维度搞重复了,那么关于NB的说法中正确的是():机器学习 ML模型 易 
A.这个被重复的特征在模型中的决定作用会被加强
B.模型效果相比无重复特征的情况下精确度会降低
C.如果所有特征都被重复一遍,得到的模型预测结果相对于不重复的情况下的模型预测结果一样。
D.当两列特征高度相关时,无法用两列特征相同时所得到的结论来分析问题
E.NB可以用来做最小二乘回归
F.以上说法都不正确
正确答案:BD
朴素贝叶斯的条件就是每个变量相互独立. 若高度相关的特征在模型中引入两次, 这样增加了这一特征的重要性, 则它的性能因数据包含高度相关的特征而下降。正确做法是评估特征的相关矩阵,并移除那些高度相关的特征。

 

52、L1与L2范数。机器学习 ML基础 易

在Logistic Regression 中,如果同时加入L1和L2范数,会产生什么效果()

A.可以做特征选择,并在一定程度上防止过拟合

B.能解决维度灾难问题

C.能加快计算速度

D.可以获得更准确的结果

正确答案:ABC

L1范数具有系数解的特性,但是要注意的是,L1没有选到的特征不代表不重要,原因是两个高相关性的特征可能只保留一个。如果需要确定哪个特征重要,再通过交叉验证。它的优良性质是能产生稀疏性,导致 W 中许多项变成零。 稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性”。所以能加快计算速度和缓解维数灾难. 所以BC正确.

在代价函数后面加上正则项,L1即是Losso回归,L2是岭回归。L1范数是指向量中各个元素绝对值之和,用于特征选择。L2范数 是指向量各元素的平方和然后求平方根,用于 防止过拟合,提升模型的泛化能力。因此选择A。

53、正则化。机器学习 ML基础 易
机器学习中L1正则化和L2正则化的区别是?

A.使用L1可以得到稀疏的权值
B.使用L1可以得到平滑的权值
C.使用L2可以得到稀疏的权值
D.使用L2可以得到平滑的权值
正确答案:AD

L1正则化偏向于稀疏,它会自动进行特征选择,去掉一些没用的特征,也就是将这些特征对应的权重置为0.
L2主要功能是为了防止过拟合,当要求参数越小时,说明模型越简单,而模型越简单则,越趋向于平滑,从而防止过拟合。
L1正则化/Lasso 
L1正则化将系数w的l1范数作为惩罚项加到损失函数上,由于正则项非零,这就迫使那些弱的特征所对应的系数变成0。因此L1正则化往往会使学到的模型很稀疏(系数w经常为0),这个特性使得L1正则化成为一种很好的特征选择方法。
L2正则化/Ridge regression 
L2正则化将系数向量的L2范数添加到了损失函数中。由于L2惩罚项中系数是二次方的,这使得L2和L1有着诸多差异,最明显的一点就是,L2正则化会让系数的取值变得平均。对于关联特征,这意味着他们能够获得更相近的对应系数。还是以Y=X1+X2为例,假设X1和X2具有很强的关联,如果用L1正则化,不论学到的模型是Y=X1+X2还是Y=2X1,惩罚都是一样的,都是2alpha。但是对于L2来说,第一个模型的惩罚项是2alpha,但第二个模型的是4*alpha。可以看出,系数之和为常数时,各系数相等时惩罚是最小的,所以才有了L2会让各个系数趋于相同的特点。
可以看出,L2正则化对于特征选择来说一种稳定的模型,不像L1正则化那样,系数会因为细微的数据变化而波动。所以L2正则化和L1正则化提供的价值是不同的,L2正则化对于特征理解来说更加有用:表示能力强的特征对应的系数是非零。
因此,一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。
具体的,可以参阅《机器学习之特征选择》与《机器学习范数正则化》。

 

 

54、隐马尔可夫。机器学习 ML模型 易
隐马尔可夫模型三个基本问题以及相应的算法说法正确的是( )
A.评估—前向后向算法
B.解码—维特比算法
C.学习—Baum-Welch算法
D.学习—前向后向算法
正确答案:ABC
解析:评估问题,可以使用前向算法、后向算法、前向后向算法。

特征比数据量还大时,选择什么样的分类器?机器学习 ML基础 易
线性分类器,因为维度高的时候,数据一般在维度空间里面会比较稀疏,很有可能线性可分

 

55、下列属于无监督学习的是:  机器学习 ML基础 易
A.k-means
B.SVM
C.最大熵
D.CRF
正确答案:A
解析: A是聚类,BC是分类,D是序列化标注,也是有监督学习。

 

56、下列哪个不属于CRF模型对于HMM和MEMM模型的优势( ) 机器学习 ML模型 中
A.特征灵活
B.速度快
C.可容纳较多上下文信息
D.全局最优
正确答案:B

解析: 
CRF 的优点:特征灵活,可以容纳较多的上下文信息,能够做到全局最优CRF 的缺点:速度慢
CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活(与ME一样) ————与HMM比较
同时,由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。 ­­————与MEMM比较
CRF是在给定需要标记的观察序列的条件下,使用维特比算法,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。————与ME比较
 

57、数据清理中,处理缺失值的方法是? 机器学习 ML基础 易
A.估算
B.整例删除
C.变量删除
D.成对删除
正确答案:ABCD

由于调查、编码和录入误差,数据中可能存在一些无效值和缺失值,需要给予适当的处理。常用的处理方法有:估算,整例删除,变量删除和成对删除。

估算(estimation)。最简单的办法就是用某个变量的样本均值、中位数或众数代替无效值和缺失值。这种办法简单,但没有充分考虑数据中已有的信息,误差可能较大。另一种办法就是根据调查对象对其他问题的答案,通过变量之间的相关分析或逻辑推论进行估计。例如,某一产品的拥有情况可能与家庭收入有关,可以根据调查对象的家庭收入推算拥有这一产品的可能性。

整例删除(casewise deletion)是剔除含有缺失值的样本。由于很多问卷都可能存在缺失值,这种做法的结果可能导致有效样本量大大减少,无法充分利用已经收集到的数据。因此,只适合关键变量缺失,或者含有无效值或缺失值的样本比重很小的情况。
变量删除(variable deletion)。如果某一变量的无效值和缺失值很多,而且该变量对于所研究的问题不是特别重要,则可以考虑将该变量删除。这种做法减少了供分析用的变量数目,但没有改变样本量。
成对删除(pairwise deletion)是用一个特殊码(通常是9、99、999等)代表无效值和缺失值,同时保留数据集中的全部变量和样本。但是,在具体计算时只采用有完整答案的样本,因而不同的分析因涉及的变量不同,其有效样本量也会有所不同。这是一种保守的处理方法,最大限度地保留了数据集中的可用信息。

采用不同的处理方法可能对分析结果产生影响,尤其是当缺失值的出现并非随机且变量之间明显相关时。因此,在调查中应当尽量避免出现无效值和缺失值,保证数据的完整性。
 

58、影响聚类算法效果的主要原因有:( ) 机器学习 ML基础 易

A.特征选取
B.模式相似性测度
C.分类准则
D.已知类别的样本质量
正确答案:ABC

解析:这道题应该是很简单的,D之所以不正确,是因为聚类是对无类别的数据进行聚类,不使用已经标记好的数据。
 

59、下列不是SVM核函数的是() 机器学习 ML模型 易

A.多项式核函数
B.logistic核函数
C.径向基核函数
D.Sigmoid核函数
正确答案:B

SVM核函数包括线性核函数、多项式核函数、径向基核函数、高斯核函数、幂指数核函数、拉普拉斯核函数、ANOVA核函数、二次有理核函数、多元二次核函数、逆多元二次核函数以及Sigmoid核函数.
核函数的定义并不困难,根据泛函的有关理论,只要一种函数 K ( x i , x j ) 满足Mercer条件,它就对应某一变换空间的内积.对于判断哪些函数是核函数到目前为止也取得了重要的突破,得到Mercer定理和以下常用的核函数类型:
(1)线性核函数 
K ( x , x i ) = x ⋅ x i
(2)多项式核 
K ( x , x i ) = ( ( x ⋅ x i ) + 1 ) d
(3)径向基核(RBF) 
K ( x , x i ) = exp ( − ∥ x − x i ∥ 2 σ 2 ) 
Gauss径向基函数则是局部性强的核函数,其外推能力随着参数 σ 的增大而减弱。多项式形式的核函数具有良好的全局性质。局部性较差。
(4)傅里叶核 
K ( x , x i ) = 1 − q 2 2 ( 1 − 2 q cos ( x − x i ) + q 2 )
(5)样条核 
K ( x , x i ) = B 2 n + 1 ( x − x i )
(6)Sigmoid核函数 
K ( x , x i ) = tanh ( κ ( x , x i ) − δ )
采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过学习现象。

核函数的选择
在选取核函数解决实际问题时,通常采用的方法有:
一是利用专家的先验知识预先选定核函数;
二是采用Cross-Validation方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,通过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM误差小很多.
三是采用由Smits等人提出的混合核函数方法,该方法较之前两者是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的工作.将不同的核函数结合起来后会有更好的特性,这是混合核函数方法的基本思想.
 

60、已知一组数据的协方差矩阵P,下面关于主分量说法错误的是() 数据挖掘 DM基础 易
A.主分量分析的最佳准则是对一组数据进行按一组正交基分解, 在只取相同数量分量的条件下,以均方误差计算截尾误差最小
B.在经主分量分解后,协方差矩阵成为对角矩阵
C.主分量分析就是K-L变换
D.主分量是通过求协方差矩阵的特征值得到
正确答案:C
解析:K-L变换与PCA变换是不同的概念,PCA的变换矩阵是协方差矩阵,K-L变换的变换矩阵可以有很多种(二阶矩阵、协方差矩阵、总类内离散度矩阵等等)。当K-L变换矩阵为协方差矩阵时,等同于PCA。
 

61、在分类问题中,我们经常会遇到正负样本数据量不等的情况,比如正样本为10w条数据,负样本只有1w条数据,以下最合适的处理方法是()机器学习 ML基础 易
A.将负样本重复10次,生成10w样本量,打乱顺序参与分类
B.直接进行分类,可以最大限度利用数据
C.从10w正样本中随机抽取1w参与分类
D.将负样本每个权重设置为10,正样本权重为1,参与训练过程
正确答案:ACD
解析:对于这一块我想还是有一些了解的 
1. 重采样。 
A可视作重采样的变形。改变数据分布消除不平衡,可能导致过拟合。 
2. 欠采样。 
C的方案 提高少数类的分类性能,可能丢失多数类的重要信息。 
如果1:10算是均匀的话,可以将多数类分割成为1000份。然后将每一份跟少数类的样本组合进行训练得到分类器。而后将这1000个分类器用assemble的方法组合位一个分类器。A选项可以看作此方式,因而相对比较合理。 
另:如果目标是 预测的分布 跟训练的分布一致,那就加大对分布不一致的惩罚系数。 
3. 权值调整。 
D方案也是其中一种方式。

当然,这只是在数据集上进行相应的处理,在算法上也有相应的处理方法。

 

62、解决隐马模型中预测问题的算法是()机器学习 ML模型 中
A.前向算法
B.后向算法
C.Baum-Welch算法
D.维特比算法
正确答案:D

A、B:前向、后向算法解决的是一个评估问题,即给定一个模型,求某特定观测序列的概率,用于评估该序列最匹配的模型。
C:Baum-Welch算法解决的是一个模型训练问题,即参数估计,是一种无监督的训练方法,主要通过EM迭代实现;
D:维特比算法解决的是给定 一个模型和某个特定的输出序列,求最可能产生这个输出的状态序列。如通过海藻变化(输出序列)来观测天气(状态序列),是预测问题,通信中的解码问题。

 

63、 一般,k-NN最近邻方法在()的情况下效果较好 机器学习 ML模型 易
A.样本较多但典型性不好
B.样本较少但典型性好
C.样本呈团状分布
D.样本呈链状分布
正确答案:B
解析:K近邻算法主要依靠的是周围的点,因此如果样本过多,那肯定是区分不出来的。因此应当选择B
样本呈团状颇有迷惑性,这里应该指的是整个样本都是呈团状分布,这样kNN就发挥不出其求近邻的优势了,整体样本应该具有典型性好,样本较少,比较适宜。
 

64、下列方法中,可以用于特征降维的方法包括() 深度学习 DL模型 易
A.主成分分析PCA
B.线性判别分析LDA
C.深度学习SparseAutoEncoder
D.矩阵奇异值分解SVD
E.最小二乘法LeastSquares
正确答案:ABCD
解析:降维的3种常见方法ABD,都是线性的。深度学习是降维的方法这个就比较新鲜了,事实上,细细想来,也是降维的一种方法,因为如果隐藏层中的神经元数目要小于输入层,那就达到了降维,但如果隐藏层中的神经元如果多余输入层,那就不是降维了。最小二乘法是线性回归的一种解决方法,其实也是投影,但是并没有进行降维。
 

65、下面哪些是基于核的机器学习算法?()机器学习 ML模型 易
A.Expectation Maximization(EM)(最大期望算法)
B.Radial Basis Function(RBF)(径向基核函数)
C.Linear Discrimimate Analysis(LDA)(主成分分析法)
D.Support Vector Machine(SVM)(支持向量机)
正确答案:BCD
解析:径向基核函数是非常常用的核函数,而主成分分析法的常规方法是线性的,但是当遇到非线性的时候,同样可以使用核方法使得非线性问题转化为线性问题。支持向量机处理非线性的问题的时候,核函数也是非常重要的。

 

 

66、在一个n维的空间中, 最好的检测outlier(离群点)的方法是()机器学习 ML基础 易
A. 作正态分布概率图
B. 作盒形图
C. 马氏距离
D. 作散点图
答案:C

 

马氏距离是基于卡方分布的,度量多元outlier离群点的统计方法。

有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为: 

(协方差矩阵中每个元素是各个矢量元素之间的协方差Cov(X,Y),Cov(X,Y) = E{ [X-E(X)] [Y-E(Y)]},其中E为数学期望)

而其中向量Xi与Xj之间的马氏距离定义为:    

若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:       

也就是欧氏距离了。

若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。

(2)马氏距离的优缺点:量纲无关,排除变量之间的相关性的干扰。 

 

67、对数几率回归(logistics regression)和一般回归分析有什么区别?机器学习 ML基础 易
A. 对数几率回归是设计用来预测事件可能性的
B. 对数几率回归可以用来度量模型拟合程度
C. 对数几率回归可以用来估计回归系数
D. 以上所有
答案:D
A: 这个在这篇文章里提到过,对数几率回归其实是设计用来解决分类问题的
B: 对数几率回归可以用来检验模型对数据的拟合度
C: 虽然对数几率回归是用来解决分类问题的,但是模型建立好后,就可以根据独立的特征,估计相关的回归系数。就我认为,这只是估计回归系数,不能直接用来做回归模型。

 

68、bootstrap数据是什么意思?(提示:考“bootstrap”和“boosting”区别)机器学习 ML模型 易
A. 有放回地从总共M个特征中抽样m个特征
B. 无放回地从总共M个特征中抽样m个特征
C. 有放回地从总共N个样本中抽样n个样本
D. 无放回地从总共N个样本中抽样n个样本
答案:C。boostrap是提鞋自举的意思(武侠小说作者所说的左脚踩右脚腾空而起). 它的过程是对样本(而不是特征)进行有放回的抽样, 抽样次数等同于样本总数. 这个随机抽样过程决定了最终抽样出来的样本, 去除重复之后, 占据原有样本的1/e比例。

 

69、“过拟合”只在监督学习中出现,在非监督学习中,没有“过拟合”,这是()机器学习 ML基础 易
A. 对的
B. 错的
答案:B
我们可以评估无监督学习方法通过无监督学习的指标,如:我们可以评估聚类模型通过调整兰德系数(adjusted rand score)

70、 对于k折交叉验证, 以下对k的说法正确的是()机器学习 ML基础 易
A. k越大, 不一定越好, 选择大的k会加大评估时间
B. 选择更大的k, 就会有更小的bias (因为训练集更加接近总数据集)
C. 在选择k时, 要最小化数据集之间的方差
D. 以上所有
答案:D
k越大, bias越小, 训练时间越长. 在训练时, 也要考虑数据集间方差差别不大的原则. 比如, 对于二类分类问题, 使用2-折交叉验证, 如果测试集里的数据都是A类的, 而训练集中数据都是B类的, 显然, 测试效果会很差.
如果不明白bias和variance的概念, 务必参考下面链接:
Gentle Introduction to the Bias-Variance Trade-Off in Machine Learning
Understanding the Bias-Variance Tradeoff

71、回归模型中存在多重共线性, 你如何解决这个问题?机器学习 ML模型 中
A. 去除这两个共线性变量
B. 我们可以先去除一个共线性变量
C. 计算VIF(方差膨胀因子), 采取相应措施
D. 为了避免损失信息, 我们可以使用一些正则化方法, 比如, 岭回归和lasso回归.
以下哪些是对的:
A. 1
B. 2
C. 2和3
D. 2, 3和4
答案: D
解决多重公线性, 可以使用相关矩阵去去除相关性高于75%的变量 (有主观成分). 也可以VIF, 如果VIF值<=4说明相关性不是很高, VIF值>=10说明相关性较高.
我们也可以用 岭回归和lasso回归的带有惩罚正则项的方法. 我们也可以在一些变量上加随机噪声, 使得变量之间变得不同, 但是这个方法要小心使用, 可能会影响预测效果。

72、 模型的高bias是什么意思, 我们如何降低它 ?机器学习 ML基础 易
A. 在特征空间中减少特征
B. 在特征空间中增加特征
C. 增加数据点
D. B和C
E. 以上所有
答案: B
bias太高说明模型太简单了, 数据维数不够, 无法准确预测数据, 所以, 升维吧 !

 

73、 训练决策树模型, 属性节点的分裂, 具有最大信息增益的图是下图的哪一个()机器学习 ML模型 易

A. Outlook
B. Humidity
C. Windy
D. Temperature
答案: A信息增益, 增加平均子集纯度, 详细研究, 请戳下面链接:

 

74、 对于信息增益, 决策树分裂节点, 下面说法正确的是()机器学习 ML模型 易
A. 纯度高的节点需要更多的信息去区分
B. 信息增益可以用”1比特-熵”获得
C. 如果选择一个属性具有许多归类值, 那么这个信息增益是有偏差的
A. 1
B. 2
C.2和3
D. 所有以上
答案: C

 

75、 如果SVM模型欠拟合, 以下方法哪些可以改进模型 () 机器学习 ML模型 中
A. 增大惩罚参数C的值
B. 减小惩罚参数C的值
C. 减小核系数(gamma参数)
本题解析来源:点击打开链接
A如果SVM模型欠拟合, 我们可以调高参数C的值, 使得模型复杂度上升.LibSVM中,SVM的目标函数是:

而, gamma参数是你选择径向基函数作为kernel后,该函数自带的一个参数.隐含地决定了数据映射到新的特征空间后的分布.
gamma参数与C参数无关. gamma参数越高, 模型越复杂. 

 

76、 下图是同一个SVM模型, 但是使用了不同的径向基核函数的gamma参数, 依次是g1, g2, g3 , 下面大小比较正确的是:

A. g1 > g2 > g3
B. g1 = g2 = g3
C. g1 < g2 < g3
D. g1 >= g2 >= g3E. g1 <= g2 <= g3
答案: C

 

77、 假设我们要解决一个二类分类问题, 我们已经建立好了模型, 输出是0或1, 初始时设阈值为0.5, 超过0.5概率估计, 就判别为1, 否则就判别为0 ; 如果我们现在用另一个大于0.5的阈值,  那么现在关于模型说法, 正确的是 : 
A. 模型分类的召回率会降低或不变
B. 模型分类的召回率会升高
C. 模型分类准确率会升高或不变
D. 模型分类准确率会降低
A. 1
B. 2
C.1和3
D. 2和4
E. 以上都不是
答案: C
这篇文章讲述了阈值对准确率和召回率影响 :
Confidence Splitting Criterions Can Improve Precision And Recall in Random Forest Classifiers“点击率问题”是这样一个预测问题, 99%的人是不会点击的, 而1%的人是会点击进去的, 所以这是一个非常不平衡的数据集. 

 

78、 假设, 现在我们已经建了一个模型来分类, 而且有了99%的预测准确率, 我们可以下的结论是 : 
A. 模型预测准确率已经很高了, 我们不需要做什么了
B. 模型预测准确率不高, 我们需要做点什么改进模型
C. 无法下结论
D. 以上都不对
答案: B
99%的预测准确率可能说明, 你预测的没有点进去的人很准确 (因为有99%的人是不会点进去的, 这很好预测). 不能说明你的模型对点进去的人预测准确, 所以, 对于这样的非平衡数据集, 我们要把注意力放在小部分的数据上, 即那些点击进去的人.

 

79、 使用k=1的knn算法, 下图二类分类问题, “+” 和 “o” 分别代表两个类, 那么, 用仅拿出一个测试样本的交叉验证方法, 交叉验证的错误率是多少:

A. 0%
B. 100%
C.  0% 到  100
D. 以上都不是

答案: B
knn算法就是, 在样本周围看k个样本, 其中大多数样本的分类是A类, 我们就把这个样本分成A类. 显然, k=1 的knn在上图不是一个好选择, 分类的错误率始终是100% 。任何一个样本点,离它最近的点都不是与它同类的。

 

80、 我们想在大数据集上训练决策树, 为了使用较少时间, 我们可以:
A.  增加树的深度
B.  增加学习率 (learning rate)
C.  减少树的深度
D. 减少树的数量
答案: C
增加树的深度, 会导致所有节点不断分裂, 直到叶子节点是纯的为止. 所以, 增加深度, 会延长训练时间.

决策树没有学习率参数可以调. (不像集成学习和其它有步长的学习方法)
决策树只有一棵树, 不是随机森林.

 

81、对于神经网络的说法, 下面正确的是 : 

1. 增加神经网络层数, 可能会增加测试数据集的分类错误率
2. 减少神经网络层数, 总是能减小测试数据集的分类错误率
3. 增加神经网络层数, 总是能减小训练数据集的分类错误率
A. 1
B. 1 和 3
C. 1 和 2
D. 2
答案: A
深度神经网络的成功, 已经证明, 增加神经网络层数, 可以增加模型范化能力, 即, 训练数据集和测试数据集都表现得更好. 但更多的层数, 也不一定能保证有更好的表现(https://arxiv.org/pdf/1512.03385v1.pdf). 所以, 不能绝对地说层数多的好坏, 只能选A

 

82、假如我们使用非线性可分的SVM目标函数作为最优化对象, 我们怎么保证模型线性可分?
A. 设C=1
B. 设C=0
C. 设C=无穷大
D. 以上都不对
答案: C
C无穷大保证了所有的线性不可分都是可以忍受的.

 

83、训练完SVM模型后, 不是支持向量的那些样本我们可以丢掉, 也可以继续分类:

A. 正确
B. 错误
答案: A
SVM模型中, 真正影响决策边界的是支持向量

 

84、以下哪些算法, 可以用神经网络去构造: 

1. KNN
2. 线性回归
3. 对数几率回归
A. 1和 2
B. 2 和 3
C. 1, 2 和 3
D. 以上都不是
答案: B
1. KNN算法不需要训练参数, 而所有神经网络都需要训练参数, 因此神经网络帮不上忙
2. 最简单的神经网络, 感知器, 其实就是线性回归的训练
3. 我们可以用一层的神经网络构造对数几率回归

 

85、 请选择下面可以应用隐马尔科夫(HMM)模型的选项: 
A. 基因序列数据集
B. 电影浏览数据集
C. 股票市场数据集
D. 所有以上
答案: D
只要是和时间序列问题有关的 , 都可以试试HMM

 

86、我们建立一个5000个特征, 100万数据的机器学习模型. 我们怎么有效地应对这样的大数据训练 : 
A. 我们随机抽取一些样本, 在这些少量样本之上训练
B. 我们可以试用在线机器学习算法
C. 我们应用PCA算法降维, 减少特征数
D. B 和 C
E. A 和 B
F. 以上所有
答案: F

 

87、我们想要减少数据集中的特征数, 即降维. 选择以下适合的方案 :

1. 使用前向特征选择方法
2. 使用后向特征排除方法
3. 我们先把所有特征都使用, 去训练一个模型, 得到测试集上的表现. 然后我们去掉一个特征, 再去训练, 用交叉验证看看测试集上的表现. 如果表现比原来还要好, 我们可以去除这个特征.
4. 查看相关性表, 去除相关性最高的一些特征
A. 1 和 2
B. 2, 3和4
C. 1, 2和4
D. All

答案: D
1.前向特征选择方法和后向特征排除方法是我们特征选择的常用方法
2.如果前向特征选择方法和后向特征排除方法在大数据上不适用, 可以用这里第三种方法.
3.用相关性的度量去删除多余特征, 也是一个好方法
所有D是正确的

 

88、对于随机森林和GradientBoosting Trees, 下面说法正确的是:
1.在随机森林的单个树中, 树和树之间是有依赖的, 而GradientBoosting Trees中的单个树之间是没有依赖的.
2.这两个模型都使用随机特征子集, 来生成许多单个的树.
3.我们可以并行地生成GradientBoosting Trees单个树, 因为它们之间是没有依赖的, GradientBoosting Trees训练模型的表现总是比随机森林好
A. 2
B. 1 and 2
C. 1, 3 and 4
D. 2 and 4

答案: A
1.随机森林是基于bagging的, 而Gradient Boosting trees是基于boosting的, 所有说反了,在随机森林的单个树中, 树和树之间是没有依赖的, 而GradientBoosting Trees中的单个树之间是有依赖关系.
2.这两个模型都使用随机特征子集, 来生成许多单个的树.
所有A是正确的

 

89、对于PCA(主成分分析)转化过的特征 ,  朴素贝叶斯的”不依赖假设”总是成立, 因为所有主要成分是正交的, 这个说法是 :
A. 正确的
B. 错误的
答案: B.
这个说法是错误的, 首先, “不依赖”和”不相关”是两回事, 其次, 转化过的特征, 也可能是相关的

 

90、对于PCA说法正确的是 :
1. 我们必须在使用PCA前规范化数据
2. 我们应该选择使得模型有最大variance的主成分
3. 我们应该选择使得模型有最小variance的主成分
4. 我们可以使用PCA在低维度上做数据可视化
A. 1, 2 and 4
B. 2 and 4
C. 3 and 4
D. 1 and 3
E. 1, 3 and 4
答案: A
1)PCA对数据尺度很敏感, 打个比方, 如果单位是从km变为cm, 这样的数据尺度对PCA最后的结果可能很有影响(从不怎么重要的成分变为很重要的成分).
2)我们总是应该选择使得模型有最大variance的主成分
3)有时在低维度上左图是需要PCA的降维帮助的
 

 

91、 对于下图, 最好的主成分选择是多少 ? :

q26_image4

A. 7

B. 30

C. 35

D. Can’t Say

答案: B  主成分选择使variance越大越好, 在这个前提下, 主成分越少越好。

 

92、数据科学家可能会同时使用多个算法(模型)进行预测, 并且最后把这些算法的结果集成起来进行最后的预测(集成学习),以下对集成学习说法正确的是 :

A. 单个模型之间有高相关性

B. 单个模型之间有低相关性

C. 在集成学习中使用“平均权重”而不是“投票”会比较好

D. 单个模型都是用的一个算法

答案: B

 

93、在有监督学习中, 我们如何使用聚类方法? :

A. 我们可以先创建聚类类别, 然后在每个类别上用监督学习分别进行学习

B. 我们可以使用聚类“类别id”作为一个新的特征项, 然后再用监督学习分别进行学习

C. 在进行监督学习之前, 我们不能新建聚类类别

D. 我们不可以使用聚类“类别id”作为一个新的特征项, 然后再用监督学习分别进行学习

A. 2 和 4

B. 1 和 2

C. 3 和 4

D. 1 和 3

答案: B

我们可以为每个聚类构建不同的模型, 提高预测准确率。

“类别id”作为一个特征项去训练, 可以有效地总结了数据特征。

所以B是正确的

 

94、以下说法正确的是 :

A. 一个机器学习模型,如果有较高准确率,总是说明这个分类器是好的

B. 如果增加模型复杂度, 那么模型的测试错误率总是会降低

C. 如果增加模型复杂度, 那么模型的训练错误率总是会降低

D. 我们不可以使用聚类“类别id”作为一个新的特征项, 然后再用监督学习分别进行学习

A. 1

B. 2

C. 3

D. 1 and 3

答案: C

考的是过拟合和欠拟合的问题。

 

95、对应GradientBoosting tree算法, 以下说法正确的是 :

A. 当增加最小样本分裂个数,我们可以抵制过拟合

B. 当增加最小样本分裂个数,会导致过拟合

C. 当我们减少训练单个学习器的样本个数,我们可以降低variance

D. 当我们减少训练单个学习器的样本个数,我们可以降低bias

A. 2 和 4

B. 2 和 3

C. 1 和 3

D. 1 和 4

答案: C

  • 最小样本分裂个数是用来控制“过拟合”参数。太高的值会导致“欠拟合”,这个参数应该用交叉验证来调节。
  • 第二点是靠bias和variance概念的。

 

96、以下哪个图是KNN算法的训练边界 :

q31_image5

A) B

B) A

C) D

D) C

E) 都不是

答案: B

KNN算法肯定不是线性的边界, 所以直的边界就不用考虑了。另外这个算法是看周围最近的k个样本的分类用以确定分类,所以边界一定是坑坑洼洼的。

 

97、如果一个训练好的模型在测试集上有100%的准确率, 这是不是意味着在一个新的数据集上,也会有同样好的表现? :

A. 是的,这说明这个模型的范化能力已经足以支持新的数据集合了

B. 不对,依然有其他因素模型没有考虑到,比如噪音数据

答案: B
没有一个模型是可以总是适应新数据的。我们不可能可到100%准确率。

 

98、下面的交叉验证方法 :

i. 有放回的Bootstrap方法

ii. 留一个测试样本的交叉验证

iii. 5折交叉验证

iv. 重复两次的5折交叉验证

当样本是1000时,下面执行时间的顺序,正确的是:

A. i > ii > iii > iv

B. ii > iv > iii > i

C. iv > i > ii > iii

D. ii > iii > iv > i

答案: B

  • Boostrap方法是传统地随机抽样,验证一次的验证方法,只需要训练1次模型,所以时间最少。
  • 留一个测试样本的交叉验证,需要n次训练过程(n是样本个数),这里,要训练1000个模型。
  • 5折交叉验证需要训练5个模型。
  • 重复2次的5折交叉验证,需要训练10个模型。

所有B是正确的

 

99、变量选择是用来选择最好的判别器子集, 如果要考虑模型效率,我们应该做哪些变量选择的考虑? :

1. 多个变量其实有相同的用处
2. 变量对于模型的解释有多大作用
3. 特征携带的信息
4. 交叉验证

A. 1 和 4

B. 1, 2 和 3

C. 1,3 和 4

D. 以上所有

答案: C

注意, 这题的题眼是考虑模型效率,所以不要考虑选项2.可解释性不用考虑。

 

100、 对于下面三个模型的训练情况, 下面说法正确的是 :

q37_image6

1. 第一张图的训练错误与其余两张图相比,是最大的
2. 最后一张图的训练效果最好,因为训练错误最小
3. 第二张图比第一和第三张图鲁棒性更强,是三个里面表现最好的模型
4. 第三张图相对前两张图过拟合了
5. 三个图表现一样,因为我们还没有测试数据集

A. 1 和 3

B. 1 和 3

C. 1, 3 和 4

D. 5

答案: C

 

101、 对于线性回归,我们应该有以下哪些假设? :

1. 找到利群点很重要, 因为线性回归对利群点很敏感
2. 线性回归要求所有变量必须符合正态分布
3. 线性回归假设数据没有多重线性相关性

A. 1 和 2

B. 2 和 3

C. 1,2 和 3

D. 以上都不是

答案: D

  • 利群点要着重考虑, 第一点是对的
  • 不是必须的, 当然, 如果是正态分布, 训练效果会更好
  • 有少量的多重线性相关性是可以的, 但是我们要尽量避免

 

102、 当我们构造线性模型时, 我们注意变量间的相关性. 在相关矩阵中搜索相关系数时, 如果我们发现3对变量的相关系数是(Var1 和Var2, Var2和Var3, Var3和Var1)是-0.98, 0.45, 1.23 . 我们可以得出什么结论: 

1. Var1和Var2是非常相关的
2. 因为Var1和Var2是非常相关的, 我们可以去除其中一个
3. Var3和Var1的1.23相关系数是不可能的

A. 1 and 3

B. 1 and 2

C. 1,2 and 3

D. 1

答案: C

  • Var1和Var2相关系数是负的, 所以这是多重线性相关, 我们可以考虑去除其中一个.
  • 一般地, 如果相关系数大于0.7或者小于-0.7, 是高相关的
  • 相关性系数范围应该是 [-1,1]

 

103、 如果在一个高度非线性并且复杂的一些变量中, 一个树模型可能比一般的回归模型效果更好. :

A. 对的

B. 错的

答案: A

 

104、对于维度极低的特征,选择线性还是非线性分类器?
非线性分类器,低维空间可能很多特征都跑到一起了,导致线性不可分。
1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况。

 

105、 特征向量的缺失值处理
1. 缺失值较多.直接将该特征舍弃掉,否则可能反倒会带入较大的noise,对结果造成不良影响。
2. 缺失值较少,其余的特征缺失值都在10%以内,我们可以采取很多的方式来处理:
1) 把NaN直接作为一个特征,假设用0表示;
2) 用均值填充;
3) 用随机森林等算法预测填充

 

106、SVM、LR、决策树的对比。
模型复杂度:SVM支持核函数,可处理线性非线性问题;LR模型简单,训练速度快,适合处理线性问题;决策树容易过拟合,需要进行剪枝
损失函数:SVM hinge loss; LR L2正则化; adaboost 指数损失
数据敏感度:SVM添加容忍度对outlier不敏感,只关心支持向量,且需要先做归一化; LR对远点敏感
数据量:数据量大就用LR,数据量小且特征少就用SVM非线性核

 

107、 什么是ill-condition病态问题?
训练完的模型,测试样本稍作修改就会得到差别很大的结果,就是病态问题,模型对未知数据的预测能力很差,即泛化误差大。

 

108、 简述KNN最近邻分类算法的过程?
1. 计算测试样本和训练样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);
2. 对上面所有的距离值进行排序;
3. 选前k个最小距离的样本;
4. 根据这k个样本的标签进行投票,得到最后的分类类别;

 

109、常用的聚类划分方式有哪些?列举代表算法。
1. 基于划分的聚类:K-means,k-medoids,CLARANS。
2. 基于层次的聚类:AGNES(自底向上),DIANA(自上向下)。
3. 基于密度的聚类:DBSACN,OPTICS,BIRCH(CF-Tree),CURE。
4. 基于网格的方法:STING,WaveCluster。
5. 基于模型的聚类:EM,SOM,COBWEB。

 

110、 下面对集成学习模型中的弱学习者描述错误的是?
A.他们经常不会过拟合
B.他们通常带有高偏差,所以其并不能解决复杂学习问题
C.他们通常会过拟合
答案:C,弱学习者是问题的特定部分。所以他们通常不会过拟合,这也就意味着弱学习者通常拥有低方差和高偏差。

 

111、 下面哪个/些选项对 K 折交叉验证的描述是正确的?
1.增大 K 将导致交叉验证结果时需要更多的时间
2.更大的 K 值相比于小 K 值将对交叉验证结构有更高的信心
3.如果 K=N,那么其称为留一交叉验证,其中 N 为验证集中的样本数量
A. 1 和 2
B. 2 和 3
C. 1 和 3
D. 1、2 和 3
答案(D):大 K 值意味着对过高估计真实预期误差(训练的折数将更接近于整个验证集样本数)拥有更小的偏差和更多的运行时间(并随着越来越接近极限情况:留一交叉验证)。我们同样在选择 K 值时需要考虑 K 折准确度和方差间的均衡。

 

112、 最出名的降维算法是 PCA 和 t-SNE。将这两个算法分别应用到数据「X」上,并得到数据集「X_projected_PCA」,「X_projected_tSNE」。下面哪一项对「X_projected_PCA」和「X_projected_tSNE」的描述是正确的?
A. X_projected_PCA 在最近邻空间能得到解释
B. X_projected_tSNE 在最近邻空间能得到解释
C. 两个都在最近邻空间能得到解释
D. 两个都不能在最近邻空间得到解释
答案(B):t-SNE 算法考虑最近邻点而减少数据维度。所以在使用 t-SNE 之后,所降的维可以在最近邻空间得到解释。但 PCA 不能。

 

113、 给定三个变量 X,Y,Z。(X, Y)、(Y, Z) 和 (X, Z) 的 Pearson 相关性系数分别为 C1、C2 和 C3。现在 X 的所有值加 2(即 X+2),Y 的全部值减 2(即 Y-2),Z 保持不变。那么运算之后的 (X, Y)、(Y, Z) 和 (X, Z) 相关性系数分别为 D1、D2 和 D3。现在试问 D1、D2、D3 和 C1、C2、C3 之间的关系是什么?
A. D1= C1, D2 < C2, D3 > C3
B. D1 = C1, D2 > C2, D3 > C3
C. D1 = C1, D2 > C2, D3 < C3
D. D1 = C1, D2 < C2, D3 < C3
E. D1 = C1, D2 = C2, D3 = C3
答案(E):特征之间的相关性系数不会因为特征加或减去一个数而改变。

 

114、 为了得到和 SVD 一样的投射(projection),你需要在 PCA 中怎样做?
A. 将数据转换成零均值
B. 将数据转换成零中位数
C. 无法做到
答案(A):当数据有一个 0 均值向量时,PCA 有与 SVD 一样的投射,否则在使用 SVD 之前,你必须将数据均值归 0。

 

115、 假设我们有一个数据集,在一个深度为 6 的决策树的帮助下,它可以使用 100% 的精确度被训练。现在考虑一下两点,并基于这两点选择正确的选项。
注意:所有其他超参数是相同的,所有其他因子不受影响。

1.深度为 4 时将有高偏差和低方差
2.深度为 4 时将有低偏差和低方差
A. 只有 1
B. 只有 2
C. 1 和 2
D. 没有一个
答案(A):如果在这样的数据中你拟合深度为 4 的决策树,这意味着其更有可能与数据欠拟合。因此,在欠拟合的情况下,你将获得高偏差和低方差。

红色位置是真实值的位置,蓝色的点是算法得出的预测值。 
可以看出,偏差越高则离红色部分越远,而方差越大则算法每次的预测之间的波动会比较大。

偏差,对象是单个模型,期望输出与真实标记的差别(可以解释为描述了模型对本训练集的拟合程度)

方差,对象是多个模型(同一个学习算法在不同数据集的稳定性如何)

当在虚线左边时,模型复杂度低,数据欠拟合,偏差主导了算法的泛化能力。

当在虚线右边时,模型复杂度高,偏差数据逐渐过拟合,偏差减小,方差增大,此时方差主导了算法的泛化能力

 

116、在 k-均值算法中,以下哪个选项可用于获得全局最小?
A. 尝试为不同的质心(centroid)初始化运行算法
B. 调整迭代的次数
C. 找到集群的最佳数量
D. 以上所有
答案(D):所有都可以用来调试以找到全局最小。

 

117、 你正在使用带有 L1 正则化的 logistic 回归做二分类,其中 C 是正则化参数,w1 和 w2 是 x1 和 x2 的系数。当你把 C 值从 0 增加至非常大的值时,下面哪个选项是正确的?
A. 第一个 w2 成了 0,接着 w1 也成了 0
B. 第一个 w1 成了 0,接着 w2 也成了 0
C. w1 和 w2 同时成了 0

D. 即使在 C 成为大值之后,w1 和 w2 都不能成 0

答案(C):L1正则化的函数如下图,所以w1和w2可以为0。同时w1和w2是对称的,不会导致一个为0另一个不为0的状态。

 

118、 假设你使用 log-loss 函数作为评估标准。下面这些选项,哪些是对作为评估标准的 log-loss 的正确解释。
A.如果一个分类器对不正确的分类很自信,log-loss 会严重的批评它。
B.对一个特别的观察而言,分类器为正确的类别分配非常小的概率,然后对 log-loss 的相应分布会非常大。
C.log-loss 越低,模型越好
D.以上都是
答案为(D) 最小化对数损失基本等价于最大化分类器的准确度

 

119、 下面哪个选项中哪一项属于确定性算法?
A.PCA
B.K-Means
C. 以上都不是
答案为(A):确定性算法表明在不同运行中,算法输出并不会改变。如果我们再一次运行算法,PCA 会得出相同的结果,而 k-means 不会。

 

120、特征向量的归一化方法有哪些?
线性函数转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue)
对数函数转换,表达式如下:
y=log10 (x)
反余切函数转换 ,表达式如下:
y=arctan(x)*2/PI
减去均值,除以方差:
y=(x-means)/ variance

 

121、 优化算法及其优缺点?
温馨提示:在回答面试官的问题的时候,往往将问题往大的方面去回答,这样不会陷于小的技术上死磕,最后很容易把自己嗑死了。
简言之

1)批量梯度下降
优点:容易陷入局部最优解
缺点:收敛速度较慢

2)随机梯度下降
优点:可以一定程度上解决局部最优解的问题
缺点:收敛速度较快

3)mini_batch梯度下降
综合随机梯度下降和批量梯度下降的优缺点,提取的一个中和的方法。

4)牛顿法
牛顿法在迭代的时候,需要计算Hessian矩阵,当维度较高的时候,计算  Hessian矩阵比较困难。

5)拟牛顿法
拟牛顿法是为了改进牛顿法在迭代过程中,计算Hessian矩阵而提取的算法,它采用的方式是通过逼近Hessian的方式来进行求解。

具体而言
从每个batch的数据来区分
梯度下降:每次使用全部数据集进行训练
优点:得到的是最优解
缺点:运行速度慢,内存可能不够
随机梯度下降:每次使用一个数据进行训练
优点:训练速度快,无内存问题
缺点:容易震荡,可能达不到最优解
Mini-batch梯度下降
优点:训练速度快,无内存问题,震荡较少
缺点:可能达不到最优解
从优化方法上来分:
随机梯度下降(SGD)
缺点
选择合适的learning rate比较难
对于所有的参数使用同样的learning rate
容易收敛到局部最优
可能困在saddle point
SGD+Momentum
优点:
积累动量,加速训练
局部极值附近震荡时,由于动量,跳出陷阱
梯度方向发生变化时,动量缓解动荡。
Nesterov Mementum
与Mementum类似,优点:
避免前进太快
提高灵敏度
AdaGrad
优点:
控制学习率,每一个分量有各自不同的学习率
适合稀疏数据
缺点
依赖一个全局学习率
学习率设置太大,其影响过于敏感
后期,调整学习率的分母积累的太大,导致学习率很低,提前结束训练。
RMSProp
优点:
解决了后期提前结束的问题。
缺点:
依然依赖全局学习率
Adam
Adagrad和RMSProp的合体
优点:
结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点
为不同的参数计算不同的自适应学习率
也适用于大多非凸优化 - 适用于大数据集和高维空间
牛顿法
牛顿法在迭代的时候,需要计算Hessian矩阵,当维度较高的时候,计算 Hessian矩阵比较困难
拟牛顿法
拟牛顿法是为了改进牛顿法在迭代过程中,计算Hessian矩阵而提取的算法,它采用的方式是通过逼近Hessian的方式来进行求解。

 

122、RF与GBDT之间的区别与联系?
1)相同点:都是由多棵树组成,最终的结果都是由多棵树一起决定。
2)不同点:
a 组成随机森林的树可以分类树也可以是回归树,而GBDT只由回归树组成
b 组成随机森林的树可以并行生成,而GBDT是串行生成
c 随机森林的结果是多数表决表决的,而GBDT则是多棵树累加之和
d 随机森林对异常值不敏感,而GBDT对异常值比较敏感
e 随机森林是减少模型的方差,而GBDT是减少模型的偏差
f 随机森林不需要进行特征归一化。而GBDT则需要进行特征归一化

 

123、 两个变量的 Pearson 相关性系数为零,但这两个变量的值同样可以相关。
A 正确   
B 错误
答案为(A):Pearson相关系数只能衡量线性相关性,但无法衡量非线性关系。如y=x^2,x和y有很强的非线性关系。

124、下面哪个/些超参数的增加可能会造成随机森林数据过拟合?
A 树的数量 
B 树的深度  
C 学习速率
答案为(B):通常情况下,我们增加树的深度有可能会造成模型过拟合。学习速率并不是随机森林的超参数。增加树的数量可能会造成欠拟合。

 

125、目标变量在训练集上的 8 个实际值 [0,0,0,1,1,1,1,1],目标变量的熵是多少?
A. -(5/8 log(5/8) + 3/8 log(3/8))
B. 5/8 log(5/8) + 3/8 log(3/8)
C. 3/8 log(5/8) + 5/8 log(3/8)
D. 5/8 log(3/8) – 3/8 log(5/8)
答案为(A)

 

126、下列哪个不属于常用的文本分类的特征选择算法?(D)
A 卡方检验值
B 互信息
C 信息增益
D 主成分分析
 

127、机器学习中做特征选择时,可能用到的方法有? (E)
A、卡方 
B、信息增益 
C、平均互信息 
D、期望交叉熵
E 以上都有

 

128、下列哪些方法可以用来对高维数据进行降维:

A LASSO
B 主成分分析法
C 聚类分析
D 小波分析法
E 线性判别法
F 拉普拉斯特征映射

 

ABDEF
lasso通过参数缩减达到降维的目的;
pca就不用说了
线性鉴别法即LDA通过找到一个空间使得类内距离最小类间距离最大所以可以看做是降维;
小波分析有一些变换的操作降低其他干扰可以看做是降维
拉普拉斯请看这个http://f.dataguru.cn/thread-287243-1-1.html

 

129、 以下描述正确的是(D)
A SVM是这样一个分类器,它寻找具有最小边缘的超平面,因此它也经常被称为最小边缘分类器
B 在聚类分析当中,簇内的相似性越大,簇间的差别越大,聚类的效果就越差
C 在决策树中,随着树中结点输变得太大,即使模型的训练误差还在继续降低,但是检验误差开始增大,这是出现了模型拟合不足的原因
D 聚类分析可以看作是一种非监督的分类

 

 

130、关于正态分布,下列说法错误的是:
A.正态分布具有集中性和对称性
B.正态分布的均值和方差能够决定正态分布的位置和形态
C.正态分布的偏度为0,峰度为1
D.标准正态分布的均值为0,方差为1
答案 C,标准正态分布即如此。

 

131、 在以下不同的场景中,使用的分析方法不正确的有 B
A.根据商家最近一年的经营及服务数据,用聚类算法判断出天猫商家在各自主营类目下所属的商家层级
B.根据商家近几年的成交数据,用聚类算法拟合出用户未来一个月可能的消费金额公式
C.用关联规则算法分析出购买了汽车坐垫的买家,是否适合推荐汽车脚垫
D.根据用户最近购买的商品信息,用决策树算法识别出淘宝买家可能是男还是女

其中B应该用回归算法

 

132、 假定你在神经网络中的隐藏层中使用激活函数 X。在特定神经元给定任意输入,你会得到输出「-0.0001」。X 可能是以下哪一个激活函数?
A. ReLU
B. tanh
C. SIGMOID
D. 以上都不是
答案为:B,该激活函数可能是 tanh,因为该函数的取值范围是 (-1,1)。

 

133、 下面哪些对「类型 1(Type-1)」和「类型 2(Type-2)」错误的描述是正确的?
A. 类型 1 通常称之为假正类,类型 2 通常称之为假负类。
B. 类型 2 通常称之为假正类,类型 1 通常称之为假负类。
C. 类型 1 错误通常在其是正确的情况下拒绝假设而出现。
答案为(A)和(C):在统计学假设测试中,I 类错误即错误地拒绝了正确的假设即假正类错误,II 类错误通常指错误地接受了错误的假设即假负类错误。

 

134、 假定目标变量的类别非常不平衡,即主要类别占据了训练数据的 99%。现在你的模型在测试集上表现为 99% 的准确度。那么下面哪一项表述是正确的?
A. 准确度并不适合于衡量不平衡类别问题
B. 准确度适合于衡量不平衡类别问题
C. 精确率和召回率适合于衡量不平衡类别问题
D. 精确率和召回率不适合于衡量不平衡类别问题
答案为(A)和(C) 

 

135、 什么是偏差与方差?
泛化误差可以分解成偏差的平方加上方差加上噪声。偏差度量了学习算法的期望预测和真实结果的偏离程度,刻画了学习算法本身的拟合能力,方差度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响,噪声表达了当前任务上任何学习算法所能达到的期望泛化误差下界,刻画了问题本身的难度。偏差和方差一般称为bias和variance,一般训练程度越强,偏差越小,方差越大,泛化误差一般在中间有一个最小值,如果偏差较大,方差较小,此时一般称为欠拟合,而偏差较小,方差较大称为过拟合。偏差:方差:

 

136、 解决bias和Variance问题的方法是什么?交叉验证
High bias解决方案:Boosting、复杂模型(非线性模型、增加神经网络中的层)、更多特征
High Variance解决方案:bagging、简化模型、降维

 

137、 采用 EM 算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?
用EM算法求解的模型一般有GMM或者协同过滤,k-means其实也属于EM。EM算法一定会收敛,但是可能收敛到局部最优。由于求和的项数将随着隐变量的数目指数上升,会给梯度计算带来麻烦。

 

 

138、什么是OOB?随机森林中OOB是如何计算的,它有什么优缺点?
bagging方法中Bootstrap每次约有1/3的样本不会出现在Bootstrap所采集的样本集合中,当然也就没有参加决策树的建立,把这1/3的数据称为袋外数据oob(out of bag),它可以用于取代测试集误差估计方法。
袋外数据(oob)误差的计算方法如下:
对于已经生成的随机森林,用袋外数据测试其性能,假设袋外数据总数为O,用这O个袋外数据作为输入,带进之前已经生成的随机森林分类器,分类器会给出O个数据相应的分类,因为这O条数据的类型是已知的,则用正确的分类与随机森林分类器的结果进行比较,统计随机森林分类器分类错误的数目,设为X,则袋外数据误差大小=X/O;这已经经过证明是无偏估计的,所以在随机森林算法中不需要再进行交叉验证或者单独的测试集来获取测试集误差的无偏估计。 

 

 

139 对于logistic regession问题:prob(t|x)=1/(1+exp(w*x+b))且label y=0或1,请给出loss function和权重w的更新公式及推导。
Logistic regression 的loss function 是log loss, 公式表达为:

w的更新公式可以由最小化loss function得到,即:
其中大括号里面的部分,等价于逻辑回归模型的对数似然函数,所以也可以用极大似然函数方法求解,根据梯度下降法,其更新公式为:

 

140、决策树的父节点和子节点的熵的大小关系是什么?
A. 决策树的父节点更大
B. 子节点的熵更大
C. 两者相等
D. 根据具体情况而定
正确答案:B。在特征选择时,应该给父节点信息增益最大的节点,而信息增益的计算为 IG(Y|X) = H(Y) - H(Y/X),H(Y/X) 为该特征节点的条件熵, H(Y/X) 越小,即该特征节点的属性对整体的信息表示越“单纯”,IG更大。 则该属性可以更好的分类。H(Y/X) 越大,属性越“紊乱”,IG越小,不适合作为分类属性。

 

141、 欠拟合和过拟合的原因分别有哪些?如何避免?
欠拟合的原因:模型复杂度过低,不能很好的拟合所有的数据,训练误差大;
避免欠拟合:增加模型复杂度,如采用高阶模型(预测)或者引入更多特征(分类)等。
过拟合的原因:模型复杂度过高,训练数据过少,训练误差小,测试误差大;
避免过拟合:降低模型复杂度,如加上正则惩罚项,如L1,L2,增加训练数据等。

 

142、语言模型的参数估计经常使用MLE(最大似然估计)。面临的一个问题是没有出现的项概率为0,这样会导致语言模型的效果不好。为了解决这个问题,需要使用(A)
A. 平滑
B. 去噪
C. 随机插值
D. 增加白噪音

 

 

 

 

 

 

 

 

参考:https://blog.csdn.net/v_july_v/article/details/78121924

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页