本文介绍到标准单纯型集(The Standard Simplex Set)的投影算法。

1. 简介

在优化算法当中,我们的目标问题常常带有各种各样的限制条件。例如在某项投资活动中,我们想计算投入为多少时收益最大,那么我们的投入应该是被限制为大于等于零的,而不能为负数,并且我们能投资的最大金额也是有限制的。为了得到符合条件的解,我们将不合条件的“待选解”投影(可看作一种调整方式)到条件限制的范围内是我们做带限制优化的一个重要方法。本文中,我们介绍两种如何将维空间中一点投影到标准单纯型(The Standard Simplex)上的方法。具体地,我们讨论将点(其中,且对, )投影到集合

中。限制为的优化问题在许多应用中都有出现。例如,在量化投资中,我们常常需要计算投资组合的权重。假设有支股票,我们用维空间中的一点来表示投资的权重,即表示我们将在第支股票投资的比例。因此,我们需要将限制在集合中。限制为集合的优化问题也出现在微分方程和最优传输等领域中。在第一个算法中,我们找到两个集合和,使得。然后,我们通过交替投影到集合和上,来实现投影到上的目的。接着,我们改变度量距离的方式,探讨归一化操作,即,如何解释为点到集合的基于Bregman距离的投影。我们需要提醒的是,交替投影的算法并不是解决这一问题的最高效的办法。有兴趣的读者可以参考下面论文及其相关论文:https://arxiv.org/pdf/1101.6081.pdf。 2. 交替投影 这里,我们定义集合和,使得

并且

我们注意到。我们先分别考虑到与的投影,然后讨论投影到的交替投影。

2.1 到的投影

观察的定义,我们可知是以向量为法向量的超平面(超平面可以想象成二维平面在高维中的拓展。想象成二维平面即可)。将点投影到上相当于将投影在定义的超平面上。根据投影的定义,投影点为超平面中离点最近的点。因此,为下列优化问题的最优解:

这里,我们并不直接求解上述优化问题,而是通过几何的的办法来求。假设为投影点。那么向量平行于超平面的法线,即

同时,因为点在超平面内,我们有

让。所以,对于所有,。将上式带入,我们得到

我们得到。因此,满足公式:

我们得到了的表达式。但从可以看出,我们并不能保证公式求得的在集合中。我们需要考虑到的投影。

2.2 到的投影

根据的定义,我们可知包含了维空间中的正象限围成的区域。如在时,为下图中与轴中值为正的部分围成的阴影区域。

因此,将投影到办法相对简单,只需要将小于的分量变成即可。即,。我们注意到将投影到上并不能保证在超平面上。

2.3 交替投影

现在我们考虑将投影到集合。我们注意到并且我们已经知道了如何将分别投影到和。我们用交替投影,将投影到。具体地,我们将投影到上,得到点。再将投影到上,得到点。接下来,我们将点再投影到上,依次重复,直到得到的投影点收敛。

下列为Matlab代码,实现将随机生成的  维正向量  交替投影到集合  的过程。

%这里考虑10维的点,即n=10n=10;%生成一个随机的正向量prand('seed',5);p=1+rand(1,n);%normal: C0的法向量normal=ones(1,n);error=10^3;threshold=10^(-12);%定义中间变量p0=p; p1=p;while error>threshold  %投影到C0上  p1=p0-1/n*(sum(p0)-1)*normal;  %投影到C1上  p1=max(p1,0);  %计算误差  error=sum((p1-p0).^2);  p0=p1;endpstar=p0

3. 基于Bregman距离的投影

这一节,我们假设点的所有分量满足,。让我们回到投影的定义。将投影到意思是在中找到一个点,使得到点的距离比点到上其它点的距离都近。在前面的讨论中,例如问题中,我们使用欧几里得距离。因此,我们需要找到,使得其为下列优化问题的解:

这里,我们使用Bregman距离来代替欧几里得距离。具体地,我们将基于可微的凸函数的Bregman距离,记做,定义为

其中,为的导数,与为维空间中的点,并且,。因为是凸函数,根据凸函数的定义,对任意满足,的点, ,我们有。并且。因此,可以看成与之间的距离。基于定义的Bregman距离,我们将投影到上,亦即,我们试图找到使得其为下列问题的最小值点:

这里,我们取,我们有。因此,

化简后,问题等价于

注意到中,函数保证了在最小值点处,最小值点的坐标值为非负数。所以,我们可以省略掉  的限制。因此,等价于下列优化问题:

为求解,我们利用拉格朗日乘子法。我们定义函数,

在最小值点处,我们有,。所以,我们有,进而,我们有。所以,。因此,问题的最小值点满足

从中可以看出,归一化操作,即,可以解释为点到集合的基于Bregman距离的投影。

