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 ...
随机推荐
- CAS你知道吗
1.比较并交换 CASDemo /** * CAS => compareAndSet * 比较并交换 */ public class CASDemo { public static void m ...
- MediaPlayer详解
[1]MediaPlayer 详细使用细则 [2]MediaPlayer使用详解_为新手准备 [3]MediaPlayer 概览
- Java SSLSocket
Java SSLSocket JSSE(Java Security Socket Extension)是Sun公司为了解决互联网信息安全传输提出的一个解决方案,它实现了SSL和TSL协议,包含了数据加 ...
- java打jar包和运行jar包的两种方式
java打jar包和运行jar包的两种方式更详细的打包方式请参考https://www.cnblogs.com/mq0036/p/8566427.html 一.java类不依赖第三方jar包以简单的一 ...
- Spring Cloud声明式调用Feign负载均衡FeignClient详解
为了深入理解Feign,下面将从源码的角度来讲解Feign.首先来看看FeignClient注解@FeignClient的源码,代码如下: FeignClient注解被@Target(ElementT ...
- python web框架学习笔记
一.web框架本质 1.基于socket,自己处理请求 #!/usr/bin/env python3 #coding:utf8 import socket def handle_request(cli ...
- 错误: 找不到或无法加载主类(IDEA中启动spring boot项目)
版权声明:本文为博主原创文章,如果转载请给出原文链接:http://www.jufanshare.com/content/142.html 提示:需要对IDEA编辑工具使用熟悉 出现一个问题,就是sp ...
- springmvc中如何自定义类型转换器
package com.hope.utils;import org.springframework.core.convert.converter.Converter;import org.spring ...
- Spring Cloud Eureka源码分析之服务注册的流程与数据存储设计!
Spring Cloud是一个生态,它提供了一套标准,这套标准可以通过不同的组件来实现,其中就包含服务注册/发现.熔断.负载均衡等,在spring-cloud-common这个包中,org.sprin ...
- ABP VNext框架基础知识介绍(1)--框架基础类继承关系
在我较早的时候,就开始研究和介绍ABP框架,ABP框架相对一些其他的框架,它整合了很多.net core的新技术和相关应用场景,虽然最早开始ABP框架是基于.net framework,后来也全部转向 ...