【机器学习】6. 线性回归、损失计算、最小二乘法、岭回归

【机器学习】6. 线性回归、损失计算、最小二乘法、岭回归

线性回归 Liner regression

特征向量:
X T = [ 1 , x 1 , x 2 , x 3 ] X^T = [1 , x1, x2,x3] XT=[1,x1,x2,x3]

这里的1用来指代偏移量。 1的必要性:假设用喝牛奶预测身高,如果没有偏移量,那么180不喝牛奶,预测结果是0,为了避免这种情况,加入了偏移,

预测值:

其中w代表权重, y代表真实值, ŷ 代表预测值
y ≈ y ^ = ∑ i = 0 3 w i x i = w T x y ≈ ŷ = \sum_{i=0}^{3}{w_ix_i} = w^Tx y≈y^=i=0∑3wixi=wTx

1维线性函数

y ≈ y ^ = w 0 + w 1 x y ≈ ŷ = w_0 + w_1x y≈y^=w0+w1x

  • y : 标签
  • x: 特征
  • w0: 截距 / 偏移
  • w1: 斜率

损失评估方式

平方损失函数:
( y − y ^ ) 2 (y - ŷ)^2 (y−y^)2

绝对损失函数
∣ y − y ^ ∣ | y - ŷ | ∣y−y^∣

平方损失函数(Square Loss)在实践中更加常用,更有数学意义。

最小二乘法(Least Squares Regression)

权重w属于超参数,如果我们想要优化模型,就需要从w入手,将loss降低,也就是找到最小loss
m i n w ∑ i = 1 n ( w T x ( i ) − y ( i ) ) 2 min_{w}\sum^n_{i=1}(w^Tx^{(i)} - y^{(i)})^2 minwi=1∑n(wTx(i)−y(i))2

也可以用L2范式简写一下
m i n w ∣ ∣ w x --- y ∣ ∣ 2 2 min_w ||wx ---y||_2^2 minw∣∣wx---y∣∣22

最小值怎么求?导数=0求极值
f ( w ) = ∣ ∣ w x --- y ∣ ∣ 2 2 = ∑ i = 1 n ( w x ( i ) − y ( i ) ) 2 f(w) = ||wx ---y||2^2 = \sum^n{i=1}(wx^{(i)} - y^{(i)})^2 f(w)=∣∣wx---y∣∣22=i=1∑n(wx(i)−y(i))2
d f d w ( w ) = 2 ∗ ∑ i = 1 n ( w x ( i ) − y ( i ) ) = 0 \frac{df}{dw}(w) = 2* \sum^n_{i=1}(wx^{(i)} - y^{(i)}) = 0 dwdf(w)=2∗i=1∑n(wx(i)−y(i))=0

同样的,可以用矩阵计算
w = ( X T X ) − 1 X T y w = (X^TX)^{-1}X^Ty w=(XTX)−1XTy

矩阵计算,举个简单的例子。

不要忘记矩阵怎么算(第一行 * 第一列,第一行 * 第二列...)
X T X^T XT

这个是矩阵的转置。

从公式中,我们可以得知,最小二乘法要求矩阵可逆。

什么样的矩阵不可逆呢?

参考MIT教授的解释:可以找到一个矩阵相乘=0

岭回归 (Ridge Regression)

由于最小二乘法需要可逆矩阵,那么可不可以做优化呢?这里的优化就用到了岭回归。

岭回归加入了一个超参数λ

公式变成:
m i n w ∣ ∣ w x --- y ∣ ∣ 2 2 + λ ∣ ∣ w ∣ ∣ 2 2 min_w ||wx ---y||_2^2 + λ||w||_2^2 minw∣∣wx---y∣∣22+λ∣∣w∣∣22
w = ( X T X + λ I k ) − 1 X T y w = (X^TX + λI_k )^{-1}X^Ty w=(XTX+λIk)−1XTy

其中I 是单位矩阵(单位矩阵:对角线都为1)

∣ ∣ w x --- y ∣ ∣ 2 2 ||wx ---y||_2^2 ∣∣wx---y∣∣22

前面这一部分,是模型损失
λ ∣ ∣ w ∣ ∣ 2 2 λ||w||_2^2 λ∣∣w∣∣22

后面这一部分,定义为模型复杂度(model complexity),其中λ是一个自由的超参数,在模型复杂度和训练误差之中权衡赋值。

最终矩阵变成非奇异,进而能够求逆,λ为正则化系数,或者叫做惩罚系数。

惩罚项能够过滤不太重要的特征,相比普通线性回归(最小二乘法)能够得到更好的预测效果,能够解决特征数多于样本量的情况(矩阵不可逆)以及解决过拟合和特征共线性的问题。

当然,更常用还是梯度下降法啦!后文会继续介绍

相关推荐
飞哥数智坊8 小时前
GPT-5-Codex 发布,Codex 正在取代 Claude
人工智能·ai编程
倔强青铜三8 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试
虫无涯9 小时前
Dify Agent + AntV 实战:从 0 到 1 打造数据可视化解决方案
人工智能
Dm_dotnet11 小时前
公益站Agent Router注册送200刀额度竟然是真的
人工智能
算家计算12 小时前
7B参数拿下30个世界第一!Hunyuan-MT-7B本地部署教程:腾讯混元开源业界首个翻译集成模型
人工智能·开源
机器之心12 小时前
LLM开源2.0大洗牌:60个出局,39个上桌,AI Coding疯魔,TensorFlow已死
人工智能·openai
Juchecar13 小时前
交叉熵:深度学习中最常用的损失函数
人工智能
林木森ai13 小时前
爆款AI动物运动会视频,用Coze(扣子)一键搞定全流程(附保姆级拆解)
人工智能·aigc
聚客AI14 小时前
🙋‍♀️Transformer训练与推理全流程:从输入处理到输出生成
人工智能·算法·llm
BeerBear15 小时前
【保姆级教程-从0开始开发MCP服务器】一、MCP学习压根没有你想象得那么难!.md
人工智能·mcp