深度学习自学笔记二:逻辑回归和梯度下降法

目录

一、逻辑回归

二、逻辑回归的代价函数

三、梯度下降法


一、逻辑回归

逻辑回归是一种常用的二分类算法,用于将输入数据映射到一个概率输出,表示为属于某个类别的概率。它基于线性回归模型,并使用了sigmoid函数作为激活函数。

假设我们有一个二分类问题,其中输入特征为x,对应的样本标签为y(0或1)。逻辑回归的目标是根据输入特征x预测样本标签y的概率。

逻辑回归模型可以表示为:

z = w * x + b

其中,w是权重向量,x是输入特征向量,b是偏置。这部分与线性回归模型相似。

不同之处在于,逻辑回归模型还引入了一个sigmoid函数(也称为逻辑函数)g(z),用于将线性模型的输出z映射到0和1之间的概率值。sigmoid函数的数学表达式如下:

g(z) = 1 / (1 + e^(-z))

通过将线性模型的输出z传入sigmoid函数,得到的结果g(z)表示样本属于正类的概率。反之,1 - g(z)表示样本属于负类的概率。

在训练阶段,我们需要通过最大似然估计或者梯度下降等优化方法来找到最优的权重向量w和偏置b,使得模型的预测结果与实际标签尽可能地接近。

训练过程中的损失函数通常采用交叉熵损失(cross-entropy loss),它可以衡量实际概率分布与预测概率分布之间的差异。通过最小化损失函数,我们可以更新权重向量w和偏置b,以提高模型的预测准确性。

在预测阶段,给定新的输入特征x,我们可以使用训练好的权重向量w和偏置b,将其代入逻辑回归模型,并通过sigmoid函数计算输出概率g(z)。一般而言,如果g(z)大于等于0.5,则我们将样本预测为正类;如果g(z)小于0.5,则预测为负类。

二、逻辑回归的代价函数

逻辑回归模型的代价函数(Cost Function)通常使用交叉熵损失函数(Cross-Entropy Loss)来衡量实际概率分布与模型预测概率分布之间的差异。

假设我们有一个训练集包含m个样本,每个样本的输入特征为x,对应的真实标签为y(0或1)。逻辑回归的目标是找到最优的权重向量w和偏置b,使得模型的预测结果尽可能接近真实标签。

对于每个样本i,逻辑回归模型的预测值表示为y_hat_i,它是通过将输入特征x_i代入逻辑回归模型中计算得到的。预测值y_hat_i可以看作样本i属于正类的概率。

交叉熵损失函数的数学表达式如下:

J(w, b) = - (1/m) * Σ(y_i * log(y_hat_i) + (1-y_i) * log(1-y_hat_i))

其中,J(w, b)表示代价函数,w和b表示权重向量和偏置,m表示样本数量,y_i表示第i个样本的真实标签,y_hat_i表示对应的预测值。

交叉熵损失函数由两部分组成。当真实标签y_i为1时,第一部分y_i * log(y_hat_i)用于衡量模型对正类样本的预测准确性。当真实标签y_i为0时,第二部分(1-y_i) * log(1-y_hat_i)用于衡量模型对负类样本的预测准确性。

代价函数J(w, b)可以看作是对所有样本的预测误差进行平均后取反的结果。我们的目标是通过最小化代价函数来找到最优的权重向量w和偏置b,使得模型的预测结果与真实标签尽可能接近。

在训练阶段,通常使用梯度下降等优化算法来更新权重向量w和偏置b,以最小化代价函数。通过不断迭代优化,逻辑回归模型能够逐渐提高对样本标签的预测准确性。

三、梯度下降法

梯度下降法(Gradient Descent)是一种常用的优化算法,用于最小化代价函数(Cost Function)或损失函数。在逻辑回归等机器学习模型中,梯度下降法常用于更新模型参数,以找到使代价函数最小化的权重和偏置。

梯度下降法的基本思想是通过迭代更新参数,沿着代价函数的负梯度方向移动,以逐步接近代价函数的最小值。具体而言,梯度下降法包括以下步骤:

1. 初始化参数:将权重向量w和偏置b初始化为任意值。

