台大机器学习基石 Lecture 10 - Logistic Regression

这次Lecture讲的是另一种回归方法——逻辑回归(Logistic Regression),虽然说的是回归问题,但它其实是一个‘软’分类,本次课介绍了逻辑回归的方法、错误衡量方法、求解最优的方法。

台大机器学习基石 Lecture 10 - Logistic Regression

Logistic Regression Problem

之前提过的二元分类器如PLA,其目标函数为,台大机器学习基石 Lecture 10 - Logistic Regression,是一个“硬”的分类器。而Logistic Regression的输出是台大机器学习基石 Lecture 10 - Logistic Regression的概率,因此Logistic Regression的目标函数是台大机器学习基石 Lecture 10 - Logistic Regression,是一个“软”的分类器。

然而,我们在实际的情景中只能得到确定的结果,而并不会得到概率,那么我们就可以将实际的数据视作理想数据加上了噪声的影响。

台大机器学习基石 Lecture 10 - Logistic Regression

 接下来的问题是,我们该怎么设计hypothesis与目标函数接近呢?

先抛出结论台大机器学习基石 Lecture 10 - Logistic Regression,那么为什么是这样呢?

将d个特征加权求和,结合thershold后就是d + 1项,即台大机器学习基石 Lecture 10 - Logistic Regression,但是台大机器学习基石 Lecture 10 - Logistic Regression,要将其转换到台大机器学习基石 Lecture 10 - Logistic Regression范围,就使用Logistic Function 台大机器学习基石 Lecture 10 - Logistic Regression台大机器学习基石 Lecture 10 - Logistic Regression,满足平滑、单调、有界。

台大机器学习基石 Lecture 10 - Logistic Regression

经过Sigmoid处理后就有台大机器学习基石 Lecture 10 - Logistic Regression来近似Target Function台大机器学习基石 Lecture 10 - Logistic Regression

Logistic Regression Error

现在我们找到了hypothesis的表达形式,我们该怎么衡量错误得到台大机器学习基石 Lecture 10 - Logistic Regression呢?

为什么不能像Linear Regression一样使用平方误差,这篇博文说得很详细,摘引如下:

如果使用平方误差,每个点产生的误差是:

台大机器学习基石 Lecture 10 - Logistic Regression

此时cost function,台大机器学习基石 Lecture 10 - Logistic Regression就是一个关于台大机器学习基石 Lecture 10 - Logistic Regression的非凸函数(non-convex):

台大机器学习基石 Lecture 10 - Logistic Regression

  非凸函数由于存在很多个局部最小点,因此很难去做最优化(解全局最小)。所以Logistic Regression没有使用平方误差来定义error,而是使用极大似然法来估计模型的参数。

先介绍一下“似然性”的概念。如果我们找到了hypothesis很接近target function。也就是说,在所有的Hypothesis Set中找到一个hypothesis与target function最接近,能产生同样的数据集D,包含y输出label,则称这个hypothesis是最大似然likelihood。那么这里采用的办法就是MLE(Maximum Likelihood Estimate)极大似然估计。

那么target function就有如下的转换

台大机器学习基石 Lecture 10 - Logistic Regression

那么台大机器学习基石 Lecture 10 - Logistic Regression产生一个台大机器学习基石 Lecture 10 - Logistic Regression的likelihood是多少呢?

台大机器学习基石 Lecture 10 - Logistic Regression

 如果台大机器学习基石 Lecture 10 - Logistic Regression,就有台大机器学习基石 Lecture 10 - Logistic Regression,并且我们认为在台大机器学习基石 Lecture 10 - Logistic Regression的作用下,能产生台大机器学习基石 Lecture 10 - Logistic Regression的可能性是比较大的。

于是有:

台大机器学习基石 Lecture 10 - Logistic Regression

 

理想的hypothesis就是能使得似然函数最大的那个台大机器学习基石 Lecture 10 - Logistic Regression

台大机器学习基石 Lecture 10 - Logistic Regression

由于logistic function的中心对称性:台大机器学习基石 Lecture 10 - Logistic Regression,就有

台大机器学习基石 Lecture 10 - Logistic Regression

 而台大机器学习基石 Lecture 10 - Logistic Regression都为常值,就有台大机器学习基石 Lecture 10 - Logistic Regression

而我们要找到一个似然性最大的,并且转化为关于台大机器学习基石 Lecture 10 - Logistic Regression的式子,而求连乘不易于求解,取自然对数就可以转化为连加——

台大机器学习基石 Lecture 10 - Logistic Regression

求解以上最大值等价于求解最小值

台大机器学习基石 Lecture 10 - Logistic Regression

其中,台大机器学习基石 Lecture 10 - Logistic Regression称为cross-entropy error。

Gradient of Logistic Regression Error

根据上面的推导,我们可以确定cost function 台大机器学习基石 Lecture 10 - Logistic Regression

这是连续、可微、二次可微的凸曲线(开口向上),图像如下

台大机器学习基石 Lecture 10 - Logistic Regression

由于它是凸函数,如果我们能解出一阶微分(梯度)为0的点,就可以通过找到这个点来找出最小的台大机器学习基石 Lecture 10 - Logistic Regression,只要求解台大机器学习基石 Lecture 10 - Logistic Regression

台大机器学习基石 Lecture 10 - Logistic Regression

于是就有台大机器学习基石 Lecture 10 - Logistic Regression,为什么这样不能求解最小呢?这篇redstone的博文作出了解释——

台大机器学习基石 Lecture 10 - Logistic Regression

那么该使用何种方法实现台大机器学习基石 Lecture 10 - Logistic Regression最小化呢?

Gradient Descent

采用类似PLA中的迭代方法来求解最小值,称为梯度下降法(Gradient Descent)

台大机器学习基石 Lecture 10 - Logistic Regression

其中,台大机器学习基石 Lecture 10 - Logistic Regression表示步长(step size),台大机器学习基石 Lecture 10 - Logistic Regression是单位向量,表示方向(direction)。

台大机器学习基石 Lecture 10 - Logistic Regression

于是在给定台大机器学习基石 Lecture 10 - Logistic Regression下,贪心逼近最小值,台大机器学习基石 Lecture 10 - Logistic Regression。但是依照这样的式子仍然是非线性的,所以采用泰勒一阶展开(Taylor expansion)得到——

台大机器学习基石 Lecture 10 - Logistic Regression

那么我们如何来选择台大机器学习基石 Lecture 10 - Logistic Regression台大机器学习基石 Lecture 10 - Logistic Regression呢?

  • 台大机器学习基石 Lecture 10 - Logistic Regression比较方便,让其成为台大机器学习基石 Lecture 10 - Logistic Regression的反方向单位向量,就能保证台大机器学习基石 Lecture 10 - Logistic Regression成立,台大机器学习基石 Lecture 10 - Logistic Regression是不断减小的。

台大机器学习基石 Lecture 10 - Logistic Regression

  • 台大机器学习基石 Lecture 10 - Logistic Regression要慎重选择,太小的话速度太慢,太大的话又很不稳定。

台大机器学习基石 Lecture 10 - Logistic Regression

 一个比较好的方法就是让台大机器学习基石 Lecture 10 - Logistic Regression,随着迭代会更改台大机器学习基石 Lecture 10 - Logistic Regression

台大机器学习基石 Lecture 10 - Logistic Regression

新的紫色的台大机器学习基石 Lecture 10 - Logistic Regression就称为混合学习率(fixed learning rate)。

综合起来,Logistic Regression算法就是以下流程——

台大机器学习基石 Lecture 10 - Logistic Regression