(原创)机器学习之矩阵论(三)

矩阵求导编程

目录函数

1、  矩阵求导的基本概念人工智能

1.    一阶导定义3d

2.    二阶导数htm

2、  梯度降低blog

1.   方向导数.教程

1.1 定义it

1.2 方向导数的计算公式.入门

1.3 梯度降低最快的方向变量

1.4 最速降低方向的判断.

1.5 最速梯度降低的迭代式

2.   牛顿法

2.1 引入一元函数极值判别法

(1)导数分析法

(2)泰勒公式法

2.2 多元函数的泰勒展开

2.3  正定(半正定)矩阵

(1)二次型

(2)正定(半正定)的定义

(3)负定(半负定)的定义

(4)正定判别极值

2.4 正定矩阵的判别法

(1)根据特征值判断

(2)根据各阶顺序主子式判断

(3)判别正定的做用

3、矩阵求导的应用

1.  最小二乘法(线性回归)

1.1 一维模型

1.2 高维模型.

1.3 用SVD处理岭回归

2. Logistic回归

2.1 模型

2.2  最小化目标函数

 

1、矩阵求导的基本概念

多元函数极值问题,须要用到多元函数的导数,在矩阵理论里,又称为矩阵求导。

1.  一阶导定义

  设:

    𝑓: 𝑅𝑛 → 𝑅

  为一个n元一阶可微函数 𝑦 = 𝑓(𝑥1, …, 𝑥𝑛),

  定义其梯度(一阶导)向量为:

    𝛻𝑓(𝑥) = ( 𝜕𝑥1𝑓, 𝜕𝑥2𝑓, …, 𝜕𝑥𝑛𝑓)

  或者:

    𝛻𝒙𝑓(𝒙) = ( 𝜕𝑥1𝑓, 𝜕𝑥2𝑓, …, 𝜕𝑥𝑛𝑓)

  其中𝒙 = 𝑥1, 𝑥2, …, 𝑥𝑛

2.  二阶导数

  二阶导数也称为Hessian矩阵:

                       

  其中𝑎𝑖𝑗 = 𝜕𝑥𝑖𝑥𝑗𝑓

  注: 因为𝜕𝑥𝑖𝑥𝑗𝑓 = 𝜕𝑥𝑗𝑥𝑖𝑓,因此𝑎𝑖𝑗=𝑎𝑗𝑖,因此𝐻𝑓=𝐻𝑓𝑇,即𝐻𝑓n x n的实对称矩阵。

2、梯度降低

1.   方向导数

1.1 定义

  设单位向量𝒖是𝑅𝑛中的一个方向,n元函数𝑓(𝑥0)沿𝒖方向的斜率,称为为𝑓(𝑥0)在𝒖方向的方向导数。

1.2  方向导数的计算公式

              𝜕𝒖 𝑓(𝑥0) = 𝒖∙𝛻𝒙 𝑓(𝑥0)𝑇

        即:方向导数 = 单位向量𝒖和梯度向量的内积。

1.3  梯度降低最快的方向

       由方向导数的内积计算公式有:

              𝒖∙𝛻𝒙 𝑓(𝑥0)𝑇 = |𝒖| | 𝛻𝒙 𝑓(𝑥0)𝑇 | cos𝜃

        |𝒖| = 1, | 𝛻𝒙 𝑓(𝑥0)𝑇 |与𝒖无关。

  所以,当𝜃=0时,方向导数>0,取得最大值;当𝜃=𝜋时,方向导数<0,取得最小值。

1.4  最速降低方向的判断

  对于函数𝑓(𝒙)中的任意一点𝒙∈𝑅𝑛,沿着和梯度向量同样的方向时,函数递增最快;沿着和梯 度向量相反方向时,函数递减最快。所以最速降低方向为−𝛻𝑓(𝒙)。

1.5 最速梯度降低的迭代式

  𝒙(𝑡+1) = 𝒙(𝑡) – k∙𝛻𝑓(𝒙𝒕)  k为控制降低速度的常数

2.   牛顿法

2.1  引入一元函数极值判别法

(1) 导数分析法

  若𝑓’(𝑥0) = 0,且𝑓’’(𝑥0) > 0,则𝑓(𝑥)在𝑥 = 𝑥0处取极小值;

  若𝑓’(𝑥0) = 0,且𝑓’’(𝑥0) < 0,则𝑓(𝑥)在𝑥 = 𝑥0处取极大值。

(2) 泰勒公式法

  𝑓(𝑥) = 𝑓(𝑥) + 𝑓’(𝑥0)(𝑥−𝑥0) + (1/2) 𝑓’’(ξ)(𝑥−𝑥0)2

         = 𝑓(𝑥) + (1/2) 𝑓’’(ξ)(𝑥−𝑥0)2               ( ξ为(𝑥,𝑥0)或(𝑥0,𝑥)  )

  当𝑓’’(𝑥0) > 0时,由导数的保号性,在𝑥0很小的邻域内有𝑓’’(ξ) > 0,所以在𝑥0的邻域内恒有𝑓(𝑥)  > 𝑓(𝑥0),即函数𝑓(𝑥)在𝑥 = 𝑥0处取极小值。

2.2 多元函数的泰勒展开

   

  其中𝐻𝑓为Hessian矩阵,若是𝒙0点知足𝛻𝑓(𝒙0) = 𝜽(零向量),则

  (𝒙−𝒙𝟎)𝐻𝑓(𝒙0)(𝒙−𝒙𝟎)𝑇  > 0,函数𝑓(𝒙)在𝒙=𝒙0处取得极小值;

  (𝒙−𝒙𝟎)𝐻𝑓(𝒙0)(𝒙−𝒙𝟎)𝑇  < 0,函数𝑓(𝒙)在𝒙=𝒙0处取得极大值;

