第四课,内容如下:
一、牛顿方法:
在上一课中,提到了用梯度上升(下降)的方法来拟合逻辑回归模型,这里介绍了一种比梯度上升更快的方法,即牛顿方法来进行拟合。
牛顿方法的原理是:
对于一个函数f(x),若要求f(x)= 0 时的x的取值,则任取一个初始值x0,那么新的迭代值x1=f(x0)/f'(x0),即这一点的函数值除以导数值。这实际上是求得f(x0)处的切线,求出的新迭代值x1是切线与X轴的交点,如下图
以此类推,得到牛顿方法的迭代公式:Xt+1=Xt-f(Xt)/f'(Xt)。
将此思想应用到逻辑回归中,我们要求得使似然性函数L(θ)最大的θ值,那么也就是求得L'(θ)等于0这个点的θ值(最大值说明是峰值,峰值处对应导数为0)。
因此可得迭代公式:
牛顿方法的迭代速度非常快,被称为二次收敛,假设在一次迭代之前,与正确解的距离是0.01,那么迭代一次后,误差的量级就将变为0.001,再迭代一次,量级就变为了0.0000001
以上是对于θ只是一行数据,对于一般化的牛顿方法,θ是一个向量,因此对应的牛顿迭代公式如下:
其中是
对于
的偏导数
H是一个n*n黑塞矩阵(Hessian matrix),n为特征量的个数,具体的,对于H的每一项,有
此方法缺点在于,每次迭代均需要重新计算H的值,特征数量较大时,会影响速度。
另外吐槽一下Andrew Ng真爱玩,提了一个问题说之前用的牛顿方法是求最大值,那么求最小值要怎么修改算法,于是把视频暂停,冥思苦想半天,觉得应该是一样呀,毕竟都是导数为0,于是继续往下看,他就笑呵呵的告诉大家了,其实是没变化
在之前的内容,可以概括为以下两点:
1、对于y的值在整个实数域的,可以使用线性回归
2、对于y的值在0,1取值的,使用逻辑回归。
二、指数分布函数族
在之前的内容我们使用了高斯分布(线性回归)和伯努利分布(逻辑回归)两种模型,事实上这两者均属于指数分布函数族,由不同的参数组合而形成。
指数函数族一般形式为:
其中,被称为自然参数(natural parameter)或者典范参数(canonical parameter);
T(y)是充分统计量(sufficient statistic)(对于我们考虑的分布来说,通常T(y)=y);
是日志分配函数(log partition function),是一个规范化常数,使得分布的和为1.
改变T,a,b,可以得到如高斯分布、伯努利分布等不同的函数族。
T,a,b不变,通过改变参数得到同一函数族下的不同的分布.
高斯和伯努利均可以表示为这一形式,具体过程详见视频,这里就不提了。
三、广义线性模型(GLM)
当讨论完指数函数族之后,很自然地就可以得到广义线性模型的概念。
广义线性模型的意义在于,当你有一个新的待机器学习的样例,你只需要决定一件事:假设它服从于哪种指数函数族,然后就可以根据一个固定的流程,得出它的回归模型,比如对于一个样本的输出值y值,仅有0,1两项,那么你可以假设它服从于伯努利分布,然后根据广义线性模型的一个固定流程,就可以得出该样本的模型——那就是逻辑回归模型。同样,如果假设y服从于高斯分布,那么就能得到最小二乘模型
为了导出GLM,作三个假设:
(1)
(2)给定x,我们的目标是预测T(y)的预期值. 在大部分例子中,我们有T(y)=y,因此意味着我们通过学习得到的假设满足(这个假设对logistic回归和线性回归都成立)
(3)自然参数和输入变量是线性相关的,也就是说(如果自然参数是向量,则
)
而我们要做的决策,就是在第一步决定使y服从于哪一种指数函数族,之后的模型就可以自动得到。
而有了这个模型之后,我们要做的就是拟合模型的参数θ,即根据输入的样本集(x,y),得到一组合适的参数θ,使得似然性函数L(θ)最大即可。
以视频最后的softmax为例,我有一个新的机器学习问题,它有k种输出,于是我选择采用多项式分布来作为我的指数分布族,之后的每一步在选择了多项式分布这个决定被做出之后,都能自动的得到。与最小二乘法和logistic回归类似,softmax的L(θ)可以写成下面的形式: