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

【研究生随笔】Pytorch中的线性回归

线性回归基于⼏个简单的假设:⾸先,假设⾃变量 x 和因变量 y 之间的关系是线性的,即y可以表⽰为 x 中元素的加权和,这⾥通常允许包含观测值的⼀些噪声;其次,我们假设任何噪声都⽐较正常,如噪声遵循正态分布。
举个例子,更好理解:
我们希望根据房屋的⾯积(平⽅英尺)和房龄(年)来估算房屋价格(美元)。为了开发⼀个能预测房价的模型,我们需要收集⼀个真实的数据集。这个数据集包括了房屋的销售价格、⾯积和房龄。在机器学习的术语中,该数据集称为训练数据集(training data set)或训练集(training set),每⾏数据(在这个例⼦中是与⼀次房屋交易相对应的数据)称为样本(sample),也可以称为数据点(data point)或数据样本(data instance)。我们要试图预测的⽬标(在这个例⼦中是房屋价格)称为标签(label)或⽬标(target)。预测所依据的⾃变量(⾯积和房龄)称为 特征(features)或 协变量(covariates)。
通常,我们使⽤ n 来表⽰数据集中的样本数。对索引为 i 的样本,其输⼊表⽰为 x(i) = [x( 1i); x( 2i)]⊤,其对应的标签是 y(i)。
上面的例子的模型可用如下公式进行类比:
在这里插入图片描述
其中,ω_area 和 ω_age 称为 权重(weight), b 称为 偏置(bias),或称为偏移量(offset)、截距(intercept)。权重决定了每个特征对我们预测值的影响。偏置是指当所有特征都取值为0时,预测值应该为多少。即使现实中不会有任何房⼦的⾯积是0或房龄正好是0年,仍然需要偏置项。如果没有偏置项,模型的表达能⼒将受到限制。
将预测结果表示为如下公式:
在这里插入图片描述如果将权重放到一个向量中来保存或者描述的话,就要可以将过程与之前学的线性代数相关的操作来进行计算了(预测结果即转换为点积的形式来表达):
在这里插入图片描述
那如果再将特征值换成集合的形式来表达的话,有进一步转换为矩阵和向量的乘法:
在这里插入图片描述

损失函数:

用于确定模型所输出的结果的拟合程度的度量,可以量化实际值和预测值之间的差距,一般是非负数且越小越好。回归问题最常用的是平方误差函数:

在这里插入图片描述

其中,y帽i为样本id预测值,yi为真实值(偷懒下的描述)。

解析解:

线性回归是一个简单的优化问题,他的解可以用一个公式表达出来,这类解就叫解析解(analytical solution),将偏置 b 合并到参数 w中。合并⽅法是在包含所有参数的矩阵中附加⼀列。我们的预测问题是最小化 ∥y − Xw∥^2(范数)。这在损失平⾯上只有⼀个临界点,这个临界点对应于整个区域的损失最小值。将损失关于w的导数设为0,得到解析解:
在这里插入图片描述

梯度下降:

几乎可以优化所有深度学习的模型,通过不断在损失函数递减的方向上更新参数来降低误差(计算损失函数关于模型参数的导数)。但是如果每一次计算都要对所有的参数进行一次求导的话,那速度会太慢(有大部分的参数是无辜的),所以就会涉及到随机抽取一小批样本来进行计算,这叫做小批量随机梯度下降(minibatchstochastic gradient descent)。
⾸先随机抽样⼀个小批量B,它是由固定数量的训练样本组成的。然后,我们计算小批量的平均损失关于模型参数的导数(也可以称为梯度)。最后,我们将梯度乘以⼀个预先确定的正数η,并从当前参数的值中减掉。
在这里插入图片描述

矢量化加速:

在训练模型时,经常需要同时处理一整个小批量的样本,就需要对计算进行矢量化处理,从而利用线性代数库。

正态分布与平方损失:

正太分布(normal distribution)也是高斯分布:若随机变量x具有均值μ和方差σ^2,则其正态分布概率密度函数为:
在这里插入图片描述
用代码表示如下:

import math
import numpy as np
def normal(x, mu, sigma):p = 1 / math.sqrt(2 * math.pi sigma**2)return p * np.exp(-0.5 / sigma**2 * (x - mu)**2
http://www.dtcms.com/a/516048.html

相关文章:

  • OCR 识别:电子保单的数字化助力
  • 好看的网站哪里找网站免费软件
  • Jmeter接口常用组织形式及PICT使用指南
  • iOS 混淆实战,多工具组合完成 IPA 混淆、加固与发布治理(iOS混淆|IPA加固|无源码混淆|App 防反编译)
  • 飞牛fnNAS搭建Web网页版OFFICE(WPS)软件
  • Mysql杂志(三十四)——MVCC、日志分类
  • Qwen3ForCausalLM 源码解析
  • 用多工具组合把 iOS 混淆做成可复用的工程能力(iOS混淆 IPA加固 无源码混淆 Ipa Guard)
  • 扎根乡土,科技赋能:中和农信的综合助农之路
  • SignalR 协议深度分析
  • 在 Linux 系统上安装 Miniconda、安装 Xinference,并设置 Xinference 开机自启动
  • 第一篇:把任意 HTTP API 一键变成 Agent 工具
  • 使用PCIE B210烧写SIM卡
  • 大模型太贵太慢?豆包1.6想打破这个“行业幻觉”
  • 卖酒网站排名阳江 网站建设
  • 唐宇迪2025最新机器学习课件——学习心得(1)
  • python基于卷积神经网络的桥梁裂缝检测系统(django),附可视化界面,源码
  • 网站建设要学什么asp.net做电商网站设计
  • OpenTelemetry日志采集和链路跟踪部署与问题解决文档
  • Rocky 9 单机安装elastic-9.1.5
  • 黑马程序员C++提高编程_3.STL- 常用容器_list容器
  • 免费模板网站word医疗室内设计网站推荐
  • flutter实现web端实现效果
  • 网站建设与管理题目wordpress页面标题标签
  • 在线预览docx、ppt、excel、doc、pdf等文档解决方案
  • !process 命令详解
  • 渗透测试(4):SQL注入示例
  • 三明做网站全球速卖通规则
  • python3编程基础
  • 解决时序违例(四)