学习过程主要顺着 周志华《机器学习》第三章线性模型 内容,本次线性回归模型总结按照 “模型 + 策略 + 算法 ” 的统计学习三要素整理。
0. 数据集和目标
训练集假设m个样本,每个样本n个特征/属性,每个样本包含一个标记y。
表示为:
D
=
[
X
1
(
1
)
X
2
(
1
)
.
.
.
X
n
(
1
)
y
1
X
1
(
2
)
X
2
(
2
)
.
.
.
X
n
(
2
)
y
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
X
1
(
m
)
X
2
(
m
)
.
.
.
X
n
(
m
)
y
m
]
D=\begin{bmatrix} X^{(1)}_1& X^{(1)}_2& ...& X^{(1)}_n& y_1& \\ X^{(2)}_1& X^{(2)}_2& ...& X^{(2)}_n& y_2& \\ ...& ...& ...& ...& ...& \\ X^{(m)}_1& X^{(m)}_2& ...& X^{(m)}_n& y_m& \\ \end{bmatrix}
D=⎣⎢⎢⎢⎡X1(1)X1(2)...X1(m)X2(1)X2(2)...X2(m)............Xn(1)Xn(2)...Xn(m)y1y2...ym⎦⎥⎥⎥⎤其中,
X
j
(
i
)
X^{(i)}_j
Xj(i)代表第 i 个样本的第 j 个特征
模型的目标为:对于一个新的样本,给定特征 ( X 1 ( k ) , X 2 ( k ) , . . . , X n ( k ) ) (X^{(k)}_1, X^{(k)}_2, ... , X^{(k)}_n) (X1(k),X2(k),...,Xn(k)),可以给出它对应的 y k y_k yk(在回归模型中, y k y_k yk是一个连续值)。
1. 模型
针对每个样本:
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
.
.
.
+
w
n
x
n
+
b
f(x) = w_1x_1+ w_2x_2+ ...+ w_nx_n +b
f(x)=w1x1+w2x2+...+wnxn+b其中,
w
i
,
b
w_i,b
wi,b为模型参数,
x
i
x_i
xi为每个样本的特征值。
线性模型试图学得一个通过特征的线性组合来进行预测的函数
为了方面操作,简化为矩阵形式:
f
(
X
)
=
X
θ
f(X) = X \theta
f(X)=Xθ其中
X
=
[
X
1
(
1
)
X
2
(
1
)
.
.
.
X
n
(
1
)
1
X
1
(
2
)
X
2
(
2
)
.
.
.
X
n
(
2
)
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
X
1
(
m
)
X
2
(
m
)
.
.
.
X
n
(
m
)
1
]
维
度
m
∗
(
n
+
1
)
,
 
θ
=
[
w
1
w
2
.
.
.
w
n
b
]
维
度
(
n
+
1
)
∗
1
X=\begin{bmatrix} X^{(1)}_1& X^{(1)}_2& ...& X^{(1)}_n& 1& \\ X^{(2)}_1& X^{(2)}_2& ...& X^{(2)}_n& 1& \\ ...& ...& ...& ...& ...& \\ X^{(m)}_1& X^{(m)}_2& ...& X^{(m)}_n& 1& \\ \end{bmatrix}_{维度m*(n+1)} , \, \theta=\begin{bmatrix} w_1 \\ w_2 \\ ... \\ w_n \\ b \end{bmatrix}_{维度(n+1)*1}
X=⎣⎢⎢⎢⎡X1(1)X1(2)...X1(m)X2(1)X2(2)...X2(m)............Xn(1)Xn(2)...Xn(m)11...1⎦⎥⎥⎥⎤维度m∗(n+1),θ=⎣⎢⎢⎢⎢⎡w1w2...wnb⎦⎥⎥⎥⎥⎤维度(n+1)∗1所以
X
θ
=
[
f
(
X
1
)
f
(
X
2
)
.
.
.
f
(
X
m
)
]
维
度
m
∗
1
,
即
为
针
对
m
个
输
入
样
本
的
预
测
值
X\theta = \begin{bmatrix} f(X_1) \\ f(X_2) \\ ... \\ f(X_m) \end{bmatrix}_{维度m*1} ,即为针对m个输入样本的预测值
Xθ=⎣⎢⎢⎡f(X1)f(X2)...f(Xm)⎦⎥⎥⎤维度m∗1,即为针对m个输入样本的预测值
2. 策略
最小二乘法,均方误差作为损失函数
J
(
w
,
b
)
=
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
)
2
J(w,b) = \sum_{i=1}^{m}(f(x_i)-y_i))^2
J(w,b)=i=1∑m(f(xi)−yi))2矩阵形式:
J
(
θ
)
=
(
X
θ
−
y
)
T
(
X
θ
−
y
)
J(\theta) = (X\theta-y)^T(X\theta-y)
J(θ)=(Xθ−y)T(Xθ−y)
最小二乘法:选择未知参数,使得理论值与观测值之差的平方和达到最小
所以,最优参数
θ
∗
\theta^*
θ∗:
(
θ
∗
)
=
a
r
g
 
m
i
n
J
(
θ
)
=
a
r
g
 
