机器学习面试知识点总结

偏差与方差

 what?

偏差方差分别是用于衡量一个模型泛化能力的误差的两个方面;

  •  模型的偏差,指的是模型预测的期望值真实值之间的差;
  •  模型的方差,指的是模型预测的期望值预测值之间的差的平方和;
  •  偏差用于描述模型的拟合能力方差用于描述模型的稳定性

 机器学习面试知识点总结

why? 

  • 偏差通常是做了错误的假设,或者模型的复杂度不够 (欠拟合)。
  •  方差通常是模型的复杂度太高(过拟合)造成的。

 How? 

  • High bias解决方案:Boosting、复杂模型(非线性模型、增加神经网络中的层)、更多特征
    High Variance解决方案:bagging、简化模型、降维、正则化
    

超参数调优

 超参数搜索过程:

  • 将数据集分为训练集,验证集及测试集。
  • 选择模型性能评价指标
  • 用训练集对模型进行训练
  • 在验证集上对模型进行参数进行搜索,用性能指标评价参数好坏
  • 选出最优参数

 常见超参数搜索算法:

  • 网格搜索
  • 随机搜索
  • 启发式搜索

 网格搜索

网格搜索是在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果(暴力搜索)。

原理:在一定的区间内,通过循环遍历,尝试每一种可能性,并计算其约束函数和目标函数的值,对满足约束条件的点,逐个比较其目标函数的值,将坏的点抛弃,保留好的点,最后便得到最优解的近似解。

为了评价每次选出的参数的好坏,我们需要选择评价指标,评价指标可以根据自己的需要选择accuracy、f1-score、f-beta、percision、recall等。

同时,为了避免初始数据的划分对结果的影响,我们需要采用交叉验证的方式来减少偶然性,一般情况下网格搜索需要和交叉验证相结合使用。

随机搜索

随机搜索(random search)是利用随机数去求函数近似的最优解的方法,区别于网格搜索的暴力搜索方式。

原理:在一定的区间内,不断随机地而不是有倾向性产生随机点,并计算其约束函数和目标函数的值,对满足约束条件的点,逐个比较其目标函数的值,将坏的点抛弃,保留好的点,最后便得到最优解的近似解。

这种方法是建立在概率论的基础上,所取随机点越多,则得到最优解的概率也就越大。这种方法存在精度较差的问题,找到近似最优解的效率高于网格搜索。随机搜索一般用于粗选或普查。

启发式搜索

启发式搜索(Heuristically Search)又称为有信息搜索(Informed Search),它是利用问题拥有的启发信息来引导搜索,达到减少搜索范围、降低问题复杂度的目的,这种利用启发信息的搜索过程称为启发式搜索。

原理:在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。

正则化、L1和L2

  •  L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归
  • L1正则化是指权值向量w中各个元素的绝对值之和
  • L2正则化是指权值向量w 中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号)
  • L1和L2正则先验分别服从什么分布,L1是拉普拉斯分布,L2是高斯分布
  • L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
    L2正则化可以防止模型过拟合(overfitting)。当然,一定程度上,L1也可以防止过拟合

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

what

1)线性归一化:

机器学习面试知识点总结

这种归一化方法比较适用在数值比较集中的情况。这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量值来替代max和min。
2)标准差标准化
经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:

机器学习面试知识点总结

 

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

WHY 

为什么要归一化? 

 1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度。

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

 当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;

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

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

 Covariance shift 

在模型训练的时候我们一般都会做样本归一化(样本归一化作用会在下面文章介绍),在往多层神经网络传播时,前面层参数的改变,使得后面层的输入分布发生改变时,就叫Internal covariance shift。这会导致:其一,增加模型训练时间,因为样本分布变了,要调整 参数适应这种分布;其二:在MachineLN之**函数文章中提到的使用sigmoid函数,梯度消失的问题;

LR如何解决低维不可分

