Machine Learning第三讲[Logistic回归] --(二)Logistic回归模型

来源:互联网 发布:超市购物篮数据下载 编辑:程序博客网 时间:2024/06/06 14:07

内容来自Andrew老师课程Machine Learning的第三章内容的Logistic Regression Model部分。

一、Cost Function(代价函数)

有m个样本的训练集:这里写图片描述这里写图片描述,x0=1,y∈{0,1}
在上篇博文中提到假设函数这里写图片描述这里写图片描述

那么,我们如何选择参数theta呢?

在线性回归模型中,这里写图片描述,令  这里写图片描述,为方便记录,将此等式记为:这里写图片描述

因为这里写图片描述是非线性的,故  这里写图片描述也是非线性的,将其代入J(theta),则J(theta)曲线图很有可能出现下列情况,如下左图:
    
J(theta)在这种情况下,不收敛。
即:J存在多个局部最小值(A,B,C,D,E等都是)。但是使用梯度下降法不一定能找到最优值,比如在梯度下降算法走到A点,再往下走发现B点的J值比A点的J值大了,因此算法停止搜索并断定A是最小值点,此时便没有找到最小值。

而我们希望出现的右图所示的情况,梯度下降算法能一步一步往下走,直到找到最小值。

产生这种情况的原因是因为这里写图片描述中含有平方,故使用线性回归的代价函数来用于logsitic模型是不合适的,因此我们用一个新函数来定义logistic的cost函数:

这里写图片描述

(1)当y=1时,Cost函数图如下所示:
这里写图片描述

由图可知:
这里写图片描述=1时,cost=0;
这里写图片描述->0时,cost->∞。
当y=1,
若预测值这里写图片描述=1,则预测值和实际值相同,因此cost=0;
若预测值这里写图片描述->0,即这里写图片描述->0,即预测值为0,因为实际值为1,故代价函数cost为无穷大。

(2)当y=0时,Cost函数图如下所示:
这里写图片描述

由图可知:
这里写图片描述=1,即预测值为1时,而真实值为0,此时cost->∞;
这里写图片描述=0,即预测值为0,而真实值也为0,此时cost=0。

附上一个例题:

二、Simplified Cost Function and Gradient Descent(简化代价函数和梯度下降)

logsitic回归代价函数为:

这里写图片描述
这里写图片描述     Note: y=0 or y=1 always

我们将这个Cost分段函数写成一个函数,则:

这里写图片描述
验证一下为什么可以写成这一个式子:
因为y只可能取0或者1:
(1)若y=1,代入上式,则  满足分段函数表达式。
(2)若y=0,代入上式,则  也满足分段函数表达式。
因此这个式子和分段函数表达式是等价式。

(一)J函数

将上述cost函数代入J(theta),则

将J函数向量化表示为:


为了求出\theta值,我们通过求minJ(\theta)来求,即利用梯度下降算法来求。
预测输出是指:输入x值,输出,即

(二)梯度下降算法:

梯度下降公式:

(注意同步更新)

将偏导数部分代入得:

将梯度下降算法向量表示得:

Note:虽然分类回归的梯度下降函数和线性回归的梯度下降函数看起来一样,但是其并不相同,因为在线性回归中,而在分类回归中,所以h(x)函数部分不同,导致二者不相同。

三、Advanced Optimization(优化问题)

(1)首先看梯度下降算法,在实现梯度下降算法的过程中,我们需要实现J函数及其偏导数对应的代码:
这里写图片描述
(2)再来看看除了梯度下降算法之外的其他的优化算法,后三种优化算法性能比较好,但是实现过程比较复杂,理解也比较难(本节不讲述细节):
这里写图片描述

(3)举例说明如何实现优化算法的调用,代码细节如下图,其中fminunc()用于实现最小代价函数的调用:
这里写图片描述

(4)如何将这些优化算法应用到logistic回归中呢?如下图,在具体实现时我们只需要填写相应的实现代码:
这里写图片描述

我们要做的就是不断探索,将高级优化应用于logistic回归和线性回归以提高寻找最小代价函数对应theta值得效率。


参考文章:链接

0 0
原创粉丝点击