机器学习基石CH10:Logistic Regression
CH10:Logistic Regression
Logistic Regression Problem(逻辑回归)
我先我们看两个例子,看一看 他们的不同:

根据一些指标来预策是否会有心脏病, 很明显是一个分类的问题,我们关心的是错误率为多少。

再看看看这个问题,求心脏病出现的可能性。
这不在是一个简单的二元分类问题,而是需要给出概率,我们称之为:
soft binary classification

我们希望得到这种数据:

告诉我们不同的病例,然后给一个得病的几率,然后我们去做linear regression就好了,可是现实中这个概率是不可能知道的。
但是现实中我们只有这种普通的病例资料:
即在知道病人身体状况的情况下,这个病人是否患有心脏病,但是这个患上的概率只有上帝才知道。


 我们想到,可以这么来做:首先计算一个 $w$ 权重向量,然后我们用这个权重算一个分数出来(即上图中的$s$), 我们用这个得分再通过$\theta$ 函数来等价转化为概率。
即:logistic hypothesis

其中的 $\theta$ 函数我们称之为Logistic Function:

所以logistic regression就是在做下面的事情:

Logistic Regression Error


三个放在一起我们很容易就发现他们的区别是是error measure的不同。
那么我们如何定义logistic regression的error measure呢?
首先,target function是长如下样子的:


考虑换一下后半项为:

我们假设h可以产生相同资料:

如果h和f很接近,那么$h$和$f$产生同一批资料的几率很接近。
所以我们现在想要做到:

让$h$最大程度的接近$f$。
同时我们注意到$h(x)$的一个性质:

定义likelihood为:

我们可以把$1-h(x)$换掉,即:

所以这个函数正比于h对于每笔资料的连乘:


所以我们想找一个$h$使得likelihood最大。
还记得:
我们替代一下,即求w即可:

我们想把连乘-> 连加,那么取ln即可:



交叉熵(cross-entropy)
Gradient of Logistic Regression Error

还是要求梯度:


即:



我们想让这个梯度等于0

- 如果所有的$\theta = 0$,说明$y_nw^Tx_n>>0$, 翻看前面PLA的内容,这个说明了全部做都正确答案了,即 数据是线性可分的。
 - 反之,我们就需要解这个方程了,且说明了不是线性可分的,不巧的是这个方程很难解,我们需要一些别的方法找出解。
 
我们回顾一下PLA:

我们把上面两个可以写成一个式子:

也许我们可以用PLA类似的方法更新来迭代出梯度=0的点。
Gradient Descent
迭代最优化(iterative optimization)

这个$v$, 是纠错的向量,这个$η$ 是修改的步伐的大小。


我们把Ein拆开,可以得到下面近似等式,这其实就是当$η$足够小的时候的一阶泰勒展开。


我们现在就要规定$v^T$ 的方向,怎么才能让他最快到达底部呢?很容易沿着梯度相反的方向,即:

即这样更新:

$η$ 的选择:

坡度大,跨的大一点,坡度小,跨的小一点。

上述说明:$η$和梯度的大小正相关是比较好的:


我们称紫色的η为:fixed leaning rate
所以我们现在更新的方式是:

因此逻辑回归算法就是:

这样不断迭代,就会找到一个$w$ 使得这个 
等于0。
还记得我们为什么要求这个w吗?
h(x)也就是给出一个身体情况,我们就可以求出他的心脏病的概率,这个$h(x)$的公式如下:

这里面的$w^T$是要求出来才能用这个公式, 到此为止 我们的问题就解决了。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!