特征映射:通过特征变换的方式把低维空间转换到高维空间,而在低维空间不可分的数据,到高维空间中线性可分的几率会高一些。

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

 通过梯度下降法求解的模型一般都是需要归一化的,比如线性回归、logistic回归、KNN、SVM、神经网络等模型。

但树形模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,
因为数值缩放不影响分裂点位置,对树模型的结构不造成影响。
如决策树、随机森林(Random Forest)。

 几种参数估计的方法最大似然估计(MLE),最大后验概率估计(MAP),贝叶斯估计

SVM

 支持向量机,是一种二分类模型,其基本定义为特征空间上的间隔最大的线性分类器,其学习策略是间隔最大化,最终可转换为一个凸二次规划问题的求解。

什么是分离超平面

logistics回归中的决策边界,在SVM中我们叫分离超平面。 

机器学习面试知识点总结

问?为什么上面的图片仅仅是一条直线,我们却叫它一个超平面?

答:上面只是二维超平面的一个例子,但实际上SVM在任意维度有效。

超平面是平面的一般化

 什么是最优分离超平面?

  • 在一维的平面中,它是点
  • 在二维中,它是线
  • 在三维中,它是面
  • 在更高的维度中,我们可以称之为超平面

选择一个尽可能离所有数据点都远的分离超平面

机器学习面试知识点总结

机器学习面试知识点总结

SVM就是要找到一个最优超平面保证:

  • 正确的对训练数据进行分类。
  • 对未知数据也要进行很好的分类。

 机器学习面试知识点总结

Margin就是最优分类超平面的间隔。

给定一个特定的超平面,我们可以计算出这个超平面与和它最接近的数据点之间的距离。间隔(Margin)就是二倍的这个距离。

函数间隔Functional margin与几何间隔Geometrical margin 

函数间隔

超平面w*x + b = 0确定的情况下,|w*x+b|它表示点x到超平面的距离,通过判断w*x+b的符号类标记y的符号是否一致可以判断分类是否正确,所以(y*(w*x+b))的正负形可以判断分类是否正确。

函数间隔(用机器学习面试知识点总结表示):

机器学习面试知识点总结

  而超平面(w,b)关于T中所有样本点(xi,yi)的函数间隔最小值(其中,x是特征,y是结果标签,i表示第i个样本),便为超平面(w, b)关于训练数据集T的函数间隔:

机器学习面试知识点总结min机器学习面试知识点总结i  (i=1,...n)

 但这样定义的函数间隔有问题,即如果成比例的改变w和b(如将它们改成2w和2b),则函数间隔的值f(x)却变成了原来的2倍(虽然此时超平面没有改变),所以只有函数间隔还远远不够。

几何间隔

 假定对于一个点 x ,令其垂直投影到超平面上的对应点为 x0 ,w 是垂直于超平面的一个向量,机器学习面试知识点总结为样本x到超平面的距离,如下图所示:

机器学习面试知识点总结

根据平面几何知识,有

机器学习面试知识点总结

 其中||w||为w的二阶范数(范数是一个类似于模的表示长度的概念),机器学习面试知识点总结是单位向量(一个向量除以它的模称之为单位向量)。

  又由于x0 是超平面上的点,满足 f(x0)=0,代入超平面的方程,可得,即。

    随即让此式的两边同时乘以,再根据和,即可算出γ: 

  为了得到的绝对值,令乘上对应的类别 y,即可得出几何间隔(用表示)的定义:

    从上述函数间隔和几何间隔的定义可以看出:几何间隔就是函数间隔除以||w||,而且函数间隔y*(wx+b) = y*f(x)实际上就是|f(x)|,只是人为定义的一个间隔度量,而几何间隔|f(x)|/||w||才是直观上的点到超平面的距离。

