文章内容
此文章为 机器学习-西瓜书-🍉Book-3章-线性模型(Part 1),
本文主要内容为 线性模型概述,以及介绍回归类任务所常用的一元线性回归、多元线性回归模型,并延申至广义线性回归模型。
所需数学知识
- 求偏导
- 矩阵求导
- 求逆矩阵
名词解释
1.序关系
有序:属性之间可进行相对比较(如大、中、小)
无序:属性之间不可进行相对比较(如南瓜、西瓜、冬瓜)
2.符号arg与s.t.
arg:即argument(参数),用于表示求出指定函数时的**参数取值**
例如:
arg min 就是使后面这个式子达到最小值时的 变量的取值
arg max 就是使后面这个式子达到最大值时的 变量的取值
s.t.:即subject to,意思是受限于...,后面紧跟约束条件
3.闭式解
也叫做 解析解,
闭式解就是一些严格的公式,给出任意的自变量就可以求出其因变量,也就是问题的解
南瓜书中说闭式解是指可以通过具体的表达式解出待解参数
模型介绍
表示形式
对于拥有d个属性的示例 x,表示为:
x
=
(
x
1
;
x
2
;
…
;
x
d
)
x = ( x _ { 1 } ; x _ { 2 } ; \ldots ; x _ { d } )
x=(x1;x2;…;xd)
其中
x
i
x_i
xi表示第i个属性的属性值
而我们将各属性的线性组合作为线性模型,表示为:
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
…
+
w
d
x
d
+
b
f ( x ) = w _ { 1 } x _ { 1 } + w _ { 2 } x _ { 2 } + \ldots + w _ { d } x _ { d } + b
f(x)=w1x1+w2x2+…+wdxd+b
f ( x ) = w T x + b f ( x ) = w ^ { T } x + b f(x)=wTx+b
其中
w
w
w和
x
x
x均为列向量,其中
w
w
w可以理解成为不同属性的偏好而赋予的权重
故线性模型具有很强的可解释性
模型优点
- 简单(模型表示、数学公式简单)
- 基本(通过引入层级结构或高维映射可以得到许多非线性模型)
- 可理解性好(通过权重可以看出对属性的偏好)
属性数值化
总结:离散属性的处理:若有“序”(order),则连续化;否则,转化为 𝑘维向量
对于线性模型的求解,我们首先需要明确参数的输入和求解两个部分
我们知道模型的输入为各个示例
x
i
x_i
xi,其中的
x
i
x_i
xi由d个属性组成,
而我们用d个属性值表示一个具体的示例
x
i
x_i
xi作为输入
这时我们会发现我们需要注意属性值的数据类型
于是这里我们把属性分为两类
-
连续属性
-
离散属性
- 有序的离散属性
- 无序的离散属性
对于有序的属性,我们用相对值表示属性值,如大、中、小分别用1,0.5,0来表示
对于无序的属性,我们用0/1表示属性值,我们记改属性有m种属性值,则一个属性值需要m维列向量进行表示。
比如对于属性瓜的类别,有西瓜,南瓜,冬瓜 三种属性值,则表示为
x 1 = ( 1 ; 0 ; 0 ) , x 2 = ( 0 ; 1 ; 0 ) , x 3 = ( 0 ; 0 ; 1 ) x _ { 1 } = ( 1 ; 0 ; 0 ) , x _ { 2 } = ( 0 ; 1 ; 0 ) , x _ { 3 } = ( 0 ; 0 ; 1 ) x1=(1;0;0),x2=(0;1;0),x3=(0;0;1)
这里表示示例 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3分别为西瓜,南瓜,冬瓜
对于回归,二分类,多分类任务,我们给出不同的线性模型
回归任务
最小二乘法
在第二章中我们知道均方误差是回归任务的常见性能度量
均方误差本身也具有很好的几何意义,对于欧氏距离
定义:基于均方误差最小化进行模型求解,使得样本到直线的欧式距离之和最小
数学知识:涉及求偏导数
1.一元线性回归
f ( x i ) = w x i + b , 使得 f ( x i ) ≃ y i . f\left(x_{i}\right)=w x_{i}+b, 使得 f\left(x_{i}\right) \simeq y_{i}. f(xi)=wxi+b,使得f(xi)≃yi.
( w ∗ , b ∗ ) = arg min ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg min ( w , b ) ∑ i = 1 m ( y i − w x i − b ) 2 . \begin{aligned}\left(w^{*}, b^{*}\right) & =\underset{(w, b)}{\arg \min } \sum_{i=1}^{m}\left(f\left(x_{i}\right)-y_{i}\right)^{2} \\ & =\underset{(w, b)}{\arg \min } \sum_{i=1}^{m}\left(y_{i}-w x_{i}-b\right)^{2} .\end{aligned} (w∗,b∗)=(w,b)argmini=1∑m(f(xi)−yi)2=(w,b)argmini=1∑m(yi−wxi−b)2.
∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) , ∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) , \begin{array}{l}\frac{\partial E_{(w, b)}}{\partial w}=2\left(w \sum_{i=1}^{m} x_{i}^{2}-\sum_{i=1}^{m}\left(y_{i}-b\right) x_{i}\right), \\ \frac{\partial E_{(w, b)}}{\partial b}=2\left(m b-\sum_{i=1}^{m}\left(y_{i}-w x_{i}\right)\right),\end{array} ∂w∂E(w,b)=2(w∑i=1mxi2−∑i=1m(yi−b)xi),∂b∂E(w,b)=2(mb−∑i=1m(yi−wxi)),
此处
E
(
w
,
b
)
E_{(w, b)}
E(w,b)是是关于w和b的凸函数
注意:此处凸函数定义与 数学分析 中相同,与 高等数学 中相反
w = ∑ i = 1 m y i ( x i − x ˉ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 , b = 1 m ∑ i = 1 m ( y i − w x i ) \begin{array}{c}w=\frac{\sum_{i=1}^{m} y_{i}\left(x_{i}-\bar{x}\right)}{\sum_{i=1}^{m} x_{i}^{2}-\frac{1}{m}\left(\sum_{i=1}^{m} x_{i}\right)^{2}}, \\ b=\frac{1}{m} \sum_{i=1}^{m}\left(y_{i}-w x_{i}\right)\end{array} w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ),b=m1∑i=1m(yi−wxi)
2.多元线性回归
额外数学知识:
矩阵求导
基于本人数学系所教授的高等代数中无此内容,故认为需要额外补充学习
详见西瓜书附录P400 A.2 导数
f ( x i ) = w T x i + b , 使得 f ( x i ) ≃ y i , f\left(\boldsymbol{x}_{i}\right)=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b, 使得 f\left(\boldsymbol{x}_{i}\right) \simeq y_{i}, f(xi)=wTxi+b,使得f(xi)≃yi,
X = ( x 11 x 12 … x 1 d 1 x 21 x 22 … x 2 d 1 ⋮ ⋮ ⋱ ⋮ ⋮ x m 1 x m 2 … x m d 1 ) = ( x 1 T 1 x 2 T 1 ⋮ ⋮ x m T 1 ) \mathbf{X}=\left(\begin{array}{ccccc}x_{11} & x_{12} & \ldots & x_{1 d} & 1 \\ x_{21} & x_{22} & \ldots & x_{2 d} & 1 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ x_{m 1} & x_{m 2} & \ldots & x_{m d} & 1\end{array}\right)=\left(\begin{array}{cc}\boldsymbol{x}_{1}^{\mathrm{T}} & 1 \\ \boldsymbol{x}_{2}^{\mathrm{T}} & 1 \\ \vdots & \vdots \\ \boldsymbol{x}_{m}^{\mathrm{T}} & 1\end{array}\right) X= x11x21⋮xm1x12x22⋮xm2……⋱…x1dx2d⋮xmd11⋮1 = x1Tx2T⋮xmT11⋮1
示例中的属性值为列向量,同时将标记写成向量形式 y = ( y 1 ; y 2 ; … ; y m ) y=(y_{1};y_{2};\ldots;y_{m}) y=(y1;y2;…;ym)
注意:此处将
f
(
x
i
)
=
w
T
x
i
+
b
f\left(\boldsymbol{x}_{i}\right)=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b
f(xi)=wTxi+b 中的
b
b
b 拆成b*1
的形式,用
x
x
x吸收
1
1
1,用
w
w
w吸收
b
b
b变成
w
^
\hat{\boldsymbol{w}}
w^
w ^ ∗ = ( X T X ) − 1 X T y \hat{\boldsymbol{w}}^{*}=\left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right)^{-1} \mathbf{X}^{\mathrm{T}} \boldsymbol{y} w^∗=(XTX)−1XTy
f ( x ^ i ) = x ^ i T ( X T X ) − 1 X T y . f\left(\hat{\boldsymbol{x}}_{i}\right)=\hat{\boldsymbol{x}}_{i}^{\mathrm{T}}\left(\mathbf{X}^{\mathrm{T}} \mathbf{X}\right)^{-1} \mathbf{X}^{\mathrm{T}} \boldsymbol{y}. f(x^i)=x^iT(XTX)−1XTy.
1.
若
X
T
X
满秩或正定
,
则
w
∗
=
(
X
T
X
)
−
1
X
T
y
1.若 X ^ { T } X 满 秩 或 正 定 , 则 w ^ { * } = ( X ^ { T } X ) ^ { - 1 } X ^ { T } y
1.若XTX满秩或正定,则w∗=(XTX)−1XTy
2.
若
X
T
X
不满秩
,
则可解出多个
w
^
2.若X ^ { T } X 不 满 秩 , 则 可 解 出 多 个 \widehat { w }
2.若XTX不满秩,则可解出多个w
此时需求助于归纳偏好,常见做法是引入 正则化项(详见6.4节,11.4节)
通过在损失函数中添加惩罚项来限制模型的复杂度,常见的正则化方法包括
岭回归(Ridge Regression)、Lasso回归和弹性网(Elastic Net)
PS: w ^ ∗ \widehat { w } ^ { * } w ∗转换成二次型矩阵相乘还挺有意思的,推导详见南瓜书P35,P36
3.广义线性模型(GLM)
令预测值逼近 y 的衍生物
对数线性模型
假设我们认为示例所对应的输出标记是在指数尺度上变化,
那就可将输出标记的对数作为线性模型逼近的目标
个人理解:
其实就是我们在原样本中,通过数值或者散点图,观察到输出标记在指数尺度上变化,故很难直接用一条直线拟合输出标记,因为标记值本身为非线性增长。
而对在指数尺度上变化的输出标记取对数后,
就可以将输出标记映射到线性尺度上变化,故易于用直线拟合
y = w T x + b y = w ^ { T } x + b y=wTx+b
ln y = w T x + b \ln y = w ^ { T } x + b lny=wTx+b
实际上是在试图让 e w T x + b e ^ { w ^T x} + b ewTx+b逼近y
这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用
但实质上已是在求取输入空间到输出空间的非线性函数映射
我们知道,对数线性模型是使用对数函数将输出标记进行映射
那么如果我们选取不同的函数对输出标记进行映射,
就能将一个非线性变化的样本用线性模型进行拟合了。
而此时问题就转变为映射函数的寻找了,需要找到一个合适的映射函数,将原来的标记值数据形态映射成线性的🤔
这里就涉及到模型的优化了,找到映射函数得到新的线性模型,并在某一性能度量下进行比较,结合需求选择模型。
而由此我们引出了广义线性模型(Generalized Linear Model)的定义:
y
=
g
−
1
(
w
T
x
+
b
)
y = g ^ { - 1 } ( w ^ { T } x + b )
y=g−1(wTx+b)
其中
g
(
⋅
)
g ( \cdot )
g(⋅)为连续且充分光滑的单调可微函数,称为联系函数(link function)
广义线性模型的参数估计常通过加权最小二乘法或极大似然法进行
显然,对数线性回归是广义线性模型在
g
(
⋅
)
g ( \cdot )
g(⋅)=
l
n
(
⋅
)
ln ( \cdot )
ln(⋅)时的特例
显然,一元线性回归也是如此