一、线性回归概述:


线性回归中最简单的情形: 即输入属性的目只有一个。 下面我们来推导更一般的情形: 即样本由 d 个属性描述。 给定数据集 

多元线性回归python代码 多元线性回归 python_python 多元线性回归


其中

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_02



多元线性回归python代码 多元线性回归 python_线性回归_03


线性回归试图学得:

多元线性回归python代码 多元线性回归 python_标量_04


使得

多元线性回归python代码 多元线性回归 python_标量_05


这称为 “多元线性回归” 。 为了便于讨论,我们把 w 和 b 吸收入向量形式

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_06


多元线性回归python代码 多元线性回归 python_标量_07


相应的,把数据集 D 表示为一个 m*(d+1) 大小的矩阵 X ,其中每行对应于一个示例,该行前 d 个元素对应于示例的 d 个属性值,最后一个元素恒置为 1 ,即:

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_08

再把标记也写成向量形式:

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_09

则损失函数:

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_10

下面对上式进行化简:

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_11


又因为:

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_12

               所以:


多元线性回归python代码 多元线性回归 python_线性回归_13

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_14

二、数学知识储备

凸集定义:  设集合


多元线性回归python代码 多元线性回归 python_线性回归_15

, 如果对任意的


多元线性回归python代码 多元线性回归 python_python 多元线性回归_16

与任意的


多元线性回归python代码 多元线性回归 python_多元函数的向量表示_17

, 有


多元线性回归python代码 多元线性回归 python_多元线性回归python代码_18

, 则称集合 D 是凸集。

凸集的几何意义是: 若两个点属于此集合,则这两点连线上的任意一点均属于此集合。

多元线性回归python代码 多元线性回归 python_标量_19

多元线性回归python代码 多元线性回归 python_python 多元线性回归_20

多元线性回归python代码 多元线性回归 python_标量_21

梯度定义:

设 n 元函数

多元线性回归python代码 多元线性回归 python_标量_22

对自变量

多元线性回归python代码 多元线性回归 python_python 多元线性回归_23

的各分量

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_24

的偏导数

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_25

(i = 1,2 , ... , n) 都存在,则称函数

多元线性回归python代码 多元线性回归 python_标量_22

在 x  处一阶可导,并称向量   

多元线性回归python代码 多元线性回归 python_线性回归_27

为函数

多元线性回归python代码 多元线性回归 python_标量_22

在  x  处的一阶导数或梯度,记为

多元线性回归python代码 多元线性回归 python_线性回归_29

(列向量) Hessian(海塞)矩阵定义: 设 n 元函数


多元线性回归python代码 多元线性回归 python_标量_22

对自变量

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_31

的各分量

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_24

的二级偏导数

多元线性回归python代码 多元线性回归 python_标量_33

(i = 1,2 , ... , n ;   j = 1,2 , ... , n) 

都存在, 则称函 数

多元线性回归python代码 多元线性回归 python_标量_22

在点 x 处二阶可导,并称矩阵


多元线性回归python代码 多元线性回归 python_多元线性回归python代码_35


多元线性回归python代码 多元线性回归 python_标量_22

在 x 处的二阶导数或Hessian矩阵,记为

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_37

,若

多元线性回归python代码 多元线性回归 python_标量_22

    对 x 各变元的所有二阶偏导数都连续 , 则

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_39

,此时    

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_37

为对称矩阵。

多元实值函数凹凸性判定定理:


多元线性回归python代码 多元线性回归 python_线性回归_15

是非空开凸集,

多元线性回归python代码 多元线性回归 python_python 多元线性回归_42

,且

多元线性回归python代码 多元线性回归 python_标量_22

在 D 上二阶连续可微,如 果

多元线性回归python代码 多元线性回归 python_标量_22

的 Hessian矩阵

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_37

在 D 上是正定的,则

多元线性回归python代码 多元线性回归 python_标量_22

是 D 上的严格凸 函数。  

凸充分性定理:

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_47

是凸函数,且

多元线性回归python代码 多元线性回归 python_标量_22

一阶连续可微,则

多元线性回归python代码 多元线性回归 python_线性回归_49

是全局解的充分必要条件是

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_50

, 其中

多元线性回归python代码 多元线性回归 python_线性回归_29

为 关于 x 的一阶导数(也称梯度)。

三、证明损失函数E  是关于w的凸函数 :

多元线性回归python代码 多元线性回归 python_线性回归_52

【标量-向量】的矩阵微分公式为: 其中,

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_53

为 n 维列向量, y 为 x 的 n 元标量函数。 (1)

多元线性回归python代码 多元线性回归 python_python 多元线性回归_54

(分母布局)【默认采用】 (2)

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_55

(分子布局)

由【标量-向量】的矩阵微分公式可推得:

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_56

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_57

同理,可推得:

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_58

下面简单推导一下:

多元线性回归python代码 多元线性回归 python_线性回归_59

多元线性回归python代码 多元线性回归 python_python 多元线性回归_60

 = 

多元线性回归python代码 多元线性回归 python_标量_61

由矩阵微分公式

多元线性回归python代码 多元线性回归 python_python 多元线性回归_62

 ,

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_58

可得:

多元线性回归python代码 多元线性回归 python_多元函数的向量表示_64

多元线性回归python代码 多元线性回归 python_线性回归_65

Hessian矩阵

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_37

,在 D 上是正定的,所以损失函数

多元线性回归python代码 多元线性回归 python_多元线性回归python代码_67

是关于

多元线性回归python代码 多元线性回归 python_python 多元线性回归_68

的凸函数。

四、求解w

  令一阶导数等于 0 解出

多元线性回归python代码 多元线性回归 python_python 多元线性回归_68

  :

多元线性回归python代码 多元线性回归 python_线性回归_70