高斯迴歸(Gaussian Processes)

  • 本文參考《PRML》,並加入了一些自己的理解,如有錯誤懇請指出。

1 前言

1.1 怎麼理解高斯過程?高斯過程和隨機過程的關係是什麼?

  • 高斯分佈:隨機變量服從高斯分佈,意味着在當前時刻,該隨機變量可能取的值服從高斯分佈,但它只能從分佈中取一個
  • 隨機過程:在一條時間線上,或一個數據集中,隨機變量在每個位置上服從一定的分佈,但在每一個位置只能取一個值,假設共有m個時間點(或數據集容量爲m),則一共會產生m個取值結果,這m個取值結果便稱爲一個過程,因爲在每一個點的取值是隨機的,因此稱爲隨機過程。我們用聯合概率分佈來描述隨機過程:
    p(x1=t1,x2=t2,...,xm=tm)=p(x1=t1)p(x2=t2)...p(xm=tm)p(x^1=t_1,x^2=t_2,...,x^m=t_m)=p(x^1=t_1)p(x^2=t_2)...p(x^m=t_m)
  • 高斯過程:對於一個隨機過程,如果隨機變量在每個位置服從的分佈是高斯分佈,那該隨機過程就稱爲高斯過程;但在高斯過程中,對於m個隨機變量產生的結果x={x1,x2,...,xm}\mathbf{x}=\{x^1,x^2,...,x^m\},我們不再使用聯合概率分佈來描述,而是使用多維高斯分佈的二階統計量來描述: E[x]Rm\mathbb{E}[\mathbf{x}]\in\mathbb{R}^mcov[x]Rm×mcov[\mathbf{x}]\in \mathbb{R}^{m\times m}

1.2 貝葉斯線性迴歸與高斯過程

  • 貝葉斯線性迴歸問題中,我們建立了如下模型:
    y(x)=wTΦ(x),Φ(x)Rn,wRn(1.2.1)y(x)=w^T\Phi(x),\quad\Phi(x)\in R^n,w\in R^n\tag{1.2.1}
    參數ww服從一個高斯先驗分佈:
    p(w)=N(w0,α1In×n)(1.2.2)p(w)=\mathcal{N}(w|0,\alpha^{-1}I^{n\times n})\tag{1.2.2}

  • 因此對於一個數據集 x={x1,x2,...,xm}\mathbf{x}=\{x^1,x^2,...,x^m\},模型的輸出 y=[y1,y2,...,ym]T\mathbf{y}=[y^1,y^2,...,y^m]^T (注意這裏的模型的輸出不是數據集中的標籤或目標值,這裏只描述了一個線性高斯模型的輸出,並沒有描述噪聲)服從mm維高斯分佈:
    y=Φw=(Φ(x1)T...Φ(xm)T)m×n(w1...wn)n×1=(y1...ym)m×1N(E[y],cov[y])(1.2.3)\mathbf{y}=\Phi w=\left( \begin{matrix} \Phi(x^1)^T\\ ...\\ \Phi(x^m)^T \end{matrix} \right)_{m\times n}\cdot\quad\left( \begin{matrix} w_1\\ ...\\ w_n \end{matrix} \right)_{n\times 1}=\left( \begin{matrix} y^1\\ ...\\ y^m \end{matrix} \right)_{m\times 1}\sim\mathcal{N}(\mathbb{E}[\mathbf{y}],cov[\mathbf{y}])\tag{1.2.3}
    其中:
    E[y]=ΦE[w]=0Rm\mathbb{E}[\mathbf{y}]=\Phi\mathbb{E}[\mathbf{w}]=\mathbf{0}\in \mathbb{R}^m
    cov[y]=1αΦΦT=KRm×mcov[\mathbf{y}]=\frac{1}{\alpha}\Phi\Phi^T=K\in \mathbb{R}^{m\times m}
    其中KK是Gram矩陣:
    Kij=k(xi,xj)=1αΦ(xi)TΦ(xj),i,j[1,m]K_{ij}=k(x^i,x^j)=\frac{1}{\alpha}\Phi(x^i)^T\Phi(x^j),\quad i,j\in[1,m]
    k(xi,xj)k(x^i,x^j)稱爲核函數;

  • 因此,模型的輸出 y=[y1,y2,...,ym]T\mathbf{y}=[y^1,y^2,...,y^m]^T 可以看作一個高斯過程;

