(一)逻辑回归及其代价函数 --- 吴恩达深度学习笔记

news2025/1/16 10:10:38

逻辑回归 — 适用于二分类问题

使用逻辑回归算法会得到的输出标签y,y在监督问题中全是0或者1,因此这是一种针对二分类问题的算法。

给定的输入特征向量x和一幅图像对应,我们希望识别这是否是一张猫的图片。因此我们想要一种算法能够输出一个预测值, 我们称之为y帽(yhat y ^ \widehat{y} y ),这代表对真是标签Y的估计。形式上讲yhat是当给定特定输入特征x时,预测标签y为1的概率。换种说法就是当x是一张图像时,你想要yhat告诉你这张图是猫的概率。

x是一个 x n x_n xn维的向量,约定逻辑回归的参数是w,w也是一个 x n x_n xn维的向量,另外,参数b是一个实数,因此给定了一个输入x,以及参数w和b,那么如何产生输出yhat呢?

尝试让 y ^ = w . T ∗ x + b \widehat{y} = w.T*x+b y =w.Tx+b,这是输入x的一个线性函数输出,事实上,如果使用线性回归,就是这样操作的,但是这对二分类并不是一个好的算法,因为你希望yhat能够输出y为1的概率。因此yhat的值应该在0和1之间。而这种算法很难实现这个要求。因为 w . T ∗ x + b w.T*x+b w.Tx+b可能会比1大很多或者是一个负数,这对于概率就失去了意义。

让逻辑回归中的输出yhat等于这个值应用sigmoid函数的结果。

G i v e    x , w a n t    y ^ = P ( y = 1 ∣ x )    , 其 中 ( 0 ≤ y ^ ≤ 1 ) Give\ \ x, want \ \ \widehat{y} = P(y =1 | x) \ \ ,其中 (0 ≤ \widehat{y} ≤1) Give  x,want  y =P(y=1x)  (0y 1)

在这里插入图片描述

sigmoid函数是这样的,如果水平轴的标签为z,那么函数sigmoid(z)是这样的,它从0平滑地升高到1,它会在0.5处和竖直轴交叉。
在这里插入图片描述

因此这就是sigmoid(z)函数,这里z表示 ( w . T ∗ x + b ) (w.T*x+b) w.Tx+b

当z是一个实数,sigmoid(z)就等于 1 1 + e − z \frac 1 {1+e^{-z}} 1+ez1

这里需要注意几件事情,如果z非常大时,e^(-z)就会接近0,所以sigmoid(z)就约等于 1 1 + 0 \frac 1 {1+0} 1+01,即等于1。就如上图显示,如果z非常大时,sigmoid(z)也就会越接近1。相反的,如果z非常小时,sigmoid(z)也就会越接近0。

因此当你实现逻辑回归时,你的目标是尽力学到参数w和b,因此yhat就能很好地估计y等于1的概率。

当进行神经网络编程时,我们通常会将参数w和参数b分开看待。这里的b对应一个偏置量。

一些其他的课程会这样做
在这里插入图片描述

事实上,实现神经网络时,将b和w当做互相独立的参数会更加简单。

接下来为了改变参数w和b,需要定义一个代价函数(逻辑回归代价函数)。

逻辑回归代价函数

为了优化逻辑回归模型的参数w和b,需要定义一个代价函数。
在这里插入图片描述

为了了解你的模型参数,这里有一组用于优化m参数的示例。,你会很自然想找出参数w和b,至少在获得训练集和输出值时,对于训练集的假定,我们只需提出y-hat(i)将接近从训练集中获得的实际y_i。为了更详细的描述上述方程式。
上标括号指的是数据
X、Y、Z以及其他字母与i-th训练示例相关联

损失函数(误差函数)可以用来检测算法运行情况,如在算法输出时定义损失,yhat和实标Y有可能是一个或者半个平方误差 L ( y ^ , y ) = 1 2 ( y ^ , y ) 2 L(\widehat{y},y) = \frac 1 2(\widehat{y},y)^2 L(y ,y)=21(y ,y)2,你可以如此操作,但是在一般逻辑回归里不进行此操作,因为当研究参数时,我们讨论的优化问题会变为非凸问题,所以优化问题会产生多个局部最优解,梯度算法也就无法找到全局最优解。

函数L被成为损失函数,需要进行设定,才能在实标为y时,对输出值yhat进行检测,平方误差整体是个合理的选择,除了无法让梯度下降算法良好运行,所以在逻辑回归中,我们回设定一个不同的损失函数充当平方误差,这样能产生一个凸象最优问题,将使之后的优化问题变得容易。所以,实际使用的逻辑回归损失函数为

L ( y ^ , y ) = − ( y l o g y ^ + ( 1 − y ) l o g ( 1 − y ^ ) ) L(\widehat{y},y) = -(ylog\widehat{y} + (1-y)log(1-\widehat{y})) L(y ,y)=(ylogy +(1y)log(1y ))

