线性回归(Linear Regression)

线性回归(Linear Regression)

1 变量表

符号含义
m m m训练集样本数量
n n n特征数量
( x ( i ) , y ( i ) ) ({{x}^{(i)}},{{y}^{(i)}}) (x(i),y(i))训练集中第 i i i个样本
x ( i ) {x}^{(i)} x(i) i i i个输入值
y ^ ( i ) \hat{y}^{(i)} y^(i) i i i个输出值
x j ( i ) {x}^{(i)}_j xj(i) i i i个输入值的第 j j j个特征
h ( x ) h(x ) h(x)假设函数

2 线性回归模型

在这里插入图片描述

图1 线性回归模型

图1中, h h h代表 h y p o t h e s i s hypothesis hypothesis 假设(📑在机器学习中一般这么叫,andrew觉得不太好听~),它是一个从模型输入到输出的函数映射,在线性回归问题中, h h h的表达方式为 :
h θ ( x ( i ) ) = θ 0 x 0 ( i ) + θ 1 x 1 ( i ) + θ 2 x 2 ( i ) + . . . + θ n x n ( i ) (1) h_{\theta} (x^{(i)})={\theta_{0}}{x_{0}^{(i)}}+{\theta_{1}}{x_{1}^{(i)}}+{\theta_{2}}{x_{2}^{(i)}}+...+{\theta_{n}}{x_{n}^{(i)}} \tag{1} hθ(x(i))=θ0x0(i)+θ1x1(i)+θ2x2(i)+...+θnxn(i)(1)

其中, θ 0 , θ 1 , ⋅ ⋅ ⋅ , θ n \theta_0, \theta_1 ,···,\theta_n θ0,θ1,,θn模型参数 x 0 ( i ) x_{0}^{(i)} x0(i)规定为1。 h θ ( x ( i ) ) h_{\theta} (x^{(i)}) hθ(x(i)) R n + 1 → R R^{n+1}\to R Rn+1R
模型输出表达式为:
y ^ ( i ) = h θ ( x ( i ) ) (2) \hat{y}^{(i)}=h_{\theta} (x^{(i)})\tag{2} y^(i)=hθ(x(i))(2)

将式 ( 1 ) (1) (1)写为矩阵形式:
h θ ( x ( i ) ) = θ T x ( i ) (3) h_{\theta} (x^{(i)})={\theta ^Tx^{(i)}} \tag{3} hθ(x(i))=θTx(i)(3)

其中, θ = [ θ 0 , θ 1 , ⋅ ⋅ ⋅ , θ n ] T \theta =[\theta_{0},\theta_{1},···,\theta_{n}]^T θ=[θ0,θ1,,θn]T x ( i ) = [ x ( 0 ) , x ( 1 ) , ⋅ ⋅ ⋅ , x ( n ) ] T x^{(i)}=[x^{(0)},x^{(1)},···,x^{(n)}]^T x(i)=[x(0),x(1),,x(n)]T
对于训练集中的所有样本,模型输入输出的表达式为:
Y ^ = X θ (4) \hat{Y}= X \theta \tag{4} Y^=Xθ(4)

其中: Y ^ = [ y ^ ( 1 ) , y ^ ( 2 ) , ⋅ ⋅ ⋅ , y ^ ( m ) ] T \hat{Y}=[\hat{y}^{(1)},\hat{y}^{(2)},···,\hat{y}^{(m)}]^T Y^=[y^(1),y^(2),,y^(m)]T X = [ − ( x ( 1 ) ) T − − ( x ( 2 ) ) T − ⋅ ⋅ ⋅ − ( x ( m ) ) T − ] ∈ R m × n X=\begin{bmatrix}-(x^{(1)})^T- \\ -(x^{(2)})^T- \\ ··· \\-(x^{(m)})^T- \end{bmatrix} \in R^{m \times n} X=(x(1))T(x(2))T(x(m))TRm×n

3 代价函数(Cost Function)

建模误差,指的是模型输出值(预测或估计值)与训练集中实际值之间的差距,即:
e r r o r = y ^ ( i ) − y ( i ) (5) error=\hat{y}^{(i)}-y^{(i)}\tag{5} error=y^(i)y(i)(5)

