1. 程式人生 > >機器學習數學原理(2)——廣義線性模型

機器學習數學原理(2)——廣義線性模型

機器學習數學原理(2)——廣義線性模型

這篇博文主要介紹的是在機器學習中的迴歸問題以及分類問題中的一個非常具有概括性的模型:廣義線性模型(Generalized Linear Models,簡稱GLMs),這類模型包括了迴歸問題中的正態分佈,也包含了分類問題中的伯努利分佈。隨著我們的分析我們會發現,廣義線性模型不僅可以匯出Logistics迴歸,也可以匯出Softmax迴歸。

1.指數族

在匯出模型之前,先得介紹一下指數族(The exponential family)

1.1 指數族定義

先給出指數族分佈的定義式:

  • η:自然引數(natural parameter)
  • T(η):充分統計量(sufficient statistic)
  • a(η):對數配分函式(log partition function)
  • b(η):係數函式

由這個形式我們可以看出,只要我們確定了T,a,b函式的具體形式,分佈就變成了一個由η引數化確定的分佈。很多我們常見的分佈,比如伯努利分佈、正態分佈都可以寫成指數族的形式,下面筆者便寫寫如何將這些分佈轉化為指數分佈的形式。

1.2 常見指數族

由上述的分析我們可以知道,要想把分佈寫成指數族的形式就需要確定分佈的T,a,b函式。

1.2.1 伯努利分佈

伯努利分佈是一個二值分佈,y只能取1或者0。伯努利分佈可以寫成如下形式:

p(y=1;φ)=φ

p(y=0;φ)=1-φ

將這個式子更加簡練的書寫便成了下面的形式:

然後我們進一步變化式子:

那麼我們現在便將φ轉化為η:

我們發現其實這個就是Logistic迴歸中的Sigmoid函式。然後帶入轉化為指數族:

對比指數族函式定義式我們便確定了T,a,b函式形式從而轉化成了指數族的表達形式。

1.2.2 正態分佈

正態分佈(又名高斯分佈)是一個鐘形分佈,被廣泛應用於各個領域。

在構建正態分佈的引數中我們只考慮μ,忽視σ這個引數,用1代替σ方(在機器學習數學原理1中的極大似然估計法我們已經看到σ並沒有起到十分關鍵的作用)。正態分佈的式子我們先寫出來:

然後我們將它轉化為指數族形式:

然後引數μ換成η就行了。

這裡需要說明的是η不一定是一個實數,也可以是一個向量,這個時候T也是一個向量。

2.構建廣義線性模型

前面介紹了指數族,這個是為了方便我們匯出廣義線性模型所做的必要的準備。接下來筆者就來說明一下如何使用指數族來構建廣義線性模型。

2.1 三個關於分佈的假設

在構建廣義線性模型的過程中,為了方便匯出模型,這裡需要作三個關於分佈的假設。需要說明的是,與其說是“假設”,其實說成“選擇”更加合理,因為這些假設並沒有非常有邏輯性的推理,而是我們為了方便匯出廣義相對模型中一些相當漂亮的演算法所做的設計選擇。

  1. y|x;θ的分佈滿足指數族分佈。即給出x和θ,y便滿足是引數η控制的指數族分佈。
  2. 通過給定的x,我們可以確定T(y)。在大部分例子中,T(y)=y,這就意味著這個充分統計量為y,也就是說我們預測函式需要輸出的便是統計的均值。即h(x)=E(y|x),E為均值函式符號。
  3. 自然引數η與x為線性關係。即

2.2 普通最小二乘法

普通最小二乘法我們知道使用的是y|x;θ是屬於高斯分佈的。由假設2我們可以知道預測函式就是:

其中最後一個等號使用的是假設3。

2.3 Logistic迴歸

Logistic迴歸使用的是y|x;θ是屬於二類分佈即伯努利分佈。由假設2我們可以知道預測函式就是:

即我們前幾篇博文討論過後的Logistic迴歸模型。其中最後一個等號使用的是假設3。

2.4 Softmax迴歸

Softmax迴歸模型是個基於多分類問題的模型。即現在y的取值可以是{1,2,3,…,k}中的任意一個值,其中取i的概率為φi。這裡我們知道這k個概率和為1,故其實獨立引數的個數為k-1個。

這裡需要注意的是為了將式子表示成指數族,T(y)不再等於y!

首先我們先定義T(y):

這裡T(y)為一個k-1的向量,T(k)為0向量,總結一下可以寫成滿足如下式子:

其中judge函式為判斷函式,條件為真返回1,為偽返回0,腳標i表示向量的第i項。

進一步的,我們可以知道:

寫的簡潔一點便有:

這裡需要再次強調的是概率φk不是獨立的。

接下來寫成指數族的形式:

現在我們做如下向量代換:

然後再令

接下來便可以寫成指數族形式了:

由上我們便轉化成功了,同樣上面也給出了η與φi的關係,為了方便,我們規定η(k)=ln(1)=0,則經過一系列代數運算可以得到:

所以有:

現在我們便得出了Softmax迴歸模型的預測函式。

3.調整預測函式引數θ

如上我們已經得到了各個分佈的模型,下一步就是使用樣本資料通過各種演算法調整引數θ,使得其似然性最大(關於極大似然估計法請看上一篇博文)。然後這個模型便訓練好了。一個預測函式便確定了。

由於這篇博文主要講的是廣義線性模型,故引數調整的方法不再贅述,這裡可以說一下的是主要的方法有批量梯度下降法,隨機梯度下降法,牛頓法等等。