最优化简介-第二节:最优化典型实例之稀疏优化和低秩矩阵恢复
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最优化简介-第二节:最优化典型实例之稀疏优化和低秩矩阵恢复相关的知识,希望对你有一定的参考价值。
文章目录
考虑下面线性方程组的求解问题,其中 x ∈ R n , b ∈ R m x\\in \\R^n,b\\in \\R^m x∈Rn,b∈Rm,矩阵 A ∈ R m × n A\\in \\R^m×n A∈Rm×n,且向量 b b b的维数远小于向量 x x x的维数,也即 m m m<< n n n
A x = b Ax=b Ax=b
在相关问题中,当我们建立这样的模型后,常常希望解出向量 x x x,但无奈的是由于 m m m<< n n n,所以它会有无穷多解。但是,这些解当中大部分是不重要的,真正有用的是那些稀疏解
一:什么是稀疏优化
稀疏优化:原始信号中绝大多数元素为0,在某种线性约束条件下,求一个使决策变量使其非零元素个数达到最小,其基本数学模型如下
m i n ∣ ∣ x ∣ ∣ 0 , s . t . A x = b min||x||_0,\\quad s.t. \\quad Ax=b min∣∣x∣∣0,s.t.Ax=b
这类技术常常应用于通过部分信息恢复全部信息。例如下图
- 假设读者评分仅与题材有关,那么就可以利用部分信息恢复全表
二:范数
范数(Norm):在线性代数等数学学科中,范数是一个函数,其赋予某个向量空间或矩阵中的每个向量以长度或大小(对于零向量,令其长度为0)。直观来讲,向量或矩阵的范数越大,那么我们就可以说这个向量或矩阵也就越大
- 其实我们所熟知的绝对值也是范数,它是一维向量空间中实数或复数的范数
- 经常用到的欧氏距离也是范数
对于这三个范数,从效果上来看
- l 0 l_0 l0效果最好
- l 1 l_1 l1效果次之
- l 2 l_2 l2效果最差
对于这三个范数,从求解速度上来看
- l 0 l_0 l0基本很求解
- l 1 l_1 l1也很难求解,运算时间较长,但要是能求出来,其解更偏向于全局最优解
- l 2 l_2 l2求解速度较快,但容易陷入局部最优
(1) l 0 l_0 l0范数
l 0 l_0 l0范数:是指向量中非0的元素的个数。如果我们用 l 0 l_0 l0范数来规则化一个参数矩阵 W W W的话,就是希望 W W W的大部分元素都是0,换句话说,让参数 W W W是稀疏的。所以 l 0 l_0 l0范数非常适合机器学习中的稀疏编码,可以通过最小化 l 0 l_0 l0范数来寻找最少的稀疏特征项
- 例如向量 a = [ 1 , 0 , 2 , 0 , − 1 , 2 ] a=[1, 0, 2, 0, -1 ,2] a=[1,0,2,0,−1,2]的 l 0 l_0 l0范数就是4
但是, l 0 l_0 l0范数的最小化问题是一个NP难问题,举个例子
- 假设某矩阵 A A A大小为500×2000,如果我们知道稀疏解为20(也即该矩阵中只有20个元素非零),那么你要想求解这20个点就有3.0×1047种可能,假设每次测试需要1.0×10-9s,那么总共需要1.2×1031年才能得到答案
(2) l 1 l_1 l1范数和 l 2 l_2 l2范数
-
l 1 l_1 l1范数:是指向量中各个元素绝对值之和。 l 1 l_1 l1是 l 0 l_0 l0范数的最优凸近似
-
l 2 l_2 l2范数:是指向量中各个元素平方和然后开根
l 1 l_1 l1范数最优化问题的解是稀疏性的,其倾向于选择很少的一些非常大的值和很多的不重要的小值。而 l 2 l_2 l2范数最优化则更多的非常少的特别大的值,却又很多相对小的值,但其仍然对最优化解有重要的贡献。但从最优化问题解的平滑性来看, l 1 l_1 l1范数的最优解相对于 l 2 l_2 l2范数要少,但其往往是最优解,而 l 2 l_2 l2的解很多,但更多的倾向于某种局部最优解
三:稀疏优化例子
在MATLAB环境中构造矩阵 A A A(128×256),其每个元素都服从高斯分布,精确解 u u u只有10%的元素非零,每一个元素也服从高斯分布
m = 128; n = 256;
A = randn(m, n);
u = sprandn(n, 1, 0.1);
b = A * u;
此时, u u u便是如下 l 0 l_0 l0范数问题的最优解
m i n x ∈ R n ∣ ∣ x ∣ ∣ 0 s . t . A x = b \\mathopmin\\limits_x\\in \\R^n\\quad||x||_0\\quad s.t. \\quad Ax=b x∈Rnmin∣∣x∣∣0s.t.Ax=b
而前面说过,
l
0
l_0
l0范数优化问题是
N
P
NP
NP难问题,所以是不可能直接求解出来的,因此可以转为
l
1
l_1
l1范数优化问题,如下
m
i
n
x
∈
R
n
∣
∣
x
∣
∣
1
s
.
t
.
A
x
=
b
\\mathopmin\\limits_x\\in \\R^n\\quad||x||_1\\quad s.t. \\quad Ax=b
x∈Rnmin∣∣x∣∣1s.t.Ax=b
但是相关论文已经证明, l 1 l_1 l1是 l 0 l_0 l0范数的最优凸近似,也即若 A A A、 b b b满足一定条件,向量 u u u也是 l 1 l_1 l1范数优化问题的唯一最优解。从这里我们可以看到优化这门学科可以在很大程度上降低待研究问题的困难程度
但如果改为 l 2 l_2 l2范数优化问题呢,即求解如下优化问题
m i n x ∈ R n ∣ ∣ x ∣ ∣ 2 s . t . A x = b \\mathopmin\\limits_x\\in \\R^n\\quad||x||_2\\quad s.t. \\quad Ax=b x∈R以上是关于最优化简介-第二节:最优化典型实例之稀疏优化和低秩矩阵恢复的主要内容,如果未能解决你的问题,请参考以下文章