更新时间:2022-06-17 02:19:26
回到线性回归模型中,训练集和代价函数如下图
如果我们还用J(θ)函数做为逻辑回归模型的代价函数,用H(x) = g(θ^T * x),曲线如下图所示
发现J(θ)的曲线图是"非凸函数",存在多个局部最小值,不利于我们求解全局最小值
因此,上述的代价函数
对于逻辑回归是不可行的,我们需要其他形式的代价函数
来保证逻辑回归的代价函数
是凸函数。
这里我们先对线性回归模型中的代价函数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))的曲线图,如下
从图中可以看出
(2). 当y=0的时候, Cost(h(x), y) = -log(1-h(x))。h(x)的值域0~1,-log(1-h(x))的曲线图,如下
从图中可以看出
为了统一表示,可以把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)不同