当前位置: 首页 > news >正文

机器学习深度学习——线性回归的基本元素

回归用来表示输入输出之间的关系。
用实际例子来解释一下线性回归:根据房屋的面积、房龄来估算房屋价格。为了实现这个预测放假的模型,需要收集一个真实的数据集,该数据集包括了房屋的销售价格、面积和房龄。
在机器学习中,这个数据集称为训练集(training set),每行数据称为样本(sample)数据点(data point),试图预测的目标称为标签(label)目标(target)。预测所依据的自变量(面积和房龄)称为特征(feature)
通常,我们使用n来表示数据集中的样本数。对索引为i的样本,其输入表示为:
x ( i ) = [ x 1 ( i ) , x 2 ( i ) ] T x^{(i)}=[x_1^{(i)},x_2^{(i)}]^T x(i)=[x1(i),x2(i)]T
其对应的标签是:
y ( i ) y^{(i)} y(i)

线性回归的基本元素

  • 线性模型
  • 损失函数
  • 解析解

线性模型

p r i c e = w a r e a ⋅ a r e a + w a g e ⋅ a g e + b price=w_{area}·area+w_{age}·age+b price=wareaarea+wageage+b
其中,w为权重,决定了每个特征对我们预测值的影响。b为偏置,指当所有特征取0时的预测值。
严格来说,上式是输入特征的一种仿射变换,其特点是通过加权和特征进行线性变换,并通过偏置项来进行平移。
而在机器学习中,通常使用高维数据集,建模时采用线性代数表示法会比较方便。当我们的输入包含d个特征时,我们将预测结果表示为:
y ^ = w 1 x 1 + . . . + w d x d + b \hat{y}=w_1x_1+...+w_dx_d+b y^=w1x1+...+wdxd+b
将所有的特征放到向量x中,并将所有权重放到向量w中,可以用点积来简洁地表达模型:
y ^ = w T x + b \hat{y}=w^Tx+b y^=wTx+b
显然,向量x只能对应于单个数据样本的特征。
用符号表示的矩阵X可以很方便地引用我们整个数据集的n个样本。其中,X的每一行是一个样本,每一列是一种特征
对于特征集合X,预测值可以通过矩阵-向量乘法表示为:
y ^ = X w + b \hat{y}=Xw+b y^=Xw+b
这个过程中的求和将使用广播机制,给定X和y,线性回归的目标就是找到一组权重向量w和偏置b:当给定从X的同分布中取样的新样本特征时,能使得新样本预测标签的误差尽可能小。
但即使确信特征与标签的潜在关系是线性的, 我们也会加入一个噪声项来考虑观测误差带来的影响。
因此,在开始寻找最好的模型参数w和b之前,还需要两个东西:
(1)一种模型质量的度量方式
(2)一种能够更新模型以提高模型预测质量的方法

损失函数

