在整理旧电脑时,才发现13年下半年电脑里有不少残文。老师说,东西搁下了再拿起来花费的时间和之前可能差不多。我一眼看过去这篇关于分布式计算的文章,貌似还真的没有了当时理解的深度和感觉。当时还想利用ADMM算法,把统计中常见的带惩罚的高维问题在此框架下用R重写一下,但是中途多种事情一耽搁,就早已抛之脑后。看来任何事情,真的还是需要坚持,哪怕拨点时间都是好的。先把一篇残文扔出来祭奠下过去的13年吧。公式多文字长,慎入!

业界一直在谈论大数据,对于统计而言,大数据其实意味着要不是样本量增加n→∞,要不就是维度的增加p→∞,亦或者两者同时增加,并且维度与样本量的增长速度呈线性或者指数型增长。在稀疏性的假设条件下,再加上一些正则性方法,统计学家可以证明各种加penalty的模型所给出的参数估计具有良好的统计性质,收敛速度也有保证,同时还会给出一些比较好的迭代算法,但是,他们并没有考虑真实环境下的所消耗的计算时间。虽然统计学家也希望尽量寻求迭代数目比较少的算法(比如one-step估计),但是面对真实的Gb级别以上的数据,很多时候我们还是无法直接用这些算法,原因是一般的硬件都无法支撑直接对所有数据进行运算的要求。如果想减少抽样误差,不想抽样,又想提高估计的精度,那么还是需要寻求其他思路,结合已有的模型思想来解决这些问题。在目前条件下,并行化、分布式计算是一种比较好的解决思路,利用多核和多机器的优势,这些好算法便可以大规模应用,处理大数据优势便体现出来了。对于统计而言,数据量越大当然信息越可能充分(假设冗余成分不是特别多),因为大样本性质本身就希望样本越多越好嘛。

本文是基于Stephen Boyd 2011年的文章《Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers》进行的翻译和总结。Boyd也给出了利用matlab的CVX包实现的多种优化问题的matlab示例。

1. 优化的一些基本算法思想

ADMM算法并不是一个很新的算法,他只是整合许多不少经典优化思路,然后结合现代统计学习所遇到的问题,提出了一个比较一般的比较好实施的分布式计算框架。因此必须先要了解一些基本算法思想。

1.1 Dual Ascent

对于凸函数的优化问题,对偶上升法核心思想就是引入一个对偶变量,然后利用交替优化的思路,使得两者同时达到optimal。一个凸函数的对偶函数其实就是原凸函数的一个下界,因此可以证明一个较好的性质:在强对偶性假设下,即最小化原凸函数(primal)等价于最大化对偶函数(dual),两者会同时达到optimal。这种转化可以将原来很多的参数约束条件变得少了很多,以利于做优化。具体表述如下:

minf(x)
s.t.Ax=b           ⟹L(x,y)=f(x)+yT(Ax−b)⟹对偶函数(下界)g(y)=infL(x,y)

在强对偶性的假设下,primal和dual问题同时达到最优。

x⋆=argminL(x,y⋆)

因此,若对偶函数g(y)g(y)可导,便可以利用梯度上升法,交替更新参数,使得同时收敛到最优。迭代如下:

xk+1:yk+1:=argminxL(x,yk)(x-最小化步)=yk+αk∇g(y)=yk+αk(Axk+1−b)(对偶变量更新,αk是步长)xk+1:=arg⁡minxL(x,yk)(x-最小化步)yk+1:=yk+αk∇g(y)=yk+αk(Axk+1−b)(对偶变量更新,αk是步长)

当gg不可微的时候也可以将其转化下,成为一个所谓的subgradient的方法,虽然看起来不错,简单证明下即可知道xkxk和ykyk同时可达到optimal,但是上述条件要求很苛刻:f(x)f(x)要求严格凸,并且要求αα选择有比较合适。一般应用中都不会满足(比如f(x)f(x)是一个非零的仿射函数),因此dual ascent不会直接应用。

转载于:https://www.cnblogs.com/FYSong/p/5962224.html