为什么使用这个损失函数有意义,如果使用平方误差,平方误差需要尽可能小,在此逻辑回归损失函数里,我们也要让这个数值尽可能小。
举个例子:
1、我们假定y=1, L ( y ^ , y ) = − l o g y ^ L(\widehat{y},y) = -log\widehat{y} L(y ,y)=logy ,要使得L特别小,那么就要使得 l o g y ^ log\widehat{y} logy 数值必须特别大,但是 y ^ \widehat{y} y 时sigmoid函数,它无法大于1,也是是说如果y=1, y ^ \widehat{y} y 值要尽可能打,但却打不过1,所以 y ^ \widehat{y} y 要无限接近1。
2、我们假定y=0,即损失函数 L ( y ^ , y ) = − l o g ( 1 − y ^ ) L(\widehat{y},y) = -log(1-\widehat{y}) L(y ,y)=log(1y ),所以在学习过程中,需要将损失函数值变小,意味着 l o g ( 1 − y ^ ) log(1-\widehat{y}) log(1y )的值要大,即要使得 y ^ \widehat{y} y 尽可能的小。即如果y=0,损失函数将会作用于参数使得yhat无限趋近于0.

目前有很多函数具有拉菲拉效应,也就是如果y=1,yhat的值要变大;如果y=0,yhat的值要变小。

接下来设定代价函数,来检测优化组的整体运行情况,所以运用参数w和b的代价函数J是取m(训练集)的平均值、损失函数的总和运用于训练集,你的逻辑回归算法预计的输出值,用于一组特定的w和b参数。
所以我们要做的是损失函数适用于像这样单一的训练集。
代价函数:
C o s t   F u n c t i o n :   J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ , y ) = − 1 m ( ∑ i = 1 m ( y ( i ) l o g y ^ ( i ) + ( 1 − y ( i ) ) l o g ( 1 − y ^ ( i ) ) ) ) Cost \ Function: \ J(w,b) = \frac 1 m\displaystyle\sum_{i=1}^mL(\widehat{y},y) = -\frac 1 m(\displaystyle\sum_{i=1}^m(y^{(i)}log\widehat{y}^{(i)} + (1-y^{(i)})log(1-\widehat{y}^{(i)}) )) Cost Function: J(w,b)=m1i=1mL(y ,y)=m1(i=1m(y(i)logy (i)+(1y(i))log(1y (i))))

L ( y ^ , y ) = − ( y l o g y ^ + ( 1 − y ) l o g ( 1 − y ^ ) ) L(\widehat{y},y) = -(ylog\widehat{y} + (1-y)log(1-\widehat{y})) L(y ,y)=(ylogy +(1y)log(1y )),此损失函数,只适用于单个的训练样本。

Cost Function基于参数的总损失,所以在训练逻辑回归模型时,我们要找到合适的参数w和b,让代价函数J尽可能地小。
逻辑回归可以被看作是一个非常小的神经网络。

Tips:符号定义

x:表示一个 n x n_x nx维数据,为输入数据,维度为( n x n_x nx,1)

y:表示输出的结果,取值为(0,1)

( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)):表示第i组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据。

X = [ ( x ( 1 ) , x ( 2 ) , . . . , x ( m ) ) ] X=[(x^{(1)},x^{(2)},...,x^{(m)})] X=[(x(1),x(2),...,x(m))]:表示所有训练数据集的输入值,放在一个 n x n_x nxx m的矩阵中,其中m表示样本数目。

Y = [ ( y ( 1 ) , y ( 2 ) , . . . , y ( m ) ) ] Y=[(y^{(1)},y^{(2)},...,y^{(m)})] Y=[(y(1),y(2),...,y(m))]:表示所有训练数据集的输出值,维度为 1 x m。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CRDB-事务层知识点

事务层负责维护事务的原子性,确保事务中的所有操作都被提交或中止。此外,事务层在事务之间维护可序列化的隔离—这意味着事务与其他事务的影响完全隔离。尽管多个事务可能同时进行,但每个事务的体验就像每次只运行一个事务—可序列化的隔离级…

PyTorch实现DCGAN(生成对抗网络)生成新的假名人照片实战(附源码和数据集)

需要数据集和源码请点赞关注收藏后评论区留言~~~ 一、生成对抗网络(GAN) GAN(生成对抗网络)是用于教授DL模型以捕获训练数据分布的框架,因此可以从同一分布中生成新数据。它们由两个不同的模型组成,生成器…

52、ElasticSearch 简单查询

1、DSL Query 分类2、DSL Query 基础语法 1、match_all,查询所有 2、全文检索查询 4、精确查询 5、地图查询 3、总结分析 本章学习了全文检索查询、精确查询、地图查询等。 1、全文检索查询: match:通过指定字段查询,不允许使用…

Activity、Fragment之间的传值

