拉丁超立方採樣算法
拉丁超立方採樣(Latin hypercube sampling,縮寫LHS)是一種從多元參數分佈中近似隨機採樣的方法,屬於分層採樣技術,經常使用於計算機實驗或蒙特卡洛積分等。函數
在統計抽樣中,拉丁方陣是指每行、每列僅包含一個樣本的方陣。好比優化
X | |||
X | |||
X | |||
X |
拉丁超立方則是拉丁方陣在多維中的推廣,每一個與軸垂直的超平面最多含有一個樣本。spa
假設有個變量(維度),能夠將每一個變量分爲個機率相同的區間。此時,能夠選取個知足拉丁超立方條件的樣本點。須要注意的是,拉丁超立方抽樣要求每一個變量的分區數量相同。不過,該方法並不要求當變量增長時樣本數一樣增長。blog
若所需樣本點數量爲M,維度/變量數量爲N。則能夠取第一個維度/變量,分爲M個區間,每一個區間將依次產生一個樣本點;對於更高維度,則按維度1的樣本點次序,隨機地分佈在該維度上。對於二維狀況的拉丁方陣,則有element
X1 | |||
X2 | |||
X3 | |||
X4 |
高維度同理。it
基於優化的均勻採樣table
基於優化的均勻採樣關鍵在於定義一個合適的度量來評判採樣點的均勻度。class
假設咱們的均勻度定義爲變量
其中 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]) )。