(原創)機器學習之矩陣論(三)

矩陣求導編程

目錄函數

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

相關文章
相關標籤/搜索