2. 计算梯度:对于每个参数,计算代价函数关于该参数的偏导数(梯度)。这可以使用链式法则来计算,根据代价函数的形式不同而有所不同。

3. 更新参数:根据梯度的方向和学习率(learning rate),更新参数的值。学习率决定了每次参数更新的步长,较大的学习率可能导致无法收敛,而较小的学习率可能导致收敛速度过慢。

4. 重复步骤2和3:重复计算梯度和更新参数的过程,直到达到停止条件。停止条件可以是达到一定的迭代次数,或者代价函数的变化小于某个阈值等。

添加图片注释,不超过 140 字(可选)

在逻辑回归中,梯度下降法的目标是最小化代价函数。通过不断更新权重向量w和偏置b,使得模型的预测结果与真实标签尽可能接近。通过迭代优化过程,梯度下降法可以找到局部最优解或接近最优解的参数值,从而提高模型的准确性。

需要注意的是,梯度下降法有多种变体,例如批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-Batch Gradient Descent)。它们的区别在于每次更新参数时使用的样本数量。批量梯度下降使用整个训练集,随机梯度下降使用单个样本,而小批量梯度下降使用一小部分样本来计算梯度和更新参数。不同的变体在收敛速度和计算效率上可能会有所差异。

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

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

相关文章

数据结构与算法-时间复杂度与空间复杂度

数据结构与算法 🎈1.概论🔭1.1什么是数据结构?🔭1.2什么是算法? 🎈2.算法效率🔭2.1如何衡量一个算法的好坏?🔭2.2算法的复杂度🔭2.3时间复杂度📖2…

【数据结构】七大排序算法详解

目录 ♫什么是排序 ♪排序的概念 ♪排序的稳定性 ♪排序的分类 ♪常见的排序算法 ♫直接插入排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫希尔排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫直接选择排序 ♪基本思想 ♪算法…

MongoDB【部署 02】mongodb使用配置文件启动、添加为系统服务及自启动(一个报错:[13436][NotMasterOrSecondary])

MongoDB使用配置文件启动、添加为系统服务及设置自启动 1.是什么2.下载安装启动配置2.1 下载2.2 安装2.3 配置2.4 使用配置文件启动 3.设置系统服务及自启动3.1 设置为系统服务3.2 自启动 1.是什么 【以下内容来自ChatGPT3.5】 MongoDB是一个流行的开源文档型数据库管理系统&a…

SpringBoot实战(二十四)集成 LoadBalancer

目录 一、简介1.定义2.取代 Ribbon3.主要特点与功能4.LoadBalancer 和 OpenFeign 的关系 二、使用场景一:Eureka LoadBalancer服务A:loadbalancer-consumer 消费者1.Maven依赖2.application.yml配置3.RestTemplateConfig.java4.DemoController.java 服务…

力扣刷题-链表理论基础

什么是链表 什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思&a…

金融风控建模常用指标介绍(WOE, IV, KS, PSI)

