拉丁超立方采樣
拉丁超立方采樣(Latin hypercube sampling,縮寫LHS)是一種從多元參數分布中近似隨機采樣的方法,屬於分層采樣技術,常用於計算機實驗或蒙特卡洛積分等。
在統計抽樣中,拉丁方陣是指每行、每列僅包含一個樣本的方陣。比如
X | |||
X | |||
X | |||
X |
拉丁超立方則是拉丁方陣在多維中的推廣,每個與軸垂直的超平面最多含有一個樣本。
假設有個變量(維度),可以將每個變量分為
個概率相同的區間。此時,可以選取
個滿足拉丁超立方條件的樣本點。需要注意的是,拉丁超立方抽樣要求每個變量的分區數量
相同。不過,該方法並不要求當變量增加時樣本數
同樣增加。
若所需樣本點數量為M,維度/變量數量為N。則可以取第一個維度/變量,分為M個區間,每個區間將依次產生一個樣本點;對於更高維度,則按維度1的樣本點次序,隨機地分布在該維度上。對於二維情況的拉丁方陣,則有
X1 | |||
X2 | |||
X3 | |||
X4 |
高維度同理。
基於優化的均勻采樣
基於優化的均勻采樣關鍵在於定義一個合適的度量來評判采樣點的均勻度。
假設我們的均勻度定義為
其中 xi表示第i個樣本點的坐標。那么只需要通過優化算法使得該值更小的一組xi坐標,就是所需的均勻采樣的樣本點。
在MATLAB中,可以使用fmincon()來進行優化。有意思的是,假如輸入的X是作為矩陣的話(比如N * n,N為樣本點數量,n 為變量/維度數),在該函數會將矩陣X變為向量X(相當於 X_vec = X_mat(:) ,注意是一列一列地排,即向量最前面是矩陣第一列,然后矩陣第二列)就等同是對一個x序列作的優化。最后輸出會重新轉換成向量(相當於 X_mat = reshape(X_vec, N, n) or X_mat = reshape(X_vec, [N, n]) )。