如何将一个向量投影到一个平面上_到标准单纯型集合的投影算法相关推荐

  1. 如何将一个向量投影到一个平面上_向量积的种类以及表示方法

    向量积 目录: 向量积的定义. 向量积的点乘. 向量积的叉乘. 1.向量积,数学中又称外积.叉积,物理中称矢积.叉乘,是一种在向量空间中二元运算.与点积不同,它的运算结果是一个向量而不是一个标量.并且 ...

  2. 如何将一个向量投影到一个平面上_向量的各种积

    目录 一.点乘(内积) 1.定义 2.举例 3.点乘几何意义 二.叉乘(向量积) 1.定义 2.叉乘几何意义 一.点乘(内积) 1.定义 向量的点乘,也叫向量的内积.数量积,对两个向量执行点乘运算,就 ...

  3. 如何将一个向量投影到一个平面上_线性代数笔记(15-16)投影、投影矩阵和最小二乘...

    投影(Projection) 上图为二维平面的投影.其中p是b在a方向上的投影,则有: (1) (2) (3) (正交) 因此可得 进而可得 (P为矩阵:Ax=b的形式,bp均为向量,则A为矩阵) 其 ...

  4. 如何将一个向量投影到一个平面上_如何在黎曼流形上避开鞍点?本文带你了解优化背后的数学知识...

    机器之心原创 作者:Joshua Chou 编辑:Joni Zhong翻译:魔王 在一篇名为<Escaping from saddle points on Riemannian manifold ...

  5. 如何将一个向量投影到一个平面上_线性代数(十三)投影

    上一章我们讲了两组"正交补"的矩阵,欢迎点开链接复习.这一节我们要了解向量和矩阵的投影.投影是一种"逆张成"的行为,它把空间内的向量重新恢复到(指定)基向量方向 ...

  6. 如何将一个向量投影到一个平面上_线性代数19——投影矩阵和最小二乘

    一维空间的投影矩阵 先来看一维空间内向量的投影: 向量p是b在a上的投影,也称为b在a上的分量,可以用b乘以a方向的单位向量来计算,现在,我们打算尝试用更"贴近"线性代数的方式表达 ...

  7. 如何将一个向量投影到一个平面上_自动驾驶视觉融合相机校准与激光点云投影...

    点云PCL免费知识星球,点云论文速读. 标题:自动驾驶视觉融合-相机校准与激光点云投影 作者:williamhyin 来源:https://zhuanlan.zhihu.com/p/136263753 ...

  8. 如何将一个向量投影到一个平面上_代数与几何的初次相会——向量坐标表示

    写在前面 初次见面,请多多关照--阿拉丁 平面向量基本定理 在上一节中我们吐槽了向量的名字,这一节我们就要来考虑向量的好朋友--数形结合. 平面内任何向量改如何表示?我们知道在我们熟悉的自然数里1作为 ...

  9. 如何将一个向量投影到一个平面上_如何理解矩阵特征值的意义?

    毕业多年,曾经有同事问我该如何理解特征值的意义? 当时,实在羞愧,我一学数学的,真不知该如何回答. 极力回想,也只能以"特征值的求法.步骤...bla...bla..."应付了事, ...

最新文章

  1. R语言笔记1:数据类型(向量、数组、矩阵、 列表和数据框)
  2. 表单如何提交后mysql_如何在表格中添加表单,并提交MYSQL数据库
  3. 在JAVA中使用MongoDB
  4. IIS写权限漏洞 (HTTP PUT方法利用)
  5. 4:如何实现对两个整数变量的值进行互换。
  6. ROS kinetic外接Realsense D435i跑ORB_SLAM2教程
  7. 学校初一模拟赛(2019.4.20)
  8. python控制步进电机驱动器_怎样用树莓派和L298N电机驱动器模块控制步进电机
  9. WIFI 2.4G及5G信道一览表
  10. CrazyTalk Animator 3 for Mac破解版永久激活方法附破解补丁
  11. 第一次模拟考试总结反思
  12. beta版和alpha版
  13. 手把手带你实现 Docker 部署 Redis 集群
  14. 桌面便签软件哪个比较好 好用的手机桌面便签软件推荐
  15. opencv形态学-开操作和闭操作
  16. 重磅消息:微信支付分最新开通方法!
  17. 静音键盘 知乎_如何“静音”您的嘈杂机械键盘
  18. Hive视图与物化视图
  19. 15款最佳的MySQL管理工具和应用程序
  20. 千山独行-一个人的创业路(连载一)

热门文章

  1. strlen ,strcmp,strcat,strcpy函数以及实现
  2. 试用平台常见的恶意买家退款情况以及处理方案分析
  3. 如何成为灵魂有香气的女子?
  4. html5 drawimage参数,小程序中canvas的drawImage方法参数详解
  5. 常见的内联元素(inline)和块级元素(block)
  6. 菜鸟笔记--docker: Error response from daemon: failed to create endpoint vigorous_euclid on network......
  7. 亚马逊买家账号批量注册如何操作?
  8. MFC--对话框技巧
  9. softmax交叉熵损失函数
  10. echarts 仪表盘文本下移_echarts仪表盘设置图文实例