“Logistic Regression——Simplified const function and gradient descent”。
01
—
笔记
本小节将介绍逻辑回归代价函数稍微简化一点的版本,以及如何使用梯度下降法去拟合逻辑回归模型。通过本节学习后,我们应该能够从理论上实现一个逻辑回归算法了。
代价函数(Cost function)的简化
我们把上一节中的代价函数再给贴过来,如下图:
上图中的代价函数我们使用的是一个分段函数,当然这里y的取值只有两种可能,0或者1.
正是因为这个y取值的特殊性,我们可以把上面图中的代价函数用一条式子来表示。
上图中手绘的红色双向箭头是两个等价的式子。
这很容易证明,只需要将y取0和取1的两种情况代入进去就可以来。
这样的话,我们把用分段函数形式定义的代价函数用一条式子就可以表示出来了,对代价函数进行了必要的简化。
上面对代价函数的这种简化,可以让我们把代价函数J(theta)写成下面的样子:
那我们为什么要这样做呢?吴老师讲这是最大似然估计给出来的,这样的代价函数可以用来求最优参数,而且它是凸的,非常好!具体是为什么?我也不知道了,就是说很多统计学家是这么用的,而且背后有比较严谨的证明。对于我们工程应用来说,那我们就直接使用就可以了。
逻辑回归的目标
到了这里,逻辑回归用来解决分类问题的思路也就很清晰了。
就是:
- 想法设法找到一组模型参数theta,使得对应的代价函数最小。
- 根据第1步中找到的这组theta和对应的模型,我们对新的不知道y的x进行分类,看这个x对应的y应该是取0,还是1.
那么,这里解决问题的关键就是找到那组使代价函数J(theta)取最小值的模型参数。
我们在这里看看梯度下降法是怎么做的。
梯度下降法
我们使用梯度下降法找到让代价函数最小的那组参数:
这个和前面线性回归的时候是类似的,就是给出一个初始的参数theta,然后我们根据这个点处的梯度方向,然后往梯度下降的方向走alpha倍的一小步,然后不停的迭代,找到那个最低点。而梯度是由偏导数求到的,也就是这里的关键就是求偏导数。参考前面线性回归的偏导数推导过程,类似方法可以计算出:
到了这里,你会发现这个梯度下降的算法和线性回归的时候的那个形式是几乎一样的,需要注意的是这里的假设函数和线性回归的时候是不一样的。
但毕竟样子类似,线性回归中用到的梯度下降的很多技巧在此处也是适用的。
这样,我们就有了一种非常简单使用的分类器。我们通过观察训练样本,给出大概的模型函数,然后再用梯度下降法进行训练找到使代价函数最小的那组参数,然后就可以用这个训练好的逻辑回归模型对新的输入进行分类了。