logistic回归详解(二):损失函数(cost function)详解[通俗易懂]

logistic回归详解(二):损失函数(cost function)详解[通俗易懂]有监督学习机器学习分为有监督学习,无监督学习,半监督学习,强化学习。对于逻辑回归来说,就是一种典型的有监督学习。既然是有监督学习,训练集自然可以用如下方式表述:{(x1,y1),(x2,y2),⋯,(xm,ym)}\{(x^1,y^1),(x^2,y^2),\cdots,(x^m,y^m)\}对于这m个训练样本,每个样本本身有n维特征。再加上一个偏置项x0x_0,则每个样本包含n+1维特征

大家好,又见面了,我是你们的朋友全栈君。

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

有监督学习

机器学习分为有监督学习,无监督学习,半监督学习,强化学习。对于逻辑回归来说,就是一种典型的有监督学习。
既然是有监督学习,训练集自然可以用如下方式表述:
{ ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) } \{(x^1,y^1),(x^2,y^2),\cdots,(x^m,y^m)\} {
(x1,y1),(x2,y2),,(xm,ym)}

对于这m个训练样本,每个样本本身有n维特征。再加上一个偏置项 x 0 x_0 x0, 则每个样本包含n+1维特征:
x = [ x 0 , x 1 , x 2 , ⋯   , x n ] T x = [x_0,x_1,x_2,\cdots,x_n]^T x=[x0,x1,x2,,xn]T
其中 x ∈ R n + 1 x\in R^{n+1} xRn+1, x 0 = 1 x_0=1 x0=1, y ∈ { 0 , 1 } y\in\{0,1\} y{
0,1}

李航博士在统计学习方法一书中给分类问题做了如下定义:
分类是监督学习的一个核心问题,在监督学习中,当输出变量Y取有限个离散值时,预测问题便成为分类问题。这时,输入变量X可以是离散的,也可以是连续的。监督学习从数据中学习一个分类模型或分类决策函数,称为分类器(classifier)。分类器对新的输入进行输出的预测(prediction),称为分类(classification).

