合聚咖

合聚咖

稀疏信号处理中的惩罚函数和收缩函数

admin

首先提出几个问题:

为了更好地理解惩罚函数的作用,先考虑标量的情况是有帮助的。

即给定,求使函数最小

为了强调极小值x对y的依赖性,我们定义函数。函数被称为收缩函数,它使y向零收缩。确切形式取决于罚函数。本文将分析两个特定示例。

还有许多其他惩罚函数被用于稀疏信号处理。但这是两个常见且有代表性的例子。

例1:定义惩罚函数为。式中如图1所示。注意是凸函数。这对应于范数。

例2:定义,。注意不是凸函数。对于这两个例子,我们将尝试找到收缩函数。

为了找到收缩函数,我们将相对于最小化。的导数为设的导数为0,即使最小的值可以通过解上式得到。首先我们需要的值。

对于例子1,可以知道。需要注意在处不可导,因此省略了在处的定义。实际上,有一种数学上严格的方法可以用凸函数分析来定义导数。然而,在这里先推迟凸分析,简单地用一条直线在处绘制,如图3所示。函数可以简单的写成。函数定义为。

对于例子2,[公式] 的导数为可以简化为。需要注意在处不可导,在这里先简单地用一条直线在处绘制,如图4所示。对于例子1,要得到收缩函数,要这样写:求解出可以写成公式进一步简化为。函数称为软阈值函数。它在稀疏信号处理和压缩感知中经常出现。它将较小的值(绝对值小于)设置为零;它会将较大的值(绝对值大于)压缩到零值附近。

对于例子2,要得到收缩函数,要这样写:与例子1的解释相同,不在赘述。的数学方程的解可以通过上述方程求出,对于,可以这样写:继而可以得到完整的公式为与软阈值函数一样,它将小值(小于)设置为零;它会将较大的值(大于)向零压缩。但与软阈值规则相比,大值的衰减幅度较小。

对于这两个示例,我们看到收缩函数将小于的所有值设置为零,两个收缩函数都是阙值函数。但是有一个附加参数,它也会影响收缩函数的形状,此参数可用于调整收缩函数。

那么将如何影响收缩函数的形状?首先,我们应该发现某些值会导致收缩函数的推导变得复杂。特别是当太大时,图6呈现出不同的特征。例如,当时,如图7所示。注意图7b中不是的严格递增函数,图7c中没有定义,对于每个都没有唯一的。

对的检验表明,上x的三个值中的两个仅是的局部最大值和最小值。这三个值中只有一个是全局最小值。考虑的值,以识别最小的作为函数,我们得到如图8所示的收缩函数。(图中较暗的那条线代表收缩函数。)

图8中的收缩函数是不连续的。一些经常使用的收缩函数是不连续的(例如,硬阈值函数)。然而,有时不连续的收缩函数被认为是不可取的。的小变化会导致的大变化。这样的收缩函数对数据的微小变化很敏感。

为保证收缩函数连续,应如何选择?实际情况是这样,当收缩函数的不连续时,可以发现是由于不是的严格递增函数。为了避免不连续,应应该递增,即同样,惩罚函数应满足。对于例子2,我们可以得到。在,。

关于收缩函数的敏感性——注意收缩函数的导数的最大值出现在处。我们来计算它可以通过两种方式找到,通过对收缩函数求导,或者间接地作为在处的右侧导数的倒数。例如例2,我们有。几个不同a值的惩罚函数和收缩函数如图9所示。在a趋近于零的极限情况下,收缩函数趋近于软阈值规则,其斜率对所有等于1。

在前一节中,展示了如何从惩罚函数推导出收缩函数。在本节中,将考虑相反的问题。给定收缩函数如何推导相应的罚函数?给出例3中的收缩函数这种收缩有时被称为'nonnegative garrote'。收缩函数图与图6c相似,但公式更简单。我们如何找到对应于收缩函数的惩罚函数?根据,。当,即。一般形式为:对于较大的,上述公式可能在数值上不准确。因此,利用恒等式可以变形为:。对于较大的,惩罚函数。其中asinh(z)是反双曲正弦函数,。成本函数如图10c所示。

比较图11显示了同一轴上三个示例的惩罚函数和收缩函数。对于每个示例,参数被设置为2,因此每个收缩函数的阈值为2。对于对数惩罚函数(例2),设置参数a,使收缩函数在y = 2处的(右侧)导数等于nn-garrote收缩函数在该点的斜率。即,对数和nn-garrote收缩函数在y = 2处的导数(右侧)均为2;斜率为2的虚线强调了这一点。可以看出,对于这个a值(即a = 0.25),对数收缩函数与nn-garrote收缩函数非常相似,但其衰减较大,y略大于nn-garrote收缩函数。

考虑向量的情况。当惩罚函数是二次的,函数不容易被最小化。当为二次函数时,对求导得到线性方程,通过求解线性方程组得到最小值。但当为二次型时,解一般不会稀疏;因此,其他惩罚函数更适合稀疏信号处理。

为了使最小,必须使用迭代数值算法。有一种合适推导算法的方法是基于最优化理论中的最大化-最小化(MM)方法。MM方法不是直接最小化,而是解决一系列更简单的最小化问题。在下面的例子中,我们只最大化惩罚项。为了最大化惩罚项,首先考虑标量情况。我们首先找到在的主化器,主化器应是的上界,并在处与重合。在这种情况下,我们会找到一个二次主化器。为了强调对点的依赖性,可以这样写。如果和表示向量,我们表示对角矩阵为的分量除法。的主化器为:最小化依赖于v。MM更新为。注意,如果的分量趋近于0,那么的元素趋近于∞。因此,更新方程在数值上可能会变得不准确。此外,由于解是稀疏的,因此随着迭代的进行,的分量将趋于零。避免了这个问题,通过使用矩阵逆引理来写。注意,当的分量趋于零时,的元素趋于零而不是无穷。

为了方便起见,我们定义。这种迭代算法可以看作是FOCUSS算法的一种形式。注意,如果是banded,那么矩阵是banded,可以使用banded的快速算法来实现该算法。惩罚函数在更新方程中只出现在表达式中项中。因此,分析和简化函数是有意义的。

当惩罚函数是凸函数时,那么代价函数的最小化者必须满足特定条件。这些条件可以用来验证由数值算法产生的解的最优性。当惩罚函数不是凸函数时,可以利用一些条件来确定是否达到局部最小值。若是凸且可微的,且若x极小化,则x必须满足:其中表示向量的第n个分量。然而,当不可微时,就像前面三个惩罚函数的例子一样,不能直接使用。

若是凸但不可微的,则给出了最优性条件为。在这种情况下,。设置阙值条件有时可以作为设置惩罚函数阈值的指导原则。假设数据被建模为Ax,其中x是稀疏的,w是加入的噪声。如果,则y仅由噪声组成(即y = w)。然后可以得到。对于,(2)这意味着应该被选择为其中w是加性噪声。另一方面,越大,信号x衰减得越多。因此,将设为满足(2)的最小值是合理的,虽然(3)假设噪声信号w是可得的,但这在实际中是不现实的,(3)通常可以根据噪声w的统计特性估计出来。例如,如果噪声w是高斯白噪声,则可以用“3σ”准则估计出的最大值。