【ML模型详细推导1】- 线性回归

线性回归

  • 0. 数据集和目标
  • 1. 模型
  • 2. 策略
  • 3. 算法(模型求解)
    • 3.1 正规方程法
    • 3.2 梯度下降法
  • 4. 广义线性模型

学习过程主要顺着 周志华《机器学习》第三章线性模型 内容,本次线性回归模型总结按照 “模型 + 策略 + 算法 ” 的统计学习三要素整理。


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...1m(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)m1,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=1m(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)=θ[(θTXTyT)(Xθy)]=θ(θTXTXθθTXTyyTXθ+yTy)=2XTXθXTyXTy=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=g1(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(.) g1(.)=sigmoid(.)的情况。


参考:
1.《机器学习》周志华
2.《统计学习方法》李航
3. ML模型2:线性回归模型
4. 第二周(多变量线性回归 +Matlab使用)-【机器学习-Coursera Machine Learning-吴恩达】

你可能感兴趣的:(机器学习,机器学习模型详细推导)