迭代权重最小二乘算法

迭代权重最小二乘(Iteratively reweighted least squares, IRLS) [1] 方法用于求解\(p\)范数(\(p\) norm)的最小化问题。问题如下:
\[\arg \min_{x} \sum_{i} | y_i - f_i (x) |^p\]
通过迭代的方法,在每次迭代我们都在解决一个加权的最小二乘问题:
\[ x^{t+1} = \arg \min_{x} ~ \sum_{i} w_i(x^t) | y_i - f_i (x^t) |^2 \]
此时,我们能够将原始的\(p\) norm问题转化为2-norm的问题。同时我们此时引入了一个随着迭代次数而改变的变量\(w_i(x^t)\)。一般地,我们定义\(t\) step的权重与\(t\) step的误差,即\(| y_i - f_i(x^t) |^p\)有关。我们首先初始化变量\(w_i^{t}\)为:
\[ w_i^{0} = 1\]
\(W\)矩阵的对角元素都为1,其他元素为0。在第\(t\)步,矩阵\(W\)的第\(i\)个对角元素\(w_i^{t}\)为:
\[w_i^{t} = | y_i - f_i(x^t) |^{p-2} \]

例子

例如,我们要求解如下问题[2]:
\[ \arg \min _{\sum s_{I,j} = 1; s_{i,j} \geq 0 } \sum_{j} || s_{i,j} - a_{i,j} ||_1 + \lambda \sum_{j} | f_i - f_j |_2^2 s_{i,j}\]
我们使用迭代权重最小二乘法,可将上式写成
\[ \arg \min _{\sum s_{I,j} = 1; s_{i,j} \geq 0 } \sum_{j} w_{i,j}(s_{i,j}^{t} ) | s_{i,j} - a_{i,j} |^2 +\lambda \sum_{j} | f_i - f_j |^2 s_{i,j} \]
其中,
\[ w_{j}^{t} = \frac{1}{| s_{i,j} - a_{i,j} |} \]
当然,为了防止分母为零,我们很自然地会将上式写成下式的形式:
\[ w_i^{t} = \frac{1}{\max(\epsilon, | s_{i,j} - a_{i ,j} |)}\]
其中,\(\epsilon = 1e-6\)
相比最开始的\(L1\)问题,上面的\(L2\)更容易被解决,因其处处可导且连续。

因此,由于能将\(L_p\)范数的问题转化为\(L_2\)范数的问题,IRLS在压缩感知、稀疏编码等方面取得非常广泛的应用。

[1] Iteratively reweighted least squares
[2] The Constrained Laplacian Rank Algorithm for Graph-Based Clustering

猜你喜欢

转载自www.cnblogs.com/yuningqiu/p/9922885.html