1.3 貝葉斯線性迴歸與高斯過程:二維場景舉例 (看懂了可以跳過這一節)

  • 考慮簡單的二維場景: x={x1,x2,x3}={1,2,3},Φ=[Φ(1)TΦ(2)TΦ(3)T]3×2=[111213]3×2\mathbf{x}=\{x^1,x^2,x^3\}=\{1,2,3\},\quad\Phi=\left[ \begin{matrix} \Phi(1)^T\\ \Phi(2)^T\\ \Phi(3)^T \end{matrix} \right]_{3\times 2}=\left[ \begin{matrix} 1 & 1\\ 1 & 2\\ 1 & 3 \end{matrix} \right]_{3\times 2}

  • 假設參數ww服從高斯先驗分佈 N(E[w],cov[w])\mathcal{N}(\mathbb{E}[\mathbf{w}],cov[\mathbf{w}])
    E[w]=[01]\mathbb{E}[\mathbf{w}]=\left[ \begin{matrix} 0\\ 1 \end{matrix} \right]
    cov[w]=α1I=[0.5000.5]cov[\mathbf{w}]=\alpha^{-1}I=\left[ \begin{matrix} 0.5 & 0\\ 0& 0.5 \end{matrix} \right]

  • 根據公式(1.2.3)(1.2.3),可以直接計算得到模型輸出y=[y1,y2,y3]T\mathbf{y}=[y^1,y^2,y^3]^T 的多元高斯分佈的均值和協方差矩陣:
    E[y]=ΦE[w]=[123]\mathbb{E}[\mathbf{y}]=\Phi\mathbb{E}[\mathbf{w}]=\left[ \begin{matrix} 1\\ 2\\ 3 \end{matrix} \right]
    cov[y]=12ΦΦT=12[1+x1x11+x1x21+x1x31+x1x21+x2x21+x2x31+x1x31+x2x31+x3x3]=[11.521.52.53.523.55]cov[\mathbf{y}]=\frac{1}{2}\Phi\Phi^T=\frac{1}{2}\left[ \begin{matrix} 1+x^1x^1 & 1+x^1x^2 & 1+x^1x^3\\ 1+x^1x^2 & 1+x^2x^2 & 1+x^2x^3\\ 1+x^1x^3 & 1+x^2x^3 & 1+x^3x^3 \end{matrix} \right]=\left[ \begin{matrix} 1& 1.5 & 2\\ 1.5 & 2.5 & 3.5\\ 2 & 3.5 & 5 \end{matrix} \right]

  • 根據多元高斯分佈的均值和協方差矩陣,可以得出高斯過程在三個位置上的概率分佈如圖所示(三條紅色曲線),可以看出,y3y^3的方差大於y2y^2的方差大於y1y^1的方差;且由於三個變量的協方差都爲正,因此三個變量之間成正相關,即當y1y^1小於均值的時候,y2y3y^2,y^3都會大概率小於各自的均值(當然這取決於相關性的強弱),如圖中y1,y2,y3y^1,y^2,y^3所示爲一組可能的採樣點。
    在這裏插入圖片描述

