基本信息

  • 题目: Online Convex Programming and Generalized Infinitesimal Gradient Ascent

  • 作者: Martin Zinkevich

  • 关键词: 在线凸优化,greedy projection

背景

凸优化是线性规划问题的一般形式,广泛应用在机器学习领域和实际经济问题上。一个凸优化问题包含两个部分,一个是作为定义域的凸集,另一个是作为损失函数的凸函数。本文讨论的是在线凸优化问题(损失函数是互不相同的定义在同一个定义域上的序列),典型的问题有expert problem和network routing。本文新提出的Greedy Projection算法是受到了IGA算法的启发,有简单,通用,有效的特点,作者基于本法还对重复博弈提出了新的GIGA算法。

在线凸优化问题

问题定义: 定义域是一个凸集F⊆RnF \subseteq \mathbb{R^n}F⊆Rn,一个无限序列c={c1,c2,⋯}c =\{c^1,c^2,\cdots\}c={c1,c2,⋯},其中ct:F→Rc^t:F\to \mathbb{R}ct:F→R 是凸函数,每一步在选择向量xtx^txt后,得到一个损失函数ctc^tct,在线凸优化问题目标是找到一个算法,使得选择能达到特定目标。

范数和度量: 定义在FFF上的范数∥x∥=x⋅x\lVert x \rVert = \sqrt{x \cdot x}∥x∥=x⋅x​和度量d(x,y)=∥x−y∥d(x,y) = \lVert x-y \rVertd(x,y)=∥x−y∥,定义可行域的范数
∥F∥=max⁡x,y∈Fd(x,y)\lVert F \rVert = \max_{x,y\in F} d(x,y) ∥F∥=x,y∈Fmax​d(x,y)
定义损失函数梯度序列的范数
∥▽c∥=max⁡x∈F,t∈{1,2,⋯}∥▽ct(x)∥\lVert \bigtriangledown c \rVert = \max_{x\in F, t\in\{1,2,\cdots\}} \lVert \bigtriangledown c^t(x) \rVert ∥▽c∥=x∈F,t∈{1,2,⋯}max​∥▽ct(x)∥
前提假设:

  • 定义域FFF是非空的有界闭集
  • 损失函数列的梯度一致有界
  • 能够得到∀ct∈c\forall c^t \in c∀ct∈c在∀x∈F\forall x\in F∀x∈F处的梯度值▽ct(x)\bigtriangledown c^t(x)▽ct(x)
  • 存在函数P,使得对于∀y∈Rn\forall y\in \mathbb{R^n}∀y∈Rn,有P(y)=arg⁡min⁡x∈Fd(x,y)P(y)=\arg\min_{x\in F}d(x,y)P(y)=argminx∈F​d(x,y)存在

算法分析

先来看本文中新提出的算法是怎样进行决策的,决策过程如下

Greedy Projection算法:

  • 输入:初始向量x1x^1x1,学习率序列η={η1,η2,⋯}\eta = \{\eta_1,\eta_2,\cdots\}η={η1​,η2​,⋯}
  • 输出:决策序列x={x1,x2,⋯}x = \{x^1, x^2, \cdots\}x={x1,x2,⋯}
  • 迭代格式:

xt+1=P(xt−ηt▽ct(xt))x^{t+1} = P(x^t -\eta_t\bigtriangledown c^t(x^t)) xt+1=P(xt−ηt​▽ct(xt))

要对算法的优劣进行分析,就要先定义针对算法的损失函数,文中称之为regret,

定义regret: 对于算法AAA及其对应的凸优化问题(F,{c1,c2,⋯})(F,\{c^1,c^2,\cdots\})(F,{c1,c2,⋯}),如果选择的结果是{x1,x2,…}\{x^1,x^2,\dots\}{x1,x2,…},那么截止到时间TTT的算法AAA的损失定义为
CA(T)=∑t=1Tct(xt)C_A(T) = \sum_{t=1}^{T}c^t(x^t) CA​(T)=t=1∑T​ct(xt)
对于一个固定的x∈Fx\in Fx∈F,那么截止到时间TTT的损失定义为
Cx(T)=∑t=1Tct(x)C_x(T) = \sum_{t=1}^{T}c^t(x) Cx​(T)=t=1∑T​ct(x)
算法AAA的regret定义为
RA(T)=CA(T)−min⁡x∈FCx(T)R_A(T) = C_A(T) - \min_{x\in F}C_x(T) RA​(T)=CA​(T)−x∈Fmin​Cx​(T)

