首页 > 代码库 > 机器学习第二课

机器学习第二课

    上一个博文,我们讲了Linear Regression, gradient descent, normal equations和Locally weighted linear regression,这次博文我们重点来学习Logistic regression,这是机器学习非常重要的一种回归模型,可以说是对Linear Regression的一种离散化表示,对二分类的一种常用方法。

    回顾我们上个博文中讲到的Linear Regression模型,image ,给定input x,h(x)是其预测值,由于Linear Regression是一个连续的模型,而二分类问题是一个离散的模型,给定input,其输出要么是negative class要么是positive class。于是我们想,能不能再Linear Regression的基础上改进下,是的我们的连续的回归模型变成一个二分类的模型,我们是这样做的。引入函数:image使得预测h(x)如下:

                                                                       image

    这里的image称为logistic function或者sigmoid function。其图像如下:

                                                             image

    由图可以知道对于任何给定的input X, 我们得到的预测值都是(0~1)之间, 这时候我们只需要把预测的值拿来和0.5比较就能分类了,当output > 0.5 则判断为positive,当output < 0.5 则是negative。这样我们就通过sigmoid函数把一个连续的回归模型变成了一个二分类的问题。下面来讲讲实际我们是怎样来更新参数的:

 

    Notice that 当Z趋向于正无穷时函数值为1,当Z趋向于负无穷时函数值为0,。image

    其中:

                                                                    image

    Note that this can be written more compactly as:

                                                                   image

     同样给定input X我们可以利用likelihood(我前面的博文有讲解:http://www.cnblogs.com/txg198955/p/4063541.html)

                                                                   image

    像以前一样,我们来maximum 似然函数的log形式:

                                                                 image

    我们对其求对数:

                                                                image

   上一步我们用到了sigmoid函数的一个性质:image, 由梯度下降法我们对image的更新就变成了下面这样:

                                                                        image

    这个更新参数和我们之间的线性回归模型的参数有点像但又不完全一样,因为我们这里的预测函数式非线性的,这样我们就能通过更新参数image,从而解决这个二分类的问题了。好了,讲到这里大家对logistic regression的运作应该就比较清楚了吧。接下来我们来讲一种优化算法-牛顿法(相对于梯度下降法),我们还是利用上面的例子来说明。由上面的分析,我们需要计算最大似然函数,这里我们转换求似然函数对数导数的最大值。我们可以利用牛顿法来求似然函数对数导数的最大值,也就是image,这里的image就是似然函数对数的导数,具体操作如下所示:

    Newton’s method performs the following update:

                                                                                image

    下面是Newton’s method,theta的更新图:

                      image

    初始的theta在4.5位置,通过牛顿法不断更行,不断向image靠近,通过有限的迭代次数我们就可以得到使image的theta。由于在logistic regression中我们的theta是一个向量,所以我们也应该用向量的形式来表示牛顿法,于是我们可以得到下面的更新式子:

                                                                                    image

    Here, ∇θ?(θ) is, as usual, the vector of partial derivatives of ?(θ) with respect to the θi’s; and H is an n-by-n matrix (actually, n + 1-by-n + 1, assuming that we include the intercept term) called the Hessian, whose entries are given by:

   

                                                                                          image

    由于我们是要求似然函数对数导数的最小值,然后牛顿法中又有一次求导运算,所以我们的image要求二次偏导。OK到这里我们队牛顿法也有了一个初步的认识,Newton’s method

和gradient descent method都是一种优化算法,Newton’s method 的下降速度较梯度下降更快。

机器学习第二课