学习算法的目标是选择出使得建模误差平方和能够最小的模型参数,即使得代价函数最小。线性回归问题中常用的代价函数表达式为:
J ( θ 0 , θ 1 , ⋅ ⋅ ⋅ , θ n ) = 1 m ∑ i = 1 m c o s t ( y ^ ( i ) , y ( i ) ) (6) J ( \theta_0, \theta_1 ,···,\theta_n) = \frac{1}{m}\sum\limits_{i=1}^m cost(\hat{y}^{(i)},y^{(i)}) \tag{6} J(θ0,θ1,,θn)=m1i=1mcost(y^(i),y(i))(6)

其中, c o s t ( y ^ ( i ) , y ^ ( i ) ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 cost(\hat{y}^{(i)},\hat{y}^{(i)})=\frac{1}{2}(\hat{y}^{(i)}-y^{(i)})^{2} cost(y^(i),y^(i))=21(y^(i)y(i))2

将式 ( 5 ) (5) (5)转换为矩阵形式为:
J ( θ ) = 1 2 ( Y ^ − Y ) 2 (7) J(\theta )=\frac{1}{2}{{(\hat{Y} -Y)}^{2}} \tag{7} J(θ)=21(Y^Y)2(7)

其中, Y = [ y ( 0 ) , y ( 1 ) , ⋅ ⋅ ⋅ , y ( m ) ] T Y=[y^{(0)},y^{(1)},···,y^{(m)}]^T Y=[y(0),y(1),,y(m)]T
n = 1 n=1 n=1时, J ( θ 0 , θ 1 ) J (\theta_0, \theta_1) J(θ0,θ1)示意如图2所示:
在这里插入图片描述

图2 n=1时损失函数示意图

4 求解模型参数

求解模型参数的过程可以表示为无约束最优化问题,即:
m i n θ ∈ R n J ( θ ) (8) \mathop{min}\limits_{\theta \in R^n}J(\theta) \tag{8} θRnminJ(θ)(8)
故, θ = a r g m i n θ ∈ R n J ( θ ) \theta=arg \mathop{min}\limits_{\theta \in R^n}J(\theta) θ=argθRnminJ(θ)

4.1 梯度下降(Gradient Descent)

梯度下降是一个用来求函数最小值的方法,该方法通过不断的迭代模型参数,使得目标函数(这里即为代价函数 J J J)达到局部最小值。

梯度下降的迭代公式为:
{ θ 0 : = θ 0 − α ∂ ∂ θ 0 J ( θ ) θ 1 : = θ 1 − α ∂ ∂ θ 1 J ( θ ) ⋅ ⋅ ⋅ θ n : = θ n − α ∂ ∂ θ n J ( θ ) (9) \begin{cases} {\theta_{0}}:={\theta_{0}}-\alpha \frac{\partial }{\partial {\theta_{0}}} J(\theta) \\ {\theta_{1}}:={\theta_{1}}-\alpha \frac{\partial }{\partial {\theta_{1}}} J(\theta) \\···\\{\theta_{n}}:={\theta_{n}}-\alpha \frac{\partial }{\partial {\theta_{n}}} J(\theta) \end{cases}\tag{9} θ0:=θ0αθ0J(θ)θ1:=θ1αθ1J(θ)θn:=θnαθnJ(θ)(9)

其中, α \alpha α称为学习率 ∂ ∂ θ j J ( θ ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \frac{\partial }{\partial {\theta_{j}}}J(\theta)=\frac{1}{m}\sum\limits_{i=1}^{m}{({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x_{j}^{(i)} θjJ(θ)=m1i=1m(hθ(x(i))y(i))xj(i)
( 8 ) (8) (8)写成矩阵形式为:
θ : = θ − α ∇ J ( θ ) (10) \theta:=\theta-\alpha \nabla J(\theta) \tag{10} θ:=θαJ(θ)(10)
其中, ∇ J ( θ ) = [ ∂ ∂ θ 0 J ( θ ) , ∂ ∂ θ 1 J ( θ ) , ⋅ ⋅ ⋅ , ∂ ∂ θ n J ( θ ) ] T \nabla J(\theta)=[\frac{\partial }{\partial {\theta_{0}}}J(\theta),\frac{\partial }{\partial {\theta_{1}}}J(\theta),···,\frac{\partial }{\partial {\theta_{n}}}J(\theta)]^T J(θ)=[θ0J(θ),θ1J(θ),,θnJ(θ)]T

参数可取方法
模型参数初始值随机选取
学习率 0.01 → 0.03 → 0.1 → ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 0.01\rightarrow0.03\rightarrow0.1\rightarrow······ 0.010.030.1
迭代停止条件代价函数收敛

判断代价函数 J ( θ ) J(\theta) J(θ)收敛的办法一般为画出“代价函数值——迭代次数”图,如图3所示。即每进行一次式 ( 9 ) (9) (9)的计算,便进行一次式 ( 6 ) (6) (6)的计算。
在这里插入图片描述

图3 损失函数值随迭代次数变化示意图

4.2 正规方程(Normal Equation)

正规方程通过求解 ∂ J ( θ ) ∂ θ = 0 \frac{\partial J\left( \theta \right)}{\partial \theta }=0 θJ(θ)=0来求解模型参数。
J ( θ ) = 1 2 ( Y ^ − Y ) 2 = 1 2 ( Y ^ − Y ) T ( Y ^ − Y ) = 1 2 ( θ T X T − Y T ) ( X θ − Y ) = 1 2 ( θ T X T X Θ − Θ T X T Y − Y T X θ − Y T Y ) (11) \begin{aligned} J(\theta ) &=\frac{1}{2}{{(\hat{Y} -Y)}^{2}}\\ &=\frac{1}{2}{{( \hat{Y} -Y)}^{T}}( \hat{Y} -Y) \\ &=\frac{1}{2}\left( {{\theta }^{T}}{{X}^{T}}-{{Y}^{T}} \right)\left(X\theta -Y \right)\\ &=\frac{1}{2}\left( {{\theta }^{T}}{{X}^{T}}X\Theta -{{\Theta}^{T}}{{X}^{T}}Y-{{Y}^{T}}X\theta -{{Y}^{T}}Y \right)\end{aligned}\tag{11} J(θ)=21(Y^Y)2=21(Y^Y)T(Y^Y)=21(θTXTYT)(XθY)=21(θTXTXΘΘTXTYYTXθYTY)(11)

∂ J ( θ ) ∂ θ = 1 2 ( 2 X T X θ − X T Y − ( Y T X ) T ) = X T X θ − X T Y (12) \begin{aligned} \frac{\partial J\left( \theta \right)}{\partial \theta } &=\frac{1}{2}\left(2{{X}^{T}}X\theta -{{X}^{T}}Y-{}({{Y}^{T}}X )^{T} \right)\\ &={{X}^{T}}X\theta -{{X}^{T}}Y\end{aligned}\tag{12} θJ(θ)=21(2XTXθXTY(YTX)T)=XTXθXTY(12)

∂ J ( θ ) ∂ θ = 0 ⇒ θ = ( X T X ) − 1 X T Y (13) \frac{\partial J\left( \theta \right)}{\partial \theta }=0\Rightarrow \theta ={{\left( {X^{T}}X \right)}^{-1}}{X^{T}}Y\tag{13} θJ(θ)=0θ=(XTX)1XTY(13)

以下两种情况(非数学角度)可能导致 X T X X^TX XTX不可逆,无法求出 θ \theta θ解析解
  1. 特征之间存在线性相关关系。
  2. 样本数量过少或特征维数过大,即 m ≥ n m \ge n mn

4.3 梯度下降与正规方程比较

梯度下降正规方程
需要选择学习率 α \alpha α不需要
需要多次迭代一次运算得出
当特征数量 n n n大时也能较好适用需要计算 ( X T X ) − 1 {{\left( {{X}^{T}}X \right)}^{-1}} (XTX)1 如果特征数量n较大则运算代价大,因为矩阵逆的计算时间复杂度为 O ( n 3 ) O\left( {{n}^{3}} \right) O(n3),通常来说当 n n n小于10000 时还是可以接受的
适用于各种类型的模型只适用于线性模型,不适合逻辑回归模型等其他模型

补充说明📝:

  • 最优化相关知识后面看情况再补上。(ps:上课笔记丢了,难受n+1😭)
  • B a t c h Batch Batch梯度下降是指计算代价函数时用到了训练集所有样本。
  • 机器学习中的“梯度下降”实际上是指最速下降算法,即搜索方向为负梯度方向学习率即为搜索步长
  • 正规方程实际上是利用了无约束最优化问题局部最优解的一阶必要性条件,即 ∇ J ( θ ) = 0 \nabla J(\theta)=0 J(θ)=0。由于在线性回归问题中,代价函数 J ( θ ) J(\theta) J(θ)凸函数,故求得的局部最优解(最小值)即为全局最优解(最小值)。
  • 学习率取值不合适可能导致代价函数发散、不收敛或收敛速度慢等问题。


学习和温习记录,欢迎各位一起交流讨论,如有错误的地方或者建议,恳请在评论区批评和指导,博客不定期修改和更新。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西红柿爱喝水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值