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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/KevinBetterQ/article/details/83117342


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


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} 其中, X j ( i ) X^{(i)}_j 代表第 i 个样本的第 j 个特征

模型的目标为:对于一个新的样本,给定特征 ( X 1 ( k ) , X 2 ( k ) , . . . , X n ( k ) ) (X^{(k)}_1, X^{(k)}_2, ... , X^{(k)}_n) ,可以给出它对应的 y k y_k (在回归模型中, y k y_k 是一个连续值)。

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 其中, w i , b w_i,b 为模型参数, x i x_i 为每个样本的特征值。

线性模型试图学得一个通过特征的线性组合来进行预测的函数

为了方面操作,简化为矩阵形式:
f ( X ) = X θ f(X) = X \theta 其中
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 θ = [ 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个输入样本的预测值

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 ( θ ) = ( X θ y ) T ( X θ y ) J(\theta) = (X\theta-y)^T(X\theta-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)

3. 算法(模型求解)

算法是指学习模型参数的具体计算方法

求解最小二乘问题,可以采用 正规方程法和迭代法(梯度下降法是迭代法的一种,可以用于求解线性和非线性最小二乘问题。高斯-牛顿法是另一种经常用于求解非线性最小二乘的迭代法)

(TODO1:进一步学习数值优化算法,迭代法)

3.1 正规方程法

因为 J ( θ ) J(\theta) 是关于 θ \theta 的凸函数
所以 J ( θ ) J(\theta) 求导为0时,得到最小值,此时的 θ \theta 即为最优解

何为凸函数:
对区间 [a, b] 上定义的函数 f f ,若它对区间中任意两点 x 1 , x 2 x_1, x_2 均有 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 f 为区间[a, b] 上的凸函数。
对实数集上的函数,可通过求二阶导数来判别:若二阶导数在区间上非负,则称为凸函数。

J ( θ ) J(\theta) 对θ向量求导取0,如下:
θ J ( θ ) = 2 ( X T X θ X T y ) = 0 \frac{\partial }{\partial \theta}J(\theta) = 2(X^TX\theta-X^Ty)=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}

得:
θ = ( X T X ) 1 X T y \theta = (X^TX)^{-1}X^Ty

3.2 梯度下降法

针对损失函数: J ( θ ) = ( X θ y ) T ( X θ y ) J(\theta) = (X\theta-y)^T(X\theta-y) ,设定初始值 θ \theta 、步长 α \alpha
计算损失函数梯度:
= θ J ( θ ) = 2 X T ( X θ y ) \triangledown = \frac{\partial }{\partial \theta}J(\theta) = 2X^T(X\theta-y)
更新参数:
θ = θ α \theta = \theta - \alpha \triangledown

不断更新参数,直到梯度 \triangledown 小于设定阈值 ε \varepsilon

得到最优参数 θ \theta

4. 广义线性模型

考虑单调可微函数 g ( . ) g(.) ,令
y = g 1 ( X θ ) y = g^{-1}(X\theta)
也就是:
g ( y ) = X θ g(y) = X\theta
这样得到的模型称为“广义线性模型”。

这里做一下扩展,对数线性函数是 g ( . ) = l n ( . ) g(.) = ln(.) 的情况,而逻辑回归是 g 1 ( . ) = s i g m o i d ( . ) g^{-1}(.) = sigmoid(.) 的情况。


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

猜你喜欢

转载自blog.csdn.net/KevinBetterQ/article/details/83117342