【xjtuse】【数学建模】课程笔记(五)回归模型、谱聚类
八、回归模型
1、数据分析之回归分析
回归分析属于机器学习中的一种重要方法,主要用于从数据中自动分析获得规律,并利用这些规律对未知数据进行预测。机器学习方法可以分为监督学习、无监督学习、半监督学习以及其他学习方法等。回归分析通常属于监督学习,因为训练数据中既包含输入变量,也包含对应的输出结果。
回归分析是一种用于预测的建模技术,研究的是因变量或目标变量与自变量或预测变量之间的关系。它的基本目标是产生一个函数,将已有数据映射到一个实值预测变量上,从而对未知情况进行估计。
例如,如果已知某家上市公司每天的股价数据,就可以利用当前和过去的信息建立回归模型,进而预测公司未来股价走势。回归分析主要关注数据序列的趋势特征,以及变量之间的相关关系。
2、基本回归方法
回归分析的基本思想是:推求一个解析函数 y=f(x)y=f(x)y=f(x),使它通过或近似通过有限序列的数据点,并在某种意义下“最佳”地逼近已知数据。
对于一元回归问题,已知平面上的一组数据点:
(xi,yi),i=1,2,⋯ ,n (x_i,y_i),\quad i=1,2,\cdots,n (xi,yi),i=1,2,⋯,n
其中 xix_ixi 互不相同。现在希望寻找一个函数或曲线:
y=f(x) y=f(x) y=f(x)
使得 f(x)f(x)f(x) 在某种准则下与所有数据点最为接近,也就是曲线拟合得最好。
如果第 iii 个数据点的误差记为:
δi=f(xi)−yi \delta_i=f(x_i)-y_i δi=f(xi)−yi
则常用的拟合准则是让误差平方和最小:
∑i=1nδi2=∑i=1n[f(xi)−yi]2 \sum_{i=1}^{n}\delta_i^2=\sum_{i=1}^{n}\left[f(x_i)-y_i\right]^2 i=1∑nδi2=i=1∑n[f(xi)−yi]2
因此,回归问题可以理解为:选择一个合适的函数 f(x)f(x)f(x),使上式达到最小。
3、曲线函数类型的选择
在回归分析中,需要先确定用什么样的函数或曲线进行拟合。常见的选择方法有两类:一是通过画图观察数据点的大致趋势;二是根据问题背景进行理论分析,选择与实际规律相适应的函数形式。
常用的曲线函数类型包括:
直线:
y=a1x+a2 y=a_1x+a_2 y=a1x+a2
多项式:
y=a1xm+⋯+amx+am+1 y=a_1x^m+\cdots+a_mx+a_{m+1} y=a1xm+⋯+amx+am+1
双曲线的一支:
y=a1x+a2 y=\frac{a_1}{x}+a_2 y=xa1+a2
指数曲线:
y=a1ea2x y=a_1e^{a_2x} y=a1ea2x
选择函数形式时,既要考虑拟合效果,也要考虑函数是否符合实际问题的背景规律。
4、线性回归 Linear Regression
线性回归中,因变量是连续变量,自变量可以是连续变量,也可以是离散变量。线性回归的特点是回归线具有线性形式。
一元线性回归模型通常写为:
Y=b0+b1X+u Y=b_0+b_1X+u Y=b0+b1X+u
其中,YYY 是因变量,XXX 是自变量,b0b_0b0 是截距项,b1b_1b1 是回归系数,uuu 是误差项。
线性回归的核心问题是:如何得到一条最佳回归线。所谓“最佳”,通常指这条直线到所有数据点的误差平方和最小。
5、线性回归中系数的确定
设拟合函数为:
f(x)=a1x+a2 f(x)=a_1x+a_2 f(x)=a1x+a2
对于数据点 (xi,yi)(x_i,y_i)(xi,yi),预测值为 a1xi+a2a_1x_i+a_2a1xi+a2,误差为:
(a1xi+a2)−yi (a_1x_i+a_2)-y_i (a1xi+a2)−yi
因此,代价函数可以写为:
J(a1,a2)=∑i=1nδi2=∑i=1n[(a1xi+a2)−yi]2 J(a_1,a_2)=\sum_{i=1}^{n}\delta_i^2=\sum_{i=1}^{n}\left[(a_1x_i+a_2)-y_i\right]^2 J(a1,a2)=i=1∑nδi2=i=1∑n[(a1xi+a2)−yi]2
要求最佳直线,就需要确定 a1,a2a_1,a_2a1,a2,使 J(a1,a2)J(a_1,a_2)J(a1,a2) 达到最小。
根据极值的必要条件,对参数分别求偏导,并令偏导数为 000:
{∂J∂a1=2∑i=1n[(a1xi+a2)−yi]xi=0,∂J∂a2=2∑i=1n[(a1xi+a2)−yi]=0. \begin{cases} \dfrac{\partial J}{\partial a_1}=2\sum_{i=1}^{n}\left[(a_1x_i+a_2)-y_i\right]x_i=0,\\ \dfrac{\partial J}{\partial a_2}=2\sum_{i=1}^{n}\left[(a_1x_i+a_2)-y_i\right]=0. \end{cases} ⎩ ⎨ ⎧∂a1∂J=2∑i=1n[(a1xi+a2)−yi]xi=0,∂a2∂J=2∑i=1n[(a1xi+a2)−yi]=0.
化简后得到关于 a1,a2a_1,a_2a1,a2 的线性方程组:
{a1∑i=1nxi2+a2∑i=1nxi=∑i=1nxiyi,a1∑i=1nxi+na2=∑i=1nyi. \begin{cases} a_1\sum_{i=1}^{n}x_i^2+a_2\sum_{i=1}^{n}x_i=\sum_{i=1}^{n}x_iy_i,\\ a_1\sum_{i=1}^{n}x_i+na_2=\sum_{i=1}^{n}y_i. \end{cases} {a1∑i=1nxi2+a2∑i=1nxi=∑i=1nxiyi,a1∑i=1nxi+na2=∑i=1nyi.
解这个方程组即可得到最小二乘意义下的最佳直线参数 a1,a2a_1,a_2a1,a2。
6、多元线性回归模型 Multiple Linear Regression
现实生活中,引起被解释变量变化的因素往往不止一个。例如,人均国民生产总值可能受到人口变动因素、固定资产数、货币供给量、物价指数、国内国际市场供求关系等多种因素影响。
因此,在一元线性回归模型的基础上,可以建立多元线性回归模型。多元线性回归模型中,一个因变量与多个自变量之间设定为线性关系,解释变量个数大于等于 222。
多元线性回归模型的一般形式为:
Y=b0+b1X1+b2X2+⋯+bkXk+u Y=b_0+b_1X_1+b_2X_2+\cdots+b_kX_k+u Y=b0+b1X1+b2X2+⋯+bkXk+u
其中,YYY 是因变量,X1,X2,⋯ ,XkX_1,X_2,\cdots,X_kX1,X2,⋯,Xk 是多个自变量,b0,b1,⋯ ,bkb_0,b_1,\cdots,b_kb0,b1,⋯,bk 是需要估计的模型参数,uuu 是误差项。
7、多元线性回归例题
例:27 名糖尿病人的血清总胆固醇、甘油三脂、空腹胰岛素、糖化血红蛋白、空腹血糖的测量值如下,试建立血糖与其他几项指标关系的多元线性回归方程。
其中,X1X_1X1 表示总胆固醇,X2X_2X2 表示甘油三脂,X3X_3X3 表示胰岛素,X4X_4X4 表示糖化血红蛋白,YYY 表示血糖。
| 序号 iii | 总胆固醇 X1X_1X1 | 甘油三脂 X2X_2X2 | 胰岛素 X3X_3X3 | 糖化血红蛋白 X4X_4X4 | 血糖 YYY |
|---|---|---|---|---|---|
| 1 | 5.68 | 1.90 | 4.53 | 8.2 | 11.2 |
| 2 | 3.79 | 1.64 | 7.32 | 6.9 | 8.8 |
| 3 | 6.02 | 3.56 | 6.95 | 10.8 | 12.3 |
| 4 | 4.85 | 1.07 | 5.88 | 8.3 | 11.6 |
| 5 | 4.60 | 2.32 | 4.05 | 7.5 | 13.4 |
| 6 | 6.05 | 0.64 | 1.42 | 13.6 | 18.3 |
| 7 | 4.90 | 8.50 | 12.60 | 8.5 | 11.1 |
| 8 | 7.08 | 3.00 | 6.75 | 11.5 | 12.1 |
| 9 | 3.85 | 2.11 | 16.28 | 7.9 | 9.6 |
| 10 | 4.65 | 0.63 | 6.59 | 7.1 | 8.4 |
| 11 | 4.59 | 1.97 | 3.61 | 8.7 | 9.3 |
| 12 | 4.29 | 1.97 | 6.61 | 7.8 | 10.6 |
| 13 | 7.97 | 1.93 | 7.57 | 9.9 | 8.4 |
| 14 | 6.19 | 1.18 | 1.42 | 6.9 | 9.6 |
| 15 | 6.13 | 2.06 | 10.35 | 10.5 | 10.9 |
| 16 | 5.71 | 1.78 | 8.53 | 8.0 | 10.1 |
| 17 | 6.40 | 2.40 | 4.53 | 10.3 | 14.8 |
| 18 | 6.06 | 3.67 | 12.79 | 7.1 | 9.1 |
| 19 | 5.09 | 1.03 | 2.53 | 8.9 | 10.8 |
| 20 | 6.13 | 1.71 | 5.28 | 9.9 | 10.2 |
| 21 | 5.78 | 3.36 | 2.96 | 8.0 | 13.6 |
| 22 | 5.43 | 1.13 | 4.31 | 11.3 | 14.9 |
| 23 | 6.50 | 6.21 | 3.47 | 12.3 | 16.0 |
| 24 | 7.98 | 7.92 | 3.37 | 9.8 | 13.2 |
| 25 | 11.54 | 10.89 | 1.20 | 10.5 | 20.0 |
| 26 | 5.84 | 0.92 | 8.61 | 6.4 | 13.3 |
| 27 | 3.84 | 1.20 | 6.45 | 9.6 | 10.4 |
建立如下多元线性回归方程:
Y^=f(X)=b0+b1X1+b2X2+b3X3+b4X4=XB \hat{Y}=f(X)=b_0+b_1X_1+b_2X_2+b_3X_3+b_4X_4=XB Y^=f(X)=b0+b1X1+b2X2+b3X3+b4X4=XB
其中,Y^\hat{Y}Y^ 表示预测血糖值,B=(b0,b1,b2,b3,b4)TB=(b_0,b_1,b_2,b_3,b_4)^TB=(b0,b1,b2,b3,b4)T 表示待估计参数。
对应的代价函数为:
J(B)=∑i=127ei2=∑i=127(Yi−Y^i)2 J(B)=\sum_{i=1}^{27}e_i^2=\sum_{i=1}^{27}(Y_i-\hat{Y}_i)^2 J(B)=i=1∑27ei2=i=1∑27(Yi−Y^i)2
展开为:
J(B)=∑i=127[Yi−(b0+b1X1i+b2X2i+b3X3i+b4X4i)]2 J(B)=\sum_{i=1}^{27}\left[Y_i-(b_0+b_1X_{1i}+b_2X_{2i}+b_3X_{3i}+b_4X_{4i})\right]^2 J(B)=i=1∑27[Yi−(b0+b1X1i+b2X2i+b3X3i+b4X4i)]2
令代价函数对参数的偏导数为 000:
∂J(B)∂B=0 \frac{\partial J(B)}{\partial B}=0 ∂B∂J(B)=0
求得最后的多元回归方程为:
Y^=5.9433+0.1424X1+0.3515X2−0.2706X3+0.6382X4 \hat{Y}=5.9433+0.1424X_1+0.3515X_2-0.2706X_3+0.6382X_4 Y^=5.9433+0.1424X1+0.3515X2−0.2706X3+0.6382X4
该模型表示,在其他变量不变的情况下,各个指标通过对应回归系数影响血糖预测值。
8、多元线性回归的矩阵形式
对于 nnn 个样本、kkk 个自变量的多元线性回归模型,可以写成矩阵形式:
Y=XB+U Y=XB+U Y=XB+U
其中:
Y=[Y1Y2⋮Yn],X=[1X11X21⋯Xk11X12X22⋯Xk2⋮⋮⋮⋯⋮1X1nX2n⋯Xkn] Y= \begin{bmatrix} Y_1\\ Y_2\\ \vdots\\ Y_n \end{bmatrix}, \quad X= \begin{bmatrix} 1 & X_{11} & X_{21} & \cdots & X_{k1}\\ 1 & X_{12} & X_{22} & \cdots & X_{k2}\\ \vdots & \vdots & \vdots & \cdots & \vdots\\ 1 & X_{1n} & X_{2n} & \cdots & X_{kn} \end{bmatrix} Y= Y1Y2⋮Yn ,X= 11⋮1X11X12⋮X1nX21X22⋮X2n⋯⋯⋯⋯Xk1Xk2⋮Xkn
B=[b0b1b2⋮bk],U=[u1u2⋮un] B= \begin{bmatrix} b_0\\ b_1\\ b_2\\ \vdots\\ b_k \end{bmatrix}, \quad U= \begin{bmatrix} u_1\\ u_2\\ \vdots\\ u_n \end{bmatrix} B= b0b1b2⋮bk ,U= u1u2⋮un
模型参数的确定仍然基于最小二乘法。代价函数为:
J=∑i=1nei2=∑i=1n(Yi−Y^i)2 J=\sum_{i=1}^{n}e_i^2=\sum_{i=1}^{n}(Y_i-\hat{Y}_i)^2 J=i=1∑nei2=i=1∑n(Yi−Y^i)2
也就是:
J=∑i=1n(Yi−b0−b1X1i−⋯−bkXki)2 J=\sum_{i=1}^{n}\left(Y_i-b_0-b_1X_{1i}-\cdots-b_kX_{ki}\right)^2 J=i=1∑n(Yi−b0−b1X1i−⋯−bkXki)2
分别对 b0,b1,⋯ ,bkb_0,b_1,\cdots,b_kb0,b1,⋯,bk 求偏导,并令其等于 000,可以得到正规方程组。其矩阵形式为:
XTXB^=XTY X^TX\hat{B}=X^TY XTXB^=XTY
如果 XTXX^TXXTX 是满秩矩阵,存在逆矩阵,则参数估计为:
B^=(XTX)−1XTY \hat{B}=(X^TX)^{-1}X^TY B^=(XTX)−1XTY
在许多现实任务中,XTXX^TXXTX 可能不是满秩矩阵,或者存在多重共线性,导致参数估计不稳定。此时常见做法是引入正则化,得到:
B^(λ)=(XTX+λI)−1XTY \hat{B}(\lambda)=(X^TX+\lambda I)^{-1}X^TY B^(λ)=(XTX+λI)−1XTY
其中,λ\lambdaλ 是正则化系数,III 是单位矩阵。
9、线性回归的要点
线性回归的主要要点包括:
- 自变量与因变量之间应具有线性关系。
- 线性回归对异常值非常敏感,异常值可能严重影响回归线,从而影响预测值。
- 多元线性回归中可能存在多重共线性,即自变量之间相互关联。多重共线性会增加系数估计值的方差,使模型在轻微变化下估计结果非常敏感,导致系数不稳定。
- 在多个自变量的情况下,可以使用向前选择法、向后剔除法和逐步筛选法来选择较重要的自变量。
10、多项式回归模型 Polynomial Regression
多项式回归是在线性回归思想上的扩展。它使用多项式函数拟合数据,可以表示更复杂的非线性关系。
一般的多项式形式可以写为:
y=a1xm+⋯+amx+am+1 y=a_1x^m+\cdots+a_mx+a_{m+1} y=a1xm+⋯+amx+am+1
也可以写成参数形式:
f(x,w)=∑j=0Mwjxj f(x,w)=\sum_{j=0}^{M}w_jx^j f(x,w)=j=0∑Mwjxj
其中,MMM 表示多项式次数,wjw_jwj 是模型参数。MMM 的选择决定了模型复杂度。
多项式逼近连续函数的理论基础之一是 Weierstrass 第一逼近定理:设 f(x)f(x)f(x) 是闭区间 [a,b][a,b][a,b] 上的连续函数,则对于任意给定的 ε>0\varepsilon>0ε>0,存在多项式 P(x)P(x)P(x),使得:
∣P(x)−f(x)∣<ε |P(x)-f(x)|<\varepsilon ∣P(x)−f(x)∣<ε
对一切 x∈[a,b]x\in[a,b]x∈[a,b] 成立。
这个定理说明,在闭区间上的连续函数可以用多项式进行任意精度的逼近。
11、多项式回归的训练目标
假设训练数据集为:
T={(x1,y1),(x2,y2),⋯ ,(xN,yN)} T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),⋯,(xN,yN)}
其中,xix_ixi 是输入 xxx 的观测值,yiy_iyi 是相应输出 yyy 的观测值。
目标是通过多项式拟合,选择一个对已知数据以及未知数据都有较好预测能力的函数。
设 MMM 次多项式为:
f(x,w)=∑j=0Mwjxj f(x,w)=\sum_{j=0}^{M}w_jx^j f(x,w)=j=0∑Mwjxj
采用最小二乘法,代价函数为:
L(w)=12∑i=1N[f(xi,w)−yi]2 L(w)=\frac{1}{2}\sum_{i=1}^{N}\left[f(x_i,w)-y_i\right]^2 L(w)=21i=1∑N[f(xi,w)−yi]2
通过最小化 L(w)L(w)L(w),可以求得拟合多项式的参数 www。
12、多项式次数与欠拟合、过拟合
给定一组训练数据点,可以分别用 M=0,1,3,9M=0,1,3,9M=0,1,3,9 次多项式进行拟合。
当 M=0M=0M=0 时,多项式曲线是一个常数,模型过于简单,数据拟合效果很差。
当 M=1M=1M=1 时,多项式曲线是一条直线,如果数据本身呈现明显非线性趋势,则拟合效果也较差。
这两种情况都可能属于欠拟合,即模型复杂度太低,不能充分描述数据规律。
当 M=9M=9M=9 时,多项式曲线可以通过每一个训练数据点,训练误差为 000。从训练数据拟合角度看效果最好,但由于训练数据本身可能存在噪声,这种曲线对未知数据的预测能力往往不是最好。
这种情况属于过拟合,即模型过于复杂,对训练数据拟合过度,但泛化能力较差。
当 M=3M=3M=3 时,多项式曲线对训练数据拟合效果较好,同时模型复杂度也较低,通常是较好的选择。
13、使用回归分析的优势
使用回归分析有两个主要优势:
- 它可以表明自变量和因变量之间是否存在显著关系。
- 它可以表明多个自变量对某个因变量的影响强度。
因此,回归分析不仅可以用于预测,也可以用于解释变量之间的关系。
14、回归技术的主要度量
选择和评价回归技术时,通常需要考虑以下几个方面:
- 自变量的个数。
- 因变量的类型。
- 解析函数 fff 的选取。
这些因素会影响模型形式、参数估计方法以及最终预测效果。
15、一般回归问题的常规求解步骤
一般回归问题的常规求解步骤可以概括为三步:
第一步,寻找 hhh 函数,即假设函数 hypothesis,用来表示输入和输出之间的关系。
第二步,构造 JJJ 函数,即代价函数,用来度量模型预测值与真实值之间的差异。
第三步,使 JJJ 函数最小,并求得回归参数 θ\thetaθ。
也就是说,回归建模的核心过程是:
h(x)→J(θ)→minJ(θ) h(x)\rightarrow J(\theta)\rightarrow \min J(\theta) h(x)→J(θ)→minJ(θ)
16、最小二乘法 Least Square Method
代价函数中常用的均方误差,本质上对应了欧式距离。基于均方误差最小化进行模型求解的方法称为最小二乘法。
对于一组数据点,最小二乘法的目标是:
∑i=1nδi2=∑i=1n[f(xi)−yi]2 \sum_{i=1}^{n}\delta_i^2=\sum_{i=1}^{n}\left[f(x_i)-y_i\right]^2 i=1∑nδi2=i=1∑n[f(xi)−yi]2
即通过最小化误差平方和,寻找数据的最佳函数匹配。
最小二乘法可以从不同角度理解:
从微积分角度看,最小二乘法通过对代价函数求导,得到全局极值,从而估计参数。
从计算数学角度看,它是一个线性优化问题,目标是寻找一个最优解。
从线性代数角度看,它是在求解线性方程组。当方程个数不等于未知量个数时,最小二乘法试图找到最优残差。
从几何角度看,它的意义是高维空间中的一个向量在低维子空间上的投影。
从概率论角度看,如果数据的观测误差满足高斯分布,则最小二乘解就是使观测数据出现概率最大的解,即最大似然估计 MLE。
17、过拟合和模型选择
当模型具有不同复杂度时,例如参数个数不同,就需要进行模型选择。理想情况下,希望选择一个模型来逼近真实模型。
如果一味追求提高模型对已知数据的预测能力,所选模型的复杂度往往会比真实模型更高,从而产生过拟合。
过拟合是指:所选模型包含的参数过多,以至于该模型对已知数据预测得很好,但对未知数据预测很差。
模型选择的目标是避免过拟合,并提高模型对未知数据的预测能力。
过拟合问题往往源自过多的特征。常见解决方法有两类:
第一,减少特征数量。可以通过人工选择或模型选择算法保留重要特征,但减少特征可能会丢失部分信息。
第二,使用正则化。正则化保留所有特征,但通过限制参数大小来降低模型复杂度,在特征较多时比较有效。
18、正则化方法
正则化是结构风险最小化策略的一种实现方法,其基本思想是在经验风险上加入一个正则化项或惩罚项。
一般来说,正则化项是模型复杂度的单调递增函数。模型越复杂,正则化项越大,因此优化时会对复杂模型进行惩罚。
正则化后的目标函数通常可以理解为:
目标函数=经验损失+模型复杂度惩罚 \text{目标函数}=\text{经验损失}+\text{模型复杂度惩罚} 目标函数=经验损失+模型复杂度惩罚
这样可以在拟合训练数据和控制模型复杂度之间取得平衡。
19、岭回归 Ridge Regression
岭回归是一种用于处理多重共线性数据的技术。当自变量之间高度相关时,普通最小二乘法得到的系数估计可能不稳定,标准误差较大,观测值容易偏离真实值。
岭回归通过给回归估计增加惩罚项,降低标准误差,从而得到更稳定的参数估计。
回顾普通线性方程:
Y=a+bX Y=a+bX Y=a+bX
加入误差项后,完整形式为:
Y=a+bX+e Y=a+bX+e Y=a+bX+e
多元线性形式为:
Y=a+b1x1+b2x2+⋯+bnxn+e Y=a+b_1x_1+b_2x_2+\cdots+b_nx_n+e Y=a+b1x1+b2x2+⋯+bnxn+e
在线性模型中,预测误差可以分解为偏差和方差两个部分。预测错误可能来自偏差,也可能来自方差,或者二者共同作用。
岭回归的目标函数为:
argminβ∈Rp{∥y−Xβ∥22+λ∥β∥22} \arg\min_{\beta\in R^p}\left\{\|y-X\beta\|_2^2+\lambda\|\beta\|_2^2\right\} argβ∈Rpmin{∥y−Xβ∥22+λ∥β∥22}
其中,∥y−Xβ∥22\|y-X\beta\|_2^2∥y−Xβ∥22 是最小二乘损失项,λ∥β∥22\lambda\|\beta\|_2^2λ∥β∥22 是惩罚项,λ\lambdaλ 是正则化系数。
岭回归的目的是通过惩罚较大的参数值,降低模型方差,使模型更稳定。
20、偏差与方差
偏差 Bias 描述预测值或估计值与真实值之间的差距。偏差越大,模型预测结果越偏离真实数据。
方差 Variance 描述预测值的变化范围和离散程度。方差越大,说明模型预测结果越分散,对数据变化越敏感。
可以用打靶的例子理解偏差和方差:
图 1:方差小,偏差小。子弹集中在目标位置附近,这是较理想的情况。
图 2:方差大,偏差小。子弹总体围绕目标,但分布不集中。
图 3:方差小,偏差大。子弹很集中,但集中位置远离目标。
图 4:方差大,偏差大。子弹既不集中,也远离目标。
岭回归主要希望通过正则化降低方差,从而提升模型对未知数据的预测稳定性。
21、正则化系数的影响
正则化系数 λ\lambdaλ 控制惩罚项的强弱。
如果 λ\lambdaλ 很大,说明对模型复杂度的惩罚较大,对拟合数据损失的容忍度较高。此时模型不会过分拟合训练数据,在训练数据上的偏差可能较大,在未知数据上的方差较小,但也可能出现欠拟合。
如果 λ\lambdaλ 很小,说明模型更注重对训练数据的拟合。此时训练数据上的偏差较小,但可能导致过拟合,使模型在未知数据上表现较差。
岭回归的特点包括:
- 除常数项以外,其基本假设与最小二乘回归类似。
- 它会收缩回归系数的值,但通常不会将系数压缩到 000。
- 因为系数一般不会变成 000,所以岭回归本身没有特征选择功能。
- 岭回归属于正则化方法,使用的是 L2L2L2 正则化。
22、Lasso 回归
Lasso 回归的全称是 Least Absolute Shrinkage and Selection Operator。它与岭回归类似,也会对回归系数进行惩罚,但惩罚的是系数绝对值的大小。
Lasso 回归的目标函数为:
argminβ∈Rp{∥y−Xβ∥22+λ∥β∥1} \arg\min_{\beta\in R^p}\left\{\|y-X\beta\|_2^2+\lambda\|\beta\|_1\right\} argβ∈Rpmin{∥y−Xβ∥22+λ∥β∥1}
其中,∥y−Xβ∥22\|y-X\beta\|_2^2∥y−Xβ∥22 是损失项,λ∥β∥1\lambda\|\beta\|_1λ∥β∥1 是 L1L1L1 正则化惩罚项。
Lasso 与 Ridge 的重要区别在于惩罚函数不同。Ridge 使用平方惩罚,Lasso 使用绝对值惩罚。这会导致 Lasso 的一些参数估计结果变为 000。
从几何上看,Ridge 的约束域是圆形,Lasso 的约束域是菱形。系数估计值由约束区域与最小二乘损失等高线第一次相交的位置决定。岭回归的相交点一般不会出现在坐标轴上,而 Lasso 更容易在坐标轴上相交,因此会得到稀疏解。
Lasso 回归的特点包括:
- 它可以将部分系数收缩到接近 000,甚至等于 000,因此有助于特征选择。
- 它属于正则化方法,使用的是 L1L1L1 正则化。
- 如果一组预测变量高度相关,Lasso 往往会选出其中一个变量,并将其他变量的系数收缩为 000。
- 它可以用于防止过拟合。
23、ElasticNet 回归
ElasticNet 是 Lasso 和 Ridge 回归技术的混合体。它同时使用 L1L1L1 正则化和 L2L2L2 正则化。
ElasticNet 的目标函数可以写为:
argminβ{∥y−Xβ∥22+λ1∥β∥1+λ2∥β∥22} \arg\min_{\beta}\left\{\|y-X\beta\|_2^2+\lambda_1\|\beta\|_1+\lambda_2\|\beta\|_2^2\right\} argβmin{∥y−Xβ∥22+λ1∥β∥1+λ2∥β∥22}
其中,λ1∥β∥1\lambda_1\|\beta\|_1λ1∥β∥1 对应 Lasso 的 L1L1L1 惩罚,λ2∥β∥22\lambda_2\|\beta\|_2^2λ2∥β∥22 对应 Ridge 的 L2L2L2 惩罚。
当存在多个相关特征时,ElasticNet 比单独使用 Lasso 或 Ridge 更有用,因为它既可以进行一定程度的特征选择,又能保持对相关变量的稳定处理。
除了线性回归、岭回归、Lasso 和 ElasticNet 之外,还有一些常见的回归技术,例如生存回归、泊松回归、Bayesian 回归、Ecological 回归和 Robust 回归。
24、逻辑回归 Logistic Regression
逻辑回归用于计算“事件 = Success”和“事件 = Failure”的概率。当因变量属于二元变量时,例如 1/01/01/0、真/假、是/否,就可以使用逻辑回归。
虽然逻辑回归名字中包含“回归”,但它主要用于二分类问题。它的输出值通常表示某个样本属于正类的概率,取值范围为 000 到 111。
假设样本为 (x,y)(x,y)(x,y),其中 yyy 取值为 000 或 111,表示负类或正类;xxx 是 mmm 维样本特征向量。样本 xxx 属于正类,也就是 y=1y=1y=1 的概率可以表示为:
P(y=1∣x;θ)=σ(θTx)=11+exp(−θTx) P(y=1|x;\theta)=\sigma(\theta^Tx)=\frac{1}{1+\exp(-\theta^Tx)} P(y=1∣x;θ)=σ(θTx)=1+exp(−θTx)1
其中,θ\thetaθ 是模型参数,也就是回归系数,σ\sigmaσ 是 sigmoid 函数。
对应地:
P(y=0∣x;θ)=1−P(y=1∣x;θ) P(y=0|x;\theta)=1-P(y=1|x;\theta) P(y=0∣x;θ)=1−P(y=1∣x;θ)
线性回归可以写成 f(x)=wTxf(x)=w^Txf(x)=wTx,而逻辑回归是在 wTxw^TxwTx 的基础上通过 sigmoid 函数进行非线性转换,使输出变成概率:
f(x)=P(y=1∣x,w)=g(wTx) f(x)=P(y=1|x,w)=g(w^Tx) f(x)=P(y=1∣x,w)=g(wTx)
25、逻辑回归的极大似然估计
在逻辑回归中,通常通过观测样本的极大似然估计来选择参数。
假设有 nnn 个独立训练样本:
{(x1,y1),(x2,y2),⋯ ,(xn,yn)} \{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\} {(x1,y1),(x2,y2),⋯,(xn,yn)}
其中 yi∈{0,1}y_i\in\{0,1\}yi∈{0,1}。令:
pi=P(yi=1∣xi) p_i=P(y_i=1|x_i) pi=P(yi=1∣xi)
则每一个观察到的样本 (xi,yi)(x_i,y_i)(xi,yi) 出现的概率可以写为:
P(yi∣xi)=piyi(1−pi)1−yi P(y_i|x_i)=p_i^{y_i}(1-p_i)^{1-y_i} P(yi∣xi)=piyi(1−pi)1−yi
因为每个样本相互独立,所以整个样本集出现的似然函数为:
L(θ)=∏i=1npiyi(1−pi)1−yi L(\theta)=\prod_{i=1}^{n}p_i^{y_i}(1-p_i)^{1-y_i} L(θ)=i=1∏npiyi(1−pi)1−yi
极大似然法就是求使似然函数 L(θ)L(\theta)L(θ) 取值最大的参数 θ∗\theta^*θ∗。
为了便于计算,通常对似然函数取自然对数。设:
ϕ(xi)=P(yi=1∣xi) \phi(x_i)=P(y_i=1|x_i) ϕ(xi)=P(yi=1∣xi)
则对数似然函数为:
L(θ)=∑i=1N[yilog(ϕ(xi))+(1−yi)log(1−ϕ(xi))] L(\theta)=\sum_{i=1}^{N}\left[y_i\log(\phi(x_i))+(1-y_i)\log(1-\phi(x_i))\right] L(θ)=i=1∑N[yilog(ϕ(xi))+(1−yi)log(1−ϕ(xi))]
对数似然函数的导数可以写成:
∂L(θ)∂θ=∑i=1N[yi−ϕ(xi)]xi \frac{\partial L(\theta)}{\partial \theta}=\sum_{i=1}^{N}\left[y_i-\phi(x_i)\right]x_i ∂θ∂L(θ)=i=1∑N[yi−ϕ(xi)]xi
令导数为 000 时,一般不能直接得到解析解,因此通常需要使用迭代优化方法求解。
如果令:
Lnew(θ)=−L(θ) L_{\text{new}}(\theta)=-L(\theta) Lnew(θ)=−L(θ)
则最大化 L(θ)L(\theta)L(θ) 的问题可以转化为最小化 Lnew(θ)L_{\text{new}}(\theta)Lnew(θ) 的问题。
26、梯度与梯度下降法
在优化问题中,需要理解几个基本数学概念。
| 数学概念 | 几何意义 |
|---|---|
| 导数 | 函数在该点的瞬时变化率 |
| 偏导数 | 函数在坐标轴方向上的变化率 |
| 方向导数 | 函数在某点沿某个特定方向的变化率 |
| 梯度 | 函数在该点所有方向导数中最大的方向导数对应的方向 |
梯度方向是函数值增长最快的方向,负梯度方向是函数值减小最快的方向。因此,如果要寻找函数的最小值,就可以沿负梯度方向不断更新参数。
梯度下降法是一种利用一阶梯度信息寻找函数局部最优解的方法,也是机器学习中最简单、最常用的优化方法之一。
其基本思想是:要找最小值,只需要每一步都往下降的方向走,使代价函数逐步变小,最终到达最小值附近。
逻辑回归中,梯度下降的更新公式可以写为:
θt+1=θt−α∂Lnew(θ)∂θ \theta^{t+1}=\theta^t-\alpha\frac{\partial L_{\text{new}}(\theta)}{\partial \theta} θt+1=θt−α∂θ∂Lnew(θ)
对于逻辑回归,也可以写成:
θt+1=θt+α∑i=1n[yi−σ((θt)Txi)]xi \theta^{t+1}=\theta^t+\alpha\sum_{i=1}^{n}\left[y_i-\sigma((\theta^t)^Tx_i)\right]x_i θt+1=θt+αi=1∑n[yi−σ((θt)Txi)]xi
其中,α\alphaα 是学习率,表示每一步走多远。经验上,开始迭代时可以使用较大的学习率,随着参数逐渐接近最优值,学习率可以变小。
需要注意的是,不同初始点可能会导致计算出的极小值不同。
27、随机梯度下降法 SGD
普通梯度下降算法在每次更新回归系数时,都需要遍历整个数据集,计算整个数据集上的回归误差。对于小数据集,这种方法可以使用;但当样本数量达到数十亿、特征数量达到成千上万时,计算复杂度会过高。
随机梯度下降法 SGD 的改进思想是:一次只使用一个样本点的回归误差来更新回归系数。
也就是说,普通梯度下降使用全部样本更新一次参数,而随机梯度下降使用单个样本更新一次参数。
由于随机梯度下降可以在新样本到来时对分类器进行增量更新,所以它属于在线学习算法。
例如,假设已经在数据库 AAA 上训练好分类器 hhh。如果新来一个样本 xxx,对于非增量学习算法,需要将 xxx 与数据库 AAA 混合成新的数据库 BBB,再重新训练分类器;而对于增量学习算法,只需要用新样本 xxx 更新已有分类器 hhh 的参数即可。
与在线学习相对应,一次处理整个数据集的方法称为批处理。
28、其他优化算法
除了梯度下降法和随机梯度下降法,还有一些常见优化算法:
- Conjugate gradient method,共轭梯度法。
- Quasi-Newton method,拟牛顿法。
- BFGS method。
- L-BFGS,Limited-memory BFGS。
与梯度下降算法相比,这些算法的优点是:
- 不需要手动选择步长。
- 通常比梯度下降算法更快。
缺点是算法本身更加复杂。
29、逻辑回归的要点
逻辑回归的主要要点包括:
- 逻辑回归不要求自变量和因变量之间是线性关系。它可以处理不同类型的关系,因为它对预测的相对风险指数使用了非线性的对数转换。
- 为了避免过拟合和欠拟合,应该包含所有重要变量。可以使用逐步筛选方法来估计逻辑回归模型。
- 逻辑回归通常需要较大的样本量。样本数量较少时,极大似然估计的效果可能比普通最小二乘法差。
- 如果因变量的值是定序变量,则称为序逻辑回归。
- 如果因变量是多类变量,则称为多元逻辑回归。
- Logistic 回归虽然名字中带有“回归”,但实际上主要用于两分类问题,即输出只有两种类别。
30、模型选择
模型选择时,需要同时考虑模型对已知数据的预测能力和对未知数据的预测能力。
如果模型复杂度太低,训练误差和测试误差都可能较高,这通常对应高偏差、低方差的情况。
随着模型复杂度增加,训练误差通常会持续下降。但是测试误差不一定持续下降。测试误差往往会先下降,达到某个较低点后又上升。
因此,模型选择的目标不是让训练误差最小,而是选择复杂度适当的模型,使测试误差最小。
可以概括为:
选择复杂度适当的模型,使测试误差最小 \text{选择复杂度适当的模型,使测试误差最小} 选择复杂度适当的模型,使测试误差最小
31、25年题:试给出一种回归模型,并给出一般回归问题损失函数的定义,基于损失函数,介绍模型求解参数的基本方法。
解答:
可以选取多元线性回归模型作为一种典型的回归模型。设因变量为 YYY,自变量为 X1,X2,⋯ ,XkX_1,X_2,\cdots,X_kX1,X2,⋯,Xk,则多元线性回归模型可以表示为:
Y=b0+b1X1+b2X2+⋯+bkXk+u Y=b_0+b_1X_1+b_2X_2+\cdots+b_kX_k+u Y=b0+b1X1+b2X2+⋯+bkXk+u
其中,b0b_0b0 为常数项,b1,b2,⋯ ,bkb_1,b_2,\cdots,b_kb1,b2,⋯,bk 为回归系数,uuu 为误差项。对于第 iii 个样本,其预测值为:
Y^i=b0+b1X1i+b2X2i+⋯+bkXki \hat{Y}_i=b_0+b_1X_{1i}+b_2X_{2i}+\cdots+b_kX_{ki} Y^i=b0+b1X1i+b2X2i+⋯+bkXki
回归问题的目标是选择合适的参数,使预测值 Y^i\hat{Y}_iY^i 尽可能接近真实值 YiY_iYi。因此,需要定义损失函数来度量预测值与真实值之间的误差。
一般回归问题常用的损失函数是误差平方和,即:
J=∑i=1nei2=∑i=1n(Yi−Y^i)2 J=\sum_{i=1}^{n}e_i^2=\sum_{i=1}^{n}(Y_i-\hat{Y}_i)^2 J=i=1∑nei2=i=1∑n(Yi−Y^i)2
将多元线性回归模型代入,可得:
J(b0,b1,⋯ ,bk)=∑i=1n[Yi−(b0+b1X1i+b2X2i+⋯+bkXki)]2 J(b_0,b_1,\cdots,b_k)= \sum_{i=1}^{n} \left[ Y_i-(b_0+b_1X_{1i}+b_2X_{2i}+\cdots+b_kX_{ki}) \right]^2 J(b0,b1,⋯,bk)=i=1∑n[Yi−(b0+b1X1i+b2X2i+⋯+bkXki)]2
这个损失函数表示所有样本预测误差平方的总和。损失函数越小,说明模型对数据的拟合效果越好。因此,回归模型参数求解的基本思想就是:寻找一组参数 b0,b1,⋯ ,bkb_0,b_1,\cdots,b_kb0,b1,⋯,bk,使损失函数 JJJ 取得最小值。
基于损失函数,求解参数的基本方法是最小二乘法。具体做法是对损失函数分别关于各个参数求偏导,并令偏导数等于 000:
{∂J∂b0=0,∂J∂b1=0,⋯∂J∂bk=0. \begin{cases} \dfrac{\partial J}{\partial b_0}=0,\\ \dfrac{\partial J}{\partial b_1}=0,\\ \cdots\\ \dfrac{\partial J}{\partial b_k}=0. \end{cases} ⎩ ⎨ ⎧∂b0∂J=0,∂b1∂J=0,⋯∂bk∂J=0.
这样可以得到关于 b0,b1,⋯ ,bkb_0,b_1,\cdots,b_kb0,b1,⋯,bk 的方程组,解这个方程组即可得到使损失函数最小的模型参数。
若使用矩阵形式表示,设:
Y=XB+U Y=XB+U Y=XB+U
其中,YYY 为因变量向量,XXX 为样本自变量矩阵,BBB 为待求参数向量,UUU 为误差向量。此时损失函数可以写为:
J(B)=(Y−XB)T(Y−XB) J(B)=(Y-XB)^T(Y-XB) J(B)=(Y−XB)T(Y−XB)
对 BBB 求导并令导数为 000,得到正规方程:
XTXB^=XTY X^TX\hat{B}=X^TY XTXB^=XTY
如果 XTXX^TXXTX 存在逆矩阵,则参数解为:
B^=(XTX)−1XTY \hat{B}=(X^TX)^{-1}X^TY B^=(XTX)−1XTY
这就是基于最小二乘法求解线性回归参数的基本公式。
如果 XTXX^TXXTX 不可逆,或者自变量之间存在较强相关性,可以引入正则化方法,例如岭回归。其参数求解形式为:
B^(λ)=(XTX+λI)−1XTY \hat{B}(\lambda)=(X^TX+\lambda I)^{-1}X^TY B^(λ)=(XTX+λI)−1XTY
其中,λ\lambdaλ 为正则化系数,III 为单位矩阵。正则化可以降低模型参数的不稳定性,并在一定程度上缓解过拟合问题。
综上,一般回归问题的求解过程可以概括为:先根据问题选择合适的回归模型,再定义损失函数来度量预测误差,最后通过最小化损失函数求解模型参数。
九、习题与谱聚类
1、通信卫星的覆盖面积
题目:一颗地球同步通信卫星的轨道位于地球的赤道平面内,且可以认为是圆轨道。通信卫星运行的角速率与地球自转的角速率相同,即人们看到它在天空不动。若地球半径为 R=6400kmR=6400\text{km}R=6400km,问卫星距地面的高度 hhh 应为多少?试计算通信卫星的覆盖面积。
解析一:先求同步通信卫星离地面的高度。
设地球半径为 RRR,卫星到地心的距离为 rrr,则卫星距地面的高度为:
h=r−R h=r-R h=r−R
在地球表面,由万有引力等于重力可得:
kmR2=mg \frac{km}{R^2}=mg R2km=mg
因此:
k=gR2 k=gR^2 k=gR2
当卫星绕地球做圆周运动时,引力提供向心力。卫星受到的引力为:
F=mg(Rr)2 F=mg\left(\frac{R}{r}\right)^2 F=mg(rR)2
圆周运动的向心力为:
F=mω2r F=m\omega^2r F=mω2r
其中同步卫星的角速度等于地球自转角速度:
ω=2π24×3600 \omega=\frac{2\pi}{24\times3600} ω=24×36002π
令引力等于向心力:
mg(Rr)2=mω2r mg\left(\frac{R}{r}\right)^2=m\omega^2r mg(rR)2=mω2r
化简得:
r3=gR2ω2 r^3=\frac{gR^2}{\omega^2} r3=ω2gR2
所以:
r=(gR2ω2)1/3 r=\left(\frac{gR^2}{\omega^2}\right)^{1/3} r=(ω2gR2)1/3
从而卫星距地面的高度为:
h=(gR2ω2)1/3−R h=\left(\frac{gR^2}{\omega^2}\right)^{1/3}-R h=(ω2gR2)1/3−R
代入 g=9.8m/s2g=9.8\text{m/s}^2g=9.8m/s2,R=6400km=6.4×106mR=6400\text{km}=6.4\times10^6\text{m}R=6400km=6.4×106m,可得:
h≈3.6×107m=36000km h\approx3.6\times10^7\text{m}=36000\text{km} h≈3.6×107m=36000km
结论:地球同步通信卫星距地面的高度约为 36000km36000\text{km}36000km。
解析二:再求通信卫星能够覆盖的地球表面积。
卫星能够覆盖的区域可以看成地球表面上由视线切线围成的球冠区域。设覆盖区域对应的球面为 Σ\SigmaΣ,则覆盖面积可写为:
S=∬ΣdS S=\iint_{\Sigma}dS S=∬ΣdS
其中 Σ\SigmaΣ 是上半球面:
x2+y2+z2=R2,z≥0 x^2+y^2+z^2=R^2,\quad z\geq0 x2+y2+z2=R2,z≥0
被圆锥角所限定的部分。
将球面写成:
z=R2−x2−y2 z=\sqrt{R^2-x^2-y^2} z=R2−x2−y2
则球面面积微元为:
dS=zx2+zy2+1 dxdy dS=\sqrt{z_x^2+z_y^2+1}\,dxdy dS=zx2+zy2+1dxdy
计算偏导后可得:
dS=RR2−x2−y2 dxdy dS=\frac{R}{\sqrt{R^2-x^2-y^2}}\,dxdy dS=R2−x2−y2Rdxdy
设投影区域为 DDD,利用极坐标变换:
x=rcosθ,y=rsinθ x=r\cos\theta,\quad y=r\sin\theta x=rcosθ,y=rsinθ
则面积为:
S=∫02πdθ∫0RsinβRrR2−r2 dr S=\int_0^{2\pi}d\theta\int_0^{R\sin\beta}\frac{Rr}{\sqrt{R^2-r^2}}\,dr S=∫02πdθ∫0RsinβR2−r2Rrdr
即:
S=2πR∫0RsinβrR2−r2 dr S=2\pi R\int_0^{R\sin\beta}\frac{r}{\sqrt{R^2-r^2}}\,dr S=2πR∫0RsinβR2−r2rdr
由几何关系可得:
cosβ=RR+h \cos\beta=\frac{R}{R+h} cosβ=R+hR
球冠面积最终化为:
S=4πR2⋅h2(R+h) S=4\pi R^2\cdot\frac{h}{2(R+h)} S=4πR2⋅2(R+h)h
其中 4πR24\pi R^24πR2 是整个地球表面积,因此一颗同步通信卫星覆盖面积占地球表面积的比例为:
S4πR2=h2(R+h) \frac{S}{4\pi R^2}=\frac{h}{2(R+h)} 4πR2S=2(R+h)h
代入 R=6400kmR=6400\text{km}R=6400km,h≈36000kmh\approx36000\text{km}h≈36000km,可得:
S4πR2≈0.425 \frac{S}{4\pi R^2}\approx0.425 4πR2S≈0.425
并且覆盖面积约为:
S≈2.19×108km2 S\approx2.19\times10^8\text{km}^2 S≈2.19×108km2
结论:一颗同步通信卫星约可覆盖地球表面积的 42.5%42.5\%42.5%,覆盖面积约为 2.19×108km22.19\times10^8\text{km}^22.19×108km2。因此,使用三颗通信卫星就可以覆盖几乎全部地球表面。
2、矩阵的意义与价值
2.1、矩阵是简化表示的工具
在线性代数中,矩阵可以把复杂的线性方程组写成紧凑形式。例如线性方程组:
{a11x1+a12x2+⋯+a1nxn=b1,a21x1+a22x2+⋯+a2nxn=b2,⋯am1x1+am2x2+⋯+amnxn=bm \begin{cases} a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1,\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2,\\ \cdots\\ a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=b_m \end{cases} ⎩ ⎨ ⎧a11x1+a12x2+⋯+a1nxn=b1,a21x1+a22x2+⋯+a2nxn=b2,⋯am1x1+am2x2+⋯+amnxn=bm
可以写成矩阵形式:
Ax=b Ax=b Ax=b
其中:
A∈Rm×n,x∈Rn,b∈Rm A\in\mathbb{R}^{m\times n},\quad x\in\mathbb{R}^n,\quad b\in\mathbb{R}^m A∈Rm×n,x∈Rn,b∈Rm
矩阵不仅可以表示方程组,还可以用于构造函数。例如二次型可写为:
f(x)=xTAx f(x)=x^TAx f(x)=xTAx
这种写法将多个变量之间的关系压缩到一个矩阵中,便于统一研究。
价值:矩阵可以用类似“数”的方式来表达和研究方程组、数据关系以及线性变换等对象,是从一维到高维、从简单到复杂的重要工具。
2.2、矩阵可以记录和加工二维数组
在推荐系统中,用户对产品的喜好程度可以用一个二维表格表示。例如用户对音乐的评分可以组成评分矩阵:
Y=(52?3⋯45??⋯?231⋯⋮⋮⋮⋮⋱) Y= \begin{pmatrix} 5 & 2 & ? & 3 & \cdots\\ 4 & 5 & ? & ? & \cdots\\ ? & 2 & 3 & 1 & \cdots\\ \vdots & \vdots & \vdots & \vdots & \ddots \end{pmatrix} Y= 54?⋮252⋮??3⋮3?1⋮⋯⋯⋯⋱
其中行可以表示不同音乐,列可以表示不同用户,数字表示评分,问号表示缺失评分。推荐系统的任务之一,就是根据已有评分推测缺失评分,从而为用户推荐感兴趣的产品。
2.3、“阶”和“维”是信息表示中的两个基本概念。
一阶信息通常对应向量。若有 mmm 个数据,则可写为:
a=(a1,a2,⋯ ,am)T∈Rm a=(a_1,a_2,\cdots,a_m)^T\in\mathbb{R}^m a=(a1,a2,⋯,am)T∈Rm
二阶信息通常对应矩阵。若有 nnn 个向量作为列向量,则可写为:
A=(a1,a2,⋯ ,an)∈Rm×n A=(a_1,a_2,\cdots,a_n)\in\mathbb{R}^{m\times n} A=(a1,a2,⋯,an)∈Rm×n
更高阶的信息可以用张量表示。例如三阶张量可以写成若干矩阵的组合:
A=[A1;A2;⋯ ;Ak]∈Rm×n×k \mathcal{A}=[A_1;A_2;\cdots;A_k]\in\mathbb{R}^{m\times n\times k} A=[A1;A2;⋯;Ak]∈Rm×n×k
从信息表示的角度看,向量、矩阵和张量分别对应不同复杂程度的数据结构。向量适合表示一维数据,矩阵适合表示二维数据,张量适合表示更高阶的数据。
2.4、自然对象可以通过矩阵数字化。
黑白图像可以看成一个矩阵,矩阵中的每个元素表示图像中一个像素的灰度值。彩色图像通常可以分解为 RRR、GGG、BBB 三个通道,每个通道对应一个灰度矩阵,因此彩色图像可以看成三个矩阵的组合。
视频可以看成按时间顺序排列的一组图像,因此可以表示为若干矩阵的序列。高光谱图像也可以看成多个通道矩阵叠加而成的数据结构。
结论:矩阵把自然对象转化为可计算、可存储、可运算的数字形式,是图像、视频和推荐系统等问题的基础表示工具。
3、线性代数中的运算及其启示
3.1、运算的本质是映射,是不同信息之间的作用规则。
向量加法可以看成如下映射:
Rn×Rn→Rn,(x,y)↦x+y \mathbb{R}^n\times\mathbb{R}^n\to\mathbb{R}^n,\quad (x,y)\mapsto x+y Rn×Rn→Rn,(x,y)↦x+y
若:
x=(x1,x2,⋯ ,xn)T,y=(y1,y2,⋯ ,yn)T x=(x_1,x_2,\cdots,x_n)^T,\quad y=(y_1,y_2,\cdots,y_n)^T x=(x1,x2,⋯,xn)T,y=(y1,y2,⋯,yn)T
则:
x+y=(x1+y1,x2+y2,⋯ ,xn+yn)T x+y=(x_1+y_1,x_2+y_2,\cdots,x_n+y_n)^T x+y=(x1+y1,x2+y2,⋯,xn+yn)T
向量内积可以看成如下映射:
Rn×Rn→R,(x,y)↦xTy \mathbb{R}^n\times\mathbb{R}^n\to\mathbb{R},\quad (x,y)\mapsto x^Ty Rn×Rn→R,(x,y)↦xTy
具体为:
xTy=(x1,x2,⋯ ,xn)(y1y2⋮yn)=∑i=1nxiyi x^Ty=(x_1,x_2,\cdots,x_n) \begin{pmatrix} y_1\\ y_2\\ \vdots\\ y_n \end{pmatrix} =\sum_{i=1}^nx_iy_i xTy=(x1,x2,⋯,xn) y1y2⋮yn =i=1∑nxiyi
内积可以反映两个向量之间的相互作用,例如向量夹角、向量长度等信息。
3.2、矩阵运算可以看成二阶信息之间的相互作用。
矩阵加法为:
Rm×n×Rm×n→Rm×n,(A,B)↦A+B \mathbb{R}^{m\times n}\times\mathbb{R}^{m\times n}\to\mathbb{R}^{m\times n},\quad (A,B)\mapsto A+B Rm×n×Rm×n→Rm×n,(A,B)↦A+B
若:
A=(aij)m×n,B=(bij)m×n A=(a_{ij})_{m\times n},\quad B=(b_{ij})_{m\times n} A=(aij)m×n,B=(bij)m×n
则:
A+B=(aij+bij)m×n A+B=(a_{ij}+b_{ij})_{m\times n} A+B=(aij+bij)m×n
矩阵乘法为:
Rm×k×Rk×n→Rm×n,(A,B)↦AB \mathbb{R}^{m\times k}\times\mathbb{R}^{k\times n}\to\mathbb{R}^{m\times n},\quad (A,B)\mapsto AB Rm×k×Rk×n→Rm×n,(A,B)↦AB
其元素形式为:
AB=(∑l=1kailblj)m×n AB=\left(\sum_{l=1}^ka_{il}b_{lj}\right)_{m\times n} AB=(l=1∑kailblj)m×n
矩阵乘法体现了二阶信息之间的组合关系,因此在方程组求解、线性变换和数据建模中都非常重要。
3.3、外积是一种由低阶信息生成高阶信息的运算。
设:
x=(x1,x2,⋯ ,xm)T,y=(y1,y2,⋯ ,yn)T x=(x_1,x_2,\cdots,x_m)^T,\quad y=(y_1,y_2,\cdots,y_n)^T x=(x1,x2,⋯,xm)T,y=(y1,y2,⋯,yn)T
定义外积为:
x∘y=(x1y1x1y2⋯x1ynx2y1x2y2⋯x2yn⋮⋮⋱⋮xmy1xmy2⋯xmyn)=xyT x\circ y= \begin{pmatrix} x_1y_1 & x_1y_2 & \cdots & x_1y_n\\ x_2y_1 & x_2y_2 & \cdots & x_2y_n\\ \vdots & \vdots & \ddots & \vdots\\ x_my_1 & x_my_2 & \cdots & x_my_n \end{pmatrix} =xy^T x∘y= x1y1x2y1⋮xmy1x1y2x2y2⋮xmy2⋯⋯⋱⋯x1ynx2yn⋮xmyn =xyT
外积可以把两个向量组合成一个矩阵,即由低阶信息之间的相互作用得到高阶信息。
矩阵的特征分解也可以用外积形式理解:
A=λ1v1v1T+λ2v2v2T+⋯+λnvnvnT A=\lambda_1v_1v_1^T+\lambda_2v_2v_2^T+\cdots+\lambda_nv_nv_n^T A=λ1v1v1T+λ2v2v2T+⋯+λnvnvnT
其中 λi\lambda_iλi 是特征值,viv_ivi 是对应的特征向量。该表达式说明矩阵可以看成若干个向量外积的加权组合。
3.4、Kronecker 型积可以推广外积思想。
若:
A=(aij)∈Rm×n,B∈Rk×l A=(a_{ij})\in\mathbb{R}^{m\times n},\quad B\in\mathbb{R}^{k\times l} A=(aij)∈Rm×n,B∈Rk×l
则 Kronecker 型积可以写成分块矩阵:
A⊗B=(a11Ba12B⋯a1nBa21Ba22B⋯a2nB⋮⋮⋱⋮am1Bam2B⋯amnB) A\otimes B= \begin{pmatrix} a_{11}B & a_{12}B & \cdots & a_{1n}B\\ a_{21}B & a_{22}B & \cdots & a_{2n}B\\ \vdots & \vdots & \ddots & \vdots\\ a_{m1}B & a_{m2}B & \cdots & a_{mn}B \end{pmatrix} A⊗B= a11Ba21B⋮am1Ba12Ba22B⋮am2B⋯⋯⋱⋯a1nBa2nB⋮amnB
这种运算可以看成矩阵与矩阵之间的更高阶组合,用于把低阶信息的相互作用扩展到高阶信息表示中。
4、实例:矩阵建模
4.1、视频前景背景分离。
视频前景背景分离的目标是将视频分成相对稳定的背景和运动的前景。若将视频的每一帧看作一个向量,则一个视频可以看作矩阵:
Y=(y1,y2,⋯ ,ym) Y=(y_1,y_2,\cdots,y_m) Y=(y1,y2,⋯,ym)
其中 yiy_iyi 表示第 iii 帧图像向量。由于背景通常较稳定,所以背景矩阵 LLL 往往具有低秩性质;而运动前景只占图像中的少量区域,所以前景矩阵 EEE 往往具有稀疏性质。
因此可以建立模型:
minL,Erank(L)+λ∥E∥0 \min_{L,E}\operatorname{rank}(L)+\lambda\|E\|_0 L,Eminrank(L)+λ∥E∥0
约束条件为:
Y=L+E Y=L+E Y=L+E
其中 ∥E∥0\|E\|_0∥E∥0 表示矩阵 EEE 中非零元素的个数。
由于秩函数和 ℓ0\ell_0ℓ0 范数通常不便直接优化,可以用核范数和 ℓ1\ell_1ℓ1 范数进行替代,得到松弛模型:
minL,E∥L∥∗+λ∥E∥1 \min_{L,E}\|L\|_*+\lambda\|E\|_1 L,Emin∥L∥∗+λ∥E∥1
约束条件为:
Y=L+E Y=L+E Y=L+E
其中 ∥L∥∗\|L\|_*∥L∥∗ 表示 LLL 的奇异值之和,∥E∥1\|E\|_1∥E∥1 表示 EEE 中所有元素绝对值之和。
结论:视频前景背景分离可以转化为低秩矩阵与稀疏矩阵的分解问题。
4.2、推荐系统与矩阵修补。
推荐系统的基本思想是:根据用户对产品的喜好程度,结合使用记录以及社交关系,为用户推荐感兴趣的产品。评分数据通常可以写成一个矩阵,但这个矩阵往往含有大量缺失值。
设评分矩阵为 YYY,已知评分位置的指标集合为 Ω\OmegaΩ。矩阵修补问题的目标是寻找一个完整矩阵 Y^\hat{Y}Y^,使其在已知评分位置上与原矩阵一致:
Y^Ω=YΩ \hat{Y}_{\Omega}=Y_{\Omega} Y^Ω=YΩ
由于用户之间的喜好存在相似性,产品之间也存在相似性,所以完整评分矩阵往往具有低秩性。因此可以建立模型:
minY^rank(Y^) \min_{\hat{Y}}\operatorname{rank}(\hat{Y}) Y^minrank(Y^)
约束条件为:
Y^Ω=YΩ \hat{Y}_{\Omega}=Y_{\Omega} Y^Ω=YΩ
由于秩函数不便直接优化,可以进一步松弛为核范数优化问题:
minY^∥Y^∥∗ \min_{\hat{Y}}\|\hat{Y}\|_* Y^min∥Y^∥∗
约束条件为:
Y^Ω=YΩ \hat{Y}_{\Omega}=Y_{\Omega} Y^Ω=YΩ
结论:推荐系统中的评分预测可以转化为矩阵修补问题,其核心思想是利用低秩性补全缺失评分。
5、谱聚类的基本思想
5.1、谱聚类问题的出发点。
聚类的目标是对给定数据集按照相似性进行分组,使得同一组内的数据点比较“密”,不同组之间的数据点比较“疏”。这类问题通常属于无监督学习中的模式识别问题。
谱聚类的基本出发点是:先用数据点构造一张无向加权图,再把聚类问题转化为图的分割问题。图中的每个顶点表示一个数据点,边的权重表示两个数据点之间的相似程度。
5.2、构造图与确定权重。
设数据点为 x1,x2,⋯ ,xnx_1,x_2,\cdots,x_nx1,x2,⋯,xn,图中顶点之间的权重为 wijw_{ij}wij。权重越大,表示两个数据点越相似;权重越小,表示两个数据点越不相似。
一种常用方法是 KKK 近邻法:
wij=wji={exp(−∥xi−xj∥22σ2),若 xi∈KNN(xj) 或 xj∈KNN(xi),0,否则 w_{ij}=w_{ji}= \begin{cases} \exp\left(-\dfrac{\|x_i-x_j\|^2}{2\sigma^2}\right), & \text{若 }x_i\in KNN(x_j)\text{ 或 }x_j\in KNN(x_i),\\ 0, & \text{否则} \end{cases} wij=wji=⎩ ⎨ ⎧exp(−2σ2∥xi−xj∥2),0,若 xi∈KNN(xj) 或 xj∈KNN(xi),否则
另一种方法是全连接法:
wij=wji=exp(−∥xi−xj∥22σ2) w_{ij}=w_{ji}=\exp\left(-\dfrac{\|x_i-x_j\|^2}{2\sigma^2}\right) wij=wji=exp(−2σ2∥xi−xj∥2)
所有权重组成权重矩阵,也称相似性矩阵:
W=(w11w12⋯w1nw21w22⋯w2n⋮⋮⋱⋮wn1wn2⋯wnn) W= \begin{pmatrix} w_{11} & w_{12} & \cdots & w_{1n}\\ w_{21} & w_{22} & \cdots & w_{2n}\\ \vdots & \vdots & \ddots & \vdots\\ w_{n1} & w_{n2} & \cdots & w_{nn} \end{pmatrix} W= w11w21⋮wn1w12w22⋮wn2⋯⋯⋱⋯w1nw2n⋮wnn
无向图中顶点 iii 的度定义为与该顶点相连的边权重之和:
di=∑jwij d_i=\sum_jw_{ij} di=j∑wij
度矩阵为对角矩阵:
D=(d10⋯00d2⋯0⋮⋮⋱⋮00⋯dn) D= \begin{pmatrix} d_1 & 0 & \cdots & 0\\ 0 & d_2 & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \cdots & d_n \end{pmatrix} D= d10⋮00d2⋮0⋯⋯⋱⋯00⋮dn
结论:谱聚类首先要把数据点之间的相似性转化为图上的边权重,并由此得到权重矩阵 WWW 和度矩阵 DDD。
5.3、图割准则与拉普拉斯矩阵。
谱聚类中的图分割准则是:使得被删掉的边的权重之和尽可能小。设要把数据点分成 kkk 类:
A1,A2,⋯ ,Ak A_1,A_2,\cdots,A_k A1,A2,⋯,Ak
则“最小割”问题可写为:
minA1,⋯ ,Ak∑l=1k∑i∈Al,j∉Alwij \min_{A_1,\cdots,A_k}\sum_{l=1}^{k}\sum_{i\in A_l,j\notin A_l}w_{ij} A1,⋯,Akminl=1∑ki∈Al,j∈/Al∑wij
其中 AlA_lAl 表示第 lll 个子图包含的顶点指标集。
定义第 lll 类对应的示性向量:
ql=(q1l,q2l,⋯ ,qnl)T∈{−1,1}n q_l=(q_{1l},q_{2l},\cdots,q_{nl})^T\in\{-1,1\}^n ql=(q1l,q2l,⋯,qnl)T∈{−1,1}n
其中:
qil={1,若 i∈Al,−1,若 i∉Al q_{il}= \begin{cases} 1, & \text{若 }i\in A_l,\\ -1, & \text{若 }i\notin A_l \end{cases} qil={1,−1,若 i∈Al,若 i∈/Al
令:
Q=(q1,q2,⋯ ,qk) Q=(q_1,q_2,\cdots,q_k) Q=(q1,q2,⋯,qk)
定义图拉普拉斯矩阵:
L=D−W L=D-W L=D−W
则图割问题可以写成:
minQTr(QTLQ) \min_Q\operatorname{Tr}(Q^TLQ) QminTr(QTLQ)
约束条件为:
qil∈{−1,1} q_{il}\in\{-1,1\} qil∈{−1,1}
其中 Tr(⋅)\operatorname{Tr}(\cdot)Tr(⋅) 表示矩阵的迹,即矩阵对角线元素之和。
5.4、图割目标与迹形式的关系。
为了说明图割目标可以写成迹形式,只需证明图割权重和 Tr(QTLQ)\operatorname{Tr}(Q^TLQ)Tr(QTLQ) 成比例。
对第 lll 类,有:
∑i∈Al,j∉Alwij=14∑i=1n∑j=1nwij(qil−qjl)2 \sum_{i\in A_l,j\notin A_l}w_{ij}= \frac14\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}(q_{il}-q_{jl})^2 i∈Al,j∈/Al∑wij=41i=1∑nj=1∑nwij(qil−qjl)2
因此:
∑l=1k∑i∈Al,j∉Alwij=14∑l=1k∑i=1n∑j=1nwij(qil−qjl)2 \sum_{l=1}^{k}\sum_{i\in A_l,j\notin A_l}w_{ij}= \frac14\sum_{l=1}^{k}\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}(q_{il}-q_{jl})^2 l=1∑ki∈Al,j∈/Al∑wij=41l=1∑ki=1∑nj=1∑nwij(qil−qjl)2
展开平方项:
14∑l=1k∑i=1n∑j=1nwij(qil2−2qilqjl+qjl2) \frac14\sum_{l=1}^{k}\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij} (q_{il}^2-2q_{il}q_{jl}+q_{jl}^2) 41l=1∑ki=1∑nj=1∑nwij(qil2−2qilqjl+qjl2)
根据 di=∑jwijd_i=\sum_jw_{ij}di=∑jwij,可化为:
14∑l=1k(2∑i=1ndiqil2−2∑i=1n∑j=1nwijqilqjl) \frac14\sum_{l=1}^{k} \left( 2\sum_{i=1}^{n}d_iq_{il}^2 -2\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}q_{il}q_{jl} \right) 41l=1∑k(2i=1∑ndiqil2−2i=1∑nj=1∑nwijqilqjl)
即:
12∑l=1k(qlTDql−qlTWql) \frac12\sum_{l=1}^{k} \left( q_l^TDq_l-q_l^TWq_l \right) 21l=1∑k(qlTDql−qlTWql)
所以:
∑l=1k∑i∈Al,j∉Alwij=12∑l=1kqlT(D−W)ql \sum_{l=1}^{k}\sum_{i\in A_l,j\notin A_l}w_{ij}= \frac12\sum_{l=1}^{k}q_l^T(D-W)q_l l=1∑ki∈Al,j∈/Al∑wij=21l=1∑kqlT(D−W)ql
由于 L=D−WL=D-WL=D−W,因此:
∑l=1k∑i∈Al,j∉Alwij=12Tr(QTLQ) \sum_{l=1}^{k}\sum_{i\in A_l,j\notin A_l}w_{ij}= \frac12\operatorname{Tr}(Q^TLQ) l=1∑ki∈Al,j∈/Al∑wij=21Tr(QTLQ)
常数因子 12\frac1221 不影响最小化问题,因此最小割问题可以等价转化为最小化 Tr(QTLQ)\operatorname{Tr}(Q^TLQ)Tr(QTLQ)。
结论:谱聚类把图割问题转化为拉普拉斯矩阵上的迹最小化问题。
6、谱聚类的松弛与求解
6.1、整数约束问题直接求解不方便。
原始问题为:
minQTr(QTLQ) \min_Q\operatorname{Tr}(Q^TLQ) QminTr(QTLQ)
约束条件为:
qil∈{−1,1} q_{il}\in\{-1,1\} qil∈{−1,1}
由于 qilq_{il}qil 只能取 111 或 −1-1−1,这是一个整数约束问题,直接求解通常比较困难。因此可以将其放松为实数约束问题。
先将约束写成向量长度约束:
minQTr(QTLQ),s.t. qlTql=n,l=1,⋯ ,k \min_Q\operatorname{Tr}(Q^TLQ),\quad s.t.\ q_l^Tq_l=n,\quad l=1,\cdots,k QminTr(QTLQ),s.t. qlTql=n,l=1,⋯,k
进一步归一化后写成:
minQTr(QTLQ),s.t. qlTql=1,l=1,⋯ ,k \min_Q\operatorname{Tr}(Q^TLQ),\quad s.t.\ q_l^Tq_l=1,\quad l=1,\cdots,k QminTr(QTLQ),s.t. qlTql=1,l=1,⋯,k
若还要求不同列向量之间正交,则可统一写成:
minQTr(QTLQ),s.t. QTQ=I \min_Q\operatorname{Tr}(Q^TLQ),\quad s.t.\ Q^TQ=I QminTr(QTLQ),s.t. QTQ=I
这是一个标准的特征值问题。根据线性代数中的结论,上述问题的解对应于 LLL 的最小特征值对应的特征向量。
结论:松弛后的谱聚类问题可以通过计算拉普拉斯矩阵的特征值和特征向量来求解。
6.2、特征向量的选择。
由于:
v=(1,1,⋯ ,1)T v=(1,1,\cdots,1)^T v=(1,1,⋯,1)T
满足:
Lv=0 Lv=0 Lv=0
所以 vvv 是 LLL 的特征值 000 对应的特征向量。这个向量本身不能有效区分数据类别,因此在将数据聚为 kkk 类时,通常需要计算最小的前 k+1k+1k+1 个特征值及其对应特征向量,再去掉常数特征向量,保留有分类信息的特征向量用于聚类。
6.3、谱聚类过程。
谱聚类的基本过程可以概括为以下三步:
1)构建表示对象集相似度的矩阵 WWW。
2)通过计算相似度矩阵或拉普拉斯矩阵的前 kkk 个特征值与特征向量,构建特征向量空间。
3)利用 KKK-means 或其他经典聚类算法,对特征向量空间中的特征向量进行聚类。
结论:谱聚类不是直接在原始数据空间中聚类,而是先通过图和特征向量构造新的表示空间,再在该空间中完成聚类。
6.4、谱聚类例子。
对于螺旋形数据集,直接在原始坐标空间中使用简单距离进行聚类可能不容易得到理想结果。谱聚类先根据数据点之间的相似性构造图,再利用拉普拉斯矩阵的特征向量形成新的表示空间,最后在特征向量空间中进行聚类,因此能够把螺旋形数据分成不同类别。
结论:谱聚类的核心优势在于,它通过图结构和特征向量提取数据的整体结构信息,从而处理一些普通距离聚类不容易分开的数据形状。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)