本文是吴恩达《机器学习》视频笔记第36篇,对应第3周第4个视频。
“Logistic Regression——Cost function”。
01
—
笔记
上一小节学习了决策边界。我们知道了其实逻辑回归进行分类问题,实质上是我们先有一个模型方程但是不知道方程的参数,我们通过确定参数来确定方程的具体的形式也就是决策边界,通过这个决策边界来对一堆东西进行分类。
那这些参数该怎样拟合呢?我们通过本小节来学习。
笼统来讲,我们要想找到最合适的参数,就要有一个衡量参数好坏的标准,或者说需要有一个优化目标,而这个衡量参数好坏的目标哦我们就叫做代价函数(Cost function)。
参数拟合问题
前提是,我们已经有了一堆训练样本。这些训练样本总共有m个,每一个都是由一个x向量,和一个对应于这个x向量的y组成,y取0或1。举个例子,就是我们有一群人(m个)的数据,每个人都由一些特征值组成一个向量x来表示,然后我们给每个人打上好人(0)或坏人(1)的标签,那这群人就可以作为训练样本了。
然后,我们有一个上一小节学到的假设函数h:
问题就是,怎样由这m个训练样本确定h的参数theta.
代价函数(Cost function)
代价函数这个事,我们已经不陌生了,我们在前面学习线性回归的时候就已经接触过了。
吴恩达机器学习笔记7-代价函数的定义Cost function
吴恩达机器学习笔记8-代价函数的直观理解之一
吴恩达机器学习笔记9-代价函数直观理解之二
线性模型的时候,是这样的:
上图中这个函数,其实很容易理解了,我们用上面那个式子衡量某参数下的假设函数对自变量预测值和实际值之间的差距大小,然后把m个差距求和。
到了逻辑回归这里,其实代价函数就变简单了,为什么呢?我们只需要在线性回归模型的代价函数基础上做一下这样的修改即可作为一种代价函数:
但是因为我们的假设函数是sigmoid函数,所以最后我们上图中的代价函数的图形可能会变成这样一个丑陋的样子:
这样凹凸不平的函数,我们在使用梯度下降法求解最小值的时候是极易陷入局部最优解的,非常讨厌!我们要想想另外更好的代价函数形式。
我们非常巧妙的构造以下这种形式的逻辑回归代价函数,
我们根据y的实际取值不同,采用不同的代价函数的形式,看上去挺复杂的,实际上是这样么?
先来看y=1的情况,因为假设函数h的取值是在[0,1]之间的,所以log的取值是(-∞,0],加上前面的符号就变成下图这个样子了:
这个代价函数又好看、又有一条非常优秀的性质:如果y=1,假设函数预测出来的值也等于1的时候,代价函数就等于0;而当y=1,假设函数预测出来的值为0的时候,代价函数就变成∞了。换句话说,假设函数的值越接近于1(即越接近于真实值)代价函数越小。
那当y=0的时候,代价函数的图像是怎么一个样子呢?
因为在y=0时,因为对代价函数的形式做了改变。这个时候的代价函数的取值和y=1时具有同样优秀的性质。即:当假设函数预测值也为0时(即预测准确),代价函数的取值为0,当预测值越偏离实际值(接近于1)时,代价函数的取值越大(趋近于∞)。
通过这样一个代价函数,我们就使得预测值越接近于实际值时代价函数的取值越小、反之越大,而且也很光滑。这样的代价函数正是我们想要的。
总结
逻辑回归的代价函数到底是怎么想出来的,已经超出了这门课的范畴。
但是,因为前人的工作,我们已经知道有这样一个函数可以作为我们逻辑回归的代价函数了,那具体该怎样在这样的代价函数的基础上通过梯度下降法求得最优的参数呢?要解答这个问题还要往下接着看。