机器学习的相关概念

1、最大熵模型

最大熵原理是概率学习的一个准则。最大熵原理认为,在学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合。所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型,而这个熵最大的模型称为最大熵模型。

最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是“等可能的”。

最大熵模型的学习可以形式化为约束最优化问题,即:

                                                            \mathop{min}_{P\in C} \ \ -H(P) = \sum_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)

                                                              s.t.      E_{P} (f_{i}) -E_{\widetilde{P}}(f_{i}) = 0

                                                                           \sum_{y}P(y|x) = 1

最大熵模型实际上是一个条件概率。

2、拉格朗日乘子法

拉格朗日乘子法是一种优化算法,它是寻找多元函数在一组约束下的极值的方法。对于约束最优化问题,通过引入拉格朗日乘子,可将有d个变量与k个约束条件的最优化问题转化为具有d+k个变量的无约束优化问题。最大熵模型和支持向量机是应用拉格朗日乘子法的典型模型 

约束优化问题根据约束条件的不同又可分为:等式约束优化问题和不等式约束优化问题。

等式约束问题:                         

假设函数f(x)g_{i}(x)是定义在实数域的连续可微函数,在n个等式约束下的优化问题             

                                                                    \mathop{min}_{x} \ \ f(x)   

                                                      s.t. \ \ g_{i}(x) = 0 \ \ (i = 1,2,...,n)   

那么直接可以定义拉格朗日函数:

                                                       L(x,\lambda) = f(x) + \sum_{i = 1}^{n} \lambda_{i}g_{i}(x)

这样就将等式约束优化问题变为无约束优化问题

不等式约束优化问题:

假设函数f(x)h_{j}(x)是定义在实数域的连续可微函数,在m个不等式约束下的优化问题

                                                                    \mathop{min}_{x} \ \ f(x)

                                                     s.t. \ \ h_{j}(x) \leq 0 \ \ (j = 1,2,...,m)

那么对应的拉格朗日函数为:

                                                         L(x,\mu) = f(x) + \sum_{j = 1}^{m} \mu_{j}h_{j}(x)

但是不等式约束会引入KKT条件(j = 1,2,...,m):

                                                                  \begin{cases} h_{j}(x) \leq 0 \\ \mu_{j} \geq 0 \\ \mu_{j}h_{j}(x) = 0 & \end{cases}

将其推广,考虑n个等式约束和m个不等式约束,那么其约束最优化问题

                                                                  \mathop{min}_{x} \ \ f(x)

                                                   s.t. \ \ g_{i}(x) = 0 \ \ (i = 1,2,...,n)   

                                                            h_{j}(x) \leq 0 \ \ (j = 1,2,...,m)

那么相应的拉格朗日函数为:

                                                     L(\vec{x},\vec{\lambda},\vec{\mu}) = f(\vec{x}) +\sum_{i = 1}^{n}\lambda_{i}g_{i}(\vec{x}) + \sum_{j = 1}^{m}\mu_{j}h_{j}(\vec{x})     

其中f(x),g(x),h(x)为连续可微函数,\lambda_{i},\mu_{j}为拉格朗日乘子。          

3、KKT条件

     

4、梯度下降法

(1)、随机梯度下降法(stochastic gradient descent,sgd):在更新权重的时候只考虑一个样本点,这样大大减小了计算复杂度,每一次更新不一定朝着极小值的方向,但是整体方向是朝着极小值的方向,需要的迭代次数要比批量梯度下降多。

(2)、批量梯度下降法(batch gradient descent,bgd):每一次更新都是针对所有的训练样本来最小化损失函数的,这样是朝着最小值的方向进行更新的,每一次都是沿着梯度下降最快的方向进行更新的,但是由于每一次更新都是针对所有训练样本,所以计算复杂度较高,在样本数量较多时,不适用。    

(3)、小批量梯度下降法(mini-batch gradient descent,mbgd):是sgd和bgd的折中算法,每次更新权重的时候考虑小批量样本点,比如每次考虑10或20个样本点,这样既提高了训练速度,也减少了迭代次数。

5、L_{1}正则化和L_{2}正则化

在损失函数后一般会加一个额外项:L_{1}正则项和L_{2}正则项

