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

server/2025/1/31 23:35:17/

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

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

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

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

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

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

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

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.ppmy.cn/server/163909.html

相关文章

【深度学习】微积分

微积分 在2500年前,古希腊人把一个多边形分成三角形,并把它们的面积相加,才找到计算多边形面积的方法。 为了求出曲线形状(比如圆)的面积,古希腊人在这样的形状上刻内接多边形。 如图2.4.1所示&#xff0c…

【Unity3D】实现横版2D游戏——单向平台(简易版)

目录 问题 项目Demo直接使用免费资源:Hero Knight - Pixel Art (Asset Store搜索) 打开Demo场景,进行如下修改,注意Tag是自定义标签SingleDirCollider using System.Collections; using System.Collections.Generic;…

Python数据分析-Python的数据结构、函数和文件(三)

title: ‘Python数据分析:Python的数据结构、函数和文件(三)’ abbrlink: 22313 date: 2023-08-01 18:55:20 updated: 2023-0803 12:34:39 tags: python数据分析 categories:python数据分析 keywords:python数据分析 cover: …/img/404_icecream_whale.…

简要介绍C语言和c++的共有变量,以及c++特有的变量

在C语言和C中,变量是用来存储数据的内存位置,它们的使用方式和特性在两种语言中既有相似之处,也有不同之处。以下分别介绍C语言和C的共有变量以及C特有的变量。 C语言和C的共有变量 C语言和C都支持以下类型的变量,它们在语法和基…

[EAI-027] RDT-1B,目前最大的用于机器人双臂操作的机器人基础模型

Paper Card 论文标题:RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation 论文作者:Songming Liu, Lingxuan Wu, Bangguo Li, Hengkai Tan, Huayu Chen, Zhengyi Wang, Ke Xu, Hang Su, Jun Zhu 论文链接:https://arxiv.org/ab…

32、【OS】【Nuttx】OSTest分析(1):stdio测试(二)

背景 接上篇wiki 31、【OS】【Nuttx】OSTest分析(1):stdio测试(一) 继续stdio测试的分析,上篇讲到标准IO端口初始化,单从测试内容来说其实很简单,没啥可分析的,但这几篇…

自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

在 TensorFlow 中实现逻辑回归、保存模型并加载模型进行预测的过程可以分为以下几个步骤: 准备数据:创建或加载你的自定义数据集。构建逻辑回归模型。训练模型。保存模型。加载模型。使用加载的模型进行预测。 import tensorflow as tf import numpy as…

HarmonyOS:ForEach:循环渲染

一、前言 ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如,ListItem组件要求ForEach的父容器组件必须为List组件。 API参数说明见:ForEa…