m
i
n
(
X
θ
−
y
)
T
(
X
θ
−
y
)
(\theta^*) = arg \,minJ(\theta) = arg \,min (X\theta-y)^T(X\theta-y)
(θ∗)=argminJ(θ)=argmin(Xθ−y)T(Xθ−y)
3. 算法(模型求解)
算法是指学习模型参数的具体计算方法
求解最小二乘问题,可以采用 正规方程法和迭代法(梯度下降法是迭代法的一种,可以用于求解线性和非线性最小二乘问题。高斯-牛顿法是另一种经常用于求解非线性最小二乘的迭代法)
(TODO1:进一步学习数值优化算法,迭代法)
3.1 正规方程法
因为
J
(
θ
)
J(\theta)
J(θ) 是关于
θ
\theta
θ 的凸函数
所以
J
(
θ
)
J(\theta)
J(θ)求导为0时,得到最小值,此时的
θ
\theta
θ即为最优解
何为凸函数:
对区间 [a, b] 上定义的函数 f f f,若它对区间中任意两点 x 1 , x 2 x_1, x_2 x1,x2均有 f ( x 1 + x 2 2 ) ⩽ f ( x 1 ) + f ( x 2 ) 2 f(\frac{x_1+x_2}{2})\leqslant \frac{f(x_1)+f(x_2)}{2} f(2x1+x2)⩽2f(x1)+f(x2),则称 f f f为区间[a, b] 上的凸函数。
对实数集上的函数,可通过求二阶导数来判别:若二阶导数在区间上非负,则称为凸函数。
J
(
θ
)
J(\theta)
J(θ)对θ向量求导取0,如下:
∂
∂
θ
J
(
θ
)
=
2
(
X
T
X
θ
−
X
T
y
)
=
0
\frac{\partial }{\partial \theta}J(\theta) = 2(X^TX\theta-X^Ty)=0
∂θ∂J(θ)=2(XTXθ−XTy)=0
求导过程:(其中一些矩阵求导公式参考:矩阵求导与转置运算 或 向量,标量对向量求导数 )
∂ ∂ θ J ( θ ) = ∂ ∂ θ ( X θ − y ) T ( X θ − y ) = ∂ ∂ θ [ ( θ T X T − y T ) ( X θ − y ) ] = ∂ ∂ θ ( θ T X T X θ − θ T X T y − y T X θ + y T y ) = 2 X T X θ − X T y − X T y = 2 ( X T X θ − X T y ) \begin{aligned} \frac{\partial }{\partial \theta}J(\theta) &=\frac{\partial }{\partial \theta} (X\theta-y)^T(X\theta-y)\\ &=\frac{\partial }{\partial \theta} [(\theta^TX^T-y^T)(X\theta-y)]\\ &=\frac{\partial }{\partial \theta} (\theta^TX^TX\theta - \theta^TX^Ty - y^TX\theta + y^Ty)\\ &=2X^TX\theta-X^Ty-X^Ty\\ &=2(X^TX\theta-X^Ty) \end{aligned} ∂θ∂J(θ)=∂θ∂(Xθ−y)T(Xθ−y)=∂θ∂[(θTXT−yT)(Xθ−y)]=∂θ∂(θTXTXθ−θTXTy−yTXθ+yTy)=2XTXθ−XTy−XTy=2(XTXθ−XTy)
得:
θ
=
(
X
T
X
)
−
1
X
T
y
\theta = (X^TX)^{-1}X^Ty
θ=(XTX)−1XTy
3.2 梯度下降法
针对损失函数:
J
(
θ
)
=
(
X
θ
−
y
)
T
(
X
θ
−
y
)
J(\theta) = (X\theta-y)^T(X\theta-y)
J(θ)=(Xθ−y)T(Xθ−y),设定初始值
θ
\theta
θ、步长
α
\alpha
α
计算损失函数梯度:
▽
=
∂
∂
θ
J
(
θ
)
=
2
X
T
(
X
θ
−
y
)
\triangledown = \frac{\partial }{\partial \theta}J(\theta) = 2X^T(X\theta-y)
▽=∂θ∂J(θ)=2XT(Xθ−y)
更新参数:
θ
=
θ
−
α
▽
\theta = \theta - \alpha \triangledown
θ=θ−α▽
不断更新参数,直到梯度 ▽ \triangledown ▽ 小于设定阈值 ε \varepsilon ε
得到最优参数 θ \theta θ。
4. 广义线性模型
考虑单调可微函数
g
(
.
)
g(.)
g(.) ,令
y
=
g
−
1
(
X
θ
)
y = g^{-1}(X\theta)
y=g−1(Xθ)
也就是:
g
(
y
)
=
X
θ
g(y) = X\theta
g(y)=Xθ
这样得到的模型称为“广义线性模型”。
这里做一下扩展,对数线性函数是 g ( . ) = l n ( . ) g(.) = ln(.) g(.)=ln(.)的情况,而逻辑回归是 g − 1 ( . ) = s i g m o i d ( . ) g^{-1}(.) = sigmoid(.) g−1(.)=sigmoid(.)的情况。
参考:
1.《机器学习》周志华
2.《统计学习方法》李航
3. ML模型2:线性回归模型
4. 第二周(多变量线性回归 +Matlab使用)-【机器学习-Coursera Machine Learning-吴恩达】
本文详细介绍了线性回归模型,包括数据集和目标、模型定义、最小二乘法策略、正规方程法及梯度下降法求解模型参数。重点探讨了线性回归的数学推导和广义线性模型的概念。

1885

被折叠的 条评论
为什么被折叠?