regret上界估计: 如果ηt=t−12\eta_t = t^{-\frac{1}{2}}ηt​=t−21​,Greedy Projection算法的regret有以下不等式成立
RG(T)≤∥F∥2T2+(T−12)∥▽c∥2R_G(T) \leq \frac{\lVert F \rVert^2\sqrt{T}}{2} + (\sqrt{T}-\frac{1}{2})\lVert \bigtriangledown c \rVert^2 RG​(T)≤2∥F∥2T​​+(T​−21​)∥▽c∥2
从而说明
lim⁡T→∞sup⁡RG(T)T=0\lim_{T\to\infin}\sup \frac{R_G(T)}{T} = 0 T→∞lim​supTRG​(T)​=0

定义动态regret: 序列{x1,x2,⋯,xT}\{x^1,x^2,\cdots,x^T\}{x1,x2,⋯,xT}的路径长度定义为
∑i=1T−1d(xi,xi+1)\sum_{i=1}^{T-1}d(x^i,x^{i+1}) i=1∑T−1​d(xi,xi+1)
算法输出构成的集合A(T,L)={{xi}i=1T∣序列路径长度≤L}\mathbb{A}(T,L) = \{\{x_i\}_{i=1}^T|序列路径长度\leq L\}A(T,L)={{xi​}i=1T​∣序列路径长度≤L},算法的动态regret定义为
RA(T,L)=CA(T)−min⁡A′∈A(T,L)CA′(T)R_A(T,L) = C_A(T) - \min_{A'\in \mathbb{A}(T,L)}C_{A'}(T) RA​(T,L)=CA​(T)−A′∈A(T,L)min​CA′​(T)

动态regret上界估计:

如果η\etaη固定,Greedy Projection算法的动态regret上界为
RG(T,L)≤7∥F∥24η+L∥F∥η+Tη∥▽c∥22R_G(T,L) \leq \frac{7\lVert F \rVert^2}{4\eta} + \frac{L\lVert F \rVert}{\eta} + \frac{T\eta\lVert\bigtriangledown c \rVert^2}{2} RG​(T,L)≤4η7∥F∥2​+ηL∥F∥​+2Tη∥▽c∥2​

应用算法

考察Greedy Projection算法在重复博弈问题中的结果,需要进一步定义什么是重复博弈,以及不同策略的regret。

博弈规则: 重复博弈中第一个玩家的可选操作定义为集合AAA(也被称作联合操作)和第二个玩家的可选操作定义为集合BBB,定义效用函数为u:A×B⟶Ru: A\times B \longrightarrow \mathbb{R}u:A×B⟶R,

博弈历史: 定义在A×BA\times BA×B上的,长度为t的点列记作Ht=(A×B)tH^t = (A\times B)^tHt=(A×B)t,称为博弈历史,所有博弈历史的全集记作H=∪i=1∞HiH=\cup_{i=1}^\infin H_iH=∪i=1∞​Hi​,博弈历史h∈Hh\in Hh∈H的长度记为∣h∣|h|∣h∣,博弈历史的效用定义为
utotal(h)=∑i=1∣h∣u(hi,1,hi,2)u_{total}(h) = \sum_{i=1}^{\left| h\right|}u(h_{i,1},h_{i,2}) utotal​(h)=i=1∑∣h∣​u(hi,1​,hi,2​)
不行动regret: 假设博弈历史中第二位玩家的策略是不变的,那么如果第一位玩家每次都采取操作aaa,那么与原来的效用差
R∗→a(h)=utotal(h∗→a)−utotal(h)R^{*\to a}(h) = u_{total}(h^{*\to a})-u_{total}(h) R∗→a(h)=utotal​(h∗→a)−utotal​(h)
成为不行动aaa的regret,进而定义博弈历史的regret为
R(h)=max⁡a∈AR∗→a(h)R(h) = \max_{a\in A}R^{*\to a}(h) R(h)=a∈Amax​R∗→a(h)
这样定义的regret只考虑了既成事实,没有考虑根据已经发生的博弈历史来判断对手的策略。所以还需要引进行为和环境这两个概念,

行为: 函数σ:H→Δ(A)\sigma:H\to \Delta(A)σ:H→Δ(A),从博弈历史映射到玩家下一个行动的概率分布。

环境: 函数ρ:H→Δ(B)\rho:H \to \Delta(B)ρ:H→Δ(B),从博弈历史映射到下一个环境的下一次行动分布。

针对重复博弈问题,作者给出了如下算法

Generalized Infinitesimal Gradient Ascent

  • 输入:初始向量x1∈Fx^1 \in Fx1∈F,学习率序列η={η1,η2,⋯}\eta = \{\eta_1, \eta_2, \cdots\}η={η1​,η2​,⋯}

  • 输出:决策序列{x1,x2,⋯}\{x^1,x^2,\cdots\}{x1,x2,⋯}

  • 迭代格式:
    yit+1=xit+ηtu(i,ht,2)xt+1=P(yt+1)y_i^{t+1} = x_i^t + \eta_tu(i,h_{t,2}) \\ x^{t+1} = P(y^{t+1}) yit+1​=xit​+ηt​u(i,ht,2​)xt+1=P(yt+1)