1、Activity和Activity之间传值 1、使用Intent 2、使用Intent结合Bundle IntentBundle 3、传自定义对象实现(实现Serialzable接口,性能较差,系统自动处理) 传自定义对象 4、传自定义对象(实现Parcelable,性能较好…

nginx 单向链表

ngx_list_t是Nginx封装的链表容器,它在Nginx中使用得很频繁,例如HTTP的头部就是用 ngx_list_t来存储的。当然,C语言封装的链表没有C或Java等面向对象语言那么容易理解。 ngx_list_t单向链表与ngx_queue_t双向链表是完全不同的,它是…

小程序直播系统开发制作_分享视频直播系统开发对企业的好处

许多小伙伴可能会感到困惑,直播小程序怎么制作,有直播小程序制作教程吗?为什么选择直播小程序,它会给企业带来什么好处?下面小编给大家一一解答。 一、小程序直播系统开发制作教程 ① 进入开发工具选择所在行业的模板…

Multigrid reinforcement learning with reward shaping

摘要 基于势能的奖励塑形已被证明是提高强化学习agent收敛速度的有效方法。 这是一种以原则性方式将背景知识纳入时间差分学习的灵活技术。然而,问题仍然是如何计算用于塑形给予学习agent的奖励的势能。在本文中,我们提出了一种通过状态空间离散化来解决…

计算机毕业设计java+ssm的高校科研仪器共享平台-计算机毕业设计

项目介绍 高校科研仪器共享平台,是一个学校内部提供信息管理的平台,是完全的,高速的,开放的,其核心思想是提供一个以自然语言为主的用户界面,让用户能够更好的刚加方便快捷的管理科研仪器信息的一个渠道和…

解决雪花算法生成的ID传输前端后精度丢失

本章目录: 问题描述解决方案 修改数据库字段配置MVC全局消息转换器修改Result类一、问题描述 在用雪花算法生成的ID传输到前端时,会出现后三位精度丢失 可以看到,我们得到的response为1594605819398193154 而前端展示的为159460581939819…

3 Minute Thesis (3MT)

1 定义 资料来源:https://zhuanlan.zhihu.com/p/63325983?utm_id0 3MT原则:要把博士课题介绍给一个受过高等教育但没有专业背景的人并阐述它的重要性。 定义:三分钟论文(3MT)是一个学术比赛,帮助当前的研究生培养有效的演讲和沟…

[附源码]计算机毕业设计JAVA基于web的电子产品网络购物平台

[附源码]计算机毕业设计JAVA基于web的电子产品网络购物平台 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术:…

MyBatis搭建

目录 1.我的开发环境 2.创建maven工程 (1)打包方式 : jar (2)引入依赖 3.创建MyBatis的核心配置文件 4.创建mapper接口 5.创建MyBatis的映射文件 1.映射文件的命名规则: 2.MyBatis中可以面向接口操作数据 , 要保证两个一致 : 映射文件官方示例: 6.执行配置文件中的SQL…

HC-05蓝牙模块--------手机与STM32通信(代码编写)(上位机配置)保姆级教程

⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩因为之前无论是电赛还是做项目,都用到了蓝牙模块,如:手机和stm32的通信,电赛中的双车通信,还是遥感小车的…

19 01-通过状态掩码读取DTC数目

诊断协议那些事儿 诊断协议那些事儿专栏系列文章,本文介绍存储数据传输服务下的19服务ReadDTClnformation的第一个子功能(01h),通过状态掩码读取DTC数目。 关联文章: 19服务List $19服务:DTCStatusMask和statusofDT…

肠道菌群化合物库——科研领域的研究靶点

近年来,肠道菌群已经成为科研领域的研究热点,涉及领域之广泛,最近几年的研究主要集中在肠道菌群与多种疾病发生和发展的联系。近年来,肠道菌群时常登上各大国际学术周刊,实火! “闻声而来”的肠道菌群肠道…

【异构知识蒸馏:IVIF】

Heterogeneous Knowledge Distillation for Simultaneous Infrared-Visible Image Fusion and Super-Resolution (同时进行红外-可见光图像融合和超分辨率的异构知识蒸馏) 近年来,红外-可见光图像融合引起了越来越多的关注,并且…

数据采集网关如何打破数据孤岛,实现工业物联网

企业数字化发展到一定水平,就可能出现不平衡,催生出“数据孤岛”的现象。 企业内部存在多个设备多个系统,都有各自的数据,分门别类进行存储,这些部分之间累又建立有效的数据交换渠道,协议标准业不一致&…

实战讲解网关接口统一认证SpringCloudGateway(图+文)

1 缘起 继gateway限流篇:https://blog.csdn.net/Xin_101/article/details/127890605 之后,继续补充网关统一鉴权的相关应用, 网关作为所有流量入口,承接所有请求,因此,可以在网关层统一做鉴权,…

MIT6.830-2022-lab1实验思路详细讲解

文章目录前言一、6.830/Lab1 Start二、Exercise2.1、Exercise1:Fields and Tuples2.2、Exercise2:Catalog2.3、Exercise3:BufferPool2.4、Exercise4:HeapFile access method2.5、Exercise5:HeapFile2.6、Exercise6&…

DJ12-2-2 算术运算指令

目录 1. 加法指令 (1)ADD 指令 (2)ADC 指令 (3)INC 指令 2. 减法指令 (1)SUB 指令 (2)SBB 指令 (3)DEC 指令 (4&…