2.3 正定(半正定)矩阵

(1)二次型

  A是一个n阶对称矩阵,即𝐴 = 𝐴𝑇(𝑎𝑖𝑗=𝑎𝑗𝑖),设n维向量x = (𝑥1, 𝑥2, …, 𝑥𝑛),定义:

     

  为A对应的二次型(或称二次型多项式),方阵A为二次型对应的矩阵。

(2)正定(半正定)的定义

  若任意的x≠𝜽,都有:

    𝑓(𝑥1,𝑥2,…,𝑥𝑛) = 𝒙𝐴𝒙𝑇 > 0(≤0),

  则称该二次型为正定(半正定)二次型,对应的矩阵A为正定(半正定)矩阵。

(3)负定(半负定)的定义

  若任意的x≠𝜽,都有:

    𝑓(𝑥1,𝑥2,…,𝑥𝑛) = 𝒙𝐴𝒙𝑇 < 0(≥0),

  则称该二次型为负定(半负定)二次型,对应的矩阵A为负定(半负定)矩阵。

(4)正定判别极值

  若是在𝒙=𝒙0处,有𝛻𝑓(𝒙0) = 𝜽(零向量),咱们称𝒙0𝑓(𝒙)的驻点:

  i)   若是𝐻𝑓(𝒙0)正定矩阵,𝑓(𝒙)在𝒙 = 𝒙0处是一个局部极小值

  ii)  若是𝐻𝑓(𝒙0)负定矩阵,𝑓(𝒙)在𝒙 = 𝒙0处是一个局部极大值

  iii) 若是𝐻𝑓(𝒙0)不定矩阵,𝑓(𝒙)在𝒙 = 𝒙0处没有极值

2.4  正定矩阵的判别法

(1)根据特征值判断

       1)引理

    对称方阵必定能够正交分解(正交对角化),即任意的对称矩阵A,必然存在一个正交矩阵Q,使得:

     

2)进行判别

              上述正交分解的式子进行换元,设𝒙𝑄 = 𝒚 = (𝑦1, 𝑦2, …, 𝑦𝑛),则有:

       

              A的每个特征值𝜆𝑖>0(≥0),则二次型𝑓(𝑥1,𝑥2,…,𝑥𝑛) = 𝒙𝐴𝒙𝑇正定(半正定),反之也成立。

(2)根据各阶顺序主子式判断

       对称矩阵正定的充分必要条件是A的各阶顺序主子式(各阶子式的行列式)为正数,即:

     

(3)判别正定的做用

  1)多元函数的极值问题,能够经过求驻点处的Hessian矩阵是否正定来解决。

  2)使用计算机编程来断定矩阵是否正定时,通常经过各阶顺序主子式来进行判断,由于行列式在使用计算机进行计算时是绝对精确的,而特征值的求解是经过逼近的方式进行计算的,时间复杂度较大,精度较差。

3、矩阵求导的应用

1. 最小二乘法(线性回归)

1.1 一维模型

       对于一维线性回归模型,假设有样本点(𝑥𝑖,𝑦𝑖) (𝑖=1,2,…,𝑚),线性回归就是选择最佳的a,b值使:

              𝑓(𝑥𝑖) = 𝑎𝑥𝑖 + 𝑏

  知足 𝑓(𝑥𝑖) ≈ 𝑦𝑖 (理论值最接近实际值)

  即求:

    

              求梯度:

        

  而且Hessian矩阵是正定的,说明此时的a,b使得L2范数局部最小(在这里也是全局最小)。

1.2 高维模型

  对于高维线性回归模型,假设有样本点(𝑥𝑖, 𝑦𝑖) (𝑖=1,2,…,𝑚),其中𝒙𝒊∈𝑅𝑛, 𝑦𝑖∈𝑅

  找到最佳的 𝒂∈𝑅𝑛, 𝑏∈𝑅 使:

              𝑓(𝑥𝑖) = 𝑎𝑥𝑖 + 𝑏

  知足 𝑓(𝑥𝑖) ≈ 𝑦𝑖 (理论值最接近实际值)

  其中,

     

  写成矩阵的形式:

     

  即求:

     

  最小。

  求梯度:

     

  而且Hessian矩阵是正定的,说明此时的𝝎使得L2范数局部最小,𝝎为最优值。

       若是𝐴𝑇𝐴不可逆怎么办?使用岭回归。

1.3 用SVD处理岭回归

       若是矩阵𝐴𝑇𝐴不可逆,则用岭回归代替线性回归。

  线性回归:

     

  岭回归:

     

  岭回归性质:损失无偏性(无偏:估计出来的指望=实际的指望),增长稳定性,从而获得较高的计算精度。

   

2. Logistic回归

2.1 模型

  变量𝒙 = (𝑥𝟏, 𝑥2, …, 𝑥𝑛),知足线性组合函数:

    g(𝒙) = 𝜔0 + 𝜔1𝑥1 + ⋯ + 𝜔𝑛𝑥𝑛

  几率模型知足sigmoid函数:

     

       观测到m个样本数据(𝒙1, 𝑦1), (𝒙2, 𝑦2), …, (𝒙𝑚, 𝑦𝑚),其极大似然函数为:

             

2.2  最小化目标函数

  对目标函数(极大似然函数)

     

       左右同时取对数有:

              

  求其梯度,并令𝛻𝑙𝑛𝐿(𝝎) = 𝜃,获得方程组:

        

  解此方程组获得的𝝎即为最优权重。

    

      - tany 2017年10月4日于杭州

 

人工智能从入门到专家教程资料:https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.38270209gU11fS&id=562189023765

相关文章
相关标签/搜索