机器学习-线性回归(参数估计之经验风险最小化)

给定一组包含 𝑁 个训练样本的训练集

我们希望能够 学习一个最优的线性回归的模型参数 𝒘 

现在我们来介绍线性回归的一种模型参数估计方法:经验风险最小化。

我们前面说过,对于标签 𝑦 和模型输出都为连续的实数值,平方损失函数非常合适衡量真实标签和预测标签之间的差异。

因此这里大家需要注意一点,经验风险最小化在线性回归中,一般使用均方误差作为损失函数。

一、先来理解一下均方误差作为损失函数时,对应的矩阵形式如何表示

(一)先来认识什么是二范数?

1、二范数的数学定义:

2、二范数的几何解释

3、二范数的代数解释

4、二范数的性质

5、二范数在机器学习中的应用

(二)再来理解均方误差的矩阵表示

线性回归中,均方误差(Mean Squared Error, MSE)二范数(L2L_2L2​范数)之间有密切的关系。均方误差实际上是预测误差向量的二范数的平方的均值,在矩阵形式下,可以用二范数的表达方式来表示。

1、均方误差(MSE)的定义

2、结合二范数的概念,则可以推导出:

二、现在我们回到标题,掌握如何通过经验风险最小化来学习线性回归的最优参数

在机器学习中,经验风险最小化(Empirical Risk Minimization, ERM)是一种常用的策略,用来在给定的训练数据上找到最优的模型参数。对于线性回归(Linear Regression),我们可以使用经验风险最小化来求解最优参数 w,从而最小化模型的损失。

(一)正规方程求解最优参数 w

1. 问题描述

假设我们有一个线性回归模型,其形式为:

其中:

目标:
利用经验风险最小化,学习最优的 w,使得模型的预测误差最小。

2. 经验风险最小化(ERM)框架

经验风险定义为训练数据上的损失函数的均值

对于线性回归,常用的损失函数是均方误差(MSE, Mean Squared Error)

因此,经验风险(均方误差)可表示为:

用矩阵表示:

ERM目标:
通过最小化均方误差来找到最优的 w:

3. 解析解求解过程

4. 示例:具体计算过程

假设数据如下:

x1x2y
125
3411
5617

5. 结论

使用经验风险最小化学习线性回归模型的步骤如下:

  1. 定义目标函数: 均方误差
  2. 最小化损失函数: 通过求导得到闭式解(正规方程)。
  3. 计算最优参数:
  4. 预测新数据: 使用得到的 w 进行预测。

(二)梯度下降法求解最优参数 w

除了使用正规方程求解最优参数 w之外,**梯度下降法(Gradient Descent)**也是一种常见的方法,尤其适用于高维数据或特征数量很大的情况下。梯度下降可以在没有直接解析解或矩阵维度过大导致计算成本过高时,提供一种更为高效的优化手段。

梯度下降法求解线性回归的最优参数

(1) 问题回顾

(2) 梯度下降法的基本思想

梯度下降是一种迭代优化算法,通过沿着损失函数梯度的反方向不断更新参数 w,直到收敛到最优值。

更新公式:

(3) 计算梯度

(4) 梯度下降算法步骤

(5) 示例

第 2 次迭代计算:

(6) 什么时候使用梯度下降?
  • 数据量大时
  • 特征数量多,尤其是当 XX稀疏时,梯度下降可有效利用稀疏矩阵优化。
  • 适用于在线学习,当数据逐步到来时,可以使用**随机梯度下降(SGD)**来不断更新模型。

梯度下降 vs 正规方程的比较

方法优点缺点适用场景
正规方程无需迭代,求解精确解,数学简单当数据量大时计算开销大低维数据,数据量较小时
梯度下降适合大规模数据,计算复杂度低需调参(学习率),可能收敛慢高维数据,流式数据处理

其他优化算法

除了梯度下降,线性回归的优化还可以使用:

  • 随机梯度下降(SGD):每次随机选择一个样本进行更新,适用于大数据集。
  • 动量梯度下降:加速收敛,减少震荡。
  • L-BFGS(拟牛顿法):适用于更复杂的回归问题。

其中动量梯度下降和L-BFGS(拟牛顿法),我们后面再学习。

结论

  1. 正规方程:适用于小规模数据,直接求解闭式解。
  2. 梯度下降法:适用于大规模数据,通过迭代优化找到近似解,尤其在高维和大数据集情况下表现更优。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

appium自动化环境搭建

一、appium介绍 appium介绍 appium是一个开源工具、支持跨平台、用于自动化ios、安卓手机和windows桌面平台上面的原生、移动web和混合应用,支持多种编程语言(python,java,Ruby,Javascript、PHP等) 原生应用和混合应用&#xf…

视频多模态模型——视频版ViT

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细解读多模态论文《ViViT: A Video Vision Transformer》,2021由google 提出用于视频处理的视觉 Transformer 模型,在视频多模态领域有…

使用Cline+deepseek实现VsCode自动化编程

不知道大家有没有听说过cursor这个工具,类似于AIVsCode的结合体,只要绑定chatgpt、claude等大模型API,就可以实现对话式自助编程,简单闲聊几句便可开发一个软件应用。 但cursor受限于外网,国内用户玩不了,…

【Linux】Linux编译器-g++、gcc、动静态库

只要积极创造,机遇无时不有;只要善于探索,真理无处不在。💓💓💓 目录 ✨说在前面 🍋知识点一:Linux编译器-g、gcc •🌰1. 背景知识 •🌰2. gcc如何完成 •…

