机器学习(七)——逻辑回归(Logistic regression)

原文:http://cs229.stanford.edu/notes/cs229-notes1.pdf

我们可以忽略y是离散值的事实来处理分类问题,并利用我们的线性回归算法来尝试根据给定的x来预测y。但是,在这种方法性能很差的情况下,构造示例是很容易的。直观地说,当我们知道y{0,1}时,取大于1或小于0的值也是没有意义的。

为了解决这个问题,让我们改变假设的形式。我们将选择


其中,


称为逻辑函数或Sigmoid函数。这是一个显示g(z)的图:


注意,z→∞时g(Z)趋向于1,而z→−∞时g(Z)趋向于0。此外,g(Z)和h(X),总是在0到1之间有界。和以前一样,我们保留让的约定,这样

从现在开始,我们把 gg 当作是给定的函数了。其它能够从0到1之间光滑递增的函数也可以被使用,但是这其中有一些原因我们以后会讲到(当讲到广义线性模型GLMs和生成学习算法时),logistic 函数的选择是十分合理自然的。在继续我们的下一个话题前,这里有一个关于 sigmoid 函数导数的重要推导,我们写作 gg′ : 


那么,在给定了 logistic 回归模型后,我们如何根据它来拟合 θθ 呢?我们之前已经讲过了,在一系列假设的前提下,如何使用极大似然估计来推导出最小二乘回归。让我们赋予我们的分类模型一系列的概率假设,接着通过极大似然来拟合参数:

让我们假设:

P(y=1x;θ)=hθ(x)P(y=1∣x;θ)=hθ(x)

P(y=0x;θ)=1hθ(x)P(y=0∣x;θ)=1−hθ(x)

注意,上面的式子可以改写成一个更加简洁的形式:


假定给定的 mm 个样本之间都是相互独立的,我们可以这样写参数的似然函数:

与前面线性回归章节的做法一样,采用最大化对数似然的形式会简单一些:


我们要如何去最大化这个似然函数呢?和线性回归章节中的求导方法类似,我们可以使用梯度上升。用向量化的符号来写,我们的更新步骤将会表示成:  . (注意,我们现在是在最大化而不是最小化这个函数,所以更新的公式中由负号变成了正号。)同样地还是从只有一个训练样本 (x,y)(x,y) 的情况开始,求导推出梯度上升的规则:

gradient-ascent

在上面的推导过程中,我们使用到了 g(z)=g(z)(1g(z))g′(z)=g(z)(1−g(z)) ,最终的随机梯度上升规则为:


如果拿上面的公式与LMS更新规则进行比较,我们会发现看起来居然完全一样;但是他们并不是一样的算法,因为 hθ(x(i))hθ(x(i)) 现在被定义为关于 θTx(i)θTx(i) 的一个非线性函数。尽管如此,我们在面对不同的算法和学习问题的时候,最终却得到了同样的更新规则,这实在让人有点惊讶。这是一种巧合,还是有着更深层次的原因呢?当我们学习到GLM章节的时候,我们将一起来回答这一问题。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章