Proximal Algorithms 5 Parallel and Distributed Algorithms
这一节,介绍并行算法的实现.
问题的结构
令\([n] = \{1, \ldots, n\}\). 给定\(c \subseteq [n]\), 让\(x_c \in \mathbb{R}^{|c|}\)表示向量\(x\in \mathbb{R}^n\)的一个子向量(以\(c\)为指标的对应部分).当\(\mathcal{P}=\{c_1, \ldots, c_N\}\)满足:
c_i \cap c_j = \emptyset, i \ne j
\]
时, 称\(\mathcal{P}\)为\([n]\)的一个分割.
函数\(f\)的\(\mathcal{P}-\)分割满足:
\]
其中\(f_i : \mathbb{R}^{|c_i|} \rightarrow \mathbb{R}\).
在这种情况下:
\]
所以,可以并行计算.
考虑下面的问题:
\]
如果假设\(f\)是\(\mathcal{P}-\)分割的, 而\(g\)是\(\mathcal{Q}-\)分割的,那么问题等价于:

于是ADMM可以并行计算:

consensus
考虑下列问题如何进行并行计算:
\]
一个非常巧妙的变化:

可以看到,这样子,函数就是可分了, 只是多了一个附加条件.
将上面的问题转化为:
\]
其中\(\mathcal{C}\)是consensus set:
\]
这样,问题就变成俩个可分函数了, 不过需要注意的是,二者的分割并不相同:
\]
而\(\mathcal{Q}\),即\(I_{\mathcal{C}}\)的分割为:
\]
注: 文中是\(i=1, 2, \ldots, N\)(我认为是作者的笔误).
这个时候的ADMM的第二步,即更新\(z\),可以直接为:
\]

作者贴了一个比较形象的图来表示这种分割:

更为一般的情况
考虑下面的问题:
\]
其中\(c_i \subseteq [n]\), 但是\(c_i \cap c_j, i \ne j\)并不一定为空集.
进行同样的转换:

其中
\]
同样等价于:
\]
相应的有一张比较形象的图:

前一部分的分割是类似的, 后一部分的分割,就是怎么说呢,就像图上的行一样的分.
ADMM为:

其中\(F_i = \{j \in [N] | i \in c_j\}\)
Exchange 问题
Global exchange
交换问题具有如下形式:

可以用一个实际问题来考量,每个\(i\)表示一个客户,\(x_i\)表示每个客户给予或者得到的总量,而\(f_i(x_i)\)表示该客户的效益,\(\sum_{i=1}^Nx_i=0\)这个条件表示,所以客户东西的总量是固定的,即收支平衡.
我们可以将此问题转化为(这个方法太好使了吧):
\]
其中
\]
我们知道,指示函数的proximal为投影算子, 于是:
\]
于是ADMM算法为:

更为一般的情况
有些时候,并不是所有客户都面对同一个市场,所以,每个\(x_i\)的维度什么对的也有区别:
\]
有点和consenus的一般情况比较类似.
Allocation
allocation problem:

其中\(x_i \in \mathbb{R}^n\).
这个问题和交换问题也是相似的,区别在于总量\(b\), 而且要求\(x_i \ge 0\).
类似的,我们可以将上面的问题改写为:
\]
其中:
\]
所以相应的算法是:

如何进行投影,会在下一节提到, 还有更加一般的情况,比如\(\sum_{i=1}^N x_i \le b\).
Proximal Algorithms 5 Parallel and Distributed Algorithms的更多相关文章
- Serialization and deserialization are bottlenecks in parallel and distributed computing, especially in machine learning applications with large objects and large quantities of data.
Serialization and deserialization are bottlenecks in parallel and distributed computing, especially ...
- ACM会议列表与介绍(2014/05/06)
Conferences ACM SEACM Southeast Regional Conference ACM Southeast Regional Conference the oldest, co ...
- Policy Gradient Algorithms
Policy Gradient Algorithms 2019-10-02 17:37:47 This blog is from: https://lilianweng.github.io/lil-l ...
- (转) An overview of gradient descent optimization algorithms
An overview of gradient descent optimization algorithms Table of contents: Gradient descent variants ...
- Matrix Factorization, Algorithms, Applications, and Avaliable packages
矩阵分解 来源:http://www.cvchina.info/2011/09/05/matrix-factorization-jungle/ 美帝的有心人士收集了市面上的矩阵分解的差点儿全部算法和应 ...
- An overview of gradient descent optimization algorithms
原文地址:An overview of gradient descent optimization algorithms An overview of gradient descent optimiz ...
- 【论文翻译】An overiview of gradient descent optimization algorithms
这篇论文最早是一篇2016年1月16日发表在Sebastian Ruder的博客.本文主要工作是对这篇论文与李宏毅课程相关的核心部分进行翻译. 论文全文翻译: An overview of gradi ...
- [转载]Maximum Flow: Augmenting Path Algorithms Comparison
https://www.topcoder.com/community/data-science/data-science-tutorials/maximum-flow-augmenting-path- ...
- Awesome Algorithms
Awesome Algorithms A curated list of awesome places to learn and/or practice algorithms. Inspired by ...
随机推荐
- 学习java 7.24
学习内容: Swing编程 由于Swing的所有组件完全采用Java 实现,不再调用本地平台的GUl,所以导致Swing图形界面的显示速度要比AWT图形界面的显示速度慢一些,但相对于快速发展的硬件设施 ...
- R语言学习记录(二)
4.对象改值 4.1.就地改值 比如: vec <- c(0,0,0,0,0,0,0) vec[1]<-100 #vec向量的第一个值就变为100 ####对于数据框的改值的方法,如下面的 ...
- java poi导出多sheet页
/** * @Title: exportExcel * @Description: 导出Excel的方法 * @param workbook * @param sheetNum (sheet的位置,0 ...
- jmeter进阶
1.如果(if)控制器的使用 2.参数的调用 3.数据库的链接
- iOS UIWebview 长按图片,保存到本地相册
我们所要解决的问题如题目所示:ios中,长按Webview中的图片,将图片保存到本地相册.解决方案:对load的html网页,执行js注入,通过在webview中执行js代码,来响应点击事件,通过js ...
- 【Linux】【Services】【Web】Haproxy
1. 概念 1.1. 官方网站 http://www.haproxy.org/ 2. 安装 yum安装 yum -y install haproxy keepalived 配置haproxy日志,修改 ...
- 什么是微服务,SpringBoot和SpringCloud的关系和区别
什么是微服务? 就目前而言对于微服务业界没有一个统一的,标准的定义.但通常而言,微服务是一种架构模式或者说是一种架构风格,它提倡单一应用程序划分为一组小的服务,每个服务在其独立的自己的进程中,服务之间 ...
- 【Java 8】Optional 使用
一.前言 如果要给 Java 所有异常弄个榜单,我会选择将 NullPointerException 放在榜首.这个异常潜伏在代码中,就像个遥控炸弹,不知道什么时候这个按钮会被突然按下(传入 null ...
- Mysql 分页查询sql优化
先查下数据表的总条数: SELECT COUNT(id) FROM ts_translation_send_address 执行分页界SQL 查看使用时间2.210s SELECT * FROM ts ...
- 网络通信引擎ICE的使用
ICE是一种网络通信引擎,在javaWeb的开发中可以用于解决局域网内部服务器端与客户端之间的网络通信问题.即可以在 1.在服务器和客户端都安装好ICE 2.服务器端(java)在java项目中引入I ...