且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

机器学习-逻辑回归-代价函数

更新时间:2022-06-17 02:19:26

1. 引言

回到线性回归模型中,训练集和代价函数如下图

机器学习-逻辑回归-代价函数

机器学习-逻辑回归-代价函数

如果我们还用J(θ)函数做为逻辑回归模型的代价函数,用H(x) = g(θ^T * x),曲线如下图所示

发现J(θ)的曲线图是"非凸函数",存在多个局部最小值,不利于我们求解全局最小值

机器学习-逻辑回归-代价函数

因此,上述的代价函数对于逻辑回归是不可行的,我们需要其他形式的代价函数来保证逻辑回归的代价函数是凸函数。

2. 代价函数

这里我们先对线性回归模型中的代价函数J(θ)进行简单的改写

机器学习-逻辑回归-代价函数

用Cost(h(x), y) = 1/2(h(x) - y)^2 代替

机器学习-逻辑回归-代价函数

在这里我们选择对数似然损失函数做为逻辑回归模型的代价函数,Cost函数可以表示如下

机器学习-逻辑回归-代价函数

分析下这个代价函数

(1). 当y=1的时候,Cost(h(x), y) = -log(h(x))。h(x)的值域0~1,-log(h(x))的曲线图,如下

机器学习-逻辑回归-代价函数

从图中可以看出

  1. h(x)的值趋近于1的时候,代价函数的值越小趋近于0,也就是说预测的值h(x)和训练集结果y=1越接近,预测错误的代价越来越接近于0,分类结果为1的概率为1
  2. 当h(x)的值趋近于0的时候,代价函数的值无穷大,也就说预测的值h(x)和训练集结果y=1越相反,预测错误的代价越来越趋于无穷大,分类结果为1的概率为0

(2). 当y=0的时候, Cost(h(x), y) = -log(1-h(x))。h(x)的值域0~1,-log(1-h(x))的曲线图,如下

机器学习-逻辑回归-代价函数

从图中可以看出

  1. h(x)的值趋近于1的时候,代价函数的值趋于无穷大,也就是说预测的值h(x)和训练集结果y=0越相反,预测错误的代价越来越趋于无穷大,分类结果为0的概率为1-h(x)等于0
  2. 当h(x)的值趋近于0的时候,代价函数的值越小趋近于0,也就说预测的值h(x)和训练集结果y=0越接近,预测错误的代价越来越接近于0,分类结果为0的概率为1-h(x)等于1

为了统一表示,可以把Cost(h(x), y)表达成统一的式子,根据前面J(θ)的定义,J(θ)等于

机器学习-逻辑回归-代价函数

特别说明: 

1. 当y=1的时候,第二项(1-y)log(1-h(x))等于0 

2. 当y=0的时候,ylog(h(x))等于0

从上面2点可以看出,J(θ)表达式符合前面定义

根据线性回归求代价函数的方法,可以用梯度下降算法求解参数θ

机器学习-逻辑回归-代价函数

机器学习-逻辑回归-代价函数

从上图可以看出,θj更新和线性回归中梯度下降算法的θj更新一致,差别的是假设函数h(x)不同