最优化:建模、算法与理论
目前在学习 最优化:建模、算法与理论这本书,来此记录一下,顺便做一些笔记,在其中我也会加一些自己的理解,尽量写的不会那么的条条框框(当然最基础的还是要有)
第三章 优化建模
本章将从常用的建模技巧开始,接着介绍统计学、信号处理、图像处理以及机器学习中常见的优化模型,我们会侧重于解释优化建模背后的思想和实际含义。
3.1 建模技术
3.1.1 目标函数的设计
1. 最小二乘法
最小二乘法,依我之见,应该很少有初学者来直接学习这本书,所以这个东西大家应该已经司空见惯了。
设
ϕ
i
(
x
)
:
R
n
→
R
,
i
=
1
,
2
,
⋯
,
m
\phi_i(x):R^n{\rightarrow}R,i=1,2,\cdots,m
ϕi(x):Rn→R,i=1,2,⋯,m为
n
n
n元函数,且有如下方程组
b
i
=
ϕ
i
(
x
)
,
i
=
1
,
2
,
⋯
,
m
(3.1.1)
b_i={\phi_i(x)},i=1,2,\cdots,m \tag{3.1.1}
bi=ϕi(x),i=1,2,⋯,m(3.1.1)
其中
b
i
b_i
bi是已知的实数,我们知道,这个问题并不总是可解的,首先,如果方程组的个数
m
m
m超过自变量个数
n
n
n,因此方程组的解可能不存在,其次,由于测量误差等因素,方程组的等式关系可能不是精确成立的,为了能实际情况下求解,最小二乘法的思想是极小化误差的
l
2
l_2
l2范数平方,即
min
x
∈
R
n
∑
i
=
1
m
(
b
i
−
ϕ
i
(
x
)
)
2
(3.1.2)
{\min_{x{\in}R^n}{\sum_{i=1}^m}(b_i-{\phi_i(x)})^2} \tag{3.1.2}
x∈Rnmini=1∑m(bi−ϕi(x))2(3.1.2)
如果
ϕ
i
(
x
)
\phi_i(x)
ϕi(x)为线性函数,那么就称之为线性最小二乘,否则称为非线性最小二乘
最小二乘的思想很直观的,如果方程(3.1.1)存在解,则求解问题(3.1.2)的全局最优解为0,就相当于求出了方程的解,如果方程的解不存在的话,问题(3.1.2)给出了某种程度上误差最小的解。
最小二乘法使用了
l
2
l_2
l2范数来度量误差大小,其主要优点有两个
(1)
l
2
l_2
l2范数平方是光滑可微的,它会给目标函数带来较好的性质
(2)
l
2
l_2
l2范数对于某种误差的处理有最优性,后续会给出解答
当然,最小二乘并不总是最合理的,No free lunch theorem,根据实际问题,我们还经常建立最小一乘模型以及最大最小模型,其思想是使用不同的范数代替
l
2
l_2
l2范数,如果要保证偏差和绝对值之和最小回归,相应的模型为:
min
x
∈
R
n
∑
i
=
1
m
∣
b
i
−
ϕ
i
(
x
)
∣
(3.1.3)
\min_{x{\in}R^n}\sum_{i=1}^{m}|b_i-\phi_i(x)|\tag{3.1.3}
x∈Rnmini=1∑m∣bi−ϕi(x)∣(3.1.3)
如果要最小化最大偏差,其对应的优化模型为:
min
x
∈
R
n
max
i
∣
b
i
−
ϕ
i
(
x
)
∣
(3.1.4)
\min_{x{\in}R^n}\max_i|b_i-{\phi_i(x)}|\tag{3.1.4}
x∈Rnminimax∣bi−ϕi(x)∣(3.1.4)
2. 正则化
在建模时,我们往往需要借助于想要得到的解的性质,例如当最优解不止一个的时候,并不一定所有的解都是我们想要的,为了让解具有光滑性以及克服问题的病态性质,亦或者为了解决过拟合的问题(更具光滑性实际上就是变相解决过拟合),那么改进的模型为
min
x
∈
R
n
∑
i
=
1
m
(
b
i
−
ϕ
i
(
x
)
)
2
+
μ
∣
∣
x
∣
∣
2
2
(3.1.5)
{\min_{x{\in}R^n}{\sum_{i=1}^m}(b_i-{\phi_i(x)})^2}+\mu||x||_2^2 \tag{3.1.5}
x∈Rnmini=1∑m(bi−ϕi(x))2+μ∣∣x∣∣22(3.1.5)
其中
μ
>
0
\mu>0
μ>0是个平衡参数,如果想要得到一个稀疏的解,可以借助
l
0
l_0
l0范数构造如下模型(
l
0
l_0
l0范数定义为向量中非零元素的个数)
min
x
∈
R
n
∑
i
=
1
m
(
b
i
−
ϕ
i
(
x
)
)
2
+
μ
∣
∣
x
∣
∣
0
(3.1.6)
{\min_{x{\in}R^n}{\sum_{i=1}^m}(b_i-{\phi_i(x)})^2}+\mu||x||_0 \tag{3.1.6}
x∈Rnmini=1∑m(bi−ϕi(x))2+μ∣∣x∣∣0(3.1.6)
其中
μ
>
0
\mu>0
μ>0用来控制解的稀疏度,但由于
l
0
l_0
l0范数在实际中难以处理,我们往往使用
l
1
l_1
l1范数来保证稀疏性,模型如下
min
x
∈
R
n
∑
i
=
1
m
(
b
i
−
ϕ
i
(
x
)
)
2
+
μ
∣
∣
x
∣
∣
1
(3.1.7)
{\min_{x{\in}R^n}{\sum_{i=1}^m}(b_i-{\phi_i(x)})^2}+\mu||x||_1 \tag{3.1.7}
x∈Rnmini=1∑m(bi−ϕi(x))2+μ∣∣x∣∣1(3.1.7)
在图像处理中,
x
x
x本身可能不是稀疏的,但是其在变换域中是稀疏的,相应的模型为
min
x
∈
R
n
∑
i
=
1
m
(
b
i
−
ϕ
i
(
x
)
)
2
+
μ
∣
∣
W
(
x
)
∣
∣
0
(3.1.8)
{\min_{x{\in}R^n}{\sum_{i=1}^m}(b_i-{\phi_i(x)})^2}+\mu||W(x)||_0 \tag{3.1.8}
x∈Rnmini=1∑m(bi−ϕi(x))2+μ∣∣W(x)∣∣0(3.1.8)
以及
min
x
∈
R
n
∑
i
=
1
m
(
b
i
−
ϕ
i
(
x
)
)
2
+
μ
∣
∣
W
(
x
)
∣
∣
1
(3.1.9)
{\min_{x{\in}R^n}{\sum_{i=1}^m}(b_i-{\phi_i(x)})^2}+\mu||W(x)||_1 \tag{3.1.9}
x∈Rnmini=1∑m(bi−ϕi(x))2+μ∣∣W(x)∣∣1(3.1.9)
其中
W
:
R
n
→
R
p
W:R^n{\rightarrow}R^p
W:Rn→Rp表示某种变换,常用的有全变差以及小波变换
正则项在目标函数的意义是很明显的,我们要同时满足误差尽量小以及它的系数相对来说不能太大,如果系数太大那么他的正则项惩罚就会很高,而当所有的系数都减少下来,那么模型自然而然也就平滑了。
3.最大似然估计
在实际问题中有许多数据来自未知的分布,从数据反推分布的具体形式是非常虫咬的,最大似然估计就是统计中常用的一种估计概率分布的方法,且通过最大似然函数,使得观测数据尽可能地服从假定的模型。
这里我们考虑一种简单的情况,假设已经知道数据来自某种特定的分布,但不知道分布具体的参数,为了方便起见,令
p
(
a
;
x
)
p(a;x)
p(a;x)是其分布律或概率密度函数,其中
x
x
x是未知参数,为了估计
x
x
x,我们选取一列独立同分布的样本点
a
1
,
a
2
,
⋯
,
a
n
a_1,a_2,\cdots,a_n
a1,a2,⋯,an,似然函数定义为在参数
x
x
x下,数据集{
a
i
,
i
=
1
,
2
,
⋯
,
n
a_i,i=1,2,\cdots,n
ai,i=1,2,⋯,n}发生的概率,即
L
(
x
)
=
∏
i
=
1
n
p
(
a
i
;
x
)
L(x)=\prod_{i=1}^{n}p(a_i;x)
L(x)=i=1∏np(ai;x)
L
(
x
)
L(x)
L(x)实际上就是这
n
n
n个点的联合概率(联合密度),但此时自变变为了参数
x
x
x
那么现在就很明显了,参数的最大似然估计定义为
x
^
∈
arg max
x
∈
χ
L
(
x
)
\hat{x}{\in}\argmax_{x{\in}\chi}L(x)
x^∈x∈χargmaxL(x)
其实就是求能让
L
(
x
)
L(x)
L(x)最大的那个x,就是通过参数
x
x
x让发生这件事情的概率最大
其中
χ
\chi
χ为参数空间,假设最大似然估计存在,则求解最大似然估计本质上是在一族分布中找寻最有可能产生该样本的参数(跟我上面说的差不多),实际中,似然函数的对数的最大值更容易求解,即考虑最大化问题
max
x
∈
χ
l
(
x
)
=
ln
L
(
x
)
(3.1.10)
\max_{x{\in}{\chi}}l(x)={\ln}L(x)\tag{3.1.10}
x∈χmaxl(x)=lnL(x)(3.1.10)
因为
l
n
(
x
)
ln(x)
ln(x)是严格单调递增的,实际计算中我觉得最大的原因可能是因为相乘可以转化成相加,更容易操作
4.代价、损失、收益函数
运筹学中的很多问题就算极小化代价(损失)并极大化收益的过程,比如,我们在玩游戏的时候,每走一步都会有相应的分数奖励,我们期望自然是最后的得分越高越好,旅游时,我们希望在游览所有城市的情况下路径最短或者差旅费最少,在超市物品定价的时候,我们一般会根据价格与其对应可能的销售数,来确定一个最大利益的定价,在这些实际问题中,都可以写成优化问题的形式,其目标函数或者是最小化损失,或者是最大化收益,亦或者二者兼顾(风险最小,收益最大)
5.泛函,变分
物理、化学中很多问题都可以表述成能量极小化的形式,比如,在电子结构计算中,我们通过极小化原子和电子之间的相互作用能量来计算稳定态,一般来说,能量泛函是定义在函数空间上的,即相应优化问题的自变量是无穷维空间中的函数,我们可以通过变分来得到其相应的最优性条件等,实际中常用的另一种办法,是利用合适的离散化,将能量泛函的极小化问题从无穷维空间中拉回到有限空间中,从而得到相应问题的离散解,注意,不同的离散化一般对应于不同的目标函数以及不同的优化问题。
PS:这一块我也还没学,不太能深入理解
6.松弛问题
当原始问题不容易求解时,优化中一个常用的技巧是松弛,这一技巧的基本思想是:在保留原问题部分性质的条件下,使用简单的项替代目标函数中难以处理的项,进而使得问题更容易求解。例如,
l
0
l_0
l0范数是不可微且非凸的,由于
l
1
l_1
l1范数是
l
0
l_0
l0范数在某种程度上的近似,实际中往往用
l
1
l_1
l1范数代替
l
0
l_0
l0范数,因为
l
1
l_1
l1范数是凸 的,其相应模型的理论分析以及算法设计会更简单。
对于低秩优化问题,秩对应矩阵奇异值中非零元的个数,其也是非凸且不可微的,常用方式是将其用矩阵的核范数(矩阵奇异值组成的向量的
l
1
l_1
l1范数)代替,得到一个更容易处理的凸松弛项
另一种松弛的策略是例如处理一个
m
i
n
f
(
x
)
minf(x)
minf(x)问题,使用目标函数的一个下界
f
R
(
x
)
f_R(x)
fR(x)来替换
f
(
x
)
f(x)
f(x)进行求解,其中
f
R
(
x
)
f_R(x)
fR(x)应该满足:
(1)
f
R
(
x
)
≤
f
(
x
)
,
∀
x
∈
χ
f_R(x){\le}f(x),{\forall}x{\in}{\chi}
fR(x)≤f(x),∀x∈χ
(2)
f
R
(
x
)
f_R(x)
fR(x)具有简单结构
后续介绍的拉格朗日函数,实际上就可以看成是原问题目标函数的松弛
需要注意的是,松弛之后的问题未必与原问题等价,之前我们反复提到
l
0
l_0
l0范数可替换为
l
1
l_1
l1范数均是在一定条件下进行的,
l
2
l_2
l2范数一般不能作为
l
0
l_0
l0范数的松弛
3.1.2 约束的设计
1. 问题本身的物理性质
根据问题的实际意义,优化问题的决策变量需要满足各种各样的约束,比如,在电子结构设计中,我们假设轨道函数之间是相互正交的;还例如在飞机机翼的设计中,受机翼周围的气流影响,机翼形状的改变对应于一个微分方程,很多情况下还有非负约束。当线性或者一般的等式观测带有噪声或者需要更多的鲁棒性时,我们也将等时约束放宽为不等式约束。
2.等价代换
对于一个优化问题,如果目标函数是复合函数的形式,如:
min
x
f
(
A
x
+
b
)
\min_xf(Ax+b)
xminf(Ax+b)
我们经常引入变量
y
y
y和等式约束
y
=
A
x
+
b
y=Ax+b
y=Ax+b而考虑带约束的等价问题就变为:
min
x
f
(
y
)
s
.
t
.
y
=
A
x
+
b
\min_xf(y) \quad s.t.\quad y=Ax+b
xminf(y)s.t.y=Ax+b
对于优化问题
min
x
f
(
x
)
=
h
(
x
)
+
r
(
x
)
\min_xf(x) = h(x) + r(x)
minxf(x)=h(x)+r(x),我们往往引入
y
y
y以及约束
x
=
y
x=y
x=y,将其转化为
min
x
h
(
x
)
+
r
(
y
)
s
.
t
.
x
=
y
\min_xh(x)+r(y) \quad s.t. \quad x=y
xminh(x)+r(y)s.t.x=y
通过这种方式,将目标函数进行拆分,对于不等式约束,我们也可以通过引入松弛变量将其转变为等式约束和简单的非负或非正约束,例如考虑约束
c
(
x
)
≤
0
c(x){\le}0
c(x)≤0,引入
y
≥
0
y{\ge}0
y≥0,可将其等价转化为
c
(
x
)
+
y
=
0
,
y
≥
0
c(x)+y=0,y{\ge}0
c(x)+y=0,y≥0
另外,我们还可以利用上方图来得到问题的等价形式,对于优化问题
min
x
f
(
x
)
\min_xf(x)
minxf(x),根据上方图的定义,可知等价于优化问题
min
x
,
t
t
,
s
.
t
.
f
(
x
)
≤
t
\min_{x,t}t,\quad s.t. \quad f(x){\le}t
x,tmint,s.t.f(x)≤t
将优化问题的约束进行等价的转换有助于我们进行更方便的研究该问题的数学性质,等价转化后可能许多问题都会变成同一类型的问题,然后我们就可以找到统一的算法或模型去求解。
3.松弛
当原始优化模型的约束过于复杂时,我们同样可以采用松弛的技巧将难处理的约束替换为容易处理的约束。松弛后的问题的可行域会比原始问题大,例如可以用盒约束
x
∈
[
0
,
1
]
x{\in}[0,1]
x∈[0,1]来代替整数约束
x
∈
{
0
,
1
}
x{\in}\{0,1\}
x∈{0,1},或使用不等式约束
c
(
x
)
≥
0
c(x){\ge}0
c(x)≥0来代替等式约束
c
(
x
)
=
0
c(x)=0
c(x)=0
放大可行域要遵守两点基本原则:
(1)将原有约束进行简化,即松弛后的问题一定要更容易处理,要不然松弛的干嘛
(2)也别将可行域放的过大了,过分放大可行域会丢失原问题的关键信息,进行求解就没有意义了
有一个很自然的问题,松弛问题的解和原问题的解存在什么联系?一般情况下,松弛问题和原问题不等价,但在一定条件下可以证明松弛问题的解就是原问题的解。
3.2 回归分析
3.2.1 概述
一般的回归模型可以写成如下形式
b
=
f
(
a
)
+
ϵ
(3.2.1)
b=f(a)+\epsilon \tag{3.2.1}
b=f(a)+ϵ(3.2.1)
其中
a
∈
R
d
a{\in}R^d
a∈Rd为自变量,
b
∈
R
b{\in}R
b∈R为响应变量,
ϵ
∈
R
\epsilon{\in}R
ϵ∈R是模型的误差(噪声)。在实际问题中,我们一般只知道
a
a
a和
b
b
b的观测值,而误差是未知的,建立回归模型是利用
m
m
m个观测值(
a
i
,
b
i
a_i,b_i
ai,bi)求出
f
f
f的具体形式,然后通过新观测的自变量对响应变量做出预测。
如何选取 f f f是很重要的,诚然,我们当然可以做到一个模型让 f ( a i ) = b i f(a_i)=b_i f(ai)=bi各个都正确,但这样如果 f f f十分复杂的话,泛化能力会比较差,这就过拟合了。当然也不能差太多,一个好的模型需要兼顾两方面,在观测的数据上有较小的误差,同时又有简单的形式。
3.2.2 线性回归模型
设
(
x
i
,
y
i
)
,
i
=
1
,
2
,
⋯
,
m
(x_i,y_i),i=1,2,\cdots,m
(xi,yi),i=1,2,⋯,m为观测到的自变量和响应变量,且不同数据点相互独立,则对每个数据点(书里的自变量和响应变量老是写成a,b,w等形式,让我看的难受,我按照自己之前的习惯写了)这里非常数项系数弄成
n
−
1
n-1
n−1个是为了方便加上常数项后,总共为
n
n
n个好看一点
y
=
w
1
x
i
1
+
w
2
x
i
2
+
⋯
+
w
n
−
1
x
i
n
−
1
+
b
+
ϵ
,
i
=
1
,
2
,
⋯
,
m
y=w_{1}x_{i1}+w_2x_{i2}+\cdots+w_{n-1}x_{in-1}+b+{\epsilon},i=1,2,\cdots,m
y=w1xi1+w2xi2+⋯+wn−1xin−1+b+ϵ,i=1,2,⋯,m
其中
w
i
w_i
wi是需要确定的参数,输入特征加上常数项
x
i
=
(
x
i
1
)
T
x_i=(x_i\quad1)^T
xi=(xi1)T,令
w
=
(
w
1
,
w
2
,
⋯
,
w
n
−
1
,
b
)
T
∈
R
n
w=(w_1,w_2,\cdots,w_{n-1},b)^T{\in}R^n
w=(w1,w2,⋯,wn−1,b)T∈Rn,则线性回归的模型可以写成
y
i
=
w
T
x
i
+
ϵ
i
(3.2.2)
y_i=w^Tx_i+\epsilon_i\tag{3.2.2}
yi=wTxi+ϵi(3.2.2)
如果要写成矩阵形式呢,我们设
X
=
[
x
1
T
x
2
T
x
3
T
⋮
x
m
T
]
X=\left[ \begin{matrix} x_1^T\\ x_2^T\\ x_3^T\\ \vdots\\ x_m^T \end{matrix} \right]
X=
x1Tx2Tx3T⋮xmT
y
=
[
y
1
y
2
y
3
⋮
y
m
]
y=\left[ \begin{matrix} y_1\\ y_2\\ y_3\\ \vdots\\ y_m \end{matrix} \right]
y=
y1y2y3⋮ym
ϵ
=
[
ϵ
1
ϵ
2
ϵ
3
⋮
ϵ
m
]
\epsilon=\left[ \begin{matrix} \epsilon_1\\ \epsilon_2\\ \epsilon_3\\ \vdots\\ \epsilon_m \end{matrix} \right]
ϵ=
ϵ1ϵ2ϵ3⋮ϵm
(目前我不知道如何把他们并在一起,抱歉)
X
X
X是
m
∗
n
m*n
m∗n的矩阵,
y
和
ϵ
y和\epsilon
y和ϵ是
m
∗
1
m*1
m∗1,
w
w
w是
n
∗
1
n*1
n∗1则得到矩阵形式
y
=
X
w
+
ϵ
(3.2.3)
y=Xw+\epsilon\tag{3.2.3}
y=Xw+ϵ(3.2.3)
现在我们要考虑如何求解这个线性回归模式,我们这里就不想当然的去说让误差最小什么的,我们用最大似然来做,更有数学原理一点
假设
ϵ
i
\epsilon_i
ϵi是高斯白噪声,即
ϵ
i
∼
N
(
0
,
σ
2
)
\epsilon_i{\sim}N(0,\sigma^2)
ϵi∼N(0,σ2),那么根据
ϵ
i
=
y
i
−
w
T
x
i
\epsilon_i=y_i-w^Tx_i
ϵi=yi−wTxi,我们有
p
(
ϵ
i
)
=
p
(
y
i
∣
x
i
;
w
)
=
1
2
π
σ
2
e
x
p
(
−
(
y
i
−
w
T
x
i
)
2
2
σ
2
)
p(\epsilon_i)=p(y_i|x_i;w)=\frac{1}{\sqrt{2\pi{\sigma}^2}}exp(-\frac{(y_i-w^Tx_i)^2}{2{\sigma}^2})
p(ϵi)=p(yi∣xi;w)=2πσ21exp(−2σ2(yi−wTxi)2)
其对数似然函数为
l
(
x
)
=
l
n
∏
i
=
1
m
p
(
y
i
∣
x
i
;
w
)
=
−
m
2
l
n
(
2
π
)
−
m
l
n
σ
−
∑
i
=
1
m
(
y
i
−
w
T
x
i
)
2
2
σ
2
l(x)=ln{\prod_{i=1}^m}p(y_i|x_i;w)=-\frac{m}{2}ln(2\pi)-mln\sigma-\sum_{i=1}^m\frac{(y_i-w^Tx_i)^2}{2\sigma^2}
l(x)=lni=1∏mp(yi∣xi;w)=−2mln(2π)−mlnσ−i=1∑m2σ2(yi−wTxi)2
最大似然估计就是极大化似然函数嘛,去掉常数项后我们得到了如下最小二乘问题
min
x
∈
R
n
1
2
∣
∣
W
x
−
y
∣
∣
2
2
(3.2.4)
\min_{x{\in}R^n}\frac{1}{2}||Wx-y||_2^2\tag{3.2.4}
x∈Rnmin21∣∣Wx−y∣∣22(3.2.4)
注意,在构建最大似然估计的时候并不需要知道
ϵ
i
\epsilon_i
ϵi的方差
以上最重要的就是建立了求解回归模型和最小二乘法的联系,当假设误差是高斯白噪声时,你求解最小二乘解就是线性回归模型的解
当然如果
ϵ
i
\epsilon_i
ϵi不是服从高斯白噪声的话,求解线性回归模型的解就不是最小二乘模型的解了,可能在某些噪声下他是最小一乘问题的解等等,不知道这样说大家能否清楚明了
3.2.3 正则化线性回归模型
正则化在回归模型中的应用十分广泛,例如当数据集的特征数量大于样本数量时,问题3.2.4的解不唯一,需要借助正则项选出性质不同的解。
1.Tikhonov 正则化
为了平衡模型的拟合性质和解的光滑性,Tikhonov正则化或岭回归添加
l
2
l_2
l2范数平方为正则项,假设
ϵ
i
\epsilon_i
ϵi是高斯白噪声,则带
l
2
l_2
l2范数平方正则项的线性回归实际上是求解如下问题:
min
w
∈
R
n
1
2
∣
∣
W
x
−
y
∣
∣
2
2
+
μ
∣
∣
w
∣
∣
2
2
(3.2.6)
\min_{w{\in}R^n}\frac{1}{2}||Wx-y||_2^2+{\mu}||w||_2^2\tag{3.2.6}
w∈Rnmin21∣∣Wx−y∣∣22+μ∣∣w∣∣22(3.2.6)
由于正则项的存在,该问题的目标函数是强凸函数,实际上就是对范数较大的
w
w
w进行惩戒,另一种常见的变形是给定参数
σ
>
0
\sigma>0
σ>0,求解
min
w
∈
R
n
1
2
∣
∣
W
x
−
y
∣
∣
2
2
s
.
t
.
∣
∣
w
∣
∣
2
≤
σ
(3.2.7)
\min_{w{\in}R^n}\frac{1}{2}||Wx-y||_2^2 {\quad} s.t. {\quad} ||w||_2 {\le} \sigma \tag{3.2.7}
w∈Rnmin21∣∣Wx−y∣∣22s.t.∣∣w∣∣2≤σ(3.2.7)
当
μ
\mu
μ和
σ
\sigma
σ满足一定关系时,它们的解可以是相同的
2.Lasso问题及变形
如果希望得到的解是稀疏的,那么可以考虑添加
l
!
l_!
l!范数为正则项,LASSO回归问题如下
min
w
∈
R
n
1
2
∣
∣
W
x
−
y
∣
∣
2
2
+
μ
∣
∣
w
∣
∣
1
\min_{w{\in}R^n}\frac{1}{2}||Wx-y||_2^2+{\mu}||w||_1
w∈Rnmin21∣∣Wx−y∣∣22+μ∣∣w∣∣1
具体原因呢emm可以画个图去理解,LASSO模型起到了特征提取的功能
类似于问题3.2.7,也可以考虑问题
min
w
∈
R
n
1
2
∣
∣
W
x
−
y
∣
∣
2
2
s
.
t
.
∣
∣
w
∣
∣
1
≤
σ
(3.2.8)
\min_{w{\in}R^n}\frac{1}{2}||Wx-y||_2^2 {\quad} s.t. {\quad} ||w||_1 {\le} \sigma \tag{3.2.8}
w∈Rnmin21∣∣Wx−y∣∣22s.t.∣∣w∣∣1≤σ(3.2.8)
考虑到噪声
ϵ
\epsilon
ϵ的存在,还可以给定
v
>
0
v>0
v>0,考虑模型
min
w
∈
R
n
∣
∣
w
∣
∣
1
s
.
t
.
∣
∣
W
x
−
y
∣
∣
≤
v
(3.2.9)
\min_{w{\in}R^n}||w||_1{\quad}s.t.{\quad}||Wx-y||{\le}v\tag{3.2.9}
w∈Rnmin∣∣w∣∣1s.t.∣∣Wx−y∣∣≤v(3.2.9)
优化模型3.2.8和3.2.9本质思想是相似的,即“在控制误差的条件下使得
w
w
w是
l
1
l_1
l1范数尽量小”,但他们所属的优化问题种类实际上是不一样的,我们后面再第四章再做进一步说明
当然,如果
ϵ
{\epsilon}
ϵ不是高斯白噪声,则需要根据具体类型选择损失函数。
传统的LASSO问题要求
w
w
w是一个稀疏解,但实际问题的稀疏性可能有很多种表达。如果要求
w
w
w具有分组稀疏解,即
x
x
x的分量可分为G个组,每个组内的参数必须同时为0或者同时非0,则传统的LASSO问题的解无法满足这样的需求,为此人们提出了分组LASSO模型:
min
x
∈
R
n
1
2
∣
∣
A
x
−
b
∣
∣
2
2
+
μ
∑
i
=
1
G
n
l
∣
∣
w
I
l
∣
∣
2
(3.1.12)
\min_{x{\in}R^n}\frac{1}{2}||Ax-b||_2^2+{\mu}\sum_{i=1}^G\sqrt{n_l}||w_{I_l}||_2\tag{3.1.12}
x∈Rnmin21∣∣Ax−b∣∣22+μi=1∑Gnl∣∣wIl∣∣2(3.1.12)
其中
I
l
I_l
Il是属于第
l
l
l组变量的指标集且
∣
I
l
∣
=
n
l
,
∑
l
=
1
G
n
l
=
n
|I_l|=n_l,{\sum_{l=1}^G}n_l=n
∣Il∣=nl,l=1∑Gnl=n
当
n
l
=
1
,
l
=
1
,
2
,
⋯
,
G
n_l=1,l=1,2,\cdots,G
nl=1,l=1,2,⋯,G时,3.1.12就退化成传统LASSO问题,可以看到正则项是
∣
∣
x
I
l
∣
∣
||x_{I_l}||
∣∣xIl∣∣的
l
1
l_1
l1范数,分组LASSO问题把稀疏性从单个特征提升到了组的级别上,但不要求组内的稀疏性。
如果既要保证分组的稀疏性,也要保证单个特征的稀疏性,可以考虑将两种正则项结合起来,like this:
min
x
∈
R
n
1
2
∣
∣
A
x
−
b
∣
∣
2
2
+
μ
1
∑
i
=
1
G
n
l
∣
∣
w
I
l
∣
∣
2
+
μ
2
∣
∣
w
∣
∣
1
(3.1.13)
\min_{x{\in}R^n}\frac{1}{2}||Ax-b||_2^2+{\mu_1}\sum_{i=1}^G\sqrt{n_l}||w_{I_l}||_2+{\mu_2}||w||_1\tag{3.1.13}
x∈Rnmin21∣∣Ax−b∣∣22+μ1i=1∑Gnl∣∣wIl∣∣2+μ2∣∣w∣∣1(3.1.13)
对于某些实际问题,特征
w
w
w本身不是稀疏的,但其在某种变换下是稀疏的,因此我们也需要调整相应的正则项,一般的问题形式可以是:
min
w
∈
R
n
1
2
∣
∣
W
x
−
y
∣
∣
2
2
+
μ
∣
∣
F
w
∣
∣
1
(3.2.14)
\min_{w{\in}R^n}\frac{1}{2}||Wx-y||_2^2+\mu||Fw||_1\tag{3.2.14}
w∈Rnmin21∣∣Wx−y∣∣22+μ∣∣Fw∣∣1(3.2.14)
当然,这个变换是稀疏的也可以和
w
w
w本身是稀疏的结合起来,这样也可以得到一个稀疏解,且
w
w
w的分量之间的变化比较平缓。
3.3 逻辑回归
在分类问题中,输出变量取值于离散空间,对于二分类问题,预测变量只有两个问题,即-1,1,说在前面现在大家很常见的其实是label 0和1,那个我相信都司空见惯了,所以这里介绍一下-1和1的看看会不会更简便呢 ,我们介绍一个最经典也是最基本的分类模型:逻辑回归模型,给定特征
x
x
x,逻辑回归假设这个样本属于类别1的概率
p
(
1
∣
x
;
w
)
=
P
(
y
=
1
∣
x
;
w
)
=
θ
(
w
T
x
)
p(1|x;w)=P(y=1|x;w)=\theta(w^Tx)
p(1∣x;w)=P(y=1∣x;w)=θ(wTx)
其中
s
i
g
m
o
i
d
sigmoid
sigmoid函数
θ
(
z
)
=
1
1
+
e
x
p
(
−
z
)
\theta(z)=\frac{1}{1+exp(-z)}
θ(z)=1+exp(−z)1
那么属于类别-1的概率
p
(
−
1
∣
x
;
w
)
=
1
−
p
(
1
∣
x
;
w
)
=
θ
(
−
w
T
x
)
p(-1|x;w)=1-p(1|x;w)=\theta(-w^Tx)
p(−1∣x;w)=1−p(1∣x;w)=θ(−wTx)
因此,对于上述问题,我们可以简洁的写为
p
(
y
∣
x
;
w
)
=
θ
(
y
∗
w
T
x
)
p(y|x;w)=\theta(y*w^Tx)
p(y∣x;w)=θ(y∗wTx)
假设数据对
x
i
,
y
i
,
i
=
1
,
2
,
⋯
,
m
{x_i,y_i},i=1,2,\cdots,m
xi,yi,i=1,2,⋯,m之间独立同分布,则在给定
x
1
,
x
2
,
⋯
,
x
m
x_1,x_2,\cdots,x_m
x1,x2,⋯,xm情况下,
y
1
,
y
2
,
⋯
,
y
m
y_1,y_2,\cdots,y_m
y1,y2,⋯,ym的联合概率密度是
p
(
y
1
,
y
2
,
⋯
,
y
m
∣
x
1
,
x
2
,
⋯
,
x
m
;
w
)
=
∏
i
=
1
m
p
(
y
i
∣
x
i
;
w
)
=
1
∏
i
=
1
m
(
1
+
e
x
p
(
−
y
i
∗
w
T
x
)
)
p(y_1,y_2,\cdots,y_m|x_1,x_2,\cdots,x_m;w)=\prod_{i=1}^mp(y_i|x_i;w)=\frac{1}{\prod_{i=1}^m(1+exp(-y_i*w^Tx))}
p(y1,y2,⋯,ym∣x1,x2,⋯,xm;w)=i=1∏mp(yi∣xi;w)=∏i=1m(1+exp(−yi∗wTx))1
其实就是求这个概率最大嘛,然后取个
l
n
ln
ln,跟负号一起变一下,最大似然估计就是求解如下模型:
min
w
∈
R
n
∑
i
=
1
m
l
n
(
1
+
e
x
p
(
−
y
i
∗
w
T
x
)
)
(3.3.2)
\min_{w{\in}R^n}{\sum_{i=1}^m}ln(1+exp(-y_i*w^Tx))\tag{3.3.2}
w∈Rnmini=1∑mln(1+exp(−yi∗wTx))(3.3.2)
当然你也可以在这个模型后面加一系列的正则项,例如
min
w
∈
R
n
∑
i
=
1
m
l
n
(
1
+
e
x
p
(
−
y
i
∗
w
T
x
)
)
+
λ
∣
∣
w
∣
∣
2
2
(3.3.3)
\min_{w{\in}R^n}{\sum_{i=1}^m}ln(1+exp(-y_i*w^Tx))+{\lambda}||w||_2^2\tag{3.3.3}
w∈Rnmini=1∑mln(1+exp(−yi∗wTx))+λ∣∣w∣∣22(3.3.3)
如果数据对
x
i
,
y
i
{x_i,y_i}
xi,yi是由随机变量对
{
α
,
β
}
\{{\alpha},{\beta}\}
{α,β}产生的,那么损失函数可以写成均值形式
E
[
l
n
(
1
+
e
x
p
(
−
β
∗
α
T
w
)
)
]
E[ln(1+exp(-\beta*{\alpha^T}w))]
E[ln(1+exp(−β∗αTw))]
而结合一下正则项可以写成如下抽象形式:
min
w
∈
R
n
E
[
l
n
(
1
+
e
x
p
(
−
β
∗
α
T
w
)
)
]
+
λ
r
(
x
)
\min_{w{\in}R^n}E[ln(1+exp(-\beta*{\alpha^Tw}))]+{\lambda}r(x)
w∈RnminE[ln(1+exp(−β∗αTw))]+λr(x)
其中
r
(
x
)
r(x)
r(x)为正则项,
λ
\lambda
λ为正则参数,其实很多机器学习模型可以写成更一般的随机优化问题和它的离散版本
min
w
∈
R
n
f
(
x
)
+
λ
r
(
x
)
(3.3.5)
\min_{w{\in}R^n}f(x)+{\lambda}r(x)\tag{3.3.5}
w∈Rnminf(x)+λr(x)(3.3.5)
其中
f
(
x
)
=
E
[
F
(
x
,
ξ
)
]
f(x)=E[F(x,\xi)]
f(x)=E[F(x,ξ)]
具体是积分形式亦或者直接均值,看损失函数是连续的还是离散的
3.4 支持向量机
支持向量机(SVM)是另一种被广泛应用的二分类模型,我们先考虑一种简单情况,假定训练数据集是线性可分的,如图
很容易可以看出,给定线性可分的数据集后,满足划分要求的超平面一般不是唯一的,那比较理想的超平面是什么样的呢?他应该有以下特点:数据点距此平面的距离都比较远,这样会有好的鲁棒性。
空间中一点
x
x
x到超平面
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0的距离
d
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
2
d=\frac{|w^Tx+b|}{||w||_2}
d=∣∣w∣∣2∣wTx+b∣
对于一个样本点
(
x
i
,
y
i
)
,
y
∈
{
−
1
,
1
}
(x_i,y_i),y{\in}\{-1,1\}
(xi,yi),y∈{−1,1},如果他分类正确,那么
y
i
(
w
T
x
i
+
b
)
>
0
,
i
=
1
,
2
,
⋯
,
m
y_i(w^Tx_i+b)>0,i=1,2,\cdots,m
yi(wTxi+b)>0,i=1,2,⋯,m
为了寻找理想的超平面,我们希望两类数据中的点到该超平面
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0的最小距离尽量的大,可以建立如下的初始模型
max
w
,
b
,
γ
γ
s
.
t
.
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
2
≥
γ
,
i
=
1.2.
⋯
,
m
(3.4.1)
\max_{w,b,\gamma}\gamma{\quad}s.t.\frac{y_i(w^Tx_i+b)}{||w||_2}{\ge}{\gamma},i=1.2.\cdots,m\tag{3.4.1}
w,b,γmaxγs.t.∣∣w∣∣2yi(wTxi+b)≥γ,i=1.2.⋯,m(3.4.1)
γ
\gamma
γ就是所有样本点到超平面距离的最小值,目标是将其最大化
注意到3.4.1中的约束等价于
y
i
(
w
T
x
i
+
b
)
≥
γ
∣
∣
w
∣
∣
2
y_i(w^Tx_i+b){\ge}{\gamma}||w||_2
yi(wTxi+b)≥γ∣∣w∣∣2
现在大家可以想一下,
w
和
b
w和b
w和b按照相同的正倍数缩放,肯定不会影响我们整体的解把?就好比
w
=
1
,
b
=
2
w=1,b=2
w=1,b=2跟
w
=
2
,
b
=
4
w=2,b=4
w=2,b=4表示的直线是一样的,因此,如果我们不固定
∣
∣
w
∣
∣
2
||w||_2
∣∣w∣∣2的话,你求解出来会得到许多的表示同一条直线的解,这个是没必要的,只要能确保我们求出来的是那一条线即可。因此为了方便,我们强制取
∣
∣
w
∣
∣
2
=
1
γ
||w||_2=\frac{1}{\gamma}
∣∣w∣∣2=γ1,那么这个问题就等价于
min
x
,
y
1
2
∣
∣
w
∣
∣
2
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
⋯
,
m
(3.4.2)
\min_{x,y}\frac{1}{2}||w||_2^2{\quad}s.t.{\quad}y_i(w^Tx_i+b){\ge}1,i=1,2,\cdots,m\tag{3.4.2}
x,ymin21∣∣w∣∣22s.t.yi(wTxi+b)≥1,i=1,2,⋯,m(3.4.2)
我们称使得 y i ∗ ( w T x i + b ) = 1 y_i*(w^Tx_i+b)=1 yi∗(wTxi+b)=1成立的 x i x_i xi称为支持向量,不难发现,超平面的参数 w 、 b w、b w、b完全由支持向量决定。
当线性可分的假设不成立时,我们对每个数据点引入非负松弛变量
ξ
\xi
ξ,允许有误分的点,则3.4.1中约束变为
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
2
≥
γ
(
1
−
ξ
i
)
,
ξ
≥
0
,
i
=
1
,
2
,
⋯
,
m
\frac{y_i(w^Tx_i+b)}{||w||_2}{\ge}{\gamma}(1-{\xi_i}),{\quad}\xi{\ge}0,i=1,2,\cdots,m
∣∣w∣∣2yi(wTxi+b)≥γ(1−ξi),ξ≥0,i=1,2,⋯,m
这里用
γ
(
1
−
ξ
i
)
{\gamma}(1-{\xi_i})
γ(1−ξi)来表示误分点的距离,显然,误分点不宜太大,我们通过松弛变量的函数
∑
i
=
1
m
ξ
i
{\sum_{i=1}^m}\xi_i
∑i=1mξi来控制,最终我们可以得到
min
w
,
b
,
ξ
1
2
∣
∣
x
∣
∣
2
2
+
μ
∑
i
=
1
m
ξ
i
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
,
ξ
i
≥
0
,
i
=
1
,
2
,
⋯
,
m
(3.4.3)
\min_{w,b,{\xi}}\frac{1}{2}||x||_2^2+{\mu}{\sum_{i=1}^m}{\xi_i}{\quad}s.t.{\quad}{y_i(w^Tx_i+b)}{\ge}1-{\xi},{\xi_i{\ge}0,i=1,2,\cdots,m}\tag{3.4.3}
w,b,ξmin21∣∣x∣∣22+μi=1∑mξis.t.yi(wTxi+b)≥1−ξ,ξi≥0,i=1,2,⋯,m(3.4.3)
其中
μ
{\mu}
μ是惩罚系数,增大
μ
{\mu}
μ将增大对误分类的惩罚
模型3.4.3也等价于无约束优化问题
min
w
,
b
1
2
∣
∣
x
∣
∣
2
2
+
μ
∑
i
=
1
m
m
a
x
{
1
−
y
i
(
w
T
x
i
+
b
)
,
0
}
(3.4.4)
\min_{w,b}\frac{1}{2}||x||_2^2+{\mu}{\sum_{i=1}^m}max\{1-y_i(w^Tx_i+b),0\}\tag{3.4.4}
w,bmin21∣∣x∣∣22+μi=1∑mmax{1−yi(wTxi+b),0}(3.4.4)
我们看到$max{1-y_i(w^Tx_i+b),0}$是对不满足不等式
y
i
(
w
T
x
i
+
b
)
y_i(w^Tx_i+b)
yi(wTxi+b)的量的惩罚,你如果不满足的话,那么他就是一个正数,满足的话他就是0,这也可以看成是3.4.2的罚函数法,虽然
m
a
x
{
z
,
0
}
max\{z,0\}
max{z,0}不可微,但其简单的形式也给算法设计提供了很多可能,也可以看出引入不同罚函数能构造出不同的SVM模型。
此外,当训练数据中有冗余特征时,人们也考虑将
∣
∣
x
∣
∣
2
2
||x||_2^2
∣∣x∣∣22换成
l
1
l1
l1范数
3.5 概率图模型
概率图模型是概率论中一个重要的概念,它是一种利用图结构来描述多元随机变量之间条件独立关系的概率模型。
这里给定一个n维空间中的一个随机向量
X
=
(
X
1
,
X
2
,
X
3
,
⋯
,
X
n
)
X=(X_1,X_2,X_3,\cdots,X_n)
X=(X1,X2,X3,⋯,Xn),其对应的联合概率为
n
n
n元函数,根据条件概率有
P
(
X
=
x
)
=
∏
k
=
1
n
P
(
X
k
=
x
k
∣
X
1
=
x
!
,
⋯
,
X
k
−
1
=
x
k
−
1
)
P(X=x)={\prod_{k=1}^n}P(X_k=x_k|X_1=x_!,\cdots,X_{k-1}=x_{k-1})
P(X=x)=k=1∏nP(Xk=xk∣X1=x!,⋯,Xk−1=xk−1)
假设每个变量
X
i
,
i
=
1
,
2
,
⋯
,
n
X_i,i=1,2,\cdots,n
Xi,i=1,2,⋯,n为离散的,并且每个有
m
m
m个取值,那么在没有任何独立性假设的情况下,我们需要
(
m
n
−
1
)
(m^n-1)
(mn−1)个参数才能确定其概率分布,我看到这的时候想了蛮久的,不知道为什么是这个数,这样,我们先举一个例子把(如果明白的可以跳过)
假设
X
1
,
X
2
,
X
3
X_1,X_2,X_3
X1,X2,X3三个变量是二值(0,1)分布,在不知道其互相依赖关系时,求概率分布的话
P
(
X
=
x
)
=
P
(
X
1
=
x
1
)
P
(
X
2
=
x
2
∣
X
1
=
x
1
)
P
(
X
3
=
x
3
∣
X
1
=
x
1
,
X
2
=
x
2
)
P(X=x)=P(X_1=x_1)P(X_2=x_2|X_1=x_1)P(X_3=x_3|X_1=x_1,X_2=x_2)
P(X=x)=P(X1=x1)P(X2=x2∣X1=x1)P(X3=x3∣X1=x1,X2=x2)
大家这时候想一下,如果我们要知道X的概率分布,我们要知道多少个参数(概率)呢?
要知道
P
(
X
1
=
0
)
P(X_1=0)
P(X1=0)和
P
(
X
1
=
1
)
P(X_1=1)
P(X1=1)
P
(
X
2
=
0
∣
X
1
=
0
)
,
P
(
X
2
=
1
∣
X
1
=
0
)
,
P
(
X
2
=
0
∣
X
1
=
0
)
,
P
(
X
2
=
1
∣
X
1
=
1
)
P(X_2=0|X_1=0),P(X_2=1|X_1=0),P(X_2=0|X_1=0),P(X_2=1|X_1=1)
P(X2=0∣X1=0),P(X2=1∣X1=0),P(X2=0∣X1=0),P(X2=1∣X1=1)
P
(
X
3
=
0
∣
X
1
=
0
,
X
2
=
0
)
,
P
(
X
3
=
1
∣
X
1
=
0
,
X
2
=
0
)
,
.
.
.
.
.
.
.
.
.
.
P(X_3=0|X_1=0,X_2=0),P(X_3=1|X_1=0,X_2=0),..........
P(X3=0∣X1=0,X2=0),P(X3=1∣X1=0,X2=0),..........
这里我们乍一看很多对把,但是其实你只要知道
P
(
X
1
=
0
)
P(X_1=0)
P(X1=0)那自然就知道
P
(
X
1
=
1
)
P(X_1=1)
P(X1=1)了吧?所以对于
P
(
X
1
=
x
1
)
P(X_1=x_1)
P(X1=x1)我们只需要一个参数
那按照这个思想,对于
P
(
X
2
=
x
2
∣
X
1
=
x
1
)
P(X_2=x_2|X_1=x_1)
P(X2=x2∣X1=x1)总共需要两个参数,
P
(
X
3
=
x
3
∣
X
1
=
x
1
,
X
2
=
x
2
)
P(X_3=x_3|X_1=x_1,X_2=x_2)
P(X3=x3∣X1=x1,X2=x2)需要四个参数,总共需要1+2+4=7个参数
好那现在我们来推一下,对于
n
n
n元函数,每个
X
i
X_i
Xi有
m
m
m个取值,为什么需要
m
n
−
1
m^n-1
mn−1个参数呢?
依照刚刚的想法,
P
(
X
1
=
x
1
)
P(X_1=x_1)
P(X1=x1)需要
m
−
1
m-1
m−1个参数,
P
(
X
2
=
x
2
∣
X
1
=
x
1
)
P(X_2=x_2|X_1=x_1)
P(X2=x2∣X1=x1)需要
(
m
−
1
)
∗
m
(m-1)*m
(m−1)∗m个参数
P
(
X
n
∣
X
1
=
x
1
,
⋯
,
X
n
−
1
=
x
n
−
1
)
P(X_n|X_1=x_1,\cdots,X_{n-1}=x_{n-1})
P(Xn∣X1=x1,⋯,Xn−1=xn−1)需要
(
m
−
1
)
m
n
−
1
(m-1)m^{n-1}
(m−1)mn−1个参数
那么总共就需要
m
−
1
+
(
m
−
1
)
m
+
⋯
+
(
m
−
1
)
m
n
−
1
m-1+(m-1)m+\cdots+(m-1)m^{n-1}
m−1+(m−1)m+⋯+(m−1)mn−1,提个
(
m
−
1
)
(m-1)
(m−1),然后等比求和一下(这个总会吧),然后就可以得到
m
n
−
1
m^n-1
mn−1啦
说这么多其实就是为了算出假设在知道某些变量的情况下,会有变量之间独立,回到第一个例子,假设已知
X
2
X_2
X2时,
X
1
X_1
X1和
X
3
X_3
X3独立,则有
P
(
X
=
x
)
=
P
(
X
1
=
x
1
)
P
(
X
2
=
x
2
∣
X
1
=
x
1
)
P
(
X
3
=
x
3
∣
X
1
=
x
1
,
X
2
=
x
2
)
P(X=x)=P(X_1=x_1)P(X_2=x_2|X_1=x_1)P(X_3=x_3|X_1=x_1,X_2=x_2)
P(X=x)=P(X1=x1)P(X2=x2∣X1=x1)P(X3=x3∣X1=x1,X2=x2)
=
P
(
X
1
=
x
1
)
P
(
X
2
=
x
2
∣
X
1
=
x
1
)
P
(
X
3
=
x
3
∣
X
1
=
x
1
)
=P(X_1=x_1)P(X_2=x_2|X_1=x_1)P(X_3=x_3|X_1=x_1)
=P(X1=x1)P(X2=x2∣X1=x1)P(X3=x3∣X1=x1)
按照我们之前说的,一共只需要五个参数(少了两个)就能确定该联合分布
当概率模型中变量比较多时,其相应的依赖关系也会比较复杂,这时,图模型可以帮助我们更直观的了解随机变量之间的条件独立关系,我们接下来介绍无向图模型,也称为马尔可夫随机场或马尔可夫网络,其利用无向图来描述一组具有马尔可夫性质的随机变量的联合分布。
定义(马尔可夫随机场):对于随机向量
X
(
X
1
,
X
2
,
⋯
,
X
n
)
X(X_1,X_2,\cdots,X_n)
X(X1,X2,⋯,Xn)和有
n
n
n个节点的无向图
G
=
(
V
,
E
)
G=(V,E)
G=(V,E),其中
V
V
V表示节点集合且
V
=
{
X
1
,
X
2
,
⋯
,
X
n
}
V=\{X_1,X_2,\cdots,X_n\}
V={X1,X2,⋯,Xn},
E
E
E表示节点之间边的集合,如果
(
G
,
X
)
(G,X)
(G,X)满足局部马尔可夫性质,即给定变量
X
k
X_k
Xk邻居的取值,其与其他的变量独立
P
(
X
k
=
x
k
∣
X
−
k
)
=
P
(
X
k
=
x
k
∣
X
N
(
k
)
)
P(X_k=x_k|X_{-k})=P(X_k=x_k|X_{N(k)})
P(Xk=xk∣X−k)=P(Xk=xk∣XN(k))
其中
X
−
k
X_{-k}
X−k表示除了
X
k
X_k
Xk外对其他随机变量的集合,
X
N
(
k
)
X_{N(k)}
XN(k)表示
X
k
X_k
Xk的邻居集合,即和
X
k
X_k
Xk有边直接相连的随机变量的集合,那么我们称
(
G
,
X
)
(G,X)
(G,X)为一个马尔可夫随机场
假设概率图模型中的随机向量服从多元高斯分部
N
(
μ
,
Σ
)
N(\mu,\Sigma)
N(μ,Σ),令
Θ
=
Σ
−
1
\Theta={\Sigma^{-1}}
Θ=Σ−1为协方差矩阵
Σ
\Sigma
Σ的逆矩阵,并称之为精度矩阵,我们有如下命题
θ
i
j
=
0
⇔
给定
X
k
(
k
≠
i
,
j
)
,则
X
i
和
X
j
是独立的
{\theta}_{ij}=0{\Leftrightarrow}给定X_k(k{\not=}i,j),则X_i和X_j是独立的
θij=0⇔给定Xk(k=i,j),则Xi和Xj是独立的
意思就是,精度矩阵中的元素
θ
i
j
\theta_{ij}
θij为0则无向图中的节点
X
i
X_i
Xi和
X
j
X_j
Xj之间不存在直接相连的边,即在给定邻居信息的情况下,
X
i
X_i
Xi和
X
j
X_j
Xj条件独立,如果
θ
i
j
≠
0
{\theta_{ij}}{\not=}0
θij=0,则表示
X
i
X_i
Xi和
X
j
X_j
Xj之间有直接相连的边,因此,精度矩阵给出了无向图的结构信息和分布的参数信息。
在实际中,我们关心如何从数据中学出精度矩阵,利用精度矩阵的似然函数,我们可以得到一个凸优化问题
具体的,给定
n
n
n维高斯随机向量
Y
=
(
Y
1
,
Y
2
,
⋯
,
Y
n
)
∼
N
(
μ
,
Σ
)
,
μ
∈
R
n
,
Σ
∈
S
+
+
n
Y=(Y_1,Y_2,\cdots,Y_n){\sim}N({\mu},{\Sigma}),{\mu}{\in}R^n,{\Sigma}{\in}S^n_{++}
Y=(Y1,Y2,⋯,Yn)∼N(μ,Σ),μ∈Rn,Σ∈S++n的一组实际取值
{
y
1
,
y
2
,
⋯
,
y
n
}
(
y
1
=
(
y
1
,
y
2
,
⋯
,
y
n
)
T
)
\{y^1,y^2,\cdots,y^n\}(y^1=(y_1,y_2,\cdots,y_n)^T)
{y1,y2,⋯,yn}(y1=(y1,y2,⋯,yn)T),可以得到其经验协方差矩阵为
S
=
1
m
∑
i
=
1
m
(
y
i
−
y
ˉ
)
(
y
i
−
y
ˉ
)
T
S=\frac{1}{m}\sum_{i=1}^m(y^i-\bar{y})(y^i-\bar{y})^T
S=m1i=1∑m(yi−yˉ)(yi−yˉ)T
其中
y
ˉ
=
1
m
∑
i
=
1
m
y
i
\bar{y}=\frac{1}{m}\sum_{i=1}^my^i
yˉ=m1∑i=1myi为样本均值。
这里一些没有基础的同学可能会问什么是经验协方差,我的理解呢就是通过一组数据,来推断出样本大概的协方差矩阵长什么样子。
关于精度矩阵
X
X
X的对数似然函数为
l
(
x
)
=
l
n
d
e
t
(
X
)
+
T
r
(
X
S
)
,
X
≻
0
l(x)=lndet(X)+Tr(XS),X\succ0
l(x)=lndet(X)+Tr(XS),X≻0
其中
X
≻
0
X{\succ}0
X≻0表示自变量
X
X
X在正定矩阵空间取值,通过最大化对数似然函数
max
X
≻
0
l
(
X
)
(3.5.1)
\max_{X{\succ0}}l(X)\tag{3.5.1}
X≻0maxl(X)(3.5.1)
我们可以得到精度矩阵
X
X
X的估计,这种方式得到的解往往不是稀疏的,也就意味着相应的概率图是全连接的,随机变量之间的相关性过密,解释性可能很差,假设概率图中的边不是全连接的,我们建立如下的改进模型:
max
X
≻
0
l
(
X
)
−
λ
∣
∣
X
∣
∣
1
(3.5.2)
\max_{X{\succ}0}l(X)-{\lambda}||X||_1{\tag{3.5.2}}
X≻0maxl(X)−λ∣∣X∣∣1(3.5.2)
其中
λ
>
0
\lambda>0
λ>0是用来控制稀疏度的参数,上述模型得到的稀疏解可以用来估计高维随机变量之间的条件独立性
除了利用似然函数来建模以外,我们还可以直接从损失函数加正则项的思想来直接设计优化问题,根据精度矩阵的定义,真实的精度矩阵
Θ
=
Σ
−
1
\Theta={\Sigma}^{-1}
Θ=Σ−1,通过抽样的方式可以得到
Σ
\Sigma
Σ的估计
S
S
S,也就是上述所提到的经验协方差矩阵,我们的目标是估计
Σ
−
1
\Sigma^{-1}
Σ−1,且使其具有稀疏结构,因此可设计如下优化问题
min
X
∣
∣
S
X
−
I
∣
∣
+
λ
∣
∣
X
∣
∣
1
,
s
.
t
.
X
≻
0
(3.5.3)
\min_{X}||SX-I||+{\lambda}||X||_1,{\quad}s.t.X{\succ}0\tag{3.5.3}
Xmin∣∣SX−I∣∣+λ∣∣X∣∣1,s.t.X≻0(3.5.3)
其中
∣
∣
⋅
∣
∣
||·||
∣∣⋅∣∣可以是任意一种范数(较为常用的为
F
F
F范数或者
l
!
l_!
l!范数)
X
≻
0
X{\succ}0
X≻0表示
X
X
X在半正定矩阵空间中取值,每一项的含义是很明显的,第一项表示希望
X
X
X尽可能为
S
S
S的逆矩阵,
∣
∣
X
∣
∣
1
||X||_1
∣∣X∣∣1是要求
X
X
X本身稀疏,
X
≻
0
X{\succ}0
X≻0是保证了求得是精度矩阵是半正定的,我们也可以给出问题的一个变形
min
X
∣
∣
X
∣
∣
1
s
.
t
.
∣
∣
S
X
−
I
∣
∣
≤
σ
,
X
⪰
0
(3.5.4)
\min_{X}||X||_1{\quad}s.t.||SX-I||{\le}\sigma,X{\succeq}0\tag{3.5.4}
Xmin∣∣X∣∣1s.t.∣∣SX−I∣∣≤σ,X⪰0(3.5.4)
满足一定误差范围内的
X
X
X寻找
l
1
l_1
l1范数最小的解,当然如果
σ
\sigma
σ过小,可行域可能是空集
3.6 相位恢复
相位恢复是信号处理中的一个重要问题,它是从信号在某个变换域的幅度测量值来恢复信号。
问题背景如下:将待测物体(信号)放置在指定位置,用投射光照射,经过衍射成像,可以由探测器得到其振幅分布,我们需要从该振幅分布中恢复出原始信号的信息。由
F
r
a
u
n
h
o
f
e
r
Fraunhofer
Fraunhofer衍射方程可知,探测器处的光场可以被观测物体的傅立叶变换很好的接近。但是因为实际中的探测器只能测量光的强度,因此我们只能得到振幅信息。
信号的相位通常包含丰富的信息,下图的第一列给初了两个图片Y和S,分别对他们做二维离散傅立叶变换
F
F
F得到
F
(
Y
)
F(Y)
F(Y)和
F
(
S
)
F(S)
F(S),由于变换后的图片
F
(
Y
)
F(Y)
F(Y)是复数矩阵,它可以由模长
∣
F
(
Y
)
∣
|F(Y)|
∣F(Y)∣和相位
p
h
a
s
e
(
F
(
Y
)
)
phase(F(Y))
phase(F(Y))来表示,即
F
(
Y
)
=
∣
F
(
Y
)
∣
⊙
p
h
a
s
e
(
F
(
Y
)
)
F(Y)=|F(Y)|{\odot}phase(F(Y))
F(Y)=∣F(Y)∣⊙phase(F(Y))
其中
∣
F
(
Y
)
∣
|F(Y)|
∣F(Y)∣表示对每个元素取模长,运算
⊙
\odot
⊙表示矩阵对应元素相乘,现在交换
Y
Y
Y和
S
S
S的相位,但保留模长,然后做傅立叶逆变换
F
−
1
F^{-1}
F−1,即
S
^
=
F
−
1
(
∣
F
(
Y
)
∣
⊙
p
h
a
s
e
(
F
(
S
)
)
)
Y
^
=
F
−
1
(
∣
F
(
S
)
∣
⊙
p
h
a
s
e
(
F
(
Y
)
)
)
\hat{S}=F^{-1}(|F(Y)|{\odot}phase(F(S))) \\ \hat{Y}=F^{-1}(|F(S)|{\odot}phase(F(Y)))
S^=F−1(∣F(Y)∣⊙phase(F(S)))Y^=F−1(∣F(S)∣⊙phase(F(Y)))
可以看到,
S
^
\hat{S}
S^基本上是
S
S
S的形状,而
Y
^
\hat{Y}
Y^基本上是
Y
Y
Y的形状,这个实验告诉我们相位信息可能比模长信息更重要。
(信号处理这一块我实在是不是很熟,我只能尽量的理解)
在实际应用中,我们不一定使用傅立叶变换对原始信号进行采样处理,给定复信号
x
=
(
x
0
,
x
1
,
⋯
,
x
n
−
1
)
T
∈
C
n
x=(x_0,x_1,\cdots,x_{n-1})^T{\in}C^n
x=(x0,x1,⋯,xn−1)T∈Cn以及采样数
m
m
m,我们可以逐分量定义如下线性变换:
(
A
(
x
)
)
k
=
a
ˉ
k
x
,
k
=
1
,
2
,
⋯
,
m
(A(x))_k=\bar{a}_kx,k=1,2,\cdots,m
(A(x))k=aˉkx,k=1,2,⋯,m
其中
a
k
∈
C
n
a_k{\in}C^n
ak∈Cn为已知复向量。
a
ˉ
\bar{a}
aˉ应该是表示复向量的共轭转置,容易验证当该线性变换
A
A
A为离散傅立叶变换时,
a
k
a_k
ak有如下形式:
a
k
=
(
e
2
π
i
k
−
1
n
t
)
t
=
0
n
−
1
,
k
=
1.2.
⋯
,
m
a_k=(e^{2\pi{i}\frac{k-1}{n}t})^{n-1}_{t=0},k=1.2.\cdots,m
ak=(e2πink−1t)t=0n−1,k=1.2.⋯,m
针对一般形式的
a
k
a_k
ak,如果将其对应的振幅观测记为
b
k
b_k
bk。那么相位恢复问题本质上是求解如下二次方程组:
b
k
2
=
∣
a
ˉ
k
T
x
∣
2
,
k
=
1
,
2
,
⋯
,
m
(3.6.1)
b_k^2=|\bar{a}_k^Tx|^2,k=1,2,\cdots,m\tag{3.6.1}
bk2=∣aˉkTx∣2,k=1,2,⋯,m(3.6.1)
这里需要怎么理解呢,上面又说这个
b
k
b_k
bk应该对应的是一个变换,这里说他是振幅,那我的理解就是,这个可以被检测到的振幅,是可以通过原始信号变换来的,这个振幅应该也有一个对应的
a
k
a_k
ak,或者每个不同种类的信号都有一个自己关于振幅的
a
k
a_k
ak?我也不是很理解,我暂时只能这样理解勉强可以解释的通。
虽然求解线性方程组很简单,但是求解二次方程组问题却是NP难问题,下面我们介绍两种将问题转化为可解优化模型的做法
1.最小二乘模型
比较常见的是将问题(3.6.1)转化为非线性最小二乘问题
min
x
∈
C
n
∑
i
=
1
m
(
∣
a
ˉ
i
T
x
∣
2
−
b
i
2
)
2
(3.6.2)
\min_{x{\in}C^n}\sum_{i=1}^{m}(|\bar{a}_i^Tx|^2-b_i^2)^2\tag{3.6.2}
x∈Cnmini=1∑m(∣aˉiTx∣2−bi2)2(3.6.2)
这个模型的目标是可微的四次函数,是非凸优化问题,相较于问题(3.6.1),模型(3.6.2)能够更好地处理观测中带有的噪声。在实际中,我们也常常构造以下非光滑模型
min
x
∈
C
n
∑
i
=
1
m
(
∣
a
ˉ
i
T
x
∣
−
b
i
)
2
(3.6.3)
\min_{x{\in}C^n}\sum_{i=1}^{m}(|\bar{a}_i^Tx|-b_i)^2\tag{3.6.3}
x∈Cnmini=1∑m(∣aˉiTx∣−bi)2(3.6.3)
假设
a
i
a_i
ai和
x
x
x均为实的,我们可以得到相应的实数情况下的模型:
min
x
∈
C
n
∑
i
=
1
m
(
∣
<
a
ˉ
i
,
x
>
∣
2
−
b
i
2
)
2
(3.6.4)
\min_{x{\in}C^n}\sum_{i=1}^{m}(|<\bar{a}_i,x>|^2-b_i^2)^2\tag{3.6.4}
x∈Cnmini=1∑m(∣<aˉi,x>∣2−bi2)2(3.6.4)
min
x
∈
C
n
∑
i
=
1
m
(
∣
<
a
ˉ
i
,
x
>
∣
−
b
i
)
2
(3.6.5)
\min_{x{\in}C^n}\sum_{i=1}^{m}(|<\bar{a}_i,x>|-b_i)^2\tag{3.6.5}
x∈Cnmini=1∑m(∣<aˉi,x>∣−bi)2(3.6.5)
因为相位恢复问题在实际中有重要应用,如何寻找模型(3.6.2)-(3.6.5)的全局最优解引起了人们的广泛关注
2.相位提升
相位提升(phase lift)是求解相位恢复问题的另一种方法,前面剃刀,相位恢复问题本质的困难在于处理二次方程组(3.6.1),注意到
∣
a
ˉ
i
T
x
∣
2
=
a
ˉ
i
T
x
x
ˉ
a
i
=
T
r
(
x
x
ˉ
T
a
i
a
ˉ
i
T
)
|\bar{a}_i^Tx|^2=\bar{a}_i^Tx\bar{x}a_i=Tr(x\bar{x}^Ta_i\bar{a}_i^T)
∣aˉiTx∣2=aˉiTxxˉai=Tr(xxˉTaiaˉiT)
令
X
=
x
x
ˉ
T
X=x{\bar{x}}^T
X=xxˉT,方程组3.6.1 可以转化为
T
r
(
X
a
i
a
ˉ
i
T
)
=
b
i
2
,
i
=
1
,
2
,
⋯
,
m
,
X
⪰
0
,
r
a
n
k
(
X
)
=
1
(3.6.6)
Tr(Xa_i\bar{a}_i^T)=b_i^2,i=1,2,\cdots,m,X{\succeq0},rank(X)=1\tag{3.6.6}
Tr(XaiaˉiT)=bi2,i=1,2,⋯,m,X⪰0,rank(X)=1(3.6.6)
如果
X
=
x
x
ˉ
T
X = x\bar{x}^T
X=xxˉT,那么
X
X
X 的秩(rank)通常是1。
这是因为 X X X 是由一个列向量 x x x 与其共轭转置 x ˉ T \bar{x}^T xˉT 相乘得到的。这种矩阵的性质称为秩-1矩阵。秩-1矩阵的秩总是1,因为所有的列都是其他列的线性组合。
具体地,如果 x x x 是一个非零复向量,那么 X X X 就是一个秩-1矩阵,其秩为1。如果 x x x 是零向量,那么 X X X 也是零矩阵,其秩为0。
总之, X = x x ˉ T X = x\bar{x}^T X=xxˉT 的秩通常是1,除非 x x x 是零向量。
如果方程组(3.6.1)有
x
x
x存在,那么
X
=
x
x
ˉ
T
X=x\bar{x}^T
X=xxˉT就为方程组(3.6.6)的解,对于方程组(3.6.6),我们考虑优化问题
min
X
r
a
n
k
(
X
)
s
.
t
.
T
r
(
X
a
i
a
i
ˉ
=
b
i
2
)
,
i
=
1
,
2
,
⋯
,
m
X
⪰
0
(3.6.7)
\min_Xrank(X) \\ s.t.{\quad}Tr(Xa_i\bar{a_i}=b_i^2),i=1,2,\cdots,m\tag{3.6.7} \\ X{\succeq}0
Xminrank(X)s.t.Tr(Xaiaiˉ=bi2),i=1,2,⋯,mX⪰0(3.6.7)
因为秩一解存在,所以问题(3.6.7)的最优解的秩最多是1。对其作秩一分解
X
=
x
x
ˉ
T
X=x\bar{x}^T
X=xxˉT。那么
c
x
,
c
∈
C
cx,c{\in}C
cx,c∈C且
∣
c
∣
=
1
|c|=1
∣c∣=1就为方程(3.6.1)的解。
以上是论述说明了问题(3.6.7)和相位恢复问题(3.6.1)是等价的,形式上的区别在于问题(3.6.7)的自变量为矩阵
X
X
X,把向量变量转化为矩阵变量的操作又被称为“提升”,使用提升的目的是将约束从关于向量
x
x
x的二次函数转化为关于矩阵
X
X
X的线性函数。
因为秩优化的计算复杂性,我们采用核范数对其进行松弛,得到如下优化问题
min
X
T
r
(
X
)
s
.
t
.
T
r
(
X
a
i
a
i
ˉ
T
)
=
b
i
2
,
i
=
1
,
2
,
⋯
,
m
,
X
⪰
0
(3.6.8)
\min_{X}Tr(X) \\ s.t.{\quad}Tr(Xa_i\bar{a_i}^T)=b_i^2,i=1,2,\cdots,m,X{\succeq}0\tag{3.6.8}
XminTr(X)s.t.Tr(XaiaiˉT)=bi2,i=1,2,⋯,m,X⪰0(3.6.8)
其中
T
r
(
X
)
=
∣
∣
X
∣
∣
Tr(X)=||X||
Tr(X)=∣∣X∣∣,来自于矩阵
X
X
X的半正定性,注意,问题(3.6.8)的目标函数变成了线性函数,它唯一非线性的部分是半正定约束
X
⪰
0
X{\succeq}0
X⪰0,当问题(3.6.8)存在唯一解时,原始相位恢复问题就可以通过秩一分解得到,有文章证明了当
m
≥
c
0
n
l
n
n
)
m{\ge}c_0nlnn)
m≥c0nlnn)(
c
0
c_0
c0为一个问题相关的常数),问题(3.6.8)的解在高概率下是秩一的。
PS:秩一分解(Rank-One Decomposition)是一种将矩阵表示为一个秩为1矩阵的线性组合的分解方法。在线性代数中,对于一个矩阵,秩一分解的形式通常为:
A
=
u
v
T
A=uv^T
A=uvT
其中,
A
A
A 是一个矩阵,
u
u
u 和
v
v
v 是向量,
⋅
T
\cdot^T
⋅T 表示向量的转置。这种分解的关键特点是,
A
A
A 可以表示为两个向量的外积。向量
u
u
u 和
v
v
v 称为分解的基向量,它们的外积
u
v
T
uv^T
uvT 是一个秩为1的矩阵。
3.7 主成分分析
主成分分析是数据处理和降维的一个重要技巧,它提供了一种将高维空间的点在低维子空间表达的方法给定数据
a
i
∈
R
p
,
i
=
1
,
2
,
⋯
,
n
a_i{\in}R^p,i=1,2,\cdots,n
ai∈Rp,i=1,2,⋯,n其中
n
n
n表示样本数,定义
A
=
[
a
1
,
a
2
,
⋯
,
a
n
]
A=[a_1,a_2,\cdots,a_n]
A=[a1,a2,⋯,an],不失一般性,我们假设
A
A
A的行和为0(否则可以都减去该行的平均值,数据的相对结构不会变)。
主成分分析的思想是寻找样本点方差最大的若干方向构成的子空间,之后将数据点投影到该子空间内来实现降维。
PS:其实主成分这里有更通俗易懂的理解方式,这里可能偏专业数学一点了。
假设我们想要将
R
p
R^p
Rp中的数据点集
{
a
i
}
i
=
1
n
\{a_i\}_{i=1}^n
{ai}i=1n,投影到
R
p
R^p
Rp的一个
d
d
d维子空间(
d
<
p
d<p
d<p)中,记
X
∈
R
p
∗
d
X{\in}R^{p*d}
X∈Rp∗d为该子空间的标准正交基形成的列正交矩阵
PS:(“记 X ∈ R p ∗ d X{\in}R^{p*d} X∈Rp∗d为该子空间的标准正交基形成的列正交矩阵”:在这个低维子空间中,我们可以用一个矩阵 X X X 来表示这个子空间的标准正交基, X X X是一个 p × d p\times d p×d的矩阵,其中 p p p是原始数据的维度, d d d是目标子空间的维度。这个矩阵 X X X的列是正交的,它们构成了子空间的一组基。这个矩阵 X X X通常被称为"投影矩阵",可以用来将原始数据点投影到低维子空间中。)
数据点 a i a_i ai在 X X X形成的子空间的投影为 P X ( a i ) = X X T a i P_X(a_i)=XX^Ta_i PX(ai)=XXTai,到这一步我就一直不是很理解了,想了好久了也不懂, X X T XX^T XXT是 p × p p \times p p×p的矩阵, a i a_i ai是 p × 1 {p \times 1} p×1(或者 1 ∗ p 1*p 1∗p?),我是不懂他到头来是怎么投影到 d d d维的,如果有大佬看到这里可以给我解答一下,谢谢!!
那么我下面还是说一下我之前理解的PCA把
首先,我们想要描述向量,都需要一组基,给出向量在基所在直线上的各个投影值就好了对叭,如果二维向量想降为一维,就找一组基。如下图,我们可以把这个二维数据点都投影到 x 1 x_1 x1上
问题是,这个基我们需要满足什么?想要保留更多的信息,我们就要让数据尽可能的分散,那么怎样表示数据分散呢?没错!方差
我们就可以将上述问题转化为找一组基,使所有数据变换到这组基上时,方差最大
对于二维降为一维问题来说,我们只需要找到使方差最大的方向就可以了,不过对于更高维,还有一个问题需要解决,如果你将三维降为二维,首先我们希望找到一个方向使方差最大,这样就完成了第一个方向的选择,继而我们选择第二个方向。
如果此时我们还单纯的选方差最大的方向,很明显,这个方向会和第一个方向几乎重合在一起,显然这样的维度是没有用的,从直观上说,这两个方向尽可能的表示更多的信息,我们是不希望他们之间存在线性相关的,因为相关意味着两个方向肯定会重复表示相同的信息。
数学上两个字段(属性)的协方差表示其相关性,由于之前我们已经说了,让每个字段(属性)的均值为0,则
c
o
v
(
a
,
b
)
=
1
m
∑
i
=
1
m
a
i
b
i
cov(a,b)=\frac{1}{m}\sum_{i=1}^ma_ib_i
cov(a,b)=m1i=1∑maibi
现在所说的一切都是前提要领,还没到PCA的部分
假设我们只有
a
a
a和
b
b
b两个属性,我们将他们按行组成矩阵
X
X
X
X
=
(
a
1
a
2
⋯
a
n
b
1
b
2
⋯
b
n
)
X=\begin{pmatrix} {a_{1}}&{a_{2}}&{\cdots}&{a_{n}}\\ {b_{1}}&{b_{2}}&{\cdots}&{b_{n}}\\ \end{pmatrix}
X=(a1b1a2b2⋯⋯anbn)
我们用
X
X
X乘上
X
T
X^T
XT,并乘上系数1\m:
1
m
X
X
T
=
(
1
m
∑
i
=
1
m
a
i
2
1
m
∑
i
=
1
m
a
i
b
i
1
m
∑
i
=
1
m
a
i
b
i
1
m
∑
i
=
1
m
b
i
2
)
\frac{1}{m}XX^T=\begin{pmatrix} {\frac{1}{m}\sum_{i=1}^ma_i^2}&\frac{1}{m}\sum_{i=1}^ma_ib_i\\ {\frac{1}{m}\sum_{i=1}^ma_ib_i}&{\frac{1}{m}\sum_{i=1}^mb_i^2}\\ \end{pmatrix}
m1XXT=(m1∑i=1mai2m1∑i=1maibim1∑i=1maibim1∑i=1mbi2)
奇迹出现了!,这个就叫做协方差矩阵,这个矩阵对角线上的两个元素分别是两个属性的方差,而其他元素则是
a
a
a和
b
b
b的协方差
那么我们现在是怎么希望的呢,我们希望,变换后的数据假设为
Y
Y
Y,那么希望
Y
Y
T
=
(
a
0
0
0
0
b
0
0
0
0
c
0
0
0
0
d
)
YY^T=\begin{pmatrix} {a}&0&0&0\\ 0&{b}&0&0\\ 0&0&c&0\\ 0&0&0&d\\ \end{pmatrix}
YYT=
a0000b0000c0000d
是一个类似于这样的方阵把?类似噢,具体大小不定,就是希望只有对角线上有元素,其他元素都为0。
设原始数据矩阵
X
∈
R
p
∗
n
X{\in}R^{p*n}
X∈Rp∗n对应的协方差矩阵为C,而
P
∈
R
d
∗
p
P{\in}R^d*p
P∈Rd∗p是一组基(降维后)按行组成的矩阵,设
Y
=
P
X
∈
R
d
∗
n
Y=PX{\in}R^{d*n}
Y=PX∈Rd∗n,则
Y
Y
Y为
X
X
X对
P
P
P作基变换后的数据,设
Y
Y
Y的协方差矩阵为
D
D
D,我们推导一下
D
D
D和
C
C
C的关系
D
=
1
m
Y
Y
T
=
1
m
(
P
X
)
(
P
X
)
T
=
1
m
P
X
X
T
P
T
=
P
(
1
m
X
X
T
)
P
T
=
P
C
P
T
D=\frac{1}{m}YY^T=\frac{1}{m}(PX)(PX)^T=\frac{1}{m}PXX^TP^T=P(\frac{1}{m}XX^T)P^T=PCP^T
D=m1YYT=m1(PX)(PX)T=m1PXXTPT=P(m1XXT)PT=PCPT
现在我们就懂了,我们要找的
P
P
P就是能让原始协方差矩阵对角化的
P
P
P。换句话说,优化目标变成了寻找一个矩阵
P
P
P,满足
P
C
P
T
PCP^T
PCPT是一个对角矩阵,并且对角元素从大到小依次排列,前
K
K
K行就是我们要降到
K
K
K维的基,由此,我们应该感谢数学家的先行。
由上文知道,协方差矩阵是一个对称矩阵,在线性代数上,实对称矩阵有一系列非常好的性质
(1)实对称矩阵不同特征值对应的特征向量必然正交
(2)设特征矩阵
λ
{\lambda}
λ重数为
r
r
r,则必然存在
r
r
r个线性无关的特征向量对应于
λ
\lambda
λ,因此可以将这
r
r
r个特征向量单位正交化
由上述可知,一个
n
n
n行
n
n
n列的实对称矩阵一定可以找到
n
n
n个单位正交特征向量,设这
n
n
n个特征向量为
e
1
,
e
2
,
⋯
,
e
n
e_1,e_2,\cdots,e_n
e1,e2,⋯,en,记
E
=
(
e
!
,
e
2
,
⋯
,
e
n
)
E=(e_!,e_2,\cdots,e_n)
E=(e!,e2,⋯,en)
对协方差矩阵有如下结论:
E
T
C
E
=
A
=
[
λ
!
0
⋯
0
0
λ
2
⋯
0
⋮
⋮
⋱
⋮
0
0
⋯
λ
n
]
E^TCE=A=\begin{bmatrix} {\lambda_!}&{0}&{\cdots}&{0}\\ {0}&{\lambda_2}&{\cdots}&{0}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {0}&{0}&{\cdots}&{\lambda_n}\\ \end{bmatrix}
ETCE=A=
λ!0⋮00λ2⋮0⋯⋯⋱⋯00⋮λn
那么我们已经找到我们需要的矩阵
P
P
P了,
P
=
E
T
P=E^T
P=ET
P
P
P是协方差矩阵的特征向量单位化后按行排列出的矩阵,其中每一行都是
C
C
C的一个特征向量,如果设
P
P
P按照
A
A
A的特征值从大到小,将特征向量从上到下排列,用前
K
K
K行组成的矩阵乘以原始矩阵
X
X
X,就可以得到降维后的数据矩阵
Y
Y
Y了
到这里我是有疑问的,通过这些特征值选出来的方向,除了能保证各个方向之间是正交的,只能保证相对的大小把?不能保证说他这个方向是在所有的方向里方差是最大的,然后我去搜了一下,有数学推导能证明特征向量就是能使得方差最大的方向。
借用知乎这篇文章吧:https://zhuanlan.zhihu.com/p/338322144
总结一下:假设有
m
m
m条
n
n
n维数据
(1)将原始数据按列组成
n
n
n行
m
m
m列矩阵
X
X
X
(2)将
X
X
X的每一行(代表一个属性字段)进行0均值化
(3)求出协方差矩阵
C
=
1
m
X
X
T
C={\frac{1}{m}}XX^T
C=m1XXT
(4)求出协方差矩阵的特征值以及对应的特征向量
(5)将特征向量对应特征值大小从上到下排列成矩阵,取前
k
k
k行组成矩阵
P
P
P
(6)
Y
=
P
X
Y=PX
Y=PX即为降维到
k
k
k维后的数据
3.8 矩阵分离问题
矩阵分离问题也是一类重要的低秩矩阵计算问题,给定矩阵
M
∈
R
m
×
n
M{\in}R^{m \times n}
M∈Rm×n,我们希望把它分解成低秩矩阵
X
X
X和稀疏矩阵
S
S
S,使得
X
+
S
=
M
X+S=M
X+S=M,同时尽量使得矩阵
X
X
X的秩和稀疏矩阵
S
S
S的
l
0
l_0
l0范数都比较小,因此得到以下模型
min
X
,
S
∈
R
m
×
n
r
a
n
k
(
X
)
+
μ
∣
∣
S
∣
∣
0
s
.
t
.
X
+
S
=
M
(3.8.1)
\min_{X,S{\in}R^{m \times n}}rank(X)+{\mu}||S||_0 \\ s.t.{\quad} X+S=M\tag{3.8.1}
X,S∈Rm×nminrank(X)+μ∣∣S∣∣0s.t.X+S=M(3.8.1)
由于模型中含有矩阵的秩和
l
0
l_0
l0范数,难以直接求解。所以我们用核范数代替秩,用最小化
l
1
l_1
l1范数限制噪声矩阵的稀疏性,(核范数:矩阵的奇异值相加)
min
X
,
S
∈
R
m
×
n
∣
∣
X
∣
∣
∗
+
μ
∣
∣
S
∣
∣
1
s
.
t
.
X
+
S
=
M
(3.8.2)
\min_{X,S{\in}R^{m \times n}}||X||_*+{\mu}||S||_1 \\ s.t. {\quad} X+S=M \tag{3.8.2}
X,S∈Rm×nmin∣∣X∣∣∗+μ∣∣S∣∣1s.t.X+S=M(3.8.2)
矩阵分离问题有时候也称为鲁棒主成分分析(robust PCA),目标是在图像处理中最大限度地去除原有数据中的噪声,寻找数据在低维空间上的最佳投影。
限制考虑视频分割问题,它是指把人们感兴趣的对象从视频场景中提取出来。例如分割出一段视频中的静止部分。视频的每一帧实际上是一个静态图片,虽然每幅图片中的静止对象可能受到光照变化、遮挡、平移、噪声等影响,造成不同图片之间有细微差别,但是不可否认的是他们彼此之间具有高度的相似性。如果把所有图片中的静止部分表示成一个矩阵,并且由于静止对象具有一定的内部结构,由静止对象构成的矩阵一定是低秩的(各行或者各列线性相关),类似的,视频中的动态部分以及其他背景因素可以看作噪声,那么我们的任务就变成将视频含有的信息矩阵分解为含有内部结构的低秩矩阵和稀疏噪声矩阵之和。
我们选用实际的视频数据来具体说明,假设视频共有
n
n
n帧,每帧(每幅图片)共有
m
m
m个像素,我们将每幅图片表示成一个列向量,这些列向量放在一起就形成了给定的矩阵
M
M
M,由于大堂的背景在每一帧里基本上是一样的,所以他对应
M
M
M的低秩部分,令
μ
=
1
2
m
\mu=\frac{1}{2\sqrt{m}}
μ=2m1对模型(3.8.2)进行求解,可以得到矩阵
X
X
X和
S
S
S分别对面第二列和第三列
3.9 字典学习
正如各种各样的知识都可以用一本字典里的字通过排列组合来表达一样,字典学习的目的就是将已有的大规模的数据集进行压缩,找到蕴藏在这些数据点背后的最基本的原理。
考虑一个
m
m
m维空间中的数据集
a
i
i
=
1
n
,
a
i
∈
R
m
{a_i}_{i=1}^n,a_i{\in}R^m
aii=1n,ai∈Rm,假定每个
a
i
a_i
ai都是由同一个字典生成的,且生成后的数据带有噪声,因此字典学习的线性模型可以表示为
a
=
D
x
+
e
a=Dx+e
a=Dx+e
这里
D
∈
R
m
×
k
D{\in}R^{m \times k}
D∈Rm×k是某个未知的字典,他的每一列
d
i
d_i
di是字典的一个基向量;
x
x
x是字典中基的系数,同样的未知的;
e
e
e是某种噪声。这里要怎么理解呢,我们设想一下,假设你有1000000张图片,每张图片是1010的也就是100维的,然后现在通过字典学习,你可以找到
k
k
k张100维(1010)的图片,当做字典,通过这
k
k
k张图片去表示这1000000张图片。
字典学习模型不同于多元线性回归模型,原因是我们需要在字典学习模型中同时解决字典
D
D
D和系数
x
x
x(每个图片都有自己对应的
x
x
x)。
一般来说,数据的维度 m m m和字典里基向量的数量 k k k是远小于观测数 n n n的,如果 k < m k<m k<m,我们称字典 D D D是不完备的,如果 k > m k>m k>m,我们称字典 D D D是超完备的, k = m k=m k=m对应的字典不能对表示带来任何的提高,实际中不考虑。(过完备的字典一般来说 x x x都是稀疏的,这样也有优点)文章来源:https://www.toymoban.com/news/detail-683781.html
当
e
e
e是高斯白噪声时,可以定义损失函数
f
(
D
,
X
)
=
1
2
n
∣
∣
D
X
−
A
∣
∣
F
2
f(D,X)=\frac{1}{2n}||DX-A||_F^2
f(D,X)=2n1∣∣DX−A∣∣F2
其中
A
=
[
a
1
,
a
2
,
⋯
,
a
n
]
∈
R
m
×
n
A=[a_1,a_2,\cdots,a_n]{\in}R^{m \times n}
A=[a1,a2,⋯,an]∈Rm×n为所有观测数据全体,
X
=
[
x
1
,
x
2
,
⋯
,
x
n
]
∈
R
k
×
n
X=[x_1,x_2,\cdots,x_n]{\in}R^{k \times n}
X=[x1,x2,⋯,xn]∈Rk×n是所有基系数全体
在实际计算中,我们并不要求
D
D
D的列是正交的(意思就是不需要基向量是线性无关的),因此一个样本点
a
i
a_i
ai可能存在多种不同的表示,这种冗余性给表示引入了稀疏性,这意味着字典是超完备的。稀疏性还可以帮助我们快速确定样本点由哪几个基向量表示的,进而提高计算速度,具体地,在
e
e
e为高斯白噪声的条件下,我们定义稀疏编码损失函数
f
(
D
,
X
)
=
1
2
n
∣
∣
D
X
−
A
∣
∣
F
2
+
λ
∣
∣
X
∣
∣
1
f(D,X)=\frac{1}{2n}||DX-A||_F^2+\lambda{||X||_1}
f(D,X)=2n1∣∣DX−A∣∣F2+λ∣∣X∣∣1
其中
λ
\lambda
λ为正则化参数,其大小用来控制
X
X
X的稀疏度,我们注意到在
f
(
D
,
X
)
f(D,X)
f(D,X)中有乘积项
D
X
DX
DX,显然
f
f
f的极小值点处必有
∣
∣
X
∣
∣
1
→
0
||X||_1{\rightarrow}0
∣∣X∣∣1→0(因为假设
(
D
,
X
)
(D,X)
(D,X)为问题的最小值点,那么
f
(
c
D
,
1
c
X
)
<
f
(
D
,
X
)
,
∀
c
>
1
f(cD,\frac{1}{c}X)<f(D,X),\forall{c}>1
f(cD,c1X)<f(D,X),∀c>1),这应该很好理解吼,
D
X
DX
DX乘积不会变,但是
X
X
X变小了,正则项那一块就变小了,导致
f
(
D
,
X
)
f(D,X)
f(D,X)就变小了。
因此,这里的保稀疏的正则项并没有意义,一个改进的做法是要求字典中的基向量模长不能太大。
最终得到的优化问题为
min
D
,
X
∣
∣
D
X
−
A
∣
∣
F
2
+
λ
∣
∣
X
∣
∣
1
s
.
t
.
∣
∣
D
∣
∣
F
≤
1
(3.9.1)
\min_{D,X}||DX-A||_F^2+\lambda{||X||_1} \\ s.t. {\quad} ||D||_F{\le}1 \tag{3.9.1}
D,Xmin∣∣DX−A∣∣F2+λ∣∣X∣∣1s.t.∣∣D∣∣F≤1(3.9.1)
这样的话就不可能一直
c
D
cD
cD这样的变了,就限制了D不能太大,从而X就不会太小文章来源地址https://www.toymoban.com/news/detail-683781.html
到了这里,关于最优化:建模、算法与理论(优化建模)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!