金融风控建模常用指标介绍(WOE, IV, KS, PSI) 近期在做金融风控相关项目,有必要把特征和模型的衡量指标总结下,以备不时之需。这次主要介绍4个指标(WOE, IV, KS, PSI)。 WOE(Weight of Evidenc…

力扣-228.汇总区间

AC Code 自己做出来的&#xff0c;代码写的很烂&#xff0c;但是也浅浅记录一下叭&#xff0c;下面有看答案思路写出来的双指针代码 class Solution { public:vector<string> summaryRanges(vector<int>& nums) {vector<string> ans;int n nums.size();…

上市公司-供应链数字化示范名单匹配(2000-2022年)

参考《经济管理》刘海建&#xff08;2023&#xff09;、《中国软科学》张树山&#xff08;2021&#xff09;的做法&#xff0c;将商务部公开的“供应链创新与应用试点企业、试点城市”分别与上市公司匹配&#xff0c;得到2份DID数据 一、数据介绍 数据名称&#xff1a;上市公司…

FPGA:卷积编码及维特比译码仿真

FPGA&#xff1a;卷积编码及维特比译码仿真 本篇记录一下在FPGA中完成卷积编码和维特比译码的过程&#xff0c;通过代码解释编码的过程和译码的过程&#xff0c;便于理解&#xff0c;同时也方便移植到其他工程中。 1. 准备工作 卷积编译码IP核—convolutionIP核和viterbiIP核…

工作流 Flowable 的使用

一、BPMN 业务流程建模与标注 通过 Status&#xff08;状态&#xff09; 字段维护流程状态&#xff0c;流程负责的审批人可能也是 Hard Code&#xff08;硬编码&#xff09;会出现以下问题&#xff1a; 1.流程健壮性差&#xff0c;但凡出现人员变动&#xff0c;或者组织结构调…

Linux部署项目

本文以人人权限管理系统为例&#xff0c;使用finalshell工具连接服务器。服务器使用的是腾讯云服务器。用自己虚拟机也可以完成项目部署。 后端代码renren-security: 采用SpringBoot2、MyBatis-Plus、Shiro框架&#xff0c;开发的一套权限系统&#xff0c;极低门槛&#xff0c…

【RocketMQ】(五)消息的消费

消费者从Broker拉取到消息之后&#xff0c;会将消息提交到线程池中进行消费&#xff0c;RocketMQ消息消费是批量进行的&#xff0c;如果一批消息的个数小于预先设置的批量消费大小&#xff0c;直接构建消费请求ConsumeRequest将消费请求提交到线程池处理&#xff0c;否则需要分…

OpenMesh 网格平滑

文章目录 一、简介二、相关参数二、实现代码三、实现效果参考资料一、简介 由于物理采样过程固有的局限性,三维扫描仪获得的网格通常是有噪声的。为了消除这种噪声,所谓的平滑算法被开发出来。这类方法有很多,OpenMesh主要为我们提供了两种平滑算法,一种是较为经典的Laplac…

火山引擎 ByteHouse:ClickHouse 如何保证海量数据一致性

背景 ClickHouse是一个开源的OLAP引擎&#xff0c;不仅被全球开发者广泛使用&#xff0c;在字节各个应用场景中也可以看到它的身影。基于高性能、分布式特点&#xff0c;ClickHouse可以满足大规模数据的分析和查询需求&#xff0c;因此字节研发团队以开源ClickHouse为基础&…

【【萌新的FPGA学习之实战流水灯】】

萌新的FPGA学习之实战流水灯 实验任务 本节的实验任务是使用领航者底板上的两个 PL LED 灯顺序点亮并熄灭&#xff0c;循环往复产生流水灯的效 果&#xff0c;流水间隔时间为 0.5s。 1MHz&#xff1d;1000000Hz 10的6次方 1ns&#xff1d;10的-9次方秒 开发板晶振50Mhz 计算得…

NIO简单介绍

一、什么是NIO 1、Java NIO全称java non-blocking IO&#xff0c; 是指JDK提供的新API。从JDK1.4开始&#xff0c;Java提供了一系列改进的输入/输出的新特性&#xff0c;被统称为NIO(即New IO)&#xff0c;是同步非阻塞的 2、NIO有三大核心部分: Channel(通道)&#xff0c; Buf…

Goland设置头注释

package ${GO_PACKAGE_NAME} * Author: 坐公交也用券 * HomePage: https://liumou.site * File: ${NAME}.go * Date: ${DATE} ${TIME} * Des: 文件作用

点分治维护dp+连通块上新型dp思路+乘积方面进行根号dp:0922T4

首先连通块&#xff0c;所以点分治肯定是 Trick1 钦定选根的连通块dp 对于钦定选根的连通块dp&#xff0c;有一种常见思路 先对原树求其dfn序&#xff0c;按dfn序倒序求解 具体的&#xff0c;对于当前点 i i i&#xff08;注意这里都是指dfn序&#xff09;&#xff0c;我们…

企业电子招标采购系统源码之从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理

功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查看所…

【智慧工地源码】智慧工地助力数字建造、智慧建造、安全建造、绿色建造

智慧工地围绕建设过程管理&#xff0c;建设项目与智能生产、科学管理建设项目信息生态系统集成在一起&#xff0c;该数据在虚拟现实环境中&#xff0c;将物联网收集的工程信息用于数据挖掘和分析&#xff0c;提供过程趋势预测和专家计划&#xff0c;实现工程建设的智能化管理&a…