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))的曲线图,如下
从图中可以看出
- h(x)的值趋近于1的时候,代价函数的值越小趋近于0,也就是说预测的值h(x)和训练集结果y=1越接近,预测错误的代价越来越接近于0,分类结果为1的概率为1
- 当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))的曲线图,如下
从图中可以看出
- h(x)的值趋近于1的时候,代价函数的值趋于无穷大,也就是说预测的值h(x)和训练集结果y=0越相反,预测错误的代价越来越趋于无穷大,分类结果为0的概率为1-h(x)等于0
- 当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)不同