Spring整合Mybatis、junit纯注解

如何创建一个Spring项目 错误问题 不知道什么原因,大概是依赖版本不兼容、java版本不对的问题,折磨了好久就是搞不成。 主要原因看pom.xml配置 pom.xml配置 java版本 由于是跟着22年黑马视频做的,java版本换成了jdk-11,用21以…

【架构面试】二、消息队列和MySQL和Redis

MQ MQ消息中间件 问题引出与MQ作用 常见面试问题:面试官常针对项目中使用MQ技术的候选人提问,如如何确保消息不丢失,该问题可考察候选人技术能力。MQ应用场景及作用:以京东系统下单扣减京豆为例,MQ用于交易服和京豆服…

MATLAB提供的颜色映射表colormap——伪彩色

图像处理领域的一个习惯:不是真实的颜色,一般用伪彩色。一是说明不是物体本身的颜色,二是彩色更容易分辨。 MATLAB陆续提供了16种颜色映射表colormap。 之前的都很丑,近5年新增的4种还可以。总的说来还是丑。 这是一种鸟的名字。…

案例研究丨浪潮云洲通过DataEase推进多维度数据可视化建设

浪潮云洲工业互联网有限公司(以下简称为“浪潮云洲”)成立于2018年,定位于工业数字基础设施建设商、具有国际影响力的工业互联网平台运营商、生产性互联网头部服务商。截至目前,浪潮云洲工业互联网平台连续五年入选跨行业跨领域工…

电脑无法开机,重装系统后没有驱动且驱动安装失败

电脑无法开机,重装系统后没有驱动且驱动安装失败 前几天电脑突然坏了,电脑卡住后,强制关机,再开机后开机马上就关机。尝试无数次开机后失败,进入BIOS界面,发现已经没有Windows系统了。重新安装系统后&…

C++异步future

🌎 C11异步futrue 文章目录: C11异步futrue future介绍     应用场景     future操作       std::async函数模版       std::packaged_task类模版       std::promise类模版 🚀future介绍 std::future是C11标准库…

【C++探索之路】STL---string

走进C的世界,也意味着我们对编程世界的认知达到另一个维度,如果你学习过C语言,那你绝对会有不一般的收获,感受到C所带来的码云风暴~ ---------------------------------------begin--------------------------------------- 什么是…

CF 339A.Helpful Maths(Java实现)

题目分析 输入一串式子,输出从小到大排列的式子 思路分析 如上所说核心思路,但是我要使用笨方法,输入一串式子用split分割开,但是此时需要用到转义字符,即函数内参数不能直接使用“”,而是“\\”。分割开后…

C#,入门教程(07)——软件项目的源文件与目录结构

上一篇: C#,入门教程(06)——解决方案资源管理器,代码文件与文件夹的管理工具https://blog.csdn.net/beijinghorn/article/details/124895033 创建新的 C# 项目后, Visual Studio 会自动创建一系列的目录与文件。 程序员后面的工…

Cpp::静态 动态的类型转换全解析(36)

文章目录 前言一、C语言中的类型转换二、为什么C会有四种类型转换?内置类型 -> 自定义类型自定义类型 -> 内置类型自定义类型 -> 自定义类型隐式类型转换的坑 三、C强制类型转换static_castreinterpret_castconst_castdynamic_cast 四、RTTI总结 前言 Hell…

Android中Service在新进程中的启动流程

目录 1、Service与AMS交互框架介绍 1.1、认识AMS代表IActivityManager 1.2、认识客户端代表IApplicationThread 2、Service启动流程概览 我们知道Android有四大组件,Activity、Service、ContentProvider、Broadcast,每个组件在系统运行中或者我们编写…

docker 简要笔记

文章目录 一、前提内容1、docker 环境准备2、docker-compose 环境准备3、流程说明 二、打包 docker 镜像1、基础镜像2、国内镜像源3、基础的dockerfile4、打包镜像 四、构建运行1、docker 部分2、docker-compose 部分2.1、构建docker-compose.yml2.1.1、同目录构建2.1.2、利用镜…

利用Redis实现数据缓存

目录 1 为啥要缓存捏? 2 基本流程(以查询商铺信息为例) 3 实现数据库与缓存双写一致 3.1 内存淘汰 3.2 超时剔除(半自动) 3.3 主动更新(手动) 3.3.1 双写方案 3.3.2 读写穿透方案 3.3.…

活动回顾和预告|微软开发者社区 Code Without Barriers 上海站首场活动成功举办!

Code Without Barriers 上海活动回顾 Code Without Barriers:AI & DATA 深入探索人工智能与数据如何变革行业 2025年1月16日,微软开发者社区 Code Without Barriers (CWB)携手 She Rewires 她原力在大中华区的首场活动“AI &…

python爬虫入门(一) - requests库与re库,一个简单的爬虫程序

目录 web请求与requests库 1. web请求 1.1 客户端渲染与服务端渲染 1.2 抓包 1.3 HTTP状态代码 2. requests库 2.1 requests模块的下载 2.2 发送请求头与请求参数 2.3 GET请求与POST请求 GET请求的例子: POST请求的例子: 3. 案例:…

全连接神经网络(前馈神经网络)

目录 一、初步认识全连接神经网络 1、神经元 2、网络结构 3、正向传播算法 二、反向传播算法 1、理解 2、迭代流程 三、构建神经网络模型的基本步骤 四、线性回归神经网络结构 4.1 数据处理 1、数据导入 2、数据归一化处理 3、数据集划分 4、数据形状变换 4.2 模…