ML学习笔记第三周(二):逻辑回归模型

1 代价函数

在线性回归模型中,为了求得与数据集拟合效果最好的θ,我们会将代价函数定义为
ML学习笔记第三周(二):逻辑回归模型

线性模型应用此函数可以求得拟合情况较好的参数θ,但是对于逻辑回归模型,如此应用就会得到非凸(non-convex)函数,进一步应用梯度下降算法时,就可能会得到局部最优解而非全局最优解。
ML学习笔记第三周(二):逻辑回归模型
所以我们需要求得最合适的Cost(hθ(x),y),从而进一步求得参数θ。Cost function表达式如下图所示。

  • 当y=1时,Cost(hθ(x),y)=-log(hθ(x))。
    结合图像很容易看出,当y和hθ(x)都等于1时,Cost function为0,拟合情况最好;当y=1和hθ(x)=0时,假设函数错误的将positive分为了negetive(非常严重的错误…),所以我们将其惩罚(penalty)为∞。
    ML学习笔记第三周(二):逻辑回归模型
  • 当y=0时,Cost(hθ(x),y)=-log(1-hθ(x))。
    结合图像很容易看出,当y和hθ(x)都等于0时,Cost function为0,拟合情况最好;当y=0和hθ(x)=1时,假设函数错误的将negative分为了positive(非常严重的错误…),所以我们同样将其惩罚(penalty)为∞。ML学习笔记第三周(二):逻辑回归模型
    总结
    当y=hθ(x),Cost function=0,代价函数也最小;
    当y=!hθ(x),Cost function=∞,假设函数出现了严重错误,参数θ也并不合适;
    其他情况下,选择Cost function取其最小值时的θ作为最合适的参数。

2 简化代价函数与梯度下降

1中的Cost function是根据y的情况,有两个不同的表达式,接下来我们将逻辑回归的Cost function合并为1个,简化计算并且可以更加便捷的实施梯度下降。
ML学习笔记第三周(二):逻辑回归模型
进一步的,我们可以通过最大似然估计的方法来确定此Cost function最合适,为了求得参数θ的代价函数J(θ),以及梯度下降算法(唯一的不同就是假设函数hθ(x)不同)如下:
ML学习笔记第三周(二):逻辑回归模型

同样类似于线性回归模型的梯度下降算法,我们需要确保代价函数J(θ)收敛,即我们应该不断调试选取合适的学习速率α,具体细节可以看之前的ML学习笔记第二周(一):多元线性回归(画出J(θ)为纵坐标,迭代步数为横坐标的曲线)。

需要注意的一点是,最好使用向量化来同步更新θ,而非for/while循环;

向量化后的hθ(x)、J(θ)与梯度下降:
ML学习笔记第三周(二):逻辑回归模型
ML学习笔记第三周(二):逻辑回归模型
同时,特征缩放和均值归一化同样适用于此时的梯度下降,可以帮助加快收敛速度。

3 高级优化

除去梯度下降算法,我们还有其他的高级算法来计算J(θ)以及J(θ)的偏导数,诸如共轭梯度(Conjugate gradient)、变尺度法(BFGS)以及限制变尺度法(L-BFGS),这些高级算法一般都比较复杂,但是优点也显而易见,第一,内部拥有智能的线性搜索(line search)算法,无需手动选择学习速率α;第二,通常比梯度下降算法要快,收敛速度也快。
优化算法应用举例:
ML学习笔记第三周(二):逻辑回归模型
要把这些高级优化算法应用到逻辑回归中,我们要做的工作就是编写costFunction函数来计算J(θ)及其各偏导数,然后调用已有的库里的函数就可以,至于优化算法的技术细节,不重要~~
ML学习笔记第三周(二):逻辑回归模型
下一节内容:修改逻辑回归内容,使其适用于多分类问题。

4 参考资料

1、机器学习-第三周