[CS229学习笔记] 3. 牛顿法,指数族与广义线性模型,softmax

时间:2024-05-18 21:09:34

本文对应的是吴恩达老师的CS229机器学习的第三课。这节课先介绍了牛顿法,然后给出了指数族的定义,并从指数族出发,介绍了广义线性模型并以此解释最小二乘、逻辑回归、softmax等模型的来源。


牛顿法(Newton’s Method)

牛顿法是另一种求解曲线零点的方法,其具体做法如果所示:从某一起始点 θ(0)\theta^{(0)} 开始,找到其对应的函数值 f(θ(0))f(\theta^{(0)}),然后作切线,以切线与横坐标轴的交点作为更新值,多次迭代直至收敛。

[CS229学习笔记] 3. 牛顿法,指数族与广义线性模型,softmax

从上图中我们可以看出,参数 θ(0)\theta^{(0)} 更新的值可以由当前函数值与斜率共同得出,即:

Δ=f(θ(0))f(θ(0))\Delta=\frac{f(\theta^{(0)})}{f^\prime(\theta^{(0)})}

对应的 θ(0)\theta^{(0)} 更新公式就是:

θ(t+1)=θ(t)f(θ(t))f(θ(t))\theta^{(t+1)}=\theta^{(t)}-\frac{f(\theta^{(t)})}{f^\prime(\theta^{(t)})}

那么对于我们上节课中提到的似然函数 l(θ)l(\theta),我们想找到其最大值,即其导数零点 l(θ)=0l^\prime(\theta)=0,只需将牛顿法代入函数 l(θ)l^\prime(\theta) 中进行迭代求解即可。更新公式为:

θ(t+1)=θ(t)l(θ(t))l(θ(t))\theta^{(t+1)}=\theta^{(t)}-\frac{l^\prime(\theta^{(t)})}{l^{\prime\prime}(\theta^{(t)})}

其对应的矩阵形式为(证明从略):

θ(t+1)=θ(t)H1θl\Large\theta^{(t+1)}=\theta^{(t)}-H^{-1}\nabla_\theta l

其中 H=2lθiθjH=\frac{\partial^2l}{\partial\theta_i\partial\theta_j} 是海森矩阵(Hessian matrix)。

牛顿法的优点在于其收敛速度很快,为二次收敛速度;缺点是海森矩阵的求逆操作非常慢(求逆操作时间复杂度为o(n3)o(n^3))。


指数族(Exponential Family)与广义线性模型(Generalized Linear Model)


softmax的原理及推导