损失函数能够量化目标的实际值与预测值之间的差距。通常选择非负数作为损失,数值越小表示损失越小,完美预测的损失为0。
回归问题中最常用损失函数是平方误差函数:
l ( i ) ( w , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 l^{(i)}(w,b)=\frac{1}{2}(\hat{y}^{(i)}-y^{(i)})^2 l(i)(w,b)=21(y^(i)y(i))2
常数1/2不会带来本质上的差别,但这样的形式会稍微简单一点(因为求导后常系数会变为1)。
由于平方误差函数中的二次方项,估计值和观测值之间较大的差异会导致更大的损失。为了度量模型在整个数据集上的质量,我们要计算在训练集n个样本上的损失均值(等价于求和):
L ( w , b ) = 1 n ∑ i = 1 n l ( i ) ( w , b ) = 1 n ∑ i = 1 n 1 2 ( w T x ( i ) + b − y ( i ) ) 2 L(w,b)=\frac{1}{n}\sum_{i=1}^nl^{(i)}(w,b) =\frac{1}{n}\sum_{i=1}^n{\frac{1}{2}(w^Tx^{(i)}+b-y^{(i)})^2} L(w,b)=n1i=1nl(i)(w,b)=n1i=1n21(wTx(i)+by(i))2
在训练模型时,希望寻找一组参数,这组参数能最小化在所有训练样本上的总损失。

解析解

线性回归是一个很简单的优化问题,线性回归的解可以用一个公式简单表达,这类解叫做解析解。
首先,将偏置b合并到参数w中,合并方法是在包含所有参数的矩阵中附加一列。我们的预测问题是最小化:
∣ ∣ y − X w ∣ ∣ 2 ||y-Xw||^2 ∣∣yXw2
这在损失平面上只有一个临界点,对应于整个取余的损失极小点。将损失关于w的导数设为0,得到解析解:
w ∗ = ( X T X ) − 1 X T y w^*=(X^TX)^{-1}X^Ty w=(XTX)1XTy
但是解析解对问题限制太严格,不适合广泛应用于深度学习,接下来讲解随机梯度下降,几乎可以用来优化所有深度学习模型。

相关文章:

机器学习深度学习——线性回归的基本元素

回归用来表示输入输出之间的关系。 用实际例子来解释一下线性回归:根据房屋的面积、房龄来估算房屋价格。为了实现这个预测放假的模型,需要收集一个真实的数据集,该数据集包括了房屋的销售价格、面积和房龄。 在机器学习中,这个数…...

K8S初级入门系列之八-网络

一、前言 本章节我们将了解K8S的相关网络概念,包括K8S的网络通讯原理,以及Service以及相关的概念,包括Endpoint,EndpointSlice,Headless service,Ingress等。 二、网络通讯原理和实现 同一K8S集群&…...

分段@Transactional 坑及失效问题

Transactional 背景&#xff1a;在某些情况下&#xff0c;我们需要分段transaction&#xff0c;在最外面没有transaction&#xff0c;里面分成几个transaction&#xff0c;保证分段是成功的。 问题代码&#xff1a; Service public Order getOrder1(String id) {Optional<Or…...

25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序)

1.简述 基本思想 黄金分割法也称为 0.618 法&#xff0c;其基本思想是通过取试探点和进行函数值比较&#xff0c;使包含极小点的搜索区间不断缩短以逼近极小值点。适用于确定区间上的任何单谷函数求极小值的问题。 公式推导 设有定义在[ a , b ] [a,b][a,b]上的单谷函数 φ ( …...

点云拟合球体

前言&#xff1a;在很多情况下&#xff0c;需要根据点云来拟合球体&#xff0c;本博文主要介绍各种方法的拟合情况及优缺点&#xff0c;希望对各位小伙伴有所帮助&#xff01; 目录 1. vtkFitImplicitFunction进行球拟合 2. 四点求解球 1. vtkFitImplicitFunction进行球拟合 …...

基于动态规划(DP)算法的增程式EV能量管理策略研究(MATLAB编程)

