[优化算法] 拉丁超立方采样与基于优化的均匀采样

拉丁超立方采样

丁超立方采样Latin hypercube sampling,LHS)是一种从多元参数分布中近似随机采样的方法,属于分层采样技术,常用于计算机实验或蒙特卡洛积分等。

在统计抽样中,拉丁方阵是指每行、每列仅包含一个样本的方阵。比如

X      
    X  
      X
  X    

 

拉丁超立方则是拉丁方阵在多维中的推广,每个与轴垂直的超平面最多含有一个样本。

假设有N个变量(维度),可以将每个变量分为M个概率相同的区间。此时,可以选取M个满足拉丁超立方条件的样本点。需要注意的是,拉丁超立方抽样要求每个变量的分区数量M相同。不过,该方法并不要求当变量增加时样本数M同样增加。

若所需样本点数量为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]) )。

posted @ 2018-11-13 10:56  GeorgeOkelly  阅读(5723)  评论(0编辑  收藏  举报