论文阅读笔记【1】:在线凸优化算法Greedy Projection相关推荐

  1. 博士论文阅读_仿生群智能优化算法及在点云配准中的应用研究

    1.应用领域 计算机视觉:高效的仿生群智能优化策略应用于解决复杂的三维点云配准问题. 概念: (1)点云:是一个数据集,数据集中的每个点代表一组X.Y.Z几何坐标和一个强度值,这个强度值根据物体表面反 ...

  2. 论文阅读笔记 | 三维目标检测——PartA2算法

    如有错误,恳请指出. 文章目录 0. 前言与补充知识 1. 背景 2. 相关工作 3. 网络结构 3.1 Part-aware stage Anchor-free Proposal Generatio ...

  3. 论文阅读笔记 | 三维目标检测——Complex-YOLO算法

    如有错误,恳请指出. 文章目录 1. 背景 2. 网路结构 3. 实验结果 paper:<Complex-YOLO: An Euler-Region-Proposal for Real-time ...

  4. 论文阅读笔记 | 三维目标检测——VoxelRCNN算法

    如有错误,恳请指出. 文章目录 1. 背景 2. 网络结构 Voxel Query Voxel ROI Pooling Accelerated Aggregation Loss Compute 3. ...

  5. 论文阅读笔记 | 三维目标检测——VoxelNet算法

    如有错误,恳请指出. 文章目录 1.背景 2. 网络结构 2.1 体素特征表示 2.2 卷积特征提取 2.3 RPN网络 3. 实验结果 paper:<VoxelNet: End-to-End ...

  6. 论文阅读笔记 | 三维目标检测——MV3D算法

    如有错误,恳请指出. 文章目录 1. 背景 2. 网络结构 2.1 提案投影网络 2.2 区域融合网络 3. 实验结果 paper:<Multi-View 3D Object Detection ...

  7. 论文阅读笔记 | 目标检测算法——SAPD算法

    如有错误,恳请指出. 文章目录 1. Introduction 2. Soft Anchor-Point Detector 2.1 Detection Formulation with Anchor ...

  8. 论文阅读笔记 | 目标检测算法——FSAF算法

    如有错误,恳请指出 文章目录 1. Introduction 2. FSAF Module 2.1 Network Architecture 2.2 Ground-truth and Loss 2.2 ...

  9. 【论文阅读笔记】Myers的O(ND)时间复杂度的高效的diff算法

    前言 之前咱们三个同学做了个Simple-SCM,我负责那个Merge模块,也就是对两个不同分支的代码进行合并.当时为了简便起见,遇到文件冲突的时候,就直接按照文件的更改日期来存储,直接把更改日期较新 ...

最新文章

  1. 本地Yum仓库搭建部署
  2. frame 2 opencv mat
  3. 朴素贝叶斯-垃圾邮件分类实现
  4. TCP-IP详解:快速重传与快速恢复
  5. AndroidStudio项目提交(更新)到github最详细步骤
  6. 【caffe解读】 caffe从数学公式到代码实现5-caffe中的卷积
  7. [云炬创业管理笔记]第四章把握创业机会测试3
  8. 解决jquery的scrollTop()置顶的浏览器兼容
  9. python用pip安装pygame_安装pygame和pip的问题以及过程
  10. MATLAB矩阵元素的处理
  11. [LeetCode]Subsets II生成组合序列
  12. 语音信号处理(九)——离散余弦变换
  13. Word2Vec算法详解(相关背景介绍)
  14. 【find】Linux中find常见用法示例
  15. 云鹊医怎么快速认证_兴趣认证怎么申请?掌握这9个小技巧,快速通过
  16. 白鹭发布html5,白鹭Egret Engine 1.5发布 HTML5性能大幅提升
  17. 自动跑程序vbs脚本
  18. 更改csv默认分隔符
  19. 周志华----机器学习2
  20. 【电影】小萝莉的猴神大叔

热门文章

  1. 大虎2021软件校招笔试题
  2. 【结构思考力】01——何为结构思考力?
  3. 第六章实验报告(函数与宏定义)
  4. linux下oracle升级,Linux下升级ORACLE 10
  5. 中级软件设计师备考总结
  6. 马上七夕了程序员如何给爱人一个浪漫表白?
  7. Jetson nano 卡刷教程
  8. 丈夫志四海,万里犹比邻
  9. 画中画的视频怎么做出来?这个方法很实用
  10. Introduction to JavaScript(JavaScript简介)