机器学习(五)- 对于cost function的思考

来源:互联网 发布:手机视频修复软件 编辑:程序博客网 时间:2024/06/05 00:20

logistic regression和linear regression的代价函数的思考

谈到逻辑回归,必然逃不开与线性回归的比较。自然它们有很多不同,今天在这里主要讲讲自己对于它们代价函数的思考。
Andrew Ng教授在讲到逻辑回归的时候提到逻辑回归的代价函数本身是由统计学中最大似然估计得来的。于是趁这个机会又去百度了几篇博客,复习复习最大似然估计与最大后验概率,顺手还转载了一篇,觉得写的挺好的。以下是几点思考:

问题1:线性回归的代价函数又从何而来?

如果逻辑回归的cost function是来自于最大似然估计,那线性回归的cost function从何而来呢,为此我专门回看了Andrew Ng在讲解线性回归时,提到代价函数的时候,他非常自然的应用了最小二乘,并没有说明为什么。于是我又继续百度去寻找答案,最后在知乎上关于“在进行线性回归时,为什么最小二乘法是最优方法”的解答中找到了自己比较认可的答案。(AlWeis和赵卿元,链接如下)
https://www.zhihu.com/question/24095027
简单总结就是其实我们并非一定要使用最小二乘,但是在进行线性拟合的时候,最小二乘是一种简单,直接而且自然(符合我们的习惯和直觉)的一种方法。因为欧式空间是我们习惯且非常熟悉的空间,当有人问你如何度量两点间的距离的时候,你自然的会在脑海里构建一个欧式空间,然后说当然是求

(x1x2)2+(y1y2)2+...

所以我们在线性拟合时,也是自然的运用了最小二乘。在符合我们的习惯的同时,最小二乘还具有很多优点,第一就是运算简单(相减再平方),第二就是非负性,那有人就会问为什么不直接用绝对值呢,这就导出了第三个优点,可导性,函数平滑,每个点都可导,第四就是它是一个凸优化的问题,局部最优就是全局最优。

问题2:线性回归与最大似然估计的关系?

看到题目,我相信很多人都会想到下面这段推导。
首先假设线性回归模型具有如下形式:

f(\mathbf x) = \sum_{j=1}^{d} x_j w_j + \epsilon = \mathbf x \mathbf w^\intercal + \epsilon

其中\mathbf x \in \mathbb R^{1 \times d}\mathbf w \in \mathbb R^{1 \times d}误差\epsilon \in \mathbb R

当前已知\mathbf X=(\mathbf x_1 \cdots \mathbf x_n)^\intercal \in \mathbb R^{n \times d}\mathbf y \in \mathbb R^{n \times 1},怎样求\mathbf w呢?
假设\epsilon_i \sim \mathcal{N}(0, \sigma^2),也就是说\mathbf y_i \sim \mathcal{N}(\mathbf x_i \mathbf w^\intercal, \sigma^2),那么:

 \begin{align*} \text{arg\,max}_{\mathbf w} L(\mathbf w) & = \ln {\prod_{i=1}^n \frac{1}{\sigma \sqrt{2\pi}} \exp(-\frac{1}{2}(\frac{\mathbf y_i - \mathbf x_i \mathbf w^\intercal}{\sigma})^2})\\ & = - \frac{1}{2\sigma^2} \sum_{i=1}^n(\mathbf y_i - \mathbf x_i \mathbf w^\intercal)^2 - n \ln \sigma \sqrt{2\pi} \end{align*} \text{arg\,min}_{\mathbf w} f(\mathbf w) = \sum_{i=1}^n(\mathbf y_i - \mathbf x_i \mathbf w^\intercal)^2= {\left\lVert{\mathbf y - \mathbf X \mathbf w^\intercal}\right\rVert}_2^2


然后就惊喜的发现,哇哦,原来线性回归的代价函数也是由最大似然估计推导而来。但细心的朋友们其实发现上述推导是建立在Gaussian噪声的假设下的。只能说明在Gaussian噪声的假设下,可以由最大似然估计推导出最小二乘,并不能说明其必要性。也就是说线性回归的代价函数并不是由最大似然估计推导的,它们没有必然的联系。

问题3:逻辑回归的代价函数从何而来?

我们知道线性回归的代价函数是下图中的最小二乘式子,那为什么逻辑回归不能使用最小二乘呢,第一确实不太符合我们习惯的理解,因为逻辑回归本质上是一个分类,是一个离散的值,并不能很好的转换到欧式空间里。第二点更重要的是,因为h(x)的不同,导致代价函数是一个非凸函数,这样就会有很多局部最优解,梯度下降无法求得全局最优。
这里写图片描述
上面我们也说了,逻辑回归的代价函数推导是来自于最大似然估计,那下面我们就用最大似然估计来推一推。(这里只讨论最简单的(0,1)分类)
由于二值分类很像二项分布,而且配合上我们所使用的sigmoid函数,我们能够直接将单一样本的类值假设成其发生的概率:

P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1hθ(x)

为了方便后面计算将上述两式合并:
P(y|x;θ)=(hθ(x))y(1hθ(x))(1y)

最大似然估计,即在“模型已定,参数未知”的情况下,利用已知的训练集去拟合出一组参数,该组参数能够最大概率的返回我们的样本值。
反观我们现在,正好满足这样的要求,我们模型已知(二项分布),参数未知(求θ),而且我们有样本。那么接下来我们只需要一步步代入公式即可:
L(θ)=p(y|X;θ)=i=1mp(y(i)|x(i);θ)=i=1m(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)

那么上面求得的L(θ)就是m个训练样本同时发生的概率,接着对其求log:
L(θ)=logL(θ)=i=1my(i)logh(x(i))+(1y(i))log(1h(x(i)))

现在我们要求使得L(θ)取的最大的θ,即:
maxθL(θ)1mmaxθL(θ)where   J(θ)=minθL(θ)=minθ1mL(θ)=minθJ(θ)=1m(i=1my(i)logh(x(i))+(1y(i))log(1h(x(i))))

那么到这儿,我们就已经推导出了逻辑回归的代价函数J(θ)了,并且可喜的是,它是一个凸函数,这就意味着它具有局部最优等于全局最优的特性。

问题4:逻辑回归与线性回归代价函数区别和统一

讨论完上面三个问题,我们再来看看问题2,为什么线性回归不能由最大似然估计推导,而逻辑回归可以,因为对于逻辑回归,我们有所谓“二项分布”这个模型,而线性回归,我们并没有所谓“正态分布”的模型,因为我们并不了解我们所拿到的一系列散点的概率分布情况,既然模型都没有,自然不能运用最大似然估计了。这一点也印证了,线性回归与最大似然估计没有必然联系,只是在满足Gaussian噪声的情况下,能从最大似然估计推导出最小二乘。
其实造成这一系列不同的根本原因是因为hθ(x)函数的不同。
线性回归:hθ(x)=θTx
逻辑回归:hθ(x)=11+eθTx
它们的统一又体现在,当我们进行对参数 θ梯度下降时,我们惊喜的发现它们的迭代函数是相同的,只是hθ(x)函数不同:

θj:=θjαi=1m(hθ(x(i))y(i))x(i)j

同样地,feature scaling也是适用于逻辑回归的,可以帮助我们加快收敛速度,减少迭代次数。

阅读全文
0 0