专栏首页讲编程的高老师逻辑回归中的代价函数—ML Note 36

逻辑回归中的代价函数—ML Note 36

本文是吴恩达《机器学习》视频笔记第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)时,代价函数的取值越大(趋近于∞)。

通过这样一个代价函数,我们就使得预测值越接近于实际值时代价函数的取值越小、反之越大,而且也很光滑。这样的代价函数正是我们想要的。

总结

逻辑回归的代价函数到底是怎么想出来的,已经超出了这门课的范畴。

但是,因为前人的工作,我们已经知道有这样一个函数可以作为我们逻辑回归的代价函数了,那具体该怎样在这样的代价函数的基础上通过梯度下降法求得最优的参数呢?要解答这个问题还要往下接着看。

本文分享自微信公众号 - 讲编程的高老师(codegao),作者:石头

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 吴恩达机器学习笔记9-代价函数直观理解之二

    Model and Cost Function_Cost Function - Intuition II”

    讲编程的高老师
  • 线性回归的正则化

    “Regularization——Regularized linear regression”。

    讲编程的高老师
  • 逻辑回归代价函数的简化及其对应的梯度下降法—ML Note37

    “Logistic Regression——Simplified const function and gradient descent”。

    讲编程的高老师
  • 吴恩达机器学习笔记9-代价函数直观理解之二

    Model and Cost Function_Cost Function - Intuition II”

    讲编程的高老师
  • 这些年,你们一起踩过的坑(2)

    上次我们踩坑总结文章 这些年,你们一起踩过的坑(1) 受到了不少同学的认可。我也确信文中所涉及的问题是非常具有普遍性的,对绝大多数初学者都会有帮助。

    Crossin先生
  • Python 函数进阶

    高阶函数是至少满足下面一个条件的函数 # 接受一个或多个函数作为参数 # 输...

    江小白
  • CSAPP第三章(3)

    前面讲了汇编的基本语法,后面主要讲的就是 相对于C语言这样的高级语言中的一些语法结构进行汇编级别的解析。当然对于再复杂的C语言结构语法,最终都是那些简单的汇编语...

    HeaiKun
  • python函数详解

        *args接收全部位置参数,聚合为元祖 **kwargs接收全部关键字参数,聚合为字典

    py3study
  • Python入门高阶教程-高阶函数

    前面写的 Python 入门教程中只有基础入门和基础进阶两部分,可以在公众号下拉菜单中找到,小一我都已经分好类了。

    知秋小一
  • PHP入门之函数

    在PHP的领域中,用来实现某种功能的一小段代码叫函数。函数不支持重载,这就意味着不能出现两个相同的函数名。函数分为两种,一种是自定义函数,另一种是内置函数。具体...

    邂逅千寻

扫码关注云+社区

领取腾讯云代金券