机器学习 —— 线性回归(2)

上一篇讲到损失函数。

https://blog.csdn.net/i_k_o_x_s/article/details/159929680?spm=1001.2014.3001.5501

如何让损失函数最小呢?

一、正规方程求解

1.求导

2.求偏导

3.矩阵运算

高数内容这篇已大概讲述

https://blog.csdn.net/i_k_o_x_s/article/details/159999903?spm=1001.2014.3001.5502

4.概念

正规方程是一种有效解决小规模线性回归问题的方法,但对于大规模数据集或者特征数量较多的情况,可能会遇到计算效率问题。(矩阵的逆必须存在,否则无法使用正规方程

第一个公式:假设函数(模型公式 ) -> w(权重)、x(特征)、b(偏置)、h(预测值)

第二个公式:正规方程(求解公式

统一符号后的 w, x, b, h 形式

把 θ 直接替换为参数向量 w,公式变为:

原始符号 统一后符号 含义
θ w 包含偏置 b 的完整参数向量:w=[b,w1​,w2​,...,wn​]T
X X 带全 1 列的特征矩阵(第一列对应 x0​=1,用于承载偏置 b)
y y m×1 的真实标签向量
矩阵 X 的转置
矩阵 的逆矩阵(不可逆时用伪逆)

步骤 1:定义模型(用 w, x, b, h 写预测公式)

作用:定义模型结构,说明如何用输入特征 x、权重 w、偏置 b 计算预测值 h

步骤 2:求解最优参数(用正规方程求 w,包含 b

作用:直接计算出最优的 w(包含 b),让预测值 h=尽可能接近真实值 y(最小化均方误差)

步骤 3:得到最终模型

把求解出的代回步骤 1 的公式,就得到了最终的预测模型:

具体例子

假设我们有 3 个样本,1 个特征 x1​,真实标签 y 如下:

样本 x1​ y
1 1 2
2 2 4
3 3 6
1. 构造特征矩阵 X(带全 1 列)
2. 用正规方程求 w(包含 b)
3. 代回假设函数,得到最终模型

完美拟合数据,验证了两个公式的一致性。

优化:

1.不需要选择学习率

2.直接计算模型参数的方法,而不需要迭代过程。

3.不需要对特征进行缩放处理

基于最小化代价函数来找到最佳拟合直线的参数

缺点:

数据量大的时候,慢。尤其是特征数量很大时候,计算逆矩阵非常慢。

=========================================================================

二、梯度下降法

概念

沿着梯度下降的方向 求解极小值

下山过程:连绵不断的山,第一座山的最低点(极小值点)-> 第二座山(极小值)->....

目标逼近山底。

单变量函数中,梯度就是某一点的切线斜率,有方向为函数增长最快的方向

多变量函数中,梯度就是某一点的偏导数,有方向:偏导数分量的向量方向

梯度下降公式(核心)

循环迭代求当前点的梯度,更新当前的权重参数

:学习率(步长) 不能太大,也不能太小。机器学习中: 0.001 ~ 0.01

太大:梯度震旦

太小:太慢

梯度是上升最快的方向,我们需要是下降最快的方向,所以需要加负号

单变量梯度下降 -- 例子


小结:经过四次的运算,即走了四步,基本抵达了函数的最低点
什么时候停止?
满足停止条件:
1.如果设置了具体迭代次数就停止
2.如果满足范围要求 比如: θ (0.001 - 0.003)即停止

梯度下降优化过程

1.给定初始位置、步长(学习率)

2.计算该点当前的梯度步长

3.向该负方向移动步长

4.重复2-3步,直到收敛(设置的满足停止条件)

有关学习率步长(Learning rate)

1.步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度

2.学习率太小,下降的速度会慢

3.学习率太大:容易造成错过最低点、产生下降过程中的震荡、甚至梯度爆炸

梯度下降法分类:

1.全梯度下降算法 FGD:

使用全部数据集,训练速度较慢。效果比较好

2.随机梯度下降算法 SGD:

简单,高效,不稳定。SG每次只使用一个样本迭代,容易遇上异常数据写入局部最优解

3.小批量梯度下降算法 mini-bach (用的比较多

结合SG的大单和FG的心细,正好居于SG和FG二者之间。

证因为它避开了FG运算效率低成本大和SG收敛效果不稳定的缺点。

4.随机平均梯度下降算法SAG

训练初期表现不佳,优化速度较慢。因为常将初始梯度设为0,而SAG每轮梯度更新都结合了上一轮梯度值。

早期数据量小,效率不好。 数据越多效率越好。

三、两个方法的比较

梯度下降 正规方程
怎么求 w 一步步迭代更新 直接矩阵求逆
是否需要学习率 α 需要,要调参 不需要
特征多 (n 很大) 跑得动 跑不动(求逆太慢)
特征少 (n 很小) 可以用,但没必要 超快、首选
是否缩放特征 需要(否则不收敛) 不需要
迭代次数 需要很多次 0 次,一步到位
适用模型 线性 / 逻辑 / 神经网络都能用 只能线性回归
矩阵不可逆 没问题 会出问题,要用伪逆 / 正则
相关推荐
正在走向自律1 小时前
AI Agent:从概念到实践,下一代人工智能的核心形态
人工智能·ai agent·智能体
ywfwyht1 小时前
NeMo RL 安装指南及问题总结
人工智能·机器学习
网上邻居YY1 小时前
深度学习DL 之 安装PyTorch·GPU版、CUDA(本人Anaconda、Python、PyCharm已提前安装好)
pytorch·经验分享·python·深度学习·pycharm·学习方法
天上的光1 小时前
机器学习——决策树
人工智能·决策树·机器学习
AI体验君1 小时前
2026年AI数据大屏实用指南,简化数据可视化制作
人工智能·信息可视化
AI、少年郎1 小时前
如何用个人电脑快速训练自己的语言模型?MiniMind 全流程实战指南
人工智能·python·神经网络·ai·自然语言处理·大模型·模型训练微调
NULL指向我1 小时前
信号处理学习笔记6:ADC采样线性处理实测拟合
人工智能·算法·机器学习
mhkxbq1 小时前
昆仑G5580、G5680 V2、G2280及泰山鲲鹏200,AI大数据优选服务器
大数据·服务器·人工智能
fof9201 小时前
Base LLM | 从 NLP 到 LLM 的算法全栈教程 第八天
人工智能·自然语言处理