首页 > 其他分享 >线性回归与梯度下降

线性回归与梯度下降

时间:2024-10-18 14:13:46浏览次数:1  
标签:函数 梯度 回归 损失 线性 二乘

什么是回归

回归分析是一种 基于已有数据建立模型的方法,旨在帮助我们进行未来的预测。通过回归分析,我们可以探索因变量(目标变量)与一个或多个自变量(特征变量)之间的关系。

损失函数

在回归分析中,我们通常需要衡量模型的预测效果,这就涉及到损失函数。常见的损失函数包括 绝对值损失和最小二乘损失损失越小,说明模型的预测效果越好

1

绝对损失

绝对损失又称为L1损失或绝对误差损失(Absolute Error Loss),用于衡量 预测值与真实值之间的绝对差异。它对每个数据点的误差进行线性惩罚。

最小二乘损失

最小二乘损失又称为L2损失或平方误差损失(Squared Error Loss),用于衡量 预测值与真实值之间的平方差。它对每个数据点的误差进行平方惩罚,强调了较大的误差。

差异

  • 对异常值的敏感性
    • 绝对损失:对异常值的敏感性较低,能更好地处理离群点。
    • 最小二乘损失:对异常值非常敏感,平方会放大较大误差的影响。
  • 优化特性
    • 绝对损失:在0点处导数不存在(因为是绝对值),优化时可能不稳定,需使用次梯度方法(非光滑优化)。
    • 最小二乘损失:在所有点处具有导数,优化过程平滑且易于计算。
  • 应用场景
    • 绝对损失:适合数据中存在异常值的情况,如金融领域的回归分析。
    • 最小二乘损失:常用于数据相对干净、需要高精度预测的回归任务。

线性回归

线性回归是最基础的回归方法之一,它描述了因变量与自变量之间的线性关系。线性回归的目标是通过找到最优的 线性模型 来拟合数据。

2

线性回归的损失函数

线性回归的损失函数通常采用最小二乘法,目标是最小化预测值与真实值之间的差异。

3

简单介绍下上面数学符号---范数

12

闭式解求权重 (w)

在线性回归中,我们可以通过闭式解求得权重 (w),从而实现模型的训练。

4
5

需要注意的是,有些矩阵是不可逆的,通常可以通过加一个偏置的单位矩阵来确保其可逆性。

6

正则化最小二乘

正则化是为了防止模型过拟合的一种技术,通过对损失函数添加正则项,来限制模型复杂度。

什么是梯度

梯度是指向上升的方向,表示在某一点上函数值增加最快的方向。梯度是函数的偏导数向量,描述了在每个参数方向上的变化率。

  • 上升方向:如果沿着梯度的方向移动,函数值将增加,损失函数可能变得更大。
  • 下降方向:如果沿着梯度的反方向(即负梯度方向)移动,函数值将减少,损失函数也会变小。这就是梯度下降法中使用负梯度的原因。

梯度下降

梯度下降是一种用于最小化损失函数的方法,它通过迭代调整模型参数来逐步逼近最优解。

7

一般优化算法主要涉及方向和步长。

8

在梯度下降算法中,通常的步骤如下:

  1. 计算损失函数。
  2. 计算梯度。
  3. 使用负梯度作为下降方向,选择一个学习率来更新权重 (w)。

9
10

收敛性

在机器学习的梯度下降中,收敛指的是通过迭代过程,参数逐渐接近最优值,损失函数的值趋向于最小值。

学习率对收敛性有很大影响:如果学习率过小,收敛速度会变慢,需要更多的训练轮数;如果学习率过大,可能导致参数在最优值附近来回摆荡,从而无法收敛。

11


总结

要获得最佳的参数,即最好的模型,预测更准,有以下几种方法,对于线性回归

  1. 闭式解求权重w
  2. 一般优化算法
  3. 梯度下降优化算法

标签:函数,梯度,回归,损失,线性,二乘
From: https://www.cnblogs.com/dylaris/p/18472834

