基础算法梳理任务2
1.Logistic回归损失函数的极大似然推导:西瓜书公式3.27怎么推来的?
2.什么是牛顿法、拟牛顿法?
牛顿法:
牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数f (x)的泰勒级数的前面几项来寻找方程f (x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。
具体步骤:
首先,选择一个接近函数 f (x)零点的 x0,计算相应的 f (x0) 和切线斜率f ' (x0)(这里f ' 表示函数 f 的导数)。然后我们计算穿过点(x0, f (x0)) 并且斜率为f '(x0)的直线和 x 轴的交点的x坐标,也就是求如下方程的解:
我们将新求得的点的 x 坐标命名为x1,通常x1会比x0更接近方程f (x) = 0的解。因此我们现在可以利用x1开始下一轮迭代。迭代公式可化简为如下所示:
已经证明,如果f ' 是连续的,并且待求的零点x是孤立的,那么在零点x周围存在一个区域,只要初始值x0位于这个邻近区域内,那么牛顿法必定收敛。 并且,如果f ' (x)不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。
牛顿法的优缺点总结:
优点:二阶收敛,收敛速度快;
缺点:牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。
拟牛顿法:
拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。
具体步骤:
拟牛顿法的基本思想如下。首先构造目标函数在当前迭代xk的二次模型:
这里Bk是一个对称正定矩阵,于是我们取这个二次模型的最优解作为搜索方向,并且得到新的迭代点:
其中我们要求步长ak 满足Wolfe条件。这样的迭代与牛顿法类似,区别就在于用近似的Hesse矩阵Bk 代替真实的Hesse矩阵。所以拟牛顿法最关键的地方就是每一步迭代中矩阵Bk的更新。现在假设得到一个新的迭代xk+1,并得到一个新的二次模型:
我们尽可能地利用上一步的信息来选取Bk。具体地,我们要求:
从而得到
这个公式被称为割线方程。常用的拟牛顿法有DFP算法和BFGS算法。
3.为什么不用线性回归做分类?
因为线性回归模型学习到的是一个连续的值,而做分类任务时需要得到的是离散的类别值,而使用线性回归得到的可能不属于这些类别值,所以需要将分类任务的标签值与线性回归的预测值联系起来,而logistic回归通过sigmoid函数可以将预测值映射为0到1之间的值,选定正负例的取值范围即可将连续的预测值转化为0或1的二分类问题。
4.Logistic回归为什么不像线性回归那样用平方损失函数?
从求最优解的角度来解释:
如果用最小二乘法,目标函数就是
图像如图所示:
是非凸的,不容易求解,会得到局部最优。
如果用最大似然估计,目标函数就是对数似然函数:
图像如图所示:
是关于 的高阶连续可导凸函数,可以方便通过一些凸优化算法求解,比如梯度下降法、牛顿法等。
5.Logistic回归的参数为什么不像线性回归那样直接公式求解?
因为Logistic回归的损失函数本身无法推导出w和b的解析解,只能通过最优化算法去近似求解。
6.Logistic回归与线性回归有哪些联系?
线性回归和逻辑回归都是广义线性模型,具体的说,都是从指数分布族导出的线性模型,线性回归假设Y|X服从高斯分布,逻辑回归假设Y|X服从伯努利分布,这两种分布都是属于指数分布族,我们可以通过指数分布族求解广义线性模型(GLM)的一般形式,导出这两种模型。指数分布族拥有一个良好的性质,就是在给定条件下熵最大的分布,所以高斯分布和伯努利分布也是最大熵分布,符合机器学习的模型选取准则——最大熵原理。