本讲大纲:
1.牛顿方法(Newton’s method)
2.指数族(Exponential family)
3.广义线性模型(Generalized linear models)
1.牛顿方法
假设有函数: ,我们希望找到满足 的theta值. 这里theta是实数. 牛顿方法执行下面的更新: 下图为执行牛顿方法的过程:简单的来说就是通过求当前点的导数得到下一个点.用到的性质是导数值等于该点切线和横轴夹角的正切值.
令
,我们可以用同样的算法去最大化l牛顿方法的一般化: 如果theta是一个向量,那么: 其中, 是 对 的偏导数; H称为黑塞矩阵(Hessian matrix),是一个n*n的矩阵,n是特征量的个数,并且 黑塞矩阵
牛顿方法的收敛速度比批处理梯度下降快很多,很少次的迭代就能够非常接近最小值了;但是当n很大时,每次迭代求黑塞矩阵和黑塞矩阵的逆代价是很大的.
2.指数族
指数族形式:其中,
被称为自然参数(natural parameter)或者典范参数(canonical parameter); T(y)是充分统计量(sufficient statistic)(对于我们考虑的分布来说,通常T(y)=y); 是日志分配函数(log partition function), 是一个规范化常数,使得分布的和为1. 给定T,a,b,通过改变参数 得到不同的分布.</br>
下面展示的伯努利(Bernoulli)和高斯分布(Gaussian distribution)都是指数分布族的特例:
伯努利分布可以写成:
伯努利分布 因此,令 (有趣地发现其反函数为 ),并且,高斯分布: 回忆我们对线性回归求导时,方差对我们最终结果并没有任何影响.为了使问题简化,令
于是有, 得:指数分布族还包括很多其他的分布: 多项式分布(multinomial) 泊松分布(poisson):用于计数的建模 伽马分布(gamma),指数分布(exponential):用于对连续非负的随机变量进行建模 β分布,Dirichlet分布:对小数建模
</br>
3.GLMS 广义线性模型
为了导出GLM,作三个假设:
(2)给定x,我们的目标是预测充分统计量T(y)的预期值. 在大部分例子中,我们有T(y)=y,因此意味着我们通过学习得到的假设满足
(这个假设对logistic回归和线性回归都成立)
3.1普通的最小二乘法 为了说明普通的最小二乘法是GLM的特例,设定目标变量y(在GLM术语中叫响应变量-response variable)是连续的,并且假设服从高斯分布
,高斯分布写成指数族的形式,有 得到:3.2 logistic回归 考虑logistic,我们感兴趣的是二元分类,也就是说
很容易想到指数分布族的伯努利分布,有 ,同理得到:正则响应函数(canonical response function): 正则链接函数(canonical link function):
3.3 softmax 回归
当分类问题的y取值不止两个时,我们需要采用多项式分布(multinomial distribution).
在推导多项式分布的GLM之前,先把多项式分布表达成指数族.
为了参数化多项式分布的k各可能结果,有人可能会用k个参数来说明每一种情况的可能性,但是这些参数是冗余的,并且并不是独立的(由于知道任何其中的k-1个,剩下的一个就可以求出,因为满足 ). 因此我们用k-1个参数
对多项分布进行参数化, 这里写图片描述 . 定义 ,如下,
介绍一个很有用的记号, 这里写图片描述 ,例如1{2=3}=0,1{3=5-2}=1. 因此T(y)和y的关系为 . 并且有 ,因此:
链接函数为, ,为了方便,定义 .
可得: 因此 ,反代回去得到响应函数:
从η到 这里写图片描述 的映射叫做softmax函数.
根据假设3, 得到:
这个应用于分类问题(当 ),叫做softmax回归(softmax regression).是logistic回归的推广.
与最小二乘法和logistic回归类似,
再通过梯度上升或者牛顿方法求出θ.
扩展
1. 为什么GLM要求被解释变量属于指数族?
2. 梯度下降法和高斯牛顿法的区别
梯度下降法和高斯牛顿法都是最优化方法。
其区别之处在于,梯度下降法在寻找目标函数极小值时,是沿着反梯度方向进行寻找的。梯度的定义就是指向标量场增长最快的方向,在寻找极小值时,先随便定初始点(x0,y0)然后进行迭代不断寻找直到梯度的模达到预设的要求。
但是梯度下降法的缺点之处在于:在远离极小值的地方下降很快,而在靠近极小值的地方下降很慢。
而高斯牛顿法是一种非线性最小二乘最优化方法。其利用了目标函数的泰勒展开式把非线性函数的最小二乘化问题化为每次迭代的线性函数的最小二乘化问题。
高斯牛顿法的缺点在于:若初始点距离极小值点过远,迭代步长过大会导致迭代下一代的函数值不一定小于上一代的函数值。所以在高斯牛顿法中加入了因子μ,当μ大时相当于梯度下降法,μ小时相当于高斯牛顿法。在使用Levenberg-Marquart时,先设置一个比较小的μ值,当发现目标函数反而增大时,将μ增大使用梯度下降法快速寻找,然后再将μ减小使用牛顿法进行寻找。
牛顿法要比梯度下降法更具有全局判断能力。梯度法从初始点的领域开始判断,在局部进行下降,然后步步逼近极值,往往是走之字型的。
牛顿法在二阶导数的作用下,从函数的凸性出发,直接搜索怎样到达极值点,也就是说在选择方向时,不仅考虑当前坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。
从收敛速度来看,梯度下降是线性收敛,牛顿法是超线性的,至少二阶收敛。
3. Matlab代码实现
暂缺
网友评论