1.4 高斯過程:直接定義核函數

  • 回顧一下前面對模型輸出的分佈建模的思路:選擇basis function Φ(x)\Phi(x),確定參數ww的先驗分佈,然後使用線性迴歸模型(1.2.1)(1.2.1)定義一個高斯過程;然後得到模型輸出 y=[y1,y2,...,ym]T\mathbf{y}=[y^1,y^2,...,y^m]^T 的多元高斯分佈。
  • 我們也可以不定義basis function,而是直接定義核函數,得到輸出的多元高斯分佈;
  • 常用核函數:
    • 高斯核:
      k(x,x)=exp(xx22σ2)k(x,x')=exp(\frac{-||x-x'||^2}{2\sigma^2})
    • 指數核:
      k(x,x)=exp(θxx)k(x,x')=exp(-\theta|x-x'|)
  • 高斯核描述了數據點之間的相關性強弱,
  • 使用高斯核和指數核的模型輸出的採樣結果如下
    在這裏插入圖片描述

2 高斯過程採樣的定性分析

  • 下面來說說上圖的曲線是怎麼得到的。仍然考慮簡單的場景,假設數據是一維的,仍然假設參數ww服從N(0,α1In×n)\mathcal{N}(\mathbf{0},\alpha^{-1}I^{n\times n})的先驗分佈,且不考慮噪聲(noise-free);
  1. 當數據集只有一個數據 x={x1}\mathbf{x}=\{x^1\}時,根據高斯核函數可以直接得到輸出的分佈:
    E[y(x)]=0cov[y(x)]=k(x1,x1)\mathbb{E}[y(\mathbf{x})]=0\quad\quad cov[y(\mathbf{x})]=k(x^1,x^1)
    然後對輸出 y1y^1 進行採樣,如圖所示:
    在這裏插入圖片描述
  2. 然後數據集中加入第二個點x={x1,x2}\mathbf{x}=\{x^1,x^2\},根據高斯核函數可以直接得到輸出的聯合分佈:
    E[y(x)]=0cov[y(x)]=[k(x1,x1)k(x1,x2)k(x2,x1)k(x2,x2)]\mathbb{E}[y(\mathbf{x})]=\mathbf{0}\quad\quad cov[y(\mathbf{x})]= \left[ \begin{matrix} k(x^1,x^1) & k(x^1,x^2)\\ k(x^2,x^1)& k(x^2,x^2) \end{matrix} \right]