支持向量和最大几何间隔

 根据上面的证明,超平面机器学习面试知识点总结机器学习面试知识点总结上的数据点到最大几何间隔分离超平面机器学习面试知识点总结的距离最近而且等于机器学习面试知识点总结,也就是说如果LSCOP问题的最优解为机器学习面试知识点总结,那么超平面机器学习面试知识点总结机器学习面试知识点总结上的数据点机器学习面试知识点总结正好使不等式约束条件取等号,即机器学习面试知识点总结。这些点称之为支持向量,机器学习面试知识点总结机器学习面试知识点总结称之为支持超平面。所以支持向量分布在支撑超平面上。如图:

机器学习面试知识点总结

如果去掉图中支持向量以外的数据点,你会发现,最大几何间隔分离超平面并不会变。实际上,它是由支持向量决定的,这也是支持向量机名字的由来。

 

最大间隔分类器Maximum Margin Classifier的定义

 

几何间隔的定义,可知:如果令函数间隔等于1(之所以令等于1,是为了方便推导和优化,且这样做对目标函数的优化没有影响,至于为什么,请见本文评论下第42楼回复),则有 = 1 / ||w||且,从而上述目标函数转化成了

    相当于在相应的约束条件下,最大化这个1/||w||值,而1/||w||便是几何间隔。   

   

于是最大间隔分类器(maximum margin classifier)的目标函数可以定义为:机器学习面试知识点总结

    同时需满足一些条件,根据间隔的定义,有机器学习面试知识点总结

    其中,s.t.,即subject to的意思,它导出的是约束条件。

    回顾下几何间隔的定义机器学习面试知识点总结,可知:如果令函数间隔机器学习面试知识点总结等于1(之所以令机器学习面试知识点总结等于1,是为了方便推导和优化,且这样做对目标函数的优化没有影响,至于为什么,请见本文评论下第42楼回复),则有 = 1 / ||w||且机器学习面试知识点总结,从而上述目标函数转化成了

机器学习面试知识点总结

    相当于在相应的约束条件下机器学习面试知识点总结,最大化这个1/||w||值,而1/||w||便是几何间隔机器学习面试知识点总结。   

    如下图所示,中间的实线便是寻找到的最优超平面(Optimal Hyper Plane),其到两条虚线边界的距离相等,这个距离便是几何间隔机器学习面试知识点总结,两条虚线间隔边界之间的距离等于2机器学习面试知识点总结,而虚线间隔边界上的点则是支持向量。由于这些支持向量刚好在虚线间隔边界上,所以它们满足机器学习面试知识点总结(还记得我们把 functional margin 定为 1 了吗?上节中:处于方便推导和优化的目的,我们可以令机器学习面试知识点总结=1),而对于所有不是支持向量的点,则显然有机器学习面试知识点总结

机器学习面试知识点总结

从线性可分到线性不可分

 接着考虑之前得到的目标函数:

机器学习面试知识点总结

   由于求机器学习面试知识点总结的最大值相当于求机器学习面试知识点总结的最小值,所以上述目标函数等价于(w由分母变成分子,从而也有原来的max问题变为min问题,很明显,两者问题等价):

1.1、从原始问题到对偶问题的求解

 

接着考虑之前得到的目标函数:

机器学习面试知识点总结

     由于求机器学习面试知识点总结的最大值相当于求机器学习面试知识点总结的最小值,所以上述目标函数等价于(w由分母变成分子,从而也有原来的max问题变为min问题,很明显,两者问题等价):

机器学习面试知识点总结

 拉格朗日橙子发(高数求极值):

机器学习面试知识点总结

通过给每一个约束条件加上一个拉格朗日乘子(Lagrange multiplier)机器学习面试知识点总结,定义拉格朗日函数(通过拉格朗日函数将约束条件融合到目标函数里去,从而只用一个函数表达式便能清楚的表达出我们的问题):

机器学习面试知识点总结

 KKT条件

 分别对w和b求偏导,分别得到两个条件(由于对偶性质)

机器学习面试知识点总结

等价关系