主要内容

GPR模型的块坐标下降近似

对于大量观察,使用确切的参数估计方法和对新数据进行预测的方法很昂贵(请参阅精确的GPR方法)。有助于解决此问题进行预测的近似方法之一是块坐标下降(BCD)方法。您可以通过首先使用BCD方法进行预测“预测方法”,“ BCD”呼叫中的名称值对参数fitrgp,然后使用预测功能。

BCD方法的想法是计算

α ^ = (( k (( X ,,,, X + σ 2 n - 1 (( y - H β

与确切方法不同。BCD估计 α ^ 通过解决以下优化问题:

α ^ = Arg Min α F (( α

在哪里

F (( α = 1 2 α t [[ k (( X ,,,, X + σ 2 n 这是给予的 α - α t (( y - H β

fitrgp使用块坐标下降(BCD)来解决上述优化问题。对于熟悉支持向量机(SVM)的用户,用于拟合SV金宝appM的Sequential Minimal优化(SMO)和ISDA(SMO)和ISDA(迭代单个数据算法)是BCD的特殊情况。fitrgp为每个BCD更新执行两个步骤 - 块选择和块更新。在块选择阶段,fitrgp使用随机和贪婪策略的组合来选择一组 α 接下来优化的系数。在块更新阶段,选定 α 系数是优化的,同时保持另一个 α 系数固定在其先前的值上。重复这两个步骤,直到收敛为止。BCD不存储 n * n 矩阵 k (( X ,,,, X 在内存中,但它只是计算 k (( X ,,,, X 根据需要矩阵。结果,与BCD相比,BCD更有效“预测方法”,“精确”

实际经验表明,无需解决计算的优化问题 α 至高准确。例如,当停止迭代时,合理 | | F (( α | | 下方 η | | F (( α 0 | | , 在哪里 α 0 是初始值 α η 是一个小常数(例如 η = 10 - 3 )。结果“预测方法”,“精确”“预测方法”,“ BCD”除了BCD计算外是否等效 α 以不同的方式。因此,“预测方法”,“ BCD”可以将其视为有效的记忆方式“预测方法”,“精确”。BCD通常比“预测方法”,“精确”n。但是,您无法使用“预测方法”,“ BCD”选项。这是因为计算预测间隔需要解决一个问题,例如解决的问题 α 对于每个测试点,这再次很昂贵。

使用BCD近似拟合GPR模型

此示例使用块坐标下降(BCD)近似值显示了与大量观测值的拟合高斯过程回归(GPR)模型。

小n-预测方法'精确的''BCD'产生相同的结果

生成一个小样本数据集。

rng(0,'twister');n = 1000;x = linspace(0,1,n)';x = [x,x。^2];y = 1 + x*[1; 2] + sin(20*x*[1; -2])./(x(x(:,1)+1) + 0.2*randn(n,1);

使用使用GPR模型“ fitMethod”,“精确”“预测方法”,“精确”

gpr = fitrgp(x,y,'kernelfunction',,,,“平方指数”,,,,...'FitMethod',,,,'精确的',,,,“预测方法”,,,,'精确的');

使用另一个使用GPR模型“ fitMethod”,“精确”“预测方法”,“ BCD”

gprbcd = fitrgp(x,y,'kernelfunction',,,,“平方指数”,,,,...'FitMethod',,,,'精确的',,,,“预测方法”,,,,'BCD',,,,“阻止”,200);

“预测方法”,“精确”“预测方法”,“ BCD”应该等效。他们计算相同$ \ hat {\ alpha} $但是只是以不同的方式。您还可以使用“冗长”,1呼叫中的名称值对参数fitrgp

使用两种方法计算拟合值并将其比较:

ypred = repubedict(gpr);ypredbcd = repubpredict(gprBCD);Max(ABS(Ypred-YpredBCD))
ANS = 5.8853E-04

拟合值彼此接近。

现在,绘制数据以及适合的值“预测方法”,“精确”“预测方法”,“ BCD”

数字;情节(Y,'k。');抓住;情节(ypred,'b-',,,,'行宽',2);情节(ypredbcd,'M--',,,,'行宽',2);传奇('数据',,,,“预测精确”,,,,“预测无限BCD”,,,,'地点',,,,'最好的');Xlabel(“观察指数”);ylabel(“响应值”);

可以看出“预测方法”,“精确”“预测方法”,“ BCD”产生几乎相同的拟合。

大N-使用“ fitMethod','sd'“预测方法”,“ BCD”

生成一个类似于上一个的较大数据集。

rng(0,'twister');n = 50000;x = linspace(0,1,n)';x = [x,x。^2];y = 1 + x*[1; 2] + sin(20*x*[1; -2])./(x(x(:,1)+1) + 0.2*randn(n,1);

为了n= 50000,矩阵k((X,,,,X)为50000 x 50000。存储k((X,,,,X)在内存中,大约需要20 GB的RAM。要适合GPR模型到此数据集中,请使用“ fitMethod','sd'随机子集的m= 2000分。这“ ActiveSetsize”呼叫中的名称值对参数fitrgp指定活动设置大小m。用于计算$ \ alpha $利用“预测方法”,“ BCD”“阻止”5000“阻止”名称值对参数fitrgp指定元素的数量$ \ alpha $该软件在每次迭代中优化的向量。一个“阻止”在5000中,假设您使用的计算机可以在内存中存储5000 x 5000矩阵。

gprbcd = fitrgp(x,y,'kernelfunction',,,,“平方指数”,,,,...,,,,'FitMethod',,,,'SD',,,,“ ActiveSetsize”,2000年,“预测方法”,,,,'BCD',,,,“阻止”,5000);

绘制数据和拟合值。

数字;情节(Y,'k。');抓住;情节(重新提出(GPRBCD),'M-',,,,'行宽',2);传奇('数据',,,,“预测无限BCD”,,,,'地点',,,,'最好的');Xlabel(“观察指数”);ylabel(“响应值”);

该情节类似于较小的情节n

参考

[1] Grippo,L。和M. Sciandrone。“关于凸约限制下的非线性高斯 - 西德尔方法的收敛性。”操作研究信。卷。26,第127–136页,2000年。

[2] Bo,L。和C. Sminchisecu。“大规模高斯过程回归的贪婪块坐标下降。”在第二十四届人工智能不确定性会议(UAI2008)会议论文集(UAI2008):http://arxiv.org/abs/1206.3238,2012。

也可以看看

|

相关话题