L_{1}正则化和L_{2}正则化可看做是损失函数的惩罚项,惩罚是指对损失函数中某些参数做一些限制。L_{1}L_{2}都有助于降低过拟合的风险,但是L_{1}更容易获得“稀疏解”。

L_{1}正则化:

使用L_{1}正则化的模型叫做Lasso回归,它可以产生稀疏权值矩阵,即产生一个稀疏模型,用于特征选择。

稀疏模型与特征选择:稀疏矩阵是指很多元素是0,只有少数元素为非0的矩阵;在机器学习中,有时特征数量很多,但并不是所有特征都对模型有贡献,那些对模型贡献微乎其微的特征,我们把它对应的权重可以近似设置为0,只保留主要的特征权重,这样既保留了模型的主要框架,又降低了权重矩阵的稀疏性。这一点的思想和奇异值分解、降维的思想相近。

L_{1}正则化就是以L_{1}范数作为正则化项,以线性回归模型为例,其正则化后的表达式为:

                                                                       

L_{2}正则化:

L_{2}正则化可以有效的防止过拟合,其在损失函数后加入L_{2}范数来进行正则化,以线性回归中的为例,以平方误差函数为损失函数,其正则化的表达式为:

                                                                          

称此式为“岭回归”(ridge regression)。其中\lambda称为正则化参数。

                                               

范数等值线和平方误差等值线的相交处即为上式中的解,很明显,L_{1}正则化的解大多位于座标轴上,因此其更容易得到稀疏解。

6、机器学习中数据缺失值的处理

当某特征的缺失值较多时,可以将该特征舍弃掉,避免带入更大的误差。

当某特征的缺失值较少时,处理方法就会更多一些:

1、用均值填充缺失值

2、使用上下数据进行填充

3、利用插值法进行填充

7、无约束最优化问题求解方法

1.梯度下降法:

梯度下降法(gradient descent)是一阶优化算法,也称为最速下降法(实际上并不是最速)。梯度下降法是迭代算法,每一步需要求解目标函数的梯度向量,由于负梯度方向是使函数数值下降最快的方向,在迭代的每一步,以负梯度方向更新x的值,从而达到减小函数值的目的。  梯度下降的算法如下:

                       

当目标函数是凸函数时,梯度下降的解是全局最优解。一般情况下,其解不保证是全局最优解。

2. 牛顿法

牛顿法(Newton method)是二阶优化算法,每一步需要求解目标函数的Hessian矩阵(多元函数的二阶偏导数构成的方阵,其描述的是函数的局部曲率)的逆矩阵,计算复杂。其算法如下:

             

下图中红色表示牛顿法的迭代路径,绿色表示梯度下降法的迭代路径。

                                                                           

3. 拟牛顿法

拟牛顿法是基于牛顿法设计的,其通过正定矩阵近似海森矩阵的逆矩阵或海森矩阵。

4. 共轭梯度法

共轭梯度法是介于梯度下降法(最速下降法)与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了梯度下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hessian矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。在各种优化算法中,共轭梯度法是非常重要的一种。其优点是所需存储量小,具有逐步收敛性,稳定性高,而且不需要任何外来参数。下图为共轭梯度法和梯度下降法搜索最优解的路径对比示意图:

                                                                 

红色表示共轭梯度法,绿色表示梯度下降法。

8. 偏差和方差

当我们在讨论预测模型是,预测误差由两部分导致:偏差(bias)和方差(variance)。偏差是模型预测值与实际值之间的差值,它描述模型的精确性;方差描述的是给定数据点模型预测的变异性,即模型的稳定性。下图是偏差和方差的靶心图表示,靶心位置(即红圈位置)表示模型完美的预测。假设将模型的每一次预测视为一次打靶,那么显然每次打靶都打中红圈区域最好,也就是打的又准又稳,准对应着low bias,而稳则对应着low variance。

                                          

想要low bias,就得复杂化模型,增加模型参数,但是这样容易导致过拟合(overfitting),过拟合对应high variance;想要low variance,就得简化模型,减少模型参数,这样容易导致欠拟合(underfitting),欠拟合对应high bias。

                                 

上面的图表示模型复杂度和预测误差之间的关系。

9. GBDT和XGBoost的区别

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章