相关文章

  • 【人工智能-初级】第4章 用Python实现逻辑回归:从数据到模型
    文章目录一、逻辑回归简介二、逻辑回归的数学原理2.1线性模型2.2Sigmoid函数2.3预测与决策边界三、逻辑回归的损失函数四、Python实现逻辑回归4.1导入必要的库4.2加载数据集并进行预处理4.3创建逻辑回归模型并进行训练4.4模型预测与评估4.5可视化决策边界(针对二......
  • 计量经济学(九)——向量自回归VAR模型检验
    向量自回归(VAR,VectorAutoregression)模型是一种广泛用于时间序列分析的统计工具,特别是在经济学和金融学领域中。VAR模型的关键优势在于其可以捕捉多个变量之间的相互依赖关系,而无需预设变量之间的因果顺序。这使得VAR模型在处理复杂动态系统时极具灵活性。VAR模型的基本结构是将......
  • 【MATLAB代码】二维情况下的EKF滤波,非线性状态方程和非线性的观测方程
    文章目录代码运行结果代码介绍:扩展卡尔曼滤波(EKF)二维滤波主要功能应用场景总结代码以下代码,复制粘贴到MATLAB上即可运行:%EKF二维滤波%date:2024-10-17/Ver1clear;clc;closeall;%清除变量、命令行和图形窗口rng(0);%设置随机数种子......
  • 每日OJ题_牛客_连续子数组最大和_线性dp_C++_Java
    目录牛客_连续子数组最大和_线性dp题目解析C++代码Java代码牛客_连续子数组最大和_线性dp连续子数组最大和_牛客题霸_牛客网(nowcoder.com)描述:        给定一个长度为 n的数组,数组中的数为整数。请你选择一个非空连续子数组,使该子数组所有数之和尽可能大,......
  • 线性表的ADT
    点击查看代码ADTListisoperationsListSetNullList(void) //创建一个空的线性表intIsNull(Listlist) //判断线性表list是否为空intInsertPre(Listlist,positionp,Datatypex) //在第p个位置之前插......
  • CUTLASS: NVIDIA的高性能CUDA线性代数库
    CUTLASS简介CUTLASS(CUDATemplatesforLinearAlgebraSubroutines)是NVIDIA开发的一个开源CUDAC++模板库,用于实现高性能的矩阵乘法(GEMM)和相关计算。它采用了类似cuBLAS和cuDNN的分层分解和数据移动策略,将这些"移动部件"分解为可重用的模块化软件组件,通过C++模板类进行......
  • 机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
    机器学习面试笔试知识点-线性回归、逻辑回归LogisticsRegression和支持向量机SVM一、线性回归1.线性回归的假设函数2.线性回归的损失函数(LossFunction)两者区别3.简述岭回归与Lasso回归以及使用场景4.什么场景下用L1、L2正则化5.什么是ElasticNet回归6.ElasticNet回归......
  • 05 线性结构——队列(特性、入队与出队、顺序队列和链式队列、顺序队列的“假溢出”问
    目录1队列的基本概念1.1定义1.2队列的组成部分1.3空队列1.4操作流程 1.4.1添加元素(入队)1.4.2删除元素(出队)2队列的存储结构2.1顺序队列2.2链式队列3 顺序队列中的“假溢出”问题及解决方案3.1问题描述3.2解决方案方法1:元素左移法方法2:循环队列4......
  • [独家原创]基于深度混合核极限学习机(DHKELM)的数据多输出回归预测 Matlab (多输入多
    [独家原创]基于深度混合核极限学习机(DHKELM)的数据多输出回归预测(多输入多输出)每个输出都有以下线性拟合图等四张图!!!具体看图,独家图像!!!程序已经调试好,替换数据集根据输出个数修改outdim值即可运行!!!数据格式为excel!(如下)你先用你就是创新!!!1.也可以定制添加优化算法!2.将多项......
  • 线性基笔记
    线性基是一种在异或操作上有很大用处的数据结构。可以求异或最值,区间异或最值的问题可以用来水各种题线性基的定义1.线性基能相互异或得到原集合的所有相互异或得到的值。2.线性基是满足性质1的最小的集合3.线性基没有异或和为0的子集。线性基的插入二进制下拆分数x,从高位......