本文最后更新于:2024年5月7日 下午
学习华校专老师的笔记内容,记录线性模型相关知识。
基础模型
- 给定样本 $ \overrightarrow{\mathbf{x}} $, 其中 $ \overrightarrow{\mathbf{x}}=\left(x_{1}, x_{2}, \cdots, x_{n}\right)^{T}, x_{i} $ 为样本 $ \overrightarrow{\mathbf{x}} $ 的第 $ i $ 个特征, 特征有 $ n $ 种。 线性模型( linear model ) 的形式为: $ f(\overrightarrow{\mathbf{x}})=\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}+b $ 。
- 其中 $ \overrightarrow{\mathrm{w}}=\left(w_{1}, w_{2}, \cdots, w_{n}\right)^{T} $ 为每个特征对应的权重生成的权重向量。
优点
- 模型简单。
- 可解释性强,权重向量$\overrightarrow{\mathbf{w}}$ 直观地表达了各个特征在预测中的重要性。
- 很多功能强大的非线性模型(
nolinear model
) 可以在线性模型的基础上通过引入层级结构或者非线性映射得到。
线性回归
问题定义
- 给定数据集 $ \mathbb{D}=\left\{\left(\overrightarrow{\mathbf{x}}_{1}, \tilde{y}_{1}\right),\left(\overrightarrow{\mathbf{x}}_{2}, \tilde{y}_{2}\right), \cdots,\left(\overrightarrow{\mathbf{x}}_{N}, \tilde{y}_{N}\right)\right\} $ , 其中 $ \overrightarrow{\mathbf{x}}_{i}=\left(x_{i, 1}, x_{i, 2}, \cdots, x_{i, n}\right)^{T} \in \mathcal{X} \subseteq \mathbb{R}^{n}, \tilde{y}_{i} \in \mathcal{Y} \subseteq \mathbb{R} $
- 线性回归问题试图学习模型 :$ f(\overrightarrow{\mathbf{x}})=\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}+b $
该问题也被称作多元线性回归(
multivariate linear regression
)
- 对于每个 $\overrightarrow{ \mathbf{x}} _ {i}$, 其预测值为 $ \hat{y}_{i}=f\left(\overrightarrow{\mathbf{x}}_{i}\right)=\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}} _ {i}+b$ 采用平方损失函数, 则在训练集 $ \mathbb{D}$上, 模型的损失函数为:
优化目标是损失函数最小化,即:
$$ \left(\overrightarrow{\mathbf{w}}^{*}, b^{*}\right)=\arg \min _{\vec{w}, b} \sum_{i=1}^{N}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b-\tilde{y}_{i}\right)^{2} $$问题求解
- 可以用梯度下降法来求解上述最优化问题的数值解,但是实际上该最优化问题可以通过最小二乘法获得解析解。
- 令:
- 损失函数:
- 则:
$$
\overrightarrow{\mathbf{w}}^{*}=\arg \min _{\overrightarrow{\tilde{w}}}(\overrightarrow{\mathbf{y}}-\mathbf{X} \overrightarrow{\mathbf{w}})^{T}(\overrightarrow{\mathbf{y}}-\mathbf{X} \overrightarrow{\tilde{w}})
$$
- 令 $ E_{\overrightarrow{\mathbf{w}}}=(\overrightarrow{\mathbf{y}}-\mathbf{X} \overrightarrow{\tilde{w}})^{T}(\overrightarrow{\mathbf{y}}-\mathbf{X} \overrightarrow{\tilde{\mathbf{w}}}) $ 。为求得它的极小值,可以通过对 $ \overrightarrow{\tilde{\mathbf{w}}} $ 求导, 并令导数为零, 从而得到解析解:
$$
\frac{\partial E_{\overrightarrow{\mathbf{w}}}}{\partial \overrightarrow{\tilde{\mathbf{w}}}}=2 \mathbf{X}^{T}(\mathbf{X} \overrightarrow{\tilde{\mathbf{w}}}-\overrightarrow{\mathbf{y}})=\overrightarrow{\mathbf{0}} \Longrightarrow \mathbf{X}^{T} \mathbf{X} \overrightarrow{\tilde{\mathbf{w}}}=\mathbf{X}^{T} \overrightarrow{\mathbf{y}}
$$
矩阵满秩
-
当$ \mathbf{X}^{T} \mathbf{X} $ 的为满秩矩阵时,可得:
$$ \overrightarrow{\tilde{\mathbf{w}}}^{*}=\left(\mathbf{X}^{T} \mathbf{X}\right)^{-1} \mathbf{X}^{T} \overrightarrow{\mathbf{y}} $$其中 $ \left(\mathbf{X}^{T} \mathbf{X}\right)^{-1} $ 为 $ \mathbf{X}^{T} \mathbf{X} $ 的逆矩阵。
-
最终学得的多元线性回归模型为:
矩阵非满秩
- 当 $ \mathbf{X}^{T} \mathbf{X} $ 不是满秩矩阵。此时存在多个解析解,他们都能使得均方误差最小化。究竟选择哪个解作为输出,由算法的偏好决定。
比如 $ N<n $ (样本数量小于特征种类的数量),根据 $ \mathbf{X} $ 的秩小于等于 $ N, n $ 中的最小值, 即小于等 于 $ N $ (矩阵的秩一定小于等于矩阵的行数和列数);而矩阵 $ \mathbf{X}^{T} \mathbf{X} $ 是 $ n \times n $ 大小的, 它的秩一定小 于等于 $ N $, 因此不是满秩矩阵。
常见的做法是引入正则化项:
- $ L_{1} $ 正则化:此时称作
Lasso Regression
:
$ \lambda>0 $ 为正则化系数,调整正则化项与训练误差的比例。
- $ L_{2} $ 正则化:此时称作
Ridge Regression
:
- 同时包含$ L_{1} , L_{1}$正则化:此时称作
Elastic Net
:
$ \lambda>0 $ 为正则化系数, 调整正则化项与训练误差的比例。
$ 1 \geq \rho \geq 0 $ 为比例系数, 调整 $ L_{1} $ 正则化与 $ L_{2} $ 正则化的比例。
算法
多元线性回归算法:
-
输入:
- 数据集 $ \mathbb{D}=\left\{\left(\overrightarrow{\mathbf{x}}_{1}, \tilde{y}_{1}\right),\left(\overrightarrow{\mathbf{x}}_{2}, \tilde{y}_{2}\right), \cdots,\left(\overrightarrow{\mathbf{x}}_{N}, \tilde{y}_{N}\right)\right\}, \overrightarrow{\mathbf{x}}_{i} \in \mathcal{X} \subseteq \mathbb{R}^{n}, y_{i} \in \mathcal{Y} \subseteq \mathbb{R} $ $ L_{2} $ 正则化项系数 $ \lambda>0 $
- $ L_{2} $ 正则化项系数 $ \lambda>0 $
-
输出模型:
- $ f(\overrightarrow{\mathbf{x}})=\overrightarrow{\mathbf{w}}^{*} \cdot \overrightarrow{\mathbf{x}}+b^{*} $ -
算法步骤:
-
令.
$$ \begin{array}{c} \overrightarrow{\tilde{\mathbf{w}}}=\left(w_{1}, w_{2}, \cdots, w_{n}, b\right)^{T}=\left(\overrightarrow{\mathbf{w}}^{T}, b\right)^{T} \\ \overrightarrow{\tilde{\mathbf{x}}}=\left(x_{1}, x_{2}, \cdots, x_{n}, 1\right)^{T}=\left(\overrightarrow{\mathbf{x}}^{T}, 1\right)^{T} \\ \qquad \begin{array}{c} \overrightarrow{\mathbf{y}}=\left(\tilde{y}_{1}, \tilde{y}_{2}, \cdots, \tilde{y}_{N}\right)^{T} \\ \mathbf{X}=\left(\overrightarrow{\tilde{\mathbf{x}}}_{1}, \overrightarrow{\mathbf{x}}_{2}, \cdots, \overrightarrow{\mathbf{\mathbf { x }}}_{N}\right)^{T}=\left[\begin{array}{c} \overrightarrow{\mathbf{x}}_{1}^{T} \\ \overrightarrow{\mathbf{x}}_{2} \\ \vdots \\ \overrightarrow{\mathbf{x}}_{N}^{T} \end{array}\right]=\left[\begin{array}{ccccc} x_{1,1} & x_{2,1} & \cdots & x_{n, 1} & 1 \\ x_{1,2} & x_{2,2} & \cdots & x_{n, 2} & 1 \\ \vdots & \vdots & \ddots & \vdots & 1 \\ x_{1, N} & x_{2, N} & \cdots & x_{n, N} & 1 \end{array}\right] \end{array} \end{array} $$ -
求解:
- 最终学得模型:
-
参考资料
文章链接:
https://www.zywvvd.com/notes/study/machine-learning/linear-model/linear-regression/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付