在logistic回归详解一(http://blog.csdn.net/bitcarmanlee/article/details/51154481)中,我们花了一整篇篇幅阐述了为什么要使用logistic函数: h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_{\theta}(x) = g(\theta^{T}x) = \frac{1}{1+e^{-\theta^{T}x}} hθ(x)=g(θTx)=1+eθTx1
其中一个重要的原因,就是要将Hypothesis(NG课程里的说法)的输出映射到0与1之间,既:
0 ≤ h θ ( x ) ≤ 1 0\le h_{\theta}(x)\le 1 0hθ(x)1

同样是李航博士统计学习方法一书中,有以下描述:
统计学习方法都是由模型,策略,和算法构成的,即统计学习方法由三要素构成,可以简单表示为:
方 法 = 模 型 + 策 略 + 算 法 方法 = 模型 + 策略 + 算法 =++

对于logistic回归来说,模型自然就是logistic回归,策略最常用的方法是用一个损失函数(loss function)或代价函数(cost function)来度量预测错误程度,算法则是求解过程,后期会详细描述相关的优化算法。

logistic函数求导

KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ g'(z) & = \fra…

此求导公式在后续推导中会使用到

常见的损失函数

机器学习或者统计机器学习常见的损失函数如下:

1.0-1损失函数 (0-1 loss function)
L ( Y , f ( X ) ) = { 1 , Y  ≠  f(X) 0 , Y = f(X) L(Y,f(X))= \begin{cases} 1 , & \text {Y $\neq$ f(X)} \\ 0, & \text{Y = f(X)} \end{cases} L(Y,f(X))={
1,0,= f(X)Y = f(X)

2.平方损失函数(quadratic loss function)
L ( Y , f ( X ) ) = ( Y − f ( x ) ) 2 L(Y,f(X)) = (Y – f(x))^2 L(Y,f(X))=(Yf(x))2

3.绝对值损失函数(absolute loss function)
L ( Y , f ( x ) ) = ∣ Y − f ( X ) ∣ L(Y,f(x)) = |Y – f(X)| L(Y,f(x))=Yf(X)

4.对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likehood loss function)
L ( Y , P ( Y ∣ X ) ) = − l o g P ( Y ∣ X ) L(Y,P(Y|X)) = -logP(Y|X) L(Y,P(YX))=logP(YX)

逻辑回归中,采用的则是对数损失函数。如果损失函数越小,表示模型越好。

说说对数损失函数与平方损失函数

在逻辑回归的推导中国,我们假设样本是服从伯努利分布(0-1分布)的,然后求得满足该分布的似然函数,最终求该似然函数的极大值。整体的思想就是求极大似然函数的思想。而取对数,只是为了方便我们的在求MLE(Maximum Likelihood Estimation)过程中采取的一种数学手段而已。

损失函数详解

根据上面的内容,我们可以得到逻辑回归的对数似然损失函数cost function:
c o s t ( h θ ( x ) , y ) = { − l o g ( h θ ( x ) ) if y=1 − l o g ( 1 − h θ ( x ) ) if y=0 cost(h_{\theta}(x),y) = \begin{cases} -log(h_{\theta}(x)) & \text {if y=1} \\ -log(1-h_{\theta}(x)) & \text{if y=0} \end{cases} cost(hθ(x),y)={
log(hθ(x))log(1hθ(x))if y=1if y=0

稍微解释下这个损失函数,或者说解释下对数似然损失函数:
当y=1时,假定这个样本为正类。如果此时 h θ ( x ) = 1 h_\theta(x)=1 hθ(x)=1,则单对这个样本而言的cost=0,表示这个样本的预测完全准确。那如果所有样本都预测准确,总的cost=0
但是如果此时预测的概率 h θ ( x ) = 0 h_\theta(x)=0 hθ(x)=0,那么 c o s t → ∞ cost\to\infty cost。直观解释的话,由于此时样本为一个正样本,但是预测的结果 P ( y = 1 ∣ x ; θ ) = 0 P(y=1|x;\theta) = 0 P(y=1x;θ)=0, 也就是说预测 y=1的概率为0,那么此时就要对损失函数加一个很大的惩罚项。
当y=0时,推理过程跟上述完全一致,不再累赘。

将以上两个表达式合并为一个,则单个样本的损失函数可以描述为:
c o s t ( h θ ( x ) , y ) = − y i l o g ( h θ ( x ) ) − ( 1 − y i ) l o g ( 1 − h θ ( x ) ) cost(h_{\theta}(x),y) = -y_ilog(h_{\theta}(x)) – (1-y_i)log(1-h_{\theta}(x)) cost(hθ(x),y)=yilog(hθ(x))(1yi)log(1hθ(x))
因为 y i y_i yi 只有两种取值情况,1或0,分别令y=1或y=0,即可得到原来的分段表示式。

全体样本的损失函数可以表示为:
c o s t ( h θ ( x ) , y ) = ∑ i = 1 m − y i l o g ( h θ ( x ) ) − ( 1 − y i ) l o g ( 1 − h θ ( x ) ) cost(h_{\theta}(x),y) = \sum_{i=1}^{m} -y_ilog(h_{\theta}(x)) – (1-y_i)log(1-h_{\theta}(x)) cost(hθ(x),y)=i=1myilog(hθ(x))(1yi)log(1hθ(x))
这就是逻辑回归最终的损失函数表达式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131777.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月11日 下午8:46
下一篇 2022年6月11日 下午9:00


相关推荐

  • 现在建网站你会选择自己建站还是在线建站平台?

    现在建网站你会选择自己建站还是在线建站平台?一 什么是网站 网上关于网站的定义很多 在此就不想重复了 简而言之网站就是创建者使用技术手段搭建 从而让访客可以通过域名访问并进行互动的互联网页面组合 通常网站由四个部分组成 1 域名 也就是我们通常称为网址的东东 比如 淘宝 taobao com 百度 baidu com 对于普通用户可以简单理解为域名既网址 域名是网站的访问入口 没有域名的话普通用户无法访问网站就好了 所以域名是网站的重要组成部分 2 程序 这里特指建站程序 网站虽然每一个页面都是由源代码组成的 但即使是程

    2025年6月26日
    5
  • 程序员写个人技术博客的价值与意义

    程序员写个人技术博客的价值与意义文章目录什么是博客主要用途博客分类个人博客使用第三方平台个人博客与独立博客的优缺点使用第三方平台个人博客的优点独立博客的优点没写博客的原因浪费时间工作太忙,没时间写懒于思考,疏于总结怕自己的技术被别人学到,被别人超越想写,但不知道写什么技术含量低,写出来没意义,怕别人嘲笑写博客最初的想法写博客的价值与意义加深对技术点的理解,记录足迹,反映成长,分类检索,方便日后查阅观点碰撞,分享收获结交更多志同道…

    2022年5月20日
    39
  • 企业微信发送消息api_微信公众号发消息给用户

    企业微信发送消息api_微信公众号发消息给用户最近,接手了告警的一个需求。详细需求:监控一个应用的某些指标超标了,要提醒用户,通过企业微信给指定用户发送告警信息;今日自己实现了一下,总结出来分享给大家。注意:代码亲自编写,已自测通过文章目录前言一、编码?1.依赖2.SendWX.java3.WeChatMsgSend.java4.WeChatData.java5.WeChatUrlData.java二、参数1.构建自己的企业微信2.参数详细获取总结前言通过企业微信给指定用户发送告警信息一、编码?1.依赖<dependencie

    2026年4月16日
    6
  • 概率公理化定义的理解

    概率公理化定义的理解由于自己研究生方向为计算机视觉,需要用到许多概率论方面相关的知识,出来混早晚是要还滴!由于本科概率论课不太适应老师的语调,大多数课都睡过去了。。。就连最基本的概率的公理化定义,都快大学毕业了,都一直没有理解,真是囧!赶紧恶补了下概率论,感觉对公理化定义有了一点新的认识,一方面写出来加深自己的记忆,一方面分享出来,供有同样疑问的同学看看,水平有限,如有错误也在所难免,恳请大家指出,然后我进行改正

    2022年8月31日
    5
  • Py之seaborn:seaborn库的简介、安装、使用方法之详细攻略

    Py之seaborn:seaborn库的简介、安装、使用方法之详细攻略Py 之 seaborn seaborn 库的简介 安装 使用方法之详细攻略目录 seaborn 库的简介 seaborn 库的安装 seaborn 库的使用方法 0 相关文章 1 案例应用 seaborn 库的简介 Seabn 是一个在 Python 中制作有吸引力和丰富信息的统计图形的库 它构建在 MatPultLB 的顶部 与 PyDATA 栈紧密集成 包括

    2026年3月18日
    2
  • msdos分区是什么_msdos_partition

    msdos分区是什么_msdos_partition硬盘分区及格式化本例要求熟悉硬盘分区结构,使用fdisk分区工具在磁盘/dev/vdb上按以下要求建立分区:采用默认的msdos分区模式1、第1个分区/dev/vdb1的大小为200MiB2、第2个分区/dev/vdb2的大小为2000MiB3、第3个分区/dev/vdb3的大小为1000MiB,完成分区后4、能够配置开机自动挂载/dev/vdb2分区…

    2022年8月11日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号