我們得到了輸出y(x1)y(x^1)y(x2)y(x^2)的聯合概率分佈,該分佈取決於高斯核函數的計算結果,即如果x1x2x^1,x^2相距較近,則y(x1)y(x^1)y(x2)y(x^2)的相關性更強,則可能得到如下左圖的聯合分佈,如果x1x2x^1,x^2相距較遠,則y(x1)y(x^1)y(x2)y(x^2)的相關性較弱,則可能得到如下右圖的聯合分佈(值得注意的是,由於高斯核函數計算的對角線元素均爲1,因此y(x1)y(x^1)y(x2)y(x^2)各自的方差是相同的,對應下圖的陰影部分在橫縱座標上跨度相同):
在這裏插入圖片描述
由於目前已經有了 y1y^1 的採樣結果,再對 y2y^2 進行採樣的時候,就要按照條件高斯分佈進行採樣,如下圖所示:
在這裏插入圖片描述
如果x2x^2x1x^1距離很近,則會出現上圖左圖中的情況,相關性很強,即此時的y(x2)y(x^2)極其依賴於y(x1)y(x^1),進行採樣得到 y2y^2 幾乎和 y1y^1大小相同;如果x2x^2x1x^1距離較遠,則會出現上圖右圖中的情況,相關性較弱,即此時的y(x2)y(x^2)不太依賴於y(x1)y(x^1),進行採樣得到 y2y^2y1y^1也會有一定差別。反映到輸入輸出座標軸上,如下圖所示:(注意!!下圖中看起來採樣點y1y^1似乎等於y2y^2的採樣均值,但實際上兩者並不相等!具體計算見3.2節,這裏是爲了展示方便
在這裏插入圖片描述

  1. 假設我們已經採樣完成了如上圖左圖中的兩個點y1y^1y2y^2,現在我們加入第三個數據,x={x1,x2,x3}\mathbf{x}=\{x^1,x^2,x^3\},根據高斯核函數可以直接得到輸出的聯合分佈:
    E[y(x)]=0cov[y(x)]=[k(x1,x1)k(x1,x2)k(x1,x3)k(x2,x1)k(x2,x2)k(x2,x3)k(x3,x1)k(x3,x2)k(x3,x3)]\mathbb{E}[y(\mathbf{x})]=\mathbf{0}\quad\quad cov[y(\mathbf{x})]= \left[ \begin{matrix} k(x^1,x^1) & k(x^1,x^2) & k(x^1,x^3) \\ k(x^2,x^1)& k(x^2,x^2) & k(x^2,x^3) \\ k(x^3,x^1)& k(x^3,x^2) & k(x^3,x^3) \end{matrix} \right]
    如下圖所示,黃色橢球代表三個變量的聯合分佈,根據已有的採樣點y1y^1y2y^2,可以求出 y3y^3的採樣範圍(圖中綠色範圍所示):條件高斯分佈p(y(x3)y1,y2)p(y(x^3)|y^1,y^2)
    在這裏插入圖片描述
    根據協方差矩陣,x3x^3x1,x2x^1,x^2的距離決定了y(x3)y(x^3)y(x1),y(x2)y(x^1),y(x^2)的相關性,在輸出輸出座標軸上表示(定性表示)如下圖所示,左圖中,x3x^3x1x^1x2x^2的距離都較遠,因此相關性較弱,採樣範圍較大;右圖中,x3x^3x1x^1的距離較遠,與x2x^2的距離較近,因此y(x3)y(x^3)y(x1)y(x^1)相關性弱,與y(x2)y(x^2)相關性強,因此採樣範圍主要取決於y2y^2的位置;(這裏同樣的,樣本點y2y^2並不等於y3y^3的採樣均值,只是爲了展示方便)
    在這裏插入圖片描述
  2. 目前我們已經得到了三個採樣點{y1,y2,y3}\{y^1,y^2,y^3\},如果數據集中繼續加入元素,將無法用圖像直觀描述,但是我們可以以此類推,來分析下圖(左邊的高斯核採樣曲線):(1)當新加入的點 xnewx^{new} 和已有的點 xoldx^{old} 無限接近的時候,則y(xnew)y(x^{new})y(xold)y(x^{old})也將無限接近,這就是爲什麼我們在採樣圖(如下圖)中看到的採樣曲線是連續的平滑的;(2)下圖的曲線實際上是在x軸上無限採樣的結果,實際上是離散的,而不是連續的;(3)新加入的點與離其最近的點集相關性最強,例如如果最近的點集的輸出是單調遞增,則新加入的點的輸出也大概率滿足單調遞增;

在這裏插入圖片描述

3 高斯迴歸

3.1 對模型輸出添加噪聲

  • 在前面的定性分析中,我們描述了模型輸出 y=[y1,y2,...,ym]T\mathbf{y}=[y^1,y^2,...,y^m]^T的聯合概率分佈,沒有考慮噪聲,而在迴歸問題中,訓練集中的標籤值 t\mathbf{t} 都是帶有固定噪聲的,因此我們需要將噪聲 ϵ\epsilon 加入到模型的輸出 y\mathbf{y} 中:
    ti=y(xi)+ϵifori{1,2,...,m}t^i=y(x^i)+\epsilon^i \quad for \quad i\in\{1,2,...,m\}
    其中:ϵiN(0,β1)\epsilon^i\sim\mathcal{N}(0,\beta^{-1})
    因此,可以得到:
    p(ty)=N(ty,β1Im)p(\mathbf{t}|\mathbf{y})=\mathcal{N}(\mathbf{t}|\mathbf{y},\beta^{-1}I_{m})
    又根據模型高斯過程的定義:
    p(y)=N(y0,Km)p(\mathbf{y})=\mathcal{N}(\mathbf{y}|\mathbf{0},\mathbf{K}_m)
    因此,標籤值t\mathbf{t}的聯合概率分佈爲:
    p(t)=p(ty)p(y)dy=N(t0,Cm)p(\mathbf{t})=\int p(\mathbf{t}|\mathbf{y})p(\mathbf{y})d\mathbf{y}=\mathcal{N}(\mathbf{t}|\mathbf{0},\mathbf{C}_m)
    其中:C(xi,xj)=k(xi,xj)+β1δijC(x^i,x^j)=k(x^i,x^j)+\beta^{-1}\delta_{ij},即:
    Cm=[k(x1,x1)...k(x1,xm).........k(xm,x1)...k(xm,xm)]+[β1...0.........0...β1]\mathbf{C}_m=\left[ \begin{matrix} k(x^1,x^1) & ... & k(x^1,x^m) \\ ...& ... & ... \\ k(x^m,x^1)& ... & k(x^m,x^m) \end{matrix} \right]+\left[ \begin{matrix} \beta^{-1} & ... & 0 \\ ...& ... & ... \\ 0 & ... & \beta^{-1} \end{matrix} \right]
    這樣我們就得到了數據集中的標籤值t\mathbf{t}的聯合概率分佈
  • 下圖藍色的曲線爲高斯過程採樣的結果,紅色的點爲數據集中的點 x\mathbf{x} 對應的模型輸出 y\mathbf{y},綠色的點爲加入獨立噪聲ϵ\epsilon的結果 t\mathbf{t}
    在這裏插入圖片描述

3.2 高斯迴歸

  • 問題定義:給定數據集x={x1,x2,...,xm}\mathbf{x}=\{x^1,x^2,...,x^m\}t={t1,t2,...,tm}\mathbf{t}=\{t^1,t^2,...,t^m\}和新的測試數據 xm+1x^{m+1},預測 tm+1t^{m+1}的分佈,即計算p(tm+1x,t,xm+1)p(t^{m+1}|\mathbf{x},\mathbf{t},x^{m+1})
  • 高斯迴歸過程:
  1. 計算目標值{t1,t2,...,tm,tm+1}\{t^1,t^2,...,t^m,t^{m+1}\}的聯合概率分佈:
    [t1...tmtm+1]N(0,Cm+1)\left[ \begin{matrix} t^1 \\ ...\\ t^m\\ t^{m+1} \end{matrix} \right]\sim\mathcal{N}(\mathbf{0},\mathbf{C}_{m+1})
    協方差矩陣Cm+1\mathbf{C}_{m+1}可分解爲如下部分:
    Cm+1=[CmkkTc]\mathbf{C}_{m+1}=\left[ \begin{matrix} \mathbf{C}_{m}&\mathbf{k} \\ \mathbf{k}^T& c \end{matrix} \right]
  2. 條件高斯分佈p(tm+1x,t,xm+1)p(t^{m+1}|\mathbf{x},\mathbf{t},x^{m+1})便可以由下式計算:
    p(tm+1x,t,xm+1)=N(tm+1μm+1,σm+1)p(t^{m+1}|\mathbf{x},\mathbf{t},x^{m+1})=\mathcal{N}(t^{m+1}|\mu_{m+1},\sigma_{m+1})
    其中輸出的均值和方差可由下式給出:
    μm+1=kTCm1t\mu_{m+1}=\mathbf{k}^T\mathbf{C}_{m}^{-1}\mathbf{t}
    σm+1=ckTCm1k\sigma_{m+1}=c-\mathbf{k}^T\mathbf{C}_{m}^{-1}\mathbf{k}
  • 上式放在二維場景下,就是計算下圖中的綠色曲線的過程。(可以看出t2t^2的採樣均值並不等於t1t^1
    在這裏插入圖片描述
  • 貝葉斯線性迴歸中,我們曾經提到“預測分佈的均值是訓練集中每個標籤值的線性組合”,高斯過程預測的均值 μm+1\mu_{m+1},也是標籤值{t1,t2,...,tm}\{t^1,t^2,...,t^m\}的線性組合:
    μm+1=kTCm1t=[k(x1,xm+1)...k(xm,xm+1)][k(x1,x1)...k(x1,xm).........k(xm,x1)...k(xm,xm)]1[t1...tm]\mu_{m+1}=\mathbf{k}^T\mathbf{C}_{m}^{-1}\mathbf{t}=\left[ \begin{matrix} k(x^1,x^{m+1}) & ... &k(x^m,x^{m+1}) \end{matrix} \right] \left[ \begin{matrix} k(x^1,x^1) & ... & k(x^1,x^m) \\ ...& ... & ... \\ k(x^m,x^1)& ... & k(x^m,x^m) \end{matrix} \right]^{-1}\cdot\left[ \begin{matrix} t^1 \\ ...\\ t^m \end{matrix} \right]
    其中各項組合的權重是由核函數計算的,且該權重是新輸入測試數據xm+1x^{m+1}的函數,即μm+1\mu_{m+1}還可以寫成如下形式:
    μm+1=f(xm+1)=i=1maik(xi,xm+1)\mu_{m+1}=f(x^{m+1})=\sum^m_{i=1}a_i k(x_i,x_{m+1})
    其中 aia_iCm1t\mathbf{C}_{m}^{-1}\mathbf{t} 中的第 ii 個元素;

3.3 超參數的選擇

  • 高斯過程的超參數包括噪聲誤差精度β\beta,還有核函數中的參數,這些參數的選擇方法是通過極大似然估計,具體過程省略。

4 極大似然線性迴歸、貝葉斯線性迴歸、高斯迴歸的區別和聯繫

極大似然線性迴歸 貝葉斯線性迴歸 高斯迴歸
研究空間 參數空間 參數空間 函數空間
使用方法 極大似然估計 極大後驗估計 高斯過程

4.1 極大似然線性迴歸

  • 我們之前最熟悉的是極大似然線性迴歸,代表頻率學派的觀點,其目的是在參數空間中尋找一組能擬合當前訓練集的最優參數,學習到參數之後,使用判別式模型,預測新數據;但是當拿來一組新的訓練集時,就要重新學習參數;

4.2 貝葉斯線性迴歸

  • 貝葉斯線性迴歸代表貝葉斯學派的觀點,其目的並不是尋找能擬合訓練集的最優參數,而是認爲,參數沒有“最優”,只有“更優”;貝葉斯線性迴歸認爲參數存在先驗,學習的過程就是不斷計算參數的後驗分佈,然後把計算得到的後驗分佈作爲下一次學習的先驗分佈的過程,每次拿到一組新的訓練集,都能在原來的基礎上繼續學習,有一種“學習永不停止”的意思;與極大似然迴歸相比,其學習的結果不是一組確定的參數,而是參數的(後驗)分佈,用這組不確定的參數對新數據進行預測時,得到的預測結果也是不確定的,即得到的預測結果也是一組分佈,而不是某個確定的預測值。

4.3 高斯迴歸

  • 前兩種迴歸方法都是在參數空間中對參數進行估計,這樣的弊端在於必須自己選擇模型(basis-function),有時模型的選擇會對預測結果產生較大的影響,而如何選擇模型則完全靠經驗。高斯迴歸直接放棄對模型的選擇,而是相信一個“真理”:我只要用和新數據相近的訓練集數據預測輸出,結果肯定大差不差。即使用核方法對訓練集中的目標值的聯合概率分佈進行建模,當輸入新的數據時,使用貝葉斯公式得出預測值的條件高斯分佈。預測結果中除了核函數的超參數外不包含任何需要學習的參數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章