文章目录 算法代码仿真结果结果分析算法代码 clc; clear; close all; load CWTVC.mat N=length(T_z); %N=200;load minFuelConsup.txt minFuel_Pe=minFuelConsup(:...

前端知识点视频补充

使用工具&#xff1a; Vscode使用&#xff1a; 需要下载插件&#xff1a;open in browser。这个插件可以快速打开浏览器。 选择文件夹有两种方式&#xff1a;选择打开文件、拖拽方式&#xff08;这种最方便&#xff09; 快捷键&#xff1a;快速生成Htm结构文件&#xff1a;…...

python多线程—终止子线程

总体思路 1、获取需要终止的子线程id 2、根据子线程id&#xff0c;终止子线程。 过程 获取子线程id&#xff1a; import threading Thread_id threading.get_ident() # 获取子线程的id值线程终止函数 def async_raise(Thread_id, exctype):"""raises th…...

#P1012. [NOIP2015提高组] 神奇的幻方

题目描述 幻方是一种很神奇的 N \times NNN 矩阵&#xff1a;它由数字 1,2,3, \ldots ,N \times N1,2,3,…,NN 构成&#xff0c;且每行、每列及两条对角线上的数字之和都相同。 当 NN 为奇数时&#xff0c;我们可以通过以下方法构建一个幻方&#xff1a; 首先将 11 写在第一行…...

(学习笔记-IP)Ping的工作原理

Ping是基于ICMP协议工作的&#xff0c;ICMP报文封装在IP包里面&#xff0c;它工作在网络层&#xff0c;是IP协议的助手。 ICMP包头的类型字段&#xff0c;大致可分为两大类&#xff1a; 一类是用于诊断的查询消息&#xff0c;也就是查询报文类型一类是通知出错原因的错误消息&…...

php 进程间通信:管道、uds

1、管道 1.1、管道概念 管道是单向的、先进先出的&#xff0c;它把进程的输出和另一个进程的输入连接在一起。一个进程往管道写入数据&#xff0c;另一个进程从管道读取数据。数据被从管道中读取出来之后&#xff0c;将被删除&#xff0c;其他进程无法在读取到相应的数据。管…...

Stable Diffusion如何生成高质量的图-prompt写法介绍

文章目录 Stable Diffusion使用尝试下效果prompt的编写技巧prompt 和 negative promptPrompt格式Prompt规则细节优化Guidance Scale 总结 Stable Diffusion Stable Diffusion是一个开源的图像生成AI系统,由Anthropic公司开发。它基于 Transformer模型架构,可以通过文字描述生成…...

MySQL 高级SQL语句(一)

目录 一、高级SQL语句&#xff08;进阶查询&#xff09; 1.1 select 1.2 distinct 1.3 where 1.4 and 和 or 1.5 in 1.6 between 1.7 通配符 1.8 like 1.9 order by 一、高级SQL语句&#xff08;进阶查询&#xff09; 先准备2个表 一个location表&#xff1a; use m…...

SkyWalking链路追踪-技术文档首页

SkyWalking 文档中文版&#xff08;社区提供&#xff09; (skyapm.github.io)https://skyapm.github.io/document-cn-translation-of-skywalking/ SkyWalking-基本概念 SkyWalking链路追踪是一个用于分布式系统的性能监控工具&#xff0c;它帮助开发人员了解系统中各组件之间…...

AndroidStudio Memory profiler(内存分析器)

1.Record Java/Kotlin allocations 查看java 层中对象的调用栈和短时间内创建对象的次数。可用于内存抖动快速分析,可用快速查找到该对象的调用栈(等同于mat) 从上图可见&#xff0c;短时间内创建了23个char[] 数组&#xff0c;其中最大的char[] 占用20k, 查看cll stack 调用…...

【C++模板进阶】

目录 一、模板使用时的一个小注意点二、非类型模板参数三、类模板的特化3.1函数模板的特化3.2类模板的特化3.2.1全特化3.2.2偏特化 四、模板的分离编译4.1模板不支持分离编译4.2模板分离编译报错的分析4.2解决方案 五、模板的总结 一、模板使用时的一个小注意点 在使用模板时&…...

(一)RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理

Lison <dreamlison163.com>, v1.0.0, 2023.06.22 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理 文章目录 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理RabbitMQ概念RabbitMQ的优势RabbitMQ劣势RabbitMQ应用的场景RabbitMQ_AMQPRabbitMQ工作原理 RabbitM…...

JetBrains全家桶:如何自定义实现类TODO注释?

文章目录 效果图具体方法参考文献 效果图 TODO注释大家应该都用过&#xff0c;在注释开头打上TODO的话&#xff0c;软件下方的TODO选项卡里就可以自动筛选出你打了TODO的注释&#xff0c;你可以点击里面对应的注释来实现快速跳转。 jetbrains全家桶&#xff08;如Pycharm、Int…...

【技术干货】工业级BLE5.2蓝牙模块SKB378 使用教程,AT指令集

SKB378是一个高度集成的蓝牙5.2模组&#xff0c;可用来在2.4GHz ISM频段内做高速率、短距离无线通信。工业级标准&#xff0c;支持主从模式(1主对8从)&#xff0c;支持串口透传&#xff0c;AT指令控制&#xff0c;且支持AoA蓝牙高精度室内定位&#xff0c;模组内部集成32位ARM …...

零基础深度学习——学习笔记1 (逻辑回归)

前言 因为各种各样的原因要开始学习深度学习了&#xff0c;跟着吴恩达老师的深度学习视频&#xff0c;自己总结一些知识点&#xff0c;以及学习中遇到的一些问题&#xff0c;以便记录学习轨迹以及以后复习使用&#xff0c;为了便于自己理解&#xff0c;我会将一些知识点用以个…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解

文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一&#xff1a;HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二&#xff1a;Floyd 快慢指针法&#xff08;…...