机器学习面试知识点总结
偏差与方差
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求偏导,分别得到两个条件(由于对偶性质)
等价关系