臺大研究成果系列報導—管理學院「高斯過程迴歸遇上大數據」

高斯過程迴歸(Gaussian Process Regression)是一種建構非線性迴歸預測模型的無母數方法。跟其他的迴歸方法一樣,高斯過程迴歸建構一個由輸入的特徵向量映射到一個實數的函數。如果假設資料點是 (y_i,x_i)的形式,其中y_i是實數輸出(或因變數)且x_i是特徵向量,高斯過程迴歸假設如果任取K個點,這K個點的輸出會是多變數常態分佈,而這個常態分佈的變異數矩陣會是這些特徵向量的函數。舉例而言,在房價的預測問題中,直觀告訴大家兩個房屋物件的距離越近,它們價格的相關係數應該越高。如果將高斯過程迴歸的假設套用到房價預測問題上,特徵可以是各個房屋物件的經緯度,任意兩個房屋物件價格的共變異數可以設為一個與這兩組經緯度計算出的距離反向變化的函數。也就是距離越遠,相關係數越小。一個常見的做法是套用Radial Basis Function(RBF)Kernel(徑向基函數核),如果這個決定各點之間共變異數的函數能合理地描述觀察到的資料,那就可以基於觀察到的資料預測其他位置的房價。當然,除了經緯度之外,也可以加入其他幫助房價預測的特徵,讓模型的預測更周全。

高斯過程迴歸除了應用在前面討論的房價預測問題,也可以用在其他迴歸問題上。在資料快速累積的今日,使用大量的資料建構模型已是一種常態。然而,如果有N個資料點,高斯過程迴歸的時間複雜度為O(N^3)、空間複雜度為O(N^2),在現代的個人電腦硬體架構下,大概只能處理數十萬個資料點,因此在大資料的應用情境很侷限。為了能突破這個限制,需設計一套基於梯度增強(Gradient Boosting)模型逼近方法。基於這個想法,第一輪由訓練資料隨機取一組固定大小的迷你集合(如2,000個資料點),建構一個小型的高斯過程迴歸模型,接著計算這個模型的預測誤差,並且由訓練資料隨機取下一個同樣大小的迷你集合,建構另一個高斯過程迴歸模型以預測前一輪的預測誤差。這個過程不斷重複,直到達成預先指定的模型數量,或透過Validation Set決定何時停止。最後將所有前面所建構的模型累加,即可得到一個預測能力良好的最終模型。

這個方法不斷地透過修正前一輪預測誤差的方式,產生下一輪的模型,也正是梯度提升法的想法。由於每次的迷你集合大小為定值,因此繞過原本時間複雜度與空間複雜度的問題。而模型在不斷透過殘差修正的過程中,也能持續利用大型訓練資料集所提供的新資訊,有效地改善預測能力。在幾個大型迴歸資料集的評估結果中顯示,這個方法預測能力良好,與其他迴歸方法(如高斯迴歸模型逼近法、支持向量機、隨機森林、XGBOOST等)相比,皆能達到類似甚至更好的預測能力。