机器学习第二课
上一个博文,我们讲了Linear Regression, gradient descent, normal equations和Locally weighted linear regression,这次博文我们重点来学习Logistic regression,这是机器学习非常重要的一种回归模型,可以说是对Linear Regression的一种离散化表示,对二分类的一种常用方法。
回顾我们上个博文中讲到的Linear Regression模型, ,给定input x,h(x)是其预测值,由于Linear Regression是一个连续的模型,而二分类问题是一个离散的模型,给定input,其输出要么是negative class要么是positive class。于是我们想,能不能再Linear Regression的基础上改进下,是的我们的连续的回归模型变成一个二分类的模型,我们是这样做的。引入函数:使得预测h(x)如下:
这里的称为logistic function或者sigmoid function。其图像如下:
由图可以知道对于任何给定的input X, 我们得到的预测值都是(0~1)之间, 这时候我们只需要把预测的值拿来和0.5比较就能分类了,当output > 0.5 则判断为positive,当output < 0.5 则是negative。这样我们就通过sigmoid函数把一个连续的回归模型变成了一个二分类的问题。下面来讲讲实际我们是怎样来更新参数的:
Notice that 当Z趋向于正无穷时函数值为1,当Z趋向于负无穷时函数值为0,。
其中:
Note that this can be written more compactly as:
同样给定input X我们可以利用likelihood(我前面的博文有讲解:http://www.cnblogs.com/txg198955/p/4063541.html)
像以前一样,我们来maximum 似然函数的log形式:
我们对其求对数:
上一步我们用到了sigmoid函数的一个性质:, 由梯度下降法我们对的更新就变成了下面这样:
这个更新参数和我们之间的线性回归模型的参数有点像但又不完全一样,因为我们这里的预测函数式非线性的,这样我们就能通过更新参数,从而解决这个二分类的问题了。好了,讲到这里大家对logistic regression的运作应该就比较清楚了吧。接下来我们来讲一种优化算法-牛顿法(相对于梯度下降法),我们还是利用上面的例子来说明。由上面的分析,我们需要计算最大似然函数,这里我们转换求似然函数对数导数的最大值。我们可以利用牛顿法来求似然函数对数导数的最大值,也就是,这里的就是似然函数对数的导数,具体操作如下所示:
Newton’s method performs the following update:
下面是Newton’s method,theta的更新图:
初始的theta在4.5位置,通过牛顿法不断更行,不断向靠近,通过有限的迭代次数我们就可以得到使的theta。由于在logistic regression中我们的theta是一个向量,所以我们也应该用向量的形式来表示牛顿法,于是我们可以得到下面的更新式子:
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:
由于我们是要求似然函数对数导数的最小值,然后牛顿法中又有一次求导运算,所以我们的要求二次偏导。OK到这里我们队牛顿法也有了一个初步的认识,Newton’s method
和gradient descent method都是一种优化算法,Newton’s method 的下降速度较梯度下降更快。
接下来我们来讲一下GLM(Generalized Linear Models),首先说明一下我们接触到的很多预测模型都是GLM,比如伯努利分布和高斯分布。讲之前我们先来了解下指数族分布的概念。如果给定一个分类模型,能写成下面的形式,则称之为:
Here, η is called the natural parameter (also called the canonical parameter) of the distribution; T(y) is the sufficient statistic (for the distributions we consider, it will often be the case that T(y) = y); and a(η) is the log partition function.
首先我们来证明为什么伯努利分布是一个GLM,伯努利分布的概率分布可以写成如下:
当我们的各个参数取值如下时,伯努利分布就变成了一个GLM
同样高斯分布也是一个GLM
其中各参数取值如下:
我们可以推(怎么推出我也不知道)出当一个模型要成为GLM时,需要满足下面三个条件(这里直接贴出来了,写了一个晚上手都写痛了):
这样我们就可以利用GLM的这三个性质来推出Ordinary Least Squares和Logistic Regression。
首先来推出Ordinary Least Squares,由上面的分析可知:是一个GLM,并且,由定理的第二条可知
同样由上面的伯努利分布满足GLM可知:
这样我们就利用GLM推出了Ordinary Least Squares和Logistic Regression。接下来我们要讲一个更加复杂的GLM模型-Softmax Regression,在做DL训练的时候我用这个回归训练过分类器,在参数微调精确的情况下,其分类效果比SVM还要好。Softmax Regression其实就是二分类logistic regression模型的一个推广,推广到多分类。如何证明Softmax Regression也是一个GLM,过程实在是太复杂,我也懒得细看,这里直接贴出来大家共同分析:
好了,到了最后一步大家应该就清楚了,softmax regression其实也是一个GLM,好了今天接触到了一堆的公式定理,大家消化消化吧!Good Night~~