台大机器学习基石 Lecture 10 - Logistic Regression
这次Lecture讲的是另一种回归方法——逻辑回归(Logistic Regression),虽然说的是回归问题,但它其实是一个‘软’分类,本次课介绍了逻辑回归的方法、错误衡量方法、求解最优的方法。
Logistic Regression Problem
之前提过的二元分类器如PLA,其目标函数为,,是一个“硬”的分类器。而Logistic Regression的输出是
的概率,因此Logistic Regression的目标函数是
,是一个“软”的分类器。
然而,我们在实际的情景中只能得到确定的结果,而并不会得到概率,那么我们就可以将实际的数据视作理想数据加上了噪声的影响。
接下来的问题是,我们该怎么设计hypothesis与目标函数接近呢?
先抛出结论,那么为什么是这样呢?
将d个特征加权求和,结合thershold后就是d + 1项,即,但是
,要将其转换到
范围,就使用Logistic Function
:
,满足平滑、单调、有界。
经过Sigmoid处理后就有来近似Target Function
。
Logistic Regression Error
现在我们找到了hypothesis的表达形式,我们该怎么衡量错误得到呢?
为什么不能像Linear Regression一样使用平方误差,这篇博文说得很详细,摘引如下:
如果使用平方误差,每个点产生的误差是:
此时cost function,
就是一个关于
的非凸函数(non-convex):
非凸函数由于存在很多个局部最小点,因此很难去做最优化(解全局最小)。所以Logistic Regression没有使用平方误差来定义error,而是使用极大似然法来估计模型的参数。
先介绍一下“似然性”的概念。如果我们找到了hypothesis很接近target function。也就是说,在所有的Hypothesis Set中找到一个hypothesis与target function最接近,能产生同样的数据集D,包含y输出label,则称这个hypothesis是最大似然likelihood。那么这里采用的办法就是MLE(Maximum Likelihood Estimate)极大似然估计。
那么target function就有如下的转换
那么产生一个
的likelihood是多少呢?
如果,就有
,并且我们认为在
的作用下,能产生
的可能性是比较大的。
于是有:
理想的hypothesis就是能使得似然函数最大的那个
由于logistic function的中心对称性:,就有
而都为常值,就有
而我们要找到一个似然性最大的,并且转化为关于的式子,而求连乘不易于求解,取自然对数就可以转化为连加——
求解以上最大值等价于求解最小值
其中,称为cross-entropy error。
Gradient of Logistic Regression Error
根据上面的推导,我们可以确定cost function 。
这是连续、可微、二次可微的凸曲线(开口向上),图像如下
由于它是凸函数,如果我们能解出一阶微分(梯度)为0的点,就可以通过找到这个点来找出最小的,只要求解
。
于是就有,为什么这样不能求解最小呢?这篇redstone的博文作出了解释——
那么该使用何种方法实现最小化呢?
Gradient Descent
采用类似PLA中的迭代方法来求解最小值,称为梯度下降法(Gradient Descent)
其中,表示步长(step size),
是单位向量,表示方向(direction)。
于是在给定下,贪心逼近最小值,
。但是依照这样的式子仍然是非线性的,所以采用泰勒一阶展开(Taylor expansion)得到——
那么我们如何来选择和
呢?
-
比较方便,让其成为
的反方向单位向量,就能保证
成立,
是不断减小的。
-
要慎重选择,太小的话速度太慢,太大的话又很不稳定。
一个比较好的方法就是让,随着迭代会更改
新的紫色的就称为混合学习率(fixed learning rate)。
综合起来,Logistic Regression算法就是以下流程——