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

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

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

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

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

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

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

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

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

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. 示例:具体计算过程

假设数据如下:

x1x2xy
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.kler.cn/a/517503.html

相关文章:

  • css-设置元素的溢出行为为可见overflow: visible;
  • 刷题总结 回溯算法
  • k8s简介,k8s环境搭建
  • Kafak 单例生产者实现-C#操作
  • python 找出合并并排序两个有序列表后的第n个最小元素
  • Linux网络之TCP
  • Hive之加载csv格式数据到hive
  • 设计模式的艺术-命令模式
  • 嵌入式知识点总结 ARM体系与架构 专题提升(四)-编程
  • 【Java】阿里云OSS上传、删除文件
  • git基础使用命令
  • YOLOv10-1.1部分代码阅读笔记-val.py
  • 《罗宾逊-旅途VR》Build2108907官方学习版
  • Oracle 机器宕机之后启动数据库
  • 大数据,Hadoop,HDFS的简单介绍
  • 从根源分析,调试,定位和解决MacOS ld: unsupported tapi file type ‘!tapi-tbd‘ in YAML file
  • Leecode刷题C语言之购买水果需要的最小金币数
  • 【实践】Python实现气象数据分析与可视化
  • Ubuntu 安装 QGIS LTR 3.34
  • SVN客户端使用手册
  • 逐笔成交逐笔委托Level2高频数据下载和分析:20250124
  • 计算机视觉算法实战——图像生成
  • Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台,也就是一个“云上之云”。
  • 【python】subprocess.Popen执行adb shell指令进入linux系统后连续使用指令,出现cmd窗口阻塞问题
  • 总结与展望,龙蜥社区第 30 次运营委员会会议线上召开
  • 探究 Facebook 隐私安全发展方向,未来走向何方?