`
hulianwang2014
  • 浏览: 694199 次
文章分类
社区版块
存档分类
最新评论
  • bcworld: 排版成这样,一点看的欲望都没有了
    jfinal

非负二次规划的乘性更新法则

 
阅读更多

本文原文为《Multiplication Updates for Nonnegative Quadratic Programming》,第一作者为Fei Sha,他是大牛Michael I. Jordan的学生。

由于本文有三十多页且算法收敛性的证明篇幅较长、公式较多在此只简单介绍算法部分。

一、介绍

在神经计算与统计学习问题中,往往会出现非负的约束。比如最大间隔分类器SVM、贝叶斯网络中的密度估计、非负矩阵分解中的降维以及声学中回声的消除技术。在这些优化求解中是很难有直接的一个解析式能一步就算出最优值的,而这时候就会出现很多迭代算法,一步步地让迭代出来的值靠近最真实的解。

比如对于最小化目标函数F(v)的求解中,最简单一般的算法便是加性迭代梯度下降(GD,Gradient Descent):

(1)

然而上式会出现不满足非负限制的情况,这时候我们可以将迭代法则改为:

(2)

也就是说,只要一出现为负的情况,就全部取为0。注意到上俩式中的学习速率要启发式地设置为正数,而其大小会让求解过程的速度变慢(当太小)甚至会影响到更新能收敛还是在解附近震荡(当太大)。所以我们称其为启发式参数设置,就是说在各种问题中没有一个统一标准,要根据实际问题设置其大小。

对于非负的约束,有一个更为合适的更新法则叫做指数梯度(EG,Exponentiated Gradient )为:

(3)

上式我们可以看到乘子是为非负的,只要初始值为非负,则可以保证整个迭代更新过程的非负性。若将两边同时取对数。则更新变为:

(4)

值得注意的是,如果优化问题的解是稀疏的,那么乘性更新求解的速度比加性更新要快很多。

在本文中,提出了一种最优解是被限制在非负的轴对齐区域的二次规划凸问题的乘性更新。这个更新规则虽然简单,但是能使目标函数值下降并单调收敛至全局最优点。

现在给出本文问题的形式,带非负约束的二次规划问题:

(5)

此处假设矩阵A为对称以及严格正定的,所以公式(5)是有界且其最优化是凸问题。特别地,它只有一个全局最优解而没有局部的最小解。针对此问题,已有简单的更新法则为:

(6)

此项更新有一个默认条件就是A中的元素必须是为非负的。然而实际中A不一定是非负的,公式(6)的分母在为负的情况下对于v的更新便会违反了约束规则。本文将公式(6)推广至范围更广的非负二次规划问题的求解中,提出新的更新规则。同时证明了该更新法则能单调收敛于全局最优点。事实上,很多算法收敛性的证明都是依赖于对辅助函数的构造,如期望最大化算法(EM)以及非负矩阵分解算法(NMF)等,该文也是如此。但是单纯的辅助函数构造还只能证明更新收敛于一个局部的静态点。于是该文还运用了一个特殊的结构来证明其收敛于全局最优点。下面会介绍其算法。

二、算法

本文只假设A为半正定矩阵。对于A中可能同时存在正负元素的情况,我们将其分解为两部分:

(7)

于是有,目标函数也被分解为三个部分:

(8)

其中:

(9)

我们记:

(10)

由此可以得到的一个乘性更新法则如下:

(11)

说到这里就可以直接上程序。

clear all
clc

M = 30;
NumoIter = 100;

%create A that is symmetric and semipositive

 a = 10*(rand(M,M) -0.5.*ones(M,M));
 A = a'*a;
% eig(A)  if A is symmetric and semipositive 
% all the elements of eig(A) should be positive

% elementes of A are bounded in [-0.5,0.5] both negative and positive
index_positive = (A>0);
index_negative = (A<0);
Apositive = A.*index_positive;
Anegative = -A.*index_negative;

% rand('state',100); 
b = 10*(rand(1,M) - 0.5*ones(1,M));
% elementes of b are bounded in [-0.5,0.5]both negative and positive
% rand('state',1001); 
v = abs(rand(M,1));

F_v=[];
for iter = 1:NumoIter
   a = Apositive*v;
   c = Anegative*v;
    for i = 1:M
    v(i) = v(i)*(-b(i)+sqrt(b(i)^2+4*a(i)*c(i)))/(2*a(i));
    end
    
    F_v(iter) = (1/2)*v'*A*v + b*v;
end

% figure;
plot(F_v);
grid on;
xlabel('Number of iterations');
ylabel('Values of cost function');

其中,有需要注意的是矩阵A的生成。之前不懂什么叫A是半正定的,以为是A中的元素要大于等于0就可以(太年轻了)。生成的A矩阵去算总是看着代价函数乱跑。查了一下才知道半正定不是这个意思。关于正定与半正定可参见维基百科。其中提到“Inlinear algebra, asymmetricn×nrealmatrixMis said to bepositive definiteifzTMzis positive for any non-zero columnvectorzofnreal numbers. HerezTdenotes thetransposeofz.”“For any real matrixA, A^T A is a positive semi-definite matrix.” 程序中对于A的生成就是采用此方法。

分享到:
评论

相关推荐

    论文研究-等式约束凸二次规划解析的新型神经网络方法.pdf

    针对不同于传统基于梯度法的递归神经网络定义一种基于标量范数取值的非负能量函数,通过定义一种基于向量取值的不定无界的误差函数,构建了一种能实时求解具有线性等式约束的凸二次规划问题。基于Simulink仿真平台的...

    一种受限非负矩阵分解方法

    法目标函数的迭代规则 ,并证明迭代规则的收敛性.与非负矩阵分解方法相比 ,受限非负矩阵分 解方法能获取尽可能正交的潜在语义.实验表明 ,受限非负矩阵分解方法在信息检索上的精度优 于非负矩阵分解方法.

    非自治时滞微分方程非负周期解的存在性

    非自治时滞微分方程非负周期解的存在性,向占宏,,利用Leray-Schauder不动点定理,研究了一类非自治时滞微分方程的非负周期解 的存在性.得到了一些新的结果并改进了相应的结论.

    论文研究-基于非平滑非负矩阵分解语音增强.pdf

    针对非负矩阵分解稀疏性不够,通过引入平滑矩阵调节字典矩阵和系数矩阵的稀疏性,提出基于非平滑非负矩阵分解语音增强算法。算法通过语音和噪声的先验字典学习构造联合字典矩阵;然后通过非平滑非负矩阵分解更新带噪...

    具有均匀协方差结构的误差方差非负二次估计的可容许性* (2010年)

    在二次损失函数下,研究了线性模型中具有均匀协方差结构的误差方差非负二次估计的可容许性,给出了设计矩阵为1向量时,估计可容许的充要条件。

    非负整数高精度加减乘除运算

    本程序实现两个非负整数的加减乘除四则高精度运算; 有比较详细的注释,测试了10组随机数据并未出现运行时错误。 如果发现程序有bug,欢迎提出指正!

    生长曲线模型中协差阵的一致最小方差非负二次无偏估计* (1998年)

    在准椭球等高分布下给出了生长曲线模型中tr(CV)的一致最小方差非负二次无偏估计存在及任一个非负二次估计成为一致最小方差非负二次无偏估计的充要条件。

    任意大非负整数的任意大非负整数次方

    任意大非负整数的任意大非负整数次方,c++实现

    非负张量分解及应用

    本文着重研究三阶非负张量分解问题,回顾三阶张量的非负分解模 型(NTVl,阐述了算法的思想及实现过程。接着,从张量投影的角度出发,建 立了基于张量投影的非负分解模型(NTPM),阐述了模型的想法,并给出了相 应的...

    基于乘性规则的支持向量机 (2007年)

    已有的乘性规则仅适 于非负二次凸规划问题,推导出了求解支持向量机中混合约束二次凸规划的乘性规则,利用这一乘性规则极大地提 高了优化速度。该方法提供了一种直接优化的方法,其所有变量可以并行迭代,乘性规则可以...

    非负矩阵分解算法的代码

    人脸识别的一个关键性的问题是特征抽取,即如何从众多的特征中寻找最有效的特征。子空间分析法是一种有效的特征抽取方法,而本文所研究讨论的非负矩阵分解(Non-negative Matrix Factorization, NMF)具有一些独特的...

    论文研究-保持拓扑性非负矩阵分解法在人脸识别的应用.pdf

    提出了一种用于人脸识别新的保持拓扑性非负矩阵分解方法。该方法通过将梯度距离最小化来发现人脸模式内在的流型结构。与PCA、LDA和最初的NMF方法相比较,保持拓扑性非负矩阵分解法发现一种嵌入来保留局部拓扑信息,...

    非负矩阵分解程序

    网上下载的非负矩阵分解程序,可以下载运行试试

    非负矩阵分解matlab代码(全)

    非负矩阵分解的matlab代码,内容全,适用于各种信号的分析

    非负矩阵分解MATLAB程序

    程序基于板仓-斋藤的非负矩阵分解语音分解

    非负矩阵图像特征提取(python)

    2、按照上述的乘法更新规则更新(即(1)和(2)式)W和H矩阵,迭代进行第二步 3、输出W矩阵,W矩阵的每一列即为一个特征,即对应的一个数字。将每一列重新展开为一个64*64的矩阵,转置后绘制出来,可看到对应的8个数字...

    结合HPSS的非负矩阵音乐分离方法_熊梅.pdf

    为解决非负矩阵分解(NMF)在音乐分离中适应性差且过度依赖学习样本的问题,提出结合谐和与击打声源分离 (HPSS)的非负矩阵音乐分离方法。在高分辨率下对音乐信号进行HPSS分离,保留谐和声源并利用灵活...

Global site tag (gtag.js) - Google Analytics