分布式计算、统计学习与ADMM算法相关推荐

  1. 【StatLearn】统计学习中knn算法实验(2)

    接着统计学习中knn算法实验(1)的内容 Problem: Explore the data before classification using summary statistics orvisu ...

  2. 一句话简单总结李航统计学习法各算法

    K近邻: 选取样本集合中K个距离最近的数据中出现次数最多的分类,作为新数据的分类 native  bayes :利用训练数据计算类的先验概率P(Y)和特征向量对应每一类的条件概率P(X|Y),计算联合 ...

  3. 统计学习笔记(1)——统计学习方法概论

    1.统计学习 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,也称统计机器学习.统计学习是数据驱动的学科.统计学习是一门概率论.统计学.信息论.计算理论.最优化理 ...

  4. 统计学习三要素 模型+策略+算法

    统计学习方法都是由模型. 策略和算法构成的. 即统计学习方法由三要素构成, 可以简单地表示为:方法=模型+策略+算法 模型 统计学习首要考虑的问题是学习什么样的模型. 在监督学习过程中, 模型就是所要 ...

  5. 《深度学习,统计学习,数学基础》人工智能算法工程师手册:程序员写的AI书,50 章一网打尽...

    来源:专知 本文约3400字,建议阅读10+分钟. 免费开源人工智能手册,带你快速上手写代码! [ 导读 ]市面上很多人工智能相关的书籍.大部分的书,面向小白,内容深度不够:小部分教材书或者科研书,内 ...

  6. 统计学习的三个招式:模型、策略和算法

    统计学习的三个招式:模型.策略和算法 https://mp.weixin.qq.com/s/12yhAZ79i_ENAdtyOX63lQ 李航老师在统计学习方法中讲到:方法=模型+策略+算法 可以说模 ...

  7. 《深度学习,统计学习,数学基础》人工智能算法工程师手册

    [ 导读 ]市面上很多人工智能相关的书籍.大部分的书,面向小白,内容深度不够:小部分教材书或者科研书,内容艰深,又过于复杂.那么有没有,面向算法工程师(程序员)人群的,面向有一定数学基础.算法基础,能 ...

  8. 最优化理论c语言代码,《统计学习导论基于R应用》PDF代码导图+《最优化理论与算法第2版》PDF习题指导...

    要想深入理解机器学习,或者对人工智能的某个领域有所研究,都必须掌握统计学.最优化.矩阵及其应用等知识. 推荐<统计学习导论:基于R应用>,适合运用统计学习前沿技术分析数据的人士.读起来不费 ...

  9. 【统计学习方法】学习笔记——EM算法及其推广

    统计学习方法学习笔记--EM算法及其推广 1. EM算法的引入 1.1 EM算法 1.2 EM算法的导出 1.3 EM算法在非监督学习中的应用 2. EM算法的收敛性 3. EM算法在高斯混合模型学习 ...

  10. 统计学习导论之R语言应用(四):分类算法R语言代码实战

    统计学习导论之R语言应用(ISLR) 参考资料: The Elements of Statistical Learning An Introduction to Statistical Learnin ...

最新文章

  1. 订阅点评有奖,本人获奖了
  2. Cache_总体介绍
  3. commons dbutils 的介绍与使用
  4. Asp.Net Core 工作单元 UnitOfWork UOW
  5. [Nginx]location 指令说明
  6. 计算机网络 --- 传输层
  7. 第七部分:小插曲,Deferred
  8. 优化模型之指派问题(整数规划)
  9. iPhone记步和Android计步,手机中运动步数是如何计算的?
  10. 搞 Java 的年薪 40W 是什么水平?
  11. Vue3技术4之watch监视属性、watch时value问题
  12. 一款学习游戏化的APP
  13. xlsx格式转csv
  14. Python下载网易云歌单歌曲,这个脚本你给多少分!
  15. 记录渗透靶场实战【网络安全】
  16. Matlab手动安装工具包
  17. linux下 etho网卡设置
  18. 百度云盘archlinux manjaro直接安装
  19. latex bib是什么 从哪里获取 文献引用
  20. Ubuntu安装新的无线网卡驱动rtl88x2bu出现问题

热门文章

  1. 关于IplImage中widthstep的大小与width,nchannels等的关系的问题_widthstep
  2. linux进入Mysql 的Dos控制台,dos进入mysql的实现方法
  3. k3导入账套_金蝶k3凭证导入导出的操作方法金蝶k3操作指南
  4. HashMap之HashMap中hashSeed(hash种子)的作用分析
  5. windows系统镜像修复计算机,如何修复/移除Windows 10 镜像错误 - 易我科技
  6. 智慧档案馆之区级档案库房温湿度智能化监控系统案例(一)
  7. C语言 C语言知识点总结(思维导图版)
  8. 项目管理学习——PMP 5A高分通过备考经验分享
  9. 我的世界1.12.2java下载_我的世界1.12.2电脑版下载
  10. 编写一个班级管理程序java_java课程设计(班级管理系统)