分类之逻辑回归的代价函数costfunction

原创 2018-02-23 02:57 阅读(412)次

为什么不能用线性回归的cost function

适合logistic regression的cost function






为什么不能用线性回归的cost function

所谓代价函数,就是预测值和真实值的误差-----称为cost。而这个cost越小,说明预测越准确。也说明越拟合训练样本,也就能求出拟合训练样本的最好的θ。

如何去拟合训练样本,来找到θ 这个参数矩阵,就是求出分类预测函数h(x)剩下的问题了。

通过  线性回归的求解原理和cost function  一文,我们知道通过找到cost function的最低值,可以找出最佳的预测函数的方方法。

所以我们希望J(θ)是一个凹曲线,这样才有最低点。

或许你会说,就算不是凹曲线也有最低点,是的,但如果不是凹曲线,那就是不规则的曲线,弯弯曲曲,必然有很多局部最低点,用梯度下降法是很难求得全局最低点的,这也是梯度下降法的局限性。

cost function 里面一定会含有预测值h(x)和实际值y这两个值的差值的部分(不管公式多么复杂, 但一般都需要这两者的差作为计算依据,这也是cost一词的由来,表示预测函数和实际值的误差带来的代价,而分类问题的h(x)  是sigmoid函数。因为sigmoid函数的非线性特点,而线性回归的cost function是包含了平方的,带入后就会产生不规则的曲线,所以无法沿用线性回归的cost function。

我们需要寻求另外一个适用于逻辑回归的cost function。



适合logistic regression的cost function

因为cost function 一定需要预测函数h(x)和实际值y的差距来表示,所以可以写成 J(θ) =    ? *   Cost(h(x),y)  ,而我们先抛开那个问号,只研究Cost(h(x),y)部分。

而适用于逻辑回归的Cost(h(x),y)是如下的样子


这里 共享一下 这个公式的latex,因为他稍微有点多

Cost(h_{\theta }(x),y) = 


\left\{\begin{matrix}-log(h_{\theta }(x))) \; \; \; \; \; \; \; \; \; \; \; \;if (y =1)
\\    -log(1-h_{\theta }(x)))   \; \; \; \; \; \;  if(y =0)

\end{matrix}\right.

我们来看看这函数的图形,h(x) 因为是sigmoid函数,所以他的值只会0和1之间,

首先y =1 的时候,设 z =  h(x)  , Cost (h(x),y)  =  -log(z)  ,0<=z<=1




分析一下此图的合理性, 当 z = h(x) = 1 = y的时候,也就是预测十分准确的时候,他的cost 是0。

                                           当z = (h(x)) 很接近0的时候,也就是预测完全牛头不对马嘴的时候,他的cost 无限大。

符合cost function的要求。

当y =0的时候:Cost (h(x),y)  =  -log(1-z)




分析一下此图的合理性, 当 z = h(x) = 0 = y的时候,也就是预测十分准确的时候,他的cost 是0

                                           当z = (h(x)) 很接近1的时候,也就是预测完全牛头不对马嘴的时候,他的cost 无限大。

符合cost function的要求。

但这并不是完整的J(θ), 以上计算的是单个样本的cost。 

对于多个样本,完整的J(θ)应该是这样:



即所有样本的cost之和的平均值




我们在 上面的内容中已经解释过Cost(h(x),y)是根据y的取值不同而分为两个式子,但考虑到我们需要通过梯度下降求出最佳解,必须把他简化成一个式子,合并到一个图形。



因为y 只会=1 或者= 0 ,你分别把1,0带入上面的公式,你会发现跟下面的公司是一样的。把Cost(h(x),y)带入到J(θ):



         所以这就是logistic regression的cost function。

本文完。


相关章节如下:


本站作品的版权皆为作品作者所有。

本站文字和内容为本站编辑或翻译,部分内容属本站原创,所以转载前务必通知本站并以超链接形式注明内容来自本站,否则以免带来不必要的麻烦。

本站内容欢迎分享,但拒绝有商业目的的转载!