为什么我的脸越来越大 Non-Convex Optimization 受到了越来越大的关注

Convex Optimization
Convex Optimization: Fall 2016
Machine Learning 10-725
(cross-listed as Statistics 36-725)
Instructors:
(jfp at andrew dot cmu dot edu)
(ryantibs at cmu dot edu)
(alnurali at cmu dot edu)
(cdann at cmu dot edu)
(shyun at cmu dot edu)
(mariya at cmu dot edu)
(han.zhao at cs dot cmu dot edu)
Lecture times:
Mondays and Wednesdays 1:30-2:50pm, Wean Hall 7500
Office hours:
JP: Tuesdays 2-3:30pm, Posner 380
RT: Wednesday 3-4pm, Baker 229B
AA: Mondays 12-1pm, Gates 8009
CD: Thursdays 1:30-2:30pm, Gates 8013
SH: Mondays 3-4pm, Porter 117
MT: Wednesdays 12-1pm, Gates 8010
HZ: Tuesdays 2-3pm, Gates 8229
Discussions:
Here is the estimated class schedule. It is subject to change, depending on
time and class interests.
Theory I: Fundamentals
Mon Aug 29
Introduction
Wed Aug 31
Convexity I: Sets and functions
Mon Sept 5
(Labor day, no class)
Wed Sept 7
Convexity II: Optimization basics
Mon Sept 12
Canonical problem forms
Hw 1 due (Tues)
Algorithms I: First-order methods
Wed Sept 14
Gradient descent
Mon Sept 19
Subgradients
Wed Sept 21
Subgradient method
Mon Sept 26
Proximal gradient
descent and acceleration
Wed Sept 28
Proximal gradient descent and acceleration
Milestone 1 due (Fri)
Theory II: Optimality and duality
Duality in linear programs
Hw 2 due (Mon)
Duality in general programs
Mon Oct 10
KKT conditions
Wed Oct 12
Duality uses and correspondences
Hw 3 due (Fri)
Mon Oct 17
Little test I
Little test I
Algorithms II: Second-order methods
Wed Oct 19
Newton's method
Mon Oct 24
Barrier method
Wed Oct 26
Duality revisited
Mon Oct 31
Primal-dual interior point methods
Weds Nov 2
Quasi-Newton methods
Hw 4 due (Fri)
Special topics
Proximal Newton method
Weds Nov 9
Dual methods
Milestone 2 due (Fri)
Mon Nov 14
Alternating direction method of multipliers
Weds Nov 16
Frank-Wolfe method
Mon Nov 21
Coordinate descent
Hw 5 due (Tues)
Weds Nov 23
(Thanksgiving break, no class)
Mon Nov 28
Mixed integer programming, part I
Weds Nov 30
Mixed integer programming, part II
Nonconvex? No problem!
Weds Dec 7
Little test II
Little test II
Tues Dec 13, 5:30-8:30pm
COPTS conference
Project presentation (Tues), report due
Assignments
All assignments are to be turned in to Christoph Dann, by 5:30pm, in
Gates 8013, unless specified otherwise.
, due Tues Sept 13
Data files: ,
due Fri Sept 30
2 page write up in
, due Mon Oct 3
Data files: ,
, due Fri Oct 14
Data file:
, due Fri Nov 4
Data files: ,
due Fri Nov 11
4-5 page write up in
through the EasyChair system
, due Tues Nov 22
Data files: ,
Project final: presentations at COPTS, Tues Dec 13
Written report, due Thurs Dec 15
7-8 page write up in
Miscellaneous
Some review aids:
, by Nicole Rafidi (from Spring 2015 course)
algebra review, videos by Zico Kolter
, videos by
Aaditya Ramdas查看: 3683|回复: 8|关注: 0
关于yalmip工具箱做优化是如何进行参数设置提问
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
本帖最后由 11张晓华11 于
12:59 编辑
我初学yalmip工具箱,看给的一个例子用同样的代码我只得到了局部最优,而例子给的答案比我的优,求如何修改才好。现附上优化问题
现附上优化问题以及代码clc
clear
x=intvar(1,5);
A=[1 1 1 1 1;1 2 2 1 6;2 1 6 0 0;0 0 1 1 5];
b=[400;800;800;200];
f=[1 1 3 4 2]*(x'.^2)-[8 2 3 1 2]*x';
F=set(A*x'&=b)+set(0&=x&=99);
solvesdp(F,-f);
double(f)
double(x)
复制代码
运行结果:* Starting YALMIP integer branch & bound.
* Lower solver& &: QUADPROG
* Upper solver& &: rounder
* Max iterations : 300
Warning : The continuous relaxation may be nonconvex. This means
that the branching process is not guaranteed to find a
globally optimal solution, since the lower bound can be
invalid. Hence, do not trust the bound or the gap...
Node& && & Upper& && & Gap(%)& && &Lower& & Open
& & 1 :& &-7.815E+04& &&&0.27& &&&-7.857E+04& &2&&Successfully solved
& & 2 :& &-7.815E+04& &&&0.27& &&&-7.857E+04& &3&&Successfully solved
& & 3 :& &-7.815E+04& &&&0.26& &&&-7.856E+04& &2&&Successfully solved
& & 4 :& &-7.846E+04& &&&0.07& &&&-7.856E+04& &3&&Successfully solved
& & 5 :& &-7.846E+04& &&&0.06& &&&-7.855E+04& &2&&Successfully solved
& & 6 :& &-7.846E+04& &&&0.06& &&&-7.855E+04& &1&&Successfully solved
& & 7 :& &-7.846E+04& &&&0.05& &&&-7.854E+04& &2&&Successfully solved
& & 8 :& &-7.846E+04& &&&0.05& &&&-7.854E+04& &1&&Successfully solved
& & 9 :& &-7.846E+04& &&&0.03& &&&-7.850E+04& &2&&Successfully solved
& &10 :& &-7.846E+04& &&&0.03& &&&-7.850E+04& &1&&Successfully solved
& &11 :& &-7.846E+04& &&&0.02& &&&-7.849E+04& &2&&Successfully solved
& &12 :& &-7.846E+04& &&&0.02& &&&-7.849E+04& &1&&Successfully solved
& &13 :& &-7.846E+04& &&&0.01& &&&-7.847E+04& &2&&Successfully solved
+&&13 Finishing.&&Cost: -78456
& && & 78456
& & 98& & 99& & 84& & 99& &&&3
=======================================
而例子给的最优解为
x= 53 99 99 99 0
根据上面的warning,我应该得到的不是最优解,求如何解决
<h1 style="color:# 麦片财富积分
你们运行下来的结果是什么样子的?
<h1 style="color:# 麦片财富积分
& &你这个好像要限制X1,X2,X3,X4,X5取整数最优解才是例子给出的参考解答,否则还不是呢。Yalmip是一个接口吧?你用的什么Solver求解的呢?
<h1 style="color:# 麦片财富积分
x=intvar(1,5)就是定义了五个整型变量
yalmip是一个做混合整数规划工具箱,这个工具箱要另外装的。solversdp是工具箱自己的函数啊
<h1 style="color:# 麦片财富积分
本帖最后由 wujianjack2 于
18:07 编辑
x=intvar(1,5)就是定义了五个整型变量
yalmip是一个做混合整数规划工具箱,这个工具箱要另外装的。solversd ...
& & &YALMIP is a modelling language for advanced modeling and solution of convex and nonconvex optimization problems.& 引自YALMIP作者的主页。
& & 据我所知,其本身是一个类似于一个接口吧,johan自己写了一些solver求解一些问题,你这个MIQP问题好像是nonconvex的,一般的solver估计不能保证得到Global Optimum吧。& &&&其实我也没有使用过YALMIP,只是听说过而已,平常我都是用的其它的一些Solver。
<h1 style="color:# 麦片财富积分
wujianjack2 发表于
&YALMIP is a modelling language for advanced modeling and solution of convex and nonconvex opti ...
那一般你用的是什么呢?有哪些好点的?求赐教!!
<h1 style="color:# 麦片财富积分
那一般你用的是什么呢?有哪些好点的?求赐教!!
&&呃............难道这才是重点?
&&我觉得奇怪,既然你知道YALMIP,去作者的主页看一下就行啦,他介绍了很多的Solver。你的这个问题,LINGO什么的都是可以求解的。
<h1 style="color:# 麦片财富积分
您好,请问你这个问题解决了吗?我也是碰到这个问题,但是还没找到解决方法。
<h1 style="color:# 麦片财富积分
这个好像和矩阵表示中出现了0有关,貌似0乘以变量是不行的,你看原来例子里面有0的他特意都没写成向量相乘形式,当然这是我的猜测。。求大佬解释
站长推荐 /2
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区非凸性规划,Non-Convex Optimization,在线英语词典,英文翻译,专业英语
1)&&Non-Convex Optimization
非凸性规划
2)&&nonconvex
Optimization of the Nonconvex Large Scale System by Introducing Instrument V
非凸大系统优化的辅助变量法
Multi-objective compatible iterative control algorithm for nonconvex
目标空间非凸的多目标相容迭代控制算法
The nonconvex global optimization problems are methodic al ly similar to the partial convex optimization problems,which had been studied by the author.
利用非凸优化问题中的Lagrange对偶性思想 ,对可行集进行恰当的细划 ,证明了求解相应的Lagrangian对偶问题所获得的剖分对偶界在适当的假设条件下收敛到原问题的最优值 。
3)&&non-convex body
4)&&nonconvex boundary
5)&&nonconvex function
To the unconstrained programme of nonconvex function, this article gives a class of modified BFGS algorithm.
本文对于非凸函数的无约束优化问题,给出一类修正的BFGS算法。
6)&&nonconvex minimization
补充资料:连续性与非连续性(见间断性与不间断性)
连续性与非连续性(见间断性与不间断性)
continuity and discontinuity
11an父ux泊g四f“山。麻以角g、.连续性与非连续性(c。nt,n琳t:nuity一)_见间断性与不间断性。and diseo红ti-
说明:补充资料仅用于学习参考,请勿用于其它任何用途。&img src=&/50/v2-5b74ae13b6b_b.png& data-rawwidth=&900& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&/50/v2-5b74ae13b6b_r.png&&&blockquote&&b&PaperWeekly 是一个 AI 学术分享社区。这里聚集了大批一线 AI 学者,他们用精炼妙语推荐各自发现的优质论文。现在就注册&/b&&a href=&/?target=http%3A//www.paperweekly.site& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PaperWeekly社区&i class=&icon-external&&&/i&&/a&&b&,创建属于你的论文集吧!&/b&&/blockquote&&p&这里是第 1 期论文集精选。&/p&&p&本期论文集是由 PaperWeekly 社区用户 &b&@WarBean&/b& 创建的 &b&花式玩耍Spatial Transformation Networks&/b&,包含 5 篇 OCR 和 CNN 相关的优质论文。&/p&&p&如果你想一键收藏该论文集,点击注册&a href=&/?target=http%3A//www.paperweekly.site/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PaperWeekly社区&i class=&icon-external&&&/i&&/a&,即可进行收藏。&/p&&p&&b&1. Spatial Transformer Networks&/b& &/p&&p&&b&WarBean 推荐&/b&&/p&&p&&b&#CNN&/b&&/p&&p&Spatial Transformer Network(STN)是 DeepMind 提出的一个全新的网络模块,能够显示地学习到网路对输入的旋转、平移、缩放等等变换的不变性(invariance)。&/p&&p&STN 模块本身可微,可以无缝嵌入现有网络架构,且无需额外的监督信息帮助训练。STN 网络可以视为一种崭新的 Attention 机制,对于 OCR、Weakly-supervised Learning、Co-Localization 等领域和任务均有巨大的应用价值。&/p&&p&论文链接:&a href=&/?target=http%3A//www.paperweekly.site/papers/381& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&paperweekly.site/papers&/span&&span class=&invisible&&/381&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&2. Recurrent Spatial Transformer Networks&/b& &/p&&p&&b&WarBean 推荐&/b&&/p&&p&&b&#OCR&/b&&/p&&p&在 RNN 中结合 Spatial Transformer Networks(STN)进行 OCR 整行文本识别,是一种更加先进的 Attention 机制。&/p&&p&论文链接:&a href=&/?target=http%3A//www.paperweekly.site/papers/430& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&paperweekly.site/papers&/span&&span class=&invisible&&/430&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&3. A DNN Framework For Text Image Rectification From Planar Transformations&/b& &/p&&p&&b&WarBean 推荐&/b&&/p&&p&&b&#OCR&/b&&/p&&p&矫正文档图像的透视变换和旋转变换,利用 Spatial Transformer Networks(STN)使得不同矫正阶段能够 end-to-end 地串联起来。&/p&&p&论文链接:&a href=&/?target=http%3A//www.paperweekly.site/papers/396& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&paperweekly.site/papers&/span&&span class=&invisible&&/396&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&4. STN-OCR: A single Neural Network for Text Detection and Text Recognition&/b& &/p&&p&&b&WarBean 推荐&/b&&/p&&p&&b&#OCR&/b&&/p&&p&借助 Spatial Transformer Networks,用一个网络,end-to-end 同时实现文本检测和文本识别。&/p&&p&论文链接:&a href=&/?target=http%3A//www.paperweekly.site/papers/383& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&paperweekly.site/papers&/span&&span class=&invisible&&/383&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&5. Robust Scene Text Recognition with Automatic Rectification&/b& &/p&&p&&b&WarBean 推荐&/b&&/p&&p&&b&#OCR&/b&&/p&&p&使用 STN 在 OCR 中对扭曲文本进行校正,提高了 OCR 识别的效果。&/p&&p&论文链接:&a href=&/?target=http%3A//www.paperweekly.site/papers/382& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&paperweekly.site/papers&/span&&span class=&invisible&&/382&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&关于PaperWeekly&/b&&/p&&p&PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击&b&「交流群」&/b&,小助手将把你带入 PaperWeekly 的交流群里。&/p&&p&&b&微信公众号:PaperWeekly&/b&&/p&&p&&b&新浪微博:@PaperWeekly&/b&&/p&
PaperWeekly 是一个 AI 学术分享社区。这里聚集了大批一线 AI 学者,他们用精炼妙语推荐各自发现的优质论文。现在就注册,创建属于你的论文集吧!这里是第 1 期论文集精选。本期论文集是由 PaperWeekly 社区用户 @WarBean 创建的 花式玩耍Sp…
&p&欢迎大家前往&a href=&/?target=https%3A///community& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯云技术社区&i class=&icon-external&&&/i&&/a&,获取更多腾讯海量技术实践干货哦~&/p&&blockquote&作者:张萌&/blockquote&&h2&序言&/h2&&p&XGBoost效率很高,在Kaggle等诸多比赛中使用广泛,并且取得了不少好成绩。为了让公司的算法工程师,可以更加方便的使用XGBoost,我们将XGBoost更好地与公司已有的存储资源和计算平台进行集成,将数据预处理、模型训练、模型预测、模型评估及可视化、模型收藏及分享等功能,在Tesla平台中形成闭环,同时,数据的流转实现了与TDW完全打通,让整个机器学习的流程一体化。&/p&&h2&XGBoost介绍&/h2&&p&&b&XGBoost&/b&的全称为eXtreme Gradient Boosting,是GBDT的一种高效实现,XGBoost中的基学习器除了可以是CART(gbtree)也可以是线性分类器(gblinear)。&/p&&h2&什么是GBDT?&/h2&&ul&&li&GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力(generalization)较强的算法。GBDT的核心在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量。与随机森林不同,随机森林采用多数投票输出结果;而GBDT则是将所有结果累加起来,或者加权累加起来。&/li&&/ul&&h2&XGBoost对GBDT的改进&/h2&&p&1 . &b&避免过拟合&/b&&/p&&p&目标函数之外加上了正则化项整体求最优解,用以权衡目标函数的下降和模型的复杂程度,避免过拟合。基学习为CART时,正则化项与树的叶子节点的数量T和叶子节点的值有关。&/p&&p&&br&&/p&&img src=&/v2-5be5dec5bfdd_b.jpg& data-rawwidth=&277& data-rawheight=&95& class=&content_image& width=&277&&&p&&br&&/p&&p&2 . &b&二阶的泰勒展开,精度更高&/b&&/p&&p&不同于传统的GBDT只利用了一阶的导数信息的方式,XGBoost对损失函数做了二阶的泰勒展开,精度更高。&/p&&p&第t次的损失函数:&/p&&p&&br&&/p&&img src=&/v2-ba620ce4a6e8b1c75f1970_b.jpg& data-rawwidth=&332& data-rawheight=&60& class=&content_image& width=&332&&&p&&br&&/p&&p&对上式做二阶泰勒展开( g为一阶导数,h为二阶导数):&/p&&p&&br&&/p&&img src=&/v2-39e6ab5f052fae3efaedb53_b.jpg& data-rawwidth=&464& data-rawheight=&93& class=&origin_image zh-lightbox-thumb& width=&464& data-original=&/v2-39e6ab5f052fae3efaedb53_r.jpg&&&p&&br&&/p&&p&3 . &b&树节点分裂优化&/b&&/p&&p&选择候选分割点针对GBDT进行了多个优化。正常的树节点分裂时公式如下:&/p&&p&&br&&/p&&img src=&/v2-eb48cc99e091ac_b.jpg& data-rawwidth=&489& data-rawheight=&67& class=&origin_image zh-lightbox-thumb& width=&489& data-original=&/v2-eb48cc99e091ac_r.jpg&&&p&&br&&/p&&p&XGBoost树节点分裂时,虽然也是通过计算分裂后的某种值减去分裂前的某种值,从而得到增益。但是相比GBDT,它做了如下改进:&/p&&ul&&li&通过添加阈值gamma进行了剪枝来限制树的生成&/li&&li&通过添加系数lambda对叶子节点的值做了平滑,防止过拟合。&/li&&li&在寻找最佳分割点时,考虑传统的枚举每个特征的所有可能分割点的贪心法效率太低,XGBoost实现了一种近似的算法,即:根据百分位法列举几个可能成为分割点的候选者,然后从候选者中根据上面求分割点的公式计算找出最佳的分割点。&/li&&li&特征列排序后以块的形式存储在内存中,在迭代中可以重复使用;虽然boosting算法迭代必须串行,但是在处理每个特征列时可以做到并行。&/li&&/ul&&blockquote&整体上,通过上述的3个优化,加上其易用性,不太需要编程,XGBoost目前是GBDT体系中最受欢迎的工具。但是值得留意的是,当数据量很大,尤其是维度很高的情况下,XGBoost的性能会下降较快,这时推进大家可以试试腾讯自己的Angel,其GBDT比XGBoost性能更好噢&/blockquote&&h2&TDW体系中的XGBoost介绍&/h2&&p&XGBoost在TDW体系中以两种形式存在&/p&&ul&&li&提供出了拖拽式的组件,来简化用户使用成本&/li&&li&提供出了maven依赖,来让用户享受Spark Pipeline的流畅&/li&&/ul&&h2&1. Tesla平台上的3个组件:&/h2&&ul&&li&XGBoost-spark-ppc组件(基于社区版0.7,以Spark作业形式运行在PowerPC机型的集群上)&/li&&li&XGBoost-spark-x86组件(基于社区版0.7,以Spark作业形式运行在x86机型的集群上)&/li&&li&XGBoost-yarn组件(基于社区版0.4,以Yarn作业形式运行在x86机型的集群上)&/li&&/ul&&p&目前来看,XGBoost的ppc版本,性能比x86的好,建议大家优先选择。&/p&&h2&2. 公司Maven库中的3个依赖:&/h2&&ul&&li&XGBoost4j-ppc(封装社区版0.7的API,在PowerPC机型上进行的编译)&/li&&li&XGBoost4j-x86(封装社区版0.7的API,在x86机型上进行的编译)&/li&&li&XGBoost4j-toolkit(封装HDFS IO、TDW IO、Model IO等功能)&/li&&/ul&&h2&Tesla中的XGBoost-on-spark组件介绍&/h2&&p&Tesla中XGBoost-on-spark组件根据集群的机型区分成:XGBoost-spark-ppc组件和XGBoost-spark-x86组件。将以前的XGBoost-yarn组件进行了升级,体现在了:&/p&&blockquote&数据源之间的打通、作业调试更友好、IO方式更丰富、数据处理的上下游延伸更广、model支持在线服务等方面。&/blockquote&&ol&&li&&b&数据源之间的打通&/b&&/li&&/ol&&ul&&li&消除了不同HDFS集群上的权限问题&/li&&li&与TDW打通,数据流转更顺畅,开发成本更低&/li&&ul&&li&用户可以不再编写程序生成LibSVM格式的数据文件,而是通过Hive或者Spark SQL生成TDW特征表,通过选择TDW特征表的某些列(selected_cols=1-2,4,8-10),由XGBoost-on-spark组件后台生成libsvm类型的输入&/li&&li&可以针对TDW分区表,借助Tesla作业定时调度机制,可以进行XGBoost作业的例行化调度运行&/li&&/ul&&/ul&&p&&br&&/p&&p&&br&&/p&&ol&&li&&b&作业调试更友好&/b&&/li&&/ol&&ul&&li&以Spark作业的形式,而非直接的Yarn作业的形式运行,用户对作业的运行情况更清楚&/li&&ul&&li&可以查看作业的进度&/li&&li&可以查看各节点上的日志信息&/li&&/ul&&/ul&&p&&br&&/p&&p&&br&&/p&&ol&&li&&b&IO方式更丰富&/b&&/li&&/ol&&ul&&li&输入的数据集来源,可以为之前的HDFS上LibSVM格式的文件形式。也可以为一张TDW表,用户通过选择TDW表中的某些列,由XGBoost-on-spark组件在后台生成LibSVM格式的输入。&/li&&li&训练阶段增加了特征重要度(weight、gain、cover)的输出、以及3种类型model的输出:文本格式(用户可以直接查看)、LocalFile的二进制格式(用户可以下载到本地,利用python加载后在线预测)、HadoopFile的二进制格式(用户可以在Tesla环境中,利用Spark加载后离线批量预测)&/li&&li&模型输出的3种格式举例&/li&&/ul&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-ca2c352d069e90e588a400f5a2d117a2_b.png& data-rawwidth=&1258& data-rawheight=&114& class=&origin_image zh-lightbox-thumb& width=&1258& data-original=&/v2-ca2c352d069e90e588a400f5a2d117a2_r.png&&&img src=&/v2-9f440b35bf5f0b10aaca08_b.png& data-rawwidth=&479& data-rawheight=&364& class=&origin_image zh-lightbox-thumb& width=&479& data-original=&/v2-9f440b35bf5f0b10aaca08_r.png&&&p&&br&&/p&&p&4 . &b&数据处理的上下游延伸更广&/b&&/p&&p&与Tesla平台深度整合&/p&&ul&&li&可以拖拽Tesla的组件:数据切分、模型评估,实现数据处理的上下游功能&/li&&li&可以利用Tesla的功能:参数替换、并发设置,进行批量调参&/li&&/ul&&p&5 . &b&model支持在线服务&/b&&/p&&ul&&li&可以利用Tesla的模型服务,进行模型导出、模型部署、在线预测&/li&&/ul&&p&&br&&/p&&img src=&/v2-e6b2bee8bafc4_b.png& data-rawwidth=&625& data-rawheight=&770& class=&origin_image zh-lightbox-thumb& width=&625& data-original=&/v2-e6b2bee8bafc4_r.png&&&p&&br&&/p&&h2&总结&/h2&&p&XGBoost是机器学习的利器,虽然小巧,但是功能强大,以其被实战检验过的高效,吸引了很多使用者。我们针对用户痛点进行了诸多改进,实现了用户在Tesla平台中更加方便的使用,大大减少了用户的开发成本,同时,我们也开放出了XGBoost API,让逻辑复杂的业务可以在自身系统中嵌入xgBoost,更加直接的对接TDW系统。后续有进一步的需求,欢迎联系Tesla团队,我们将提供更好的机器学习和数据服务。&/p&&p&&br&&/p&&p&&b&相关阅读&/b&&/p&&p&&a href=&/?target=https%3A///community/article/749089& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&当 AI 遇见体育&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&/?target=https%3A///community/article/960838& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯 AI Lab 副主任俞栋:过去两年基于深度学习的声学模型进展&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&/?target=https%3A///community/article/402904& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习实战&i class=&icon-external&&&/i&&/a&&/p&&hr&&p&此文已由作者授权腾讯云技术社区发布,转载请注明&a href=&/?target=https%3A///community/article/794649& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&文章出处&i class=&icon-external&&&/i&&/a&&/p&&p&原文链接:&a href=&/?target=https%3A///community/article/794649& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/commu&/span&&span class=&invisible&&nity/article/794649&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&
欢迎大家前往,获取更多腾讯海量技术实践干货哦~作者:张萌序言XGBoost效率很高,在Kaggle等诸多比赛中使用广泛,并且取得了不少好成绩。为了让公司的算法工程师,可以更加方便的使用XGBoost,我们将XGBoost更好地与公司已有的存储资源和计算…
&img src=&/50/v2-b33a3259032fbd5ccc1eb6_b.png& data-rawwidth=&781& data-rawheight=&378& class=&origin_image zh-lightbox-thumb& width=&781& data-original=&/50/v2-b33a3259032fbd5ccc1eb6_r.png&&&p&今天讨论一个和并行计算相关的话题。我们探讨下如何通过并行计算来加速稀疏矩阵和矢量的乘法。这个问题为什么重要? 首先它是显式求解的关键, 同时也是用迭代方式隐式求解的基本构成之一(参见Krylov子空间迭代 &a href=&/?target=https%3A//en.wikipedia.org/wiki/Krylov_subspace& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&en.wikipedia.org/wiki/K&/span&&span class=&invisible&&rylov_subspace&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&)。除了稀疏矩阵和矢量的乘法,预处理是用迭代隐式求解的真正的难点,不过我们不在此处展开讨论。&/p&&p&仍然考虑前文(&a href=&/p/& class=&internal&&从一维弹簧系统谈显式求解和隐式求解的区别&/a&)中建立的稀疏矩阵K。为了更具有一般性,我们让每段弹簧的k都不相同,分别为 &img src=&/equation?tex=k_1%2C+k_2%2C+...%2C+k_%7BN%2B1%7D& alt=&k_1, k_2, ..., k_{N+1}& eeimg=&1&&。我们的目的是通过并行计算来提高 &img src=&/equation?tex=f%3DKd& alt=&f=Kd& eeimg=&1&& 的效率。&/p&&p&在接下来的讨论中,我们采用大O表示法(&a href=&/?target=https%3A//en.wikipedia.org/wiki/Big_O_notation& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&en.wikipedia.org/wiki/B&/span&&span class=&invisible&&ig_O_notation&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&)来衡量计算需要的时间或者存储。我们的并行计算模型是单程序多数据(SPMD,&a href=&/?target=https%3A//en.wikipedia.org/wiki/SPM& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&en.wikipedia.org/wiki/S&/span&&span class=&invisible&&PM&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&),如下图所示。&/p&&img src=&/v2-0de831adeff693af390f9ac0_b.jpg& data-rawwidth=&397& data-rawheight=&165& class=&content_image& width=&397&&&p&图中的进程是逻辑上执行程序的计算单元,它物理上可以对应某个CPU或者core。每个进程在逻辑上有独立的内存空间,在物理上内存可以是分布式的,也可以是共享的。这里我们强调“逻辑”和“物理”的区别。实际里面二者经常混淆,但是它们没有一一对应关系。进程之间通过信息传递来交换数据。&/p&&p&为了表述方便,我们借用MATLAB对矩阵的表达习惯。例如 &img src=&/equation?tex=K%282%3A4%2C%3A%29& alt=&K(2:4,:)& eeimg=&1&& 表示 &img src=&/equation?tex=K& alt=&K& eeimg=&1&& 的第2行到第4行中的所有元素。&/p&&p&我们考虑两个方面的花费:时间和内存。时间花费用挂钟时间(wall time)来衡量,就是我们实际感受到的时间。时间花费主要在浮点数操作和信息传递两个地方。对于浮点数操作,我们不区分计算一次加法和乘法在时间上的差别。除此以外我们忽略一些重要的细节,比如说不考虑存储层次(&a href=&/?target=https%3A//en.wikipedia.org/wiki/Memory_hierarchy& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&en.wikipedia.org/wiki/M&/span&&span class=&invisible&&emory_hierarchy&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&)对计算效率带来的影响。内存花费衡量单个进程所需要的内存大小。&/p&&p&我们比较三种实现方法。&/p&&h2&1. 非分布式的数据&/h2&&p&作为开始,我们假设所有的进程都有完整的数据, &img src=&/equation?tex=K%E5%92%8Cd%2C& alt=&K和d,& eeimg=&1&& 并且计算结束之后每个进程都有完整的 &img src=&/equation?tex=f%3DKd& alt=&f=Kd& eeimg=&1&& 。我们用很简单的载荷分配(workload distribution)。我们要求 &img src=&/equation?tex=f& alt=&f& eeimg=&1&& 中的&img src=&/equation?tex=N& alt=&N& eeimg=&1&& 个未知的值,假设我们有 &img src=&/equation?tex=p& alt=&p& eeimg=&1&& 个进程,我们让每个进程负责计算f中连续的 &img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D& alt=&\frac{N}{p}& eeimg=&1&& 个值, &/p&&p&即进程1计算&/p&&p&&img src=&/equation?tex=f%281%3A%5Cfrac%7BN%7D%7Bp%7D%29%3DK%281%3A%5Cfrac%7BN%7D%7Bp%7D%2C%3A%29d%28%3A%29& alt=&f(1:\frac{N}{p})=K(1:\frac{N}{p},:)d(:)& eeimg=&1&& , &/p&&p&第2个进程计算&/p&&p&&img src=&/equation?tex=f%28%5Cfrac%7BN%7D%7Bp%7D%2B1%3A%5Cfrac%7B2N%7D%7Bp%7D%29%3DK%28%5Cfrac%7BN%7D%7Bp%7D%2B1%3A%5Cfrac%7B2N%7D%7Bp%7D%2C%3A%29d%28%3A%29& alt=&f(\frac{N}{p}+1:\frac{2N}{p})=K(\frac{N}{p}+1:\frac{2N}{p},:)d(:)& eeimg=&1&& ,&/p&&p&以此类推。最后通过信息传递得到完整的 &img src=&/equation?tex=f& alt=&f& eeimg=&1&& 。&/p&&p&首先我们计算下浮点数操作需要的时间。计算&/p&&p&&img src=&/equation?tex=f_i%3DK_%7Bi%2Ci-1%7Dd_%7Bi-1%7D%2BK_%7Bii%7D%2Ad_i%2BK_%7Bi%2Ci%2B1%7Dd_%7Bi%2B1%7D& alt=&f_i=K_{i,i-1}d_{i-1}+K_{ii}*d_i+K_{i,i+1}d_{i+1}& eeimg=&1&&&/p&&p&需要2次加法和3次乘法 (其中的系数 &img src=&/equation?tex=K_%7Bi%2Ci-1%7D%3D-k_i%2C+K_%7Bii%7D%3Dk_i%2Bk_%7Bi%2B1%7D%2C+K_%7Bi%2Ci%2B1%7D%3D-k_%7Bi%2B1%7D& alt=&K_{i,i-1}=-k_i, K_{ii}=k_i+k_{i+1}, K_{i,i+1}=-k_{i+1}& eeimg=&1&&),每个核计算 &img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D& alt=&\frac{N}{p}& eeimg=&1&& 个 &img src=&/equation?tex=f_i& alt=&f_i& eeimg=&1&& ,需要的时间都是 &img src=&/equation?tex=O%28%5Cfrac%7B5N%7D%7Bp%7D%29& alt=&O(\frac{5N}{p})& eeimg=&1&& 。 浮点数操作所需要的花费随着进程数目 &img src=&/equation?tex=p& alt=&p& eeimg=&1&& 的增加而减少,这一步的计算是scalable的。近一步的观察可知计算的花费和 &img src=&/equation?tex=p& alt=&p& eeimg=&1&& 成反比,这种情况下达到的加速比是线性的,这正是并行计算追求的目标。关于如何衡量并行计算的效率,可参见&a href=&/?target=https%3A//www.sharcnet.ca/help/index.php/Measuring_Parallel_Scaling_Performance& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&sharcnet.ca/help/index.&/span&&span class=&invisible&&php/Measuring_Parallel_Scaling_Performance&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&接下来我们看看信息传递需要的时间。所有进程传递计算结果是个All-to-All communication的操作,具体实现可参考&a href=&/?target=http%3A//www.mcs.anl.gov/%7Ethakur/papers/ijhpca-coll.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&mcs.anl.gov/~thakur/pap&/span&&span class=&invisible&&ers/ijhpca-coll.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&, 我们简化一下,忽略每次信息传递的延迟(latency),假设 &img src=&/equation?tex=p& alt=&p& eeimg=&1&& 很大,则传递信息的花费 为&img src=&/equation?tex=O%5Cleft%28log%28p%29N%5Cright%29& alt=&O\left(log(p)N\right)& eeimg=&1&& 。我们看到随着进程数目的增加,用在信息传递的时间也在增加。这一步不是scalable了。它带来的问题在进程数目 &img src=&/equation?tex=p& alt=&p& eeimg=&1&& 比较小,计算相对于通信还是主要部分的时候还体现不出来。&b&但是这个算法本质上是不可能真正的scalable。&/b&&/p&&p&在看一看内存使用,由于每个进程都有完整的数据,考虑的矩阵的稀疏性,花费是 &img src=&/equation?tex=O%EF%BC%88bN%2B2N%EF%BC%89& alt=&O(bN+2N)& eeimg=&1&& ,其中 &img src=&/equation?tex=bN& alt=&bN& eeimg=&1&& 是用来存储矩阵, &img src=&/equation?tex=b%3D3& alt=&b=3& eeimg=&1&& 是每行的非零元素, &img src=&/equation?tex=2N& alt=&2N& eeimg=&1&& 用来存储 &img src=&/equation?tex=d& alt=&d& eeimg=&1&& 和 &img src=&/equation?tex=f& alt=&f& eeimg=&1&& 。内存使用也没有随着 &img src=&/equation?tex=p& alt=&p& eeimg=&1&& 的增加而减少,内存使用上也不是scalable的。&/p&&h2&2. 按照行分布的矩阵&/h2&&p&我们在实现1的基础上稍微往前一步。我们看到在计算中,进程1只需要前 &img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D& alt=&\frac{N}{p}& eeimg=&1&& 行矩阵的数据来完成 &img src=&/equation?tex=f%281%3A%5Cfrac%7BN%7D%7Bp%7D%29%3DK%281%3A%5Cfrac%7BN%7D%7Bp%7D%2C%3A%29d%28%3A%29& alt=&f(1:\frac{N}{p})=K(1:\frac{N}{p},:)d(:)& eeimg=&1&& , 进程2只需要 &img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D%2B1& alt=&\frac{N}{p}+1& eeimg=&1&& 到 &img src=&/equation?tex=%5Cfrac%7B2N%7D%7Bp%7D& alt=&\frac{2N}{p}& eeimg=&1&& 行的矩阵来完成 &img src=&/equation?tex=f%281%2B%5Cfrac%7BN%7D%7Bp%7D%3A%2B%5Cfrac%7B2N%7D%7Bp%7D%29%3DK%281%2B%5Cfrac%7BN%7D%7Bp%7D%EF%BC%9A%5Cfrac%7B2N%7D%7Bp%7D%2C%3A%29d%28%3A%29& alt=&f(1+\frac{N}{p}:+\frac{2N}{p})=K(1+\frac{N}{p}:\frac{2N}{p},:)d(:)& eeimg=&1&& ,以此类推,每个进程只需要存储 &img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D& alt=&\frac{N}{p}& eeimg=&1&& 行的矩阵。和1相比,我们时间花费不变,内存使用变成了 &img src=&/equation?tex=O%28%5Cfrac%7BbN%7D%7Bp%7D%2B2N%29& alt=&O(\frac{bN}{p}+2N)& eeimg=&1&& 。由于我们这里举的一维单自由度的例子, &img src=&/equation?tex=b%3D3& alt=&b=3& eeimg=&1&& 还看不出来有多少改进。对于三维多自由度的例子,&img src=&/equation?tex=b& alt=&b& eeimg=&1&& 可以是几十到几百,这种情况下,分布式的矩阵带来的内存减少还是很可观的。&/p&&h2&3. 按单元分布的矩阵和矢量&/h2&&p&目前为止,我们并没有利用矩阵的稀疏性。对于这个一维问题,进程1只需要 &img src=&/equation?tex=d& alt=&d& eeimg=&1&& 中前&img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D%2B1& alt=&\frac{N}{p}+1& eeimg=&1&& 的元素来完成计算,即 &img src=&/equation?tex=f%281%3A%5Cfrac%7BN%7D%7Bp%7D%29%3DK%281%3A%5Cfrac%7BN%7D%7Bp%7D%2C+%3A%29+d%281%3A%5Cfrac%7BN%7D%7Bp%7D%2B1%29& alt=&f(1:\frac{N}{p})=K(1:\frac{N}{p}, :) d(1:\frac{N}{p}+1)& eeimg=&1&& , 进程2只需要&img src=&/equation?tex=d& alt=&d& eeimg=&1&&中&img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D& alt=&\frac{N}{p}& eeimg=&1&& 到 &img src=&/equation?tex=%5Cfrac%7B2N%7D%7Bp%7D%2B1& alt=&\frac{2N}{p}+1& eeimg=&1&& 的元素来计算&img src=&/equation?tex=f%281%2B%5Cfrac%7BN%7D%7Bp%7D%3A%5Cfrac%7B2N%7D%7Bp%7D%29%3DK%281%2B%5Cfrac%7BN%7D%7Bp%7D%EF%BC%9A%5Cfrac%7B2N%7D%7Bp%7D%2C%3A%29d%28%5Cfrac%7BN%7D%7Bp%7D%3A%5Cfrac%7B2N%7D%7Bp%7D%2B1%29& alt=&f(1+\frac{N}{p}:\frac{2N}{p})=K(1+\frac{N}{p}:\frac{2N}{p},:)d(\frac{N}{p}:\frac{2N}{p}+1)& eeimg=&1&& 。&/p&&p&为了更好的理解问题的本质,我们回到问题的本身,一维弹簧系统。可以看到矩阵的每个不在对角线上非零元素代表被弹簧连接的两个节点。我们首先对弹簧系统做一个分区,每个进程只存储一个分区的信息。如下图所示&/p&&img src=&/v2-b33a3259032fbd5ccc1eb6_b.jpg& data-rawwidth=&781& data-rawheight=&378& class=&origin_image zh-lightbox-thumb& width=&781& data-original=&/v2-b33a3259032fbd5ccc1eb6_r.jpg&&&p&每个进程上只有连续的 &img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D& alt=&\frac{N}{p}& eeimg=&1&& 个弹簧的刚度 &img src=&/equation?tex=k& alt=&k& eeimg=&1&& ,以及被弹簧连接的 &img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D& alt=&\frac{N}{p}& eeimg=&1&&或者 &img src=&/equation?tex=%5Cfrac%7BN%7D%7Bp%7D%2B1& alt=&\frac{N}{p}+1& eeimg=&1&& 个节点上的位移和力。&/p&&p&现在我们有了一个按单元分区得到的分布式的矩阵和矢量,下面我们看看如何实现 &img src=&/equation?tex=f%3DKd& alt=&f=Kd& eeimg=&1&&。&/p&&p&第一步: 每个进程计算各自的 &img src=&/equation?tex=f_%7Blocal%7D%3DK_%7Blocal%7Dd_%7Blocal%7D& alt=&f_{local}=K_{local}d_{local}& eeimg=&1&& 。&/p&&p&第二步:我们发现分区内部的节点的力是完整的,例如在上图中,节点2的力&img src=&/equation?tex=+f_2%3D-k_2d_1%2B%28k_2%2Bk_3%29d_2-k_3d_3& alt=& f_2=-k_2d_1+(k_2+k_3)d_2-k_3d_3& eeimg=&1&& , 因为进程1有 &img src=&/equation?tex=k_2%EF%BC%8Ck_3%E5%92%8Cd_1%EF%BC%8Cd_2%EF%BC%8Cd_3& alt=&k_2,k_3和d_1,d_2,d_3& eeimg=&1&& 的信息。对于分区边界的节点力是不完整的,例如节点3由进程1和进程2共享,在进程1上我们得到节点3上的力为&img src=&/equation?tex=f_3%5E%7Bp%2C1%7D%3D-k_3d_2%2Bk_3d_3& alt=&f_3^{p,1}=-k_3d_2+k_3d_3& eeimg=&1&& , 第二进程上我们得到 &img src=&/equation?tex=f_3%5E%7Bp%2C2%7D%3Dk_4d_3-k_4d_4& alt=&f_3^{p,2}=k_4d_3-k_4d_4& eeimg=&1&& ,而节点3上完整的 力为&img src=&/equation?tex=f_3%3Df_3%5E%7Bp%2C1%7D%2Bf_3%5E%7Bp%2C2%7D& alt=&f_3=f_3^{p,1}+f_3^{p,2}& eeimg=&1&& 。这就需要我们用信息传递把节点3在两个进程的值加起来。&/p&&p&我们给出第二步的一个具体实现。首先进程 &img src=&/equation?tex=i& alt=&i& eeimg=&1&& 把分区最左侧节点的值&img src=&/equation?tex=f%5E%7Bp%2Ci%7D& alt=&f^{p,i}& eeimg=&1&& 传给进程 &img src=&/equation?tex=i-1& alt=&i-1& eeimg=&1&&,同时进程 &img src=&/equation?tex=i& alt=&i& eeimg=&1&& 收到进程 &img src=&/equation?tex=i%2B1& alt=&i+1& eeimg=&1&& 的分区最右侧节点的值 &img src=&/equation?tex=f%5E%7Bp%2Ci%2B1%7D& alt=&f^{p,i+1}& eeimg=&1&& (我们可以采用异步的通信来避免死锁)。此时,进程 &img src=&/equation?tex=i& alt=&i& eeimg=&1&& 得到了完整的分区最右侧节点的值。最后进程 &img src=&/equation?tex=i& alt=&i& eeimg=&1&& 把完整的值传给进程 &img src=&/equation?tex=i%2B1& alt=&i+1& eeimg=&1&& ,同时收到进程 &img src=&/equation?tex=i-1& alt=&i-1& eeimg=&1&& 传来的值。&/p&&p&我们分析一下这个过程的计算时间。第一步需要 &img src=&/equation?tex=O%EF%BC%88%5Cfrac%7B5N%7D%7Bp%7D%EF%BC%89& alt=&O(\frac{5N}{p})& eeimg=&1&& ,第二步通信需要发送和接受两对信息,每个信息长度都是1,需要时间 &img src=&/equation?tex=O%281%29& alt=&O(1)& eeimg=&1&& 。和前两种算法比起来,第二步有了很大的改进,从之前的 &img src=&/equation?tex=O%5Cleft%28log%28p%29N%5Cright%29& alt=&O\left(log(p)N\right)& eeimg=&1&& 缩减到了 &img src=&/equation?tex=O%281%29& alt=&O(1)& eeimg=&1&& 。不难发现,在二维和三维的情况下,第二步也是scalable的,因为分区的边界随着 &img src=&/equation?tex=p& alt=&p& eeimg=&1&& 的增加而减少,而信息的大小和分区边界的大小成正比。&/p&&p&再看看单个进程所需内存的大小。我们假设节点的数目远大于进程数目,即 &img src=&/equation?tex=N%3E%3Ep& alt=&N&&p& eeimg=&1&& ,不难发现单个进程所需内存是 &img src=&/equation?tex=O%28%5Cfrac%7BbN%2B2N%7D%7Bp%7D%29& alt=&O(\frac{bN+2N}{p})& eeimg=&1&& , 和 &img src=&/equation?tex=p& alt=&p& eeimg=&1&& 成反比,这是比较理想的结果。&/p&&hr&&p&附:&/p&&p&笔者尝试通过一个简单的例子,来说明如何使用并行计算实现算法优化,以及如何预测算法的优化能力。首先算法优化在编程实现之前的设计分析是很有必要的。这一步甚至用纸笔是可以完成的。我们需要的是一个抓住主要矛盾的计算模型。此外,判断一个SPMD或者MPI程序的好坏,内存使用是个很好的参考。一个真正scalable的算法必须有一个scalable的内存使用。 第三个实现从时间和空间上无疑是最好的。但是它暗示这样一个假设,程序的每一个部分都是被并行的,而且只使用了分区内部的信息。分区之外的信息只能通过信息传递来获得。 对于对于复杂程序来说,尤其是有多年历史积累的商业软件来说,做到这一步很不容易。&/p&
今天讨论一个和并行计算相关的话题。我们探讨下如何通过并行计算来加速稀疏矩阵和矢量的乘法。这个问题为什么重要? 首先它是显式求解的关键, 同时也是用迭代方式隐式求解的基本构成之一(参见Krylov子空间迭代 )。除了稀疏矩阵和矢量…
&p&今年的话,应该是刘未鹏他们翻译的《修改代码的艺术》,原名working effectively with legacy code. 群友戏称为“擦屁股的艺术”。&/p&&p&去年觉得陈硕那本介绍muduo的书非常不错,如今看来,固然是良心之作,但是作为一本入门书,覆盖的知识在真实工作中恐怕远远不够用,还需要配合更多进阶训练。&/p&
今年的话,应该是刘未鹏他们翻译的《修改代码的艺术》,原名working effectively with legacy code. 群友戏称为“擦屁股的艺术”。去年觉得陈硕那本介绍muduo的书非常不错,如今看来,固然是良心之作,但是作为一本入门书,覆盖的知识在真实工作中恐怕远远…
&p&label smooth包括hinton后来做的一个类似方法我都试过&/p&&p&我想他们应该是在某些原本过拟合有些多的情况下work&/p&&p&我自己有做很强的抗过拟合方法,所以这时候就可能表现为导致欠拟合&/p&&p&所以引入新的超参,是和模型的设定及训练的方法有关联的,我个人试过的大多数抗过拟合方法最终都成了欠拟合,如果原来的训练过拟合严重,那可能会更有效一些&/p&
label smooth包括hinton后来做的一个类似方法我都试过我想他们应该是在某些原本过拟合有些多的情况下work我自己有做很强的抗过拟合方法,所以这时候就可能表现为导致欠拟合所以引入新的超参,是和模型的设定及训练的方法有关联的,我个人试过的大多数抗过拟…
你其实问到了一个最优化研究里的一个很重要,但是答案的细节又很微妙的问题。&br&&br&首先如你所想,如果rank 不等于m,Lagrange方法或者说解KKT方程在理论上会失败,这种退化而病态的情况是可能的。非线性优化理论的一个重要研究,就是弄清楚理论上什么条件下可以避免这种病态情况,这方面的成果通常叫做KKT条件的约束规范constraint qualification。这方面的研究论文主要集中在上个世纪六七十年代,现在学习时可能都很少见,或者不太注意,教科书里也就是提一下约束规范条件这个概念。&br&&br&之所以说这个问题的答案很重要而细节又很微妙,一方面是是因为最优条件不成立的病态情形都非常复杂,没法完全弄清楚这些病态情形的机理或者对他们进行分类,所以学者们才花大量时间研究约束规范条件来避免病态情形。另一方面,这样的病态案例只有教学意义,在实际问题中通常都不会出现。为什么呢?因为这样的情形都是不稳定的,细微的数据扰动就改变了输出结果。而对于实际可用的数值算法,必须要保证数值稳定性,否则就没法应对舍入误差。&br&&br&最终导致了现在的情况: 通常学者们在研究时就是简单地假定约束规范条件是成立的,换句话说就是规避这些病态情形。因为有大量的约束规范条件可以使用,不需要再详究细节,而且这些规范情形已经足以覆盖大多数实际问题。除非专门研究这些病态问题或者新的约束规范条件,否则大家就直接忽略这些病态情形。
你其实问到了一个最优化研究里的一个很重要,但是答案的细节又很微妙的问题。 首先如你所想,如果rank 不等于m,Lagrange方法或者说解KKT方程在理论上会失败,这种退化而病态的情况是可能的。非线性优化理论的一个重要研究,就是弄清楚理论上什么条件下可以…
&p&NIPS结果刚出来了, 2017 AI CCF-A论文称埃落定, 7大会议录用情况&/p&&p&CCF-A
#Subs Rate&/p&&p&AAAI-
%&/p&&p&IJCAI-40 25.98%&/p&&p&ACL-2017
%&/p&&p&CVPR-
%&/p&&p&ICCV-
%&/p&&p&ICML-
%&/p&&p&NIPS-
%&/p&&p&TOTAL
4157!&/p&&p&&br&&/p&&p&这一年四位数的“顶会”论文,真的能配得上“顶”吗??&/p&&p&&br&&/p&&p&国内有多少? &/p&&p&只看到AAAI-17有给出这个数据&/p&&p&发表/投稿:大陆=180/790左右(美国=190/780左右)&/p&&p&估计7个会下来怎么也有个大几百?&/p&&p&&br&&/p&&p&&br&&/p&&p&从投稿,发表,录用率 AI的CCF-A会议相比其他领域(软工/网络/数据库/体系结构/系统软件)都算是巨无霸级别了&/p&&p&&br&&/p&&p&一直以来都有存在跨领域的争论,主要也就是关于“体量”问题,现在已经发展到大AI领域的内部了&/p&&p&&br&&/p&&p&其实单领域内的比较,数数论文数也就算了,但国内最可怕的是跨领域的数论文数 . . .&/p&&p&&br&&/p&&p&这几年小到学生评奖、评优秀毕业论文,大到各种帽子四青的评选,AI领域的都占到了巨大的比例,&/p&&p&CCF—A篇数作为主要量化指标实际上起到了决定性作用 现在大AI领域内也开始“细分”蛋糕了&/p&&p&&br&&/p&&p&&br&&/p&&p&个人觉得可能问题并不在AI会论文多少,做的人也确实多,体量确实应该符合领域需要和特点&/p&&p&问题是出在了国内的评价体系上,而这个评价体系又和太多的东西联系在一起变的太重要了&/p&&p&最后就直接翻过来驱使这个老师和学生去扭曲的追求CCF-A类论文的数量最大化&/p&&p&&br&&/p&&p&其实有的评论批评一些国外大学的华人教授在圈子里吃相太差,打招呼成风,很多也是捞资本过几年回来带高帽子&/p&&p&在国外研究界和产业界,每年发特别多的没影响力的论文有时没啥“大用” ,reputation这东西其实越往上越重要&/p&&p&国内也应该学学,至少在一些重要的指标上应该至少不要搞直接看数量这种笑话&/p&&p&可惜这指标正好是外行评内行、跨领域评的时候专家最喜欢和最保险的指标,估计要改难&/p&&p&&/p&
NIPS结果刚出来了, 2017 AI CCF-A论文称埃落定, 7大会议录用情况CCF-A
#Subs RateAAAI-
%IJCAI-40 25.98%ACL-
&img src=&/50/v2-33f5ac1a96c8f7e2fcf57cb_b.jpg& data-rawwidth=&900& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&/50/v2-33f5ac1a96c8f7e2fcf57cb_r.jpg&&&blockquote&允中 发自 凹非寺&br&量子位 出品 | 公众号 QbitAI&/blockquote&&p&&br&&/p&&img src=&/50/v2-8c535a751ff28bbf0cd8f_b.jpg& data-rawwidth=&640& data-rawheight=&153& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-8c535a751ff28bbf0cd8f_r.jpg&&&p&&br&&/p&&p&今天凌晨,NIPS 2017开始揭榜。&/p&&p&作为机器学习领域的顶级会议,NIPS 2017共收到3240篇论文投稿,毫不意外这个数字又创了新高。有678篇论文被选中作为大会论文,比例20.9%。&/p&&p&其中有40篇被选中进行口头报告(oral),112篇选为spotlight进行展示。&/p&&p&接收到NIPS 2017入选通知邮件的研究者,纷纷都迫不及待的开始与外界分享这一喜悦。或曰:“&b&登斯NIPS也,则有心旷神怡,宠辱偕忘,把酒临风,其喜洋洋者矣。&/b&”&/p&&p&当然也有遗憾被拒的,比方量子位在微博上看到的这一幕:形成对比的两重天。&/p&&p&&br&&/p&&img src=&/50/v2-2ac6a992ddd8f82fbc870a4468cbddda_b.jpg& data-rawwidth=&640& data-rawheight=&412& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-2ac6a992ddd8f82fbc870a4468cbddda_r.jpg&&&p&&br&&/p&&p&很多入围者在庆祝之余,还附带了arXiv链接。&/p&&p&什么?已经在arXiv上发表?真的可以么?&/p&&p&对,没关系。NIPS 2017要求提交的论文,不能是已经公开/接受出版,或者曾经投递给其他会议/期刊。但是允许提前发表在&a href=&/?target=http%3A//arXiv.org& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&arXiv.org&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&上。&/p&&p&当然还有很多人并不喜欢这么做,所以他们入选的论文稍后会公开发布。&/p&&p&现在到底有哪些入围论文已经可以看到了?量子位手动统计了一下目前的情况,数据来自微博、推特、reddit等公开渠道。&/p&&h2&&b&Oral&/b&&/h2&&p&&b&Safe and Nested Subgame Solving for Imperfect-Information Games&/b& &/p&&p&在NIPS 2017接受的口头报告展示论文中,我们发现了一篇“明星”论文。来自卡内基梅隆大学博士生Noam Brown和Tuomas Sandholm教授。&/p&&p&&br&&/p&&b&&img src=&/50/v2-3a39a8e7b5ada6e66ebdf_b.jpg& data-rawwidth=&640& data-rawheight=&317& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-3a39a8e7b5ada6e66ebdf_r.jpg&&&/b&&p&&br&&/p&&p&还记得年初&a href=&/?target=http%3A//mp./s%3F__biz%3DMzIzNjc1NzUzMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D84b5df899a22ef9212a6dc%26chksm%3De8d3b69bdfa43f8d5fcfff3eaf7ea72f8f602ecae1ab18784df9bbd7%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&叱咤德州扑克界的AI么&i class=&icon-external&&&/i&&/a&?量子位&a href=&/?target=http%3A//mp./s%3F__biz%3DMzIzNjc1NzUzMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D541f58b87df27fde2ca53fd2b757faa1%26chksm%3De8d3b14edfacba93a4fb5c70bee7c86bbc5cde%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&3月还在CMU独家专访了这两位学者&i class=&icon-external&&&/i&&/a&。这次的论文,就是他们最新的研究成果总结。&/p&&p&摘要简介:不完美信息博弈问题,虽然不能通过拆解为子博弈解决,但可以通过不相交的子博弈来逼近解决方案,或者改进现有解决方案。&/p&&p&&br&&/p&&img src=&/50/v2-98cdb3977d_b.jpg& data-rawwidth=&640& data-rawheight=&214& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-98cdb3977d_r.jpg&&&p&&br&&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/pdf/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/pdf/&/span&&span class=&invisible&&5&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&Toward Goal-Driven Neural Network Models for the Rodent Whisker-Trigeminal System&/b&&/p&&p&这是另一篇看起来很好玩的论文。第一作者是来自斯坦福的博士生Chengxu Zhuang(庄程旭),其他作者来自MIT、西北大学以及斯坦福。&/p&&p&&br&&/p&&img src=&/50/v2-a23bd1d3f7f692ddd628e7c16b5fd8e6_b.jpg& data-rawwidth=&640& data-rawheight=&322& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-a23bd1d3f7f692ddd628e7c16b5fd8e6_r.jpg&&&p&&br&&/p&&p&摘要简介:很大程度上,啮齿动物(老鼠什么的)通过胡须“看到”世界。在这次的研究中,我们采用目标驱动的深度神经网络对胡须-三叉神经系统进行建模。&/p&&p&首先,我们构建了一个生物物理学实现的老鼠胡须阵列模型。然后,生成一个胡须扫过各种3D对象的大型数据集,包括各种不同的姿势、角度和速度。接下来,我们训练了几个不同架构的DNN来解决这个数据集中的形状识别任务。&/p&&p&最后我们证明,胡须-三叉神经系统的DNN模型值得深入研究。&/p&&p&&br&&/p&&img src=&/50/v2-b858fa2ac18e249cc35d7503884cfb61_b.jpg& data-rawwidth=&640& data-rawheight=&258& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-b858fa2ac18e249cc35d7503884cfb61_r.jpg&&&p&&br&&/p&&p&&br&&/p&&p&论文地址: &/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&5&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&TernGrad: Ternary Gradients to Reduce Communication in Distributed Deep Learning&/b&&/p&&p&这篇论文的作者是杜克大学的博士生温伟、陈怡然教授等人。&/p&&p&摘要简介:用于同步梯度和参数的高网络通信成本,是众所周知的分布式训练瓶颈。在这个研究中,我们提出TernGrad:使用三元梯度来在数据并行中加速分布式深度学习。&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/pdf/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/pdf/&/span&&span class=&invisible&&8&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&img src=&/50/v2-22a09d79eb2c5beb13fa59d0d2e43b93_b.jpg& data-rawwidth=&640& data-rawheight=&1138& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-22a09d79eb2c5beb13fa59d0d2e43b93_r.jpg&&&p&&br&&/p&&h2&&b&△&/b& NIPS 2017发给陈教授的邮件&/h2&&p&&b&Robust and Efficient Transfer Learning with Hidden-Parameter Markov Decision Processes&/b&&/p&&p&这篇论文的作者三位来自哈佛大学,一位来自布朗大学。&/p&&p&摘要简介:这是一个新的隐马尔可夫决策过程(HiP-MDP)方案,使用贝叶斯神经网络替换之前基于高斯高程的模型。新框架将HiP-MDP的应用范围扩大到更高维度和更复杂动态的领域。&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&4&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&End-to-end Differentiable Proving&/b&&/p&&p&两位作者分别来自牛津和伦敦大学学院。&/p&&p&摘要简介:这是一个端到端的微分定理证明神经网络,运算基于符号的密集向量表示。具体来说,我们使用径向基函数内核,基于符号向量表示构建了一个微分计算,用以取代符号统一(symbolic unification)。&/p&&p&论文地址:&/p&&p&&a href=&/?target=http%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&0&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&A Linear-Time Kernel Goodness-of-Fit Test&/b&&/p&&p&作者来自伦敦大学学院、巴黎综合理工大学、日本统计数学研究所。&/p&&p&摘要简介:我们提出了一种拟合优度的新型自适应测试。我们证明了新的测试,比以前的线性时间内核测试具有更大的相对效率。&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&3&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&On Structured Prediction Theory with Calibrated Convex Surrogate Losses&/b&&/p&&p&作者来自法国国家信息与自动化研究所、蒙特利尔大学。&/p&&p&摘要简介:这篇论文提出了一种结构化预测的新见解。对于任务丢失,我们构建了一个可以通过随机梯度下降优化的凸替代,并证明了所谓“校准函数”的紧界,将过量替代风险与实际风险相关联。&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&3&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&h2&&b&Spotlight&/b&&/h2&&p&&b&Overcoming Catastrophic Forgetting by Incremental Moment Matching&/b&&/p&&p&&br&&/p&&img src=&/50/v2-a1f779e53c9eb470cbd98d1c_b.jpg& data-rawwidth=&640& data-rawheight=&391& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-a1f779e53c9eb470cbd98d1c_r.jpg&&&p&&br&&/p&&p&作者来自首尔国立大学等韩国研究机构。&/p&&p&摘要简介:为了解决灾难性遗忘这个问题,我们提出了使用贝叶斯神经网络框架构建的增量矩匹配(IMM)。&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&5&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&入选oral和Spotlight展示环节的论文,量子位初步找到这些。更多的内容,期待官方统一公布。以下还有一些NIPS 2017接受的论文。&/p&&h2&&b&其他入选论文&/b&&/h2&&p&&b&Dynamic Safe Interruptibility for Decentralized Multi-Agent Reinforcement Learning&/b&&/p&&p&分散式多智能体强化学习的动态安全中断&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&2&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&Byzantine-Tolerant Machine Learning&/b&&/p&&p&拜占庭容错机器学习&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&7&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&Causal Effect Inference with Deep Latent-Variable Models&/b&&/p&&p&因果效应推理与深度潜变量模型&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&1&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&Learning Hierarchical Information Flow with Recurrent Neural Modules&/b&&/p&&p&用循环神经模块学习分层信息流&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/pdf/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/pdf/&/span&&span class=&invisible&&4&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&SVCCA: Singular Vector Canonical Correlation Analysis for Deep Understanding and Improvement&/b&&/p&&p&SVCCA:深度理解和改进的奇异向量规范相关分析&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&6&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&Structured Bayesian Pruning via Log-Normal Multiplicative Noise&/b&&/p&&p&通过对数正态乘法噪声构造贝叶斯修剪&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&3&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&SafetyNets: Verifiable Execution of Deep Neural Networks on an Untrusted Cloud&/b&&/p&&p&SafetyNets:在不可信云上可信赖的运行深度神经网络&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/pdf/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/pdf/&/span&&span class=&invisible&&8&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&Working hard to know your neighbor’s margins: Local descriptor learning loss&/b&&/p&&p&努力学习临近的边缘:本地描述符学习损失&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&2&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&Emergence of Language with Multi-agent Games: Learning to Communicate with Sequences of Symbols&/b&&/p&&p&多智能体游戏语言的出现:学习与符号序列进行沟通&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&2&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&img src=&/50/v2-6eedb5340fdcef4eb80f0bee_b.jpg& data-rawwidth=&640& data-rawheight=&393& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-6eedb5340fdcef4eb80f0bee_r.jpg&&&p&&br&&/p&&p&&b&Practical Bayesian Optimization for Model Fitting with Bayesian Adaptive Direct Search&/b&&/p&&p&贝叶斯自适应直接搜索模型拟合的实际贝叶斯优化&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&5&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&GitHub地址:&/p&&p&&a href=&/?target=https%3A///lacerbi/bads& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/lacerbi/bads&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&On Tensor Train Rank Minimization: Statistical Efficiency and Scalable Algorithm&/b&&/p&&p&Tensor Train等级最小化:统计效率和可扩展算法&/p&&p&论文地址:&/p&&p&&a href=&/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&2&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&PixelGAN Autoencoders&/b&&/p&&p&PixelGAN自动编码器&/p&&p&论文地址:&/p&&p&&a href=&/?target=http%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&1&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&img src=&/50/v2-b2e00fa73b1cd7d83393e9_b.jpg& data-rawwidth=&640& data-rawheight=&336& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-b2e00fa73b1cd7d83393e9_r.jpg&&&p&&br&&/p&&p&好啦,先到这里。最后,还是恭喜各位。&/p&&p&以及,如果有更多关于这次NIPS 2017想说的东西,不管是谈谈论文,发发感想,做做总结,都欢迎联系量子位~&/p&&p&— 完 —&/p&&p&欢迎大家关注我们的专栏:&a href=&/qbitai& class=&internal&&量子位 - 知乎专栏&/a&&/p&&p&诚挚招聘&/p&&p&量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。&/p&&p&&a href=&/qbitai& class=&internal&&量子位 QbitAI&/a&&/p&&p&?'?' ? 追踪AI技术和产品新动态&/p&&p&&/p&
允中 发自 凹非寺 量子位 出品 | 公众号 QbitAI 今天凌晨,NIPS 2017开始揭榜。作为机器学习领域的顶级会议,NIPS 2017共收到3240篇论文投稿,毫不意外这个数字又创了新高。有678篇论文被选中作为大会论文,比例20.9%。其中有40篇被选中进行口头报告(oral…
&p&[本文主要介绍SGD算法,和两篇分析它逃离鞍点的论文: 我与鬲融,金驰,黄芙蓉写的Escaping From Saddle Points – Online Stochastic Gradient for Tensor Decomposition, 以及由金驰,鬲融等人写的最新力作:How to Escape Saddle Points Efficiently]&/p&&p&&br&&/p&&p&假如我们要优化一个函数 &img src=&/equation?tex=f%28x%29& alt=&f(x)& eeimg=&1&& ,即找到它的最小值, 常用的方法叫做Gradient Descent (GD), 也就是最速下降法. 说起来很简单, 就是每次沿着当前位置的导数方向走一小步, 走啊走啊就能够走到一个好地方了.&/p&&p&&br&&/p&&img src=&/v2-bab3d9ecaf5_b.png& data-rawwidth=&703& data-rawheight=&366& class=&origin_image zh-lightbox-thumb& width=&703& data-original=&/v2-bab3d9ecaf5_r.png&&&p&&br&&/p&&p&如上图, 就像你下山一样, 每一步你都挑最陡的路走, 如果最后你没摔死的话, 一般你很快就能够走到山脚. 用数学表示一下, 就是&/p&&p&&img src=&/equation?tex=x_%7Bt%2B1%7D%3Dx_t-%5Ceta_t+%5Cnabla+f%28x_t%29& alt=&x_{t+1}=x_t-\eta_t \nabla f(x_t)& eeimg=&1&&&/p&&p&这里 &img src=&/equation?tex=x_t& alt=&x_t& eeimg=&1&& 就是第t步的位置, &img src=&/equation?tex=%5Cnabla+f%28x_t%29& alt=&\nabla f(x_t)& eeimg=&1&& 就是导数, &img src=&/equation?tex=%5Ceta_t& alt=&\eta_t& eeimg=&1&& 是步长. 所以这个算法非常简单, 就是反复做这个一行的迭代.&/p&&p&虽然简单优美, 但GD算法至少有两个明显的缺陷 (其实有更多啦,但今天先讲这两个..) . &/p&&p&首先, 在使用的时候, 尤其是机器学习的应用中, 我们都会面临非常大的数据集. 这个时候如果硬要算 &img src=&/equation?tex=f%28x%29& alt=&f(x)& eeimg=&1&& 的精确导数(也别管 &img src=&/equation?tex=f%28x%29& alt=&f(x)& eeimg=&1&& 是什么了, 反正每个机器学习算法里面都有这么个东西..), 往往意味着我们要花几个小时把整个数据集都扫描一遍, 然后还只能走一小步. 一般GD要几千步几万步才能收敛, 所以这样就根本跑不完了. &/p&&p&其次, 如果我们不小心陷入了鞍点, 或者比较差的局部最优点, GD算法就跑不出来了, 因为这些点的导数是0. 什么是鞍点:&/p&&p&&br&&/p&&img src=&/v2-6d77d47caae61d7a5d91b_b.jpg& data-rawwidth=&252& data-rawheight=&200& class=&content_image& width=&252&&&p&什么是局部最优点(下图右边):&/p&&p&&br&&/p&&img src=&/v2-a1dc_b.jpg& data-rawwidth=&473& data-rawheight=&317& class=&origin_image zh-lightbox-thumb& width=&473& data-original=&/v2-a1dc_r.jpg&&&p&&br&&/p&&p&有趣的是, 这两大缺陷竟然可以用同一个方法解决, 就是我们今天要谈的Stochastic Gradient Descent (SGD) 算法. &/p&&p&SGD 算法的表达式和GD差不多:&/p&&p&&img src=&/equation?tex=x_%7Bt%2B1%7D%3Dx_t-%5Ceta_t+g_t& alt=&x_{t+1}=x_t-\eta_t g_t& eeimg=&1&&&/p&&p&这里 &img src=&/equation?tex=g_t+& alt=&g_t & eeimg=&1&&就是所谓的Stochastic Gradient,它满足 &img src=&/equation?tex=E%5Bg_t%5D%3D%5Cnabla+f%28x_t%29& alt=&E[g_t]=\nabla f(x_t)& eeimg=&1&&&/p&&p&也就是说,虽然包含一定的随机性,但是从期望上来看,它是等于正确的导数的.用一张图来表示,其实SGD就像是喝醉了酒的GD,它依稀认得路,最后也能自己走回家,但是走得歪歪扭扭.(红色的是GD的路线,偏粉红的是SGD的路线).&/p&&p&&br&&/p&&img src=&/v2-1a00a70c4ff460bf2aedb9c_b.png& data-rawwidth=&388& data-rawheight=&309& class=&content_image& width=&388&&&p&仔细看的话,其实SGD需要更多步才能够收敛的,毕竟它喝醉了.可是,由于它对导数的要求非常低,可以包含大量的噪声,只要期望正确就行(有时候期望不对都是可以的..),所以导数算起来&b&非常快&/b&.就我刚才说的机器学习的例子,比如神经网络吧,训练的时候都是每次只从百万数据点里面拿128或者256个数据点,算一个不那么准的导数,然后用SGD走一步的.想想看,这样每次算的时间就快了10000倍,就算是多走几倍的路,算算也是挺值的了.&/p&&img src=&/v2-4efacefaef760a7c8cc96f5_b.jpg& data-rawwidth=&740& data-rawheight=&372& class=&origin_image zh-lightbox-thumb& width=&740& data-original=&/v2-4efacefaef760a7c8cc96f5_r.jpg&&&p&&br&&/p&&p&所以它可以完美解决GD的第一个问题--算得慢.这也是当初人们使用SGD的主要目的.而且,大家并不用担心导数中包含的噪声会有什么负面影响.有大量的理论工作说明,只要噪声不离谱,其实(至少在f是凸函数的情况下),SGD都能够很好地收敛.&/p&&p&虽然搞理论的人这么说,但是很多完美主义者仍会惴惴不安,觉得用带了随机噪声的导数来训练自己的神经网络不放心,一定要用最准确的导数才行.于是他们往往还会尝试用GD跑一遍,和SGD得到的结果比较比较. &/p&&p&结果呢?因为我经常干这样的事情,所以我可以负责任地告诉大家,哪怕GD训练的时候有多几百倍几千倍的时间,最后结果往往是SGD得到的网络表现要比GD得到的网络要&b&好得多&/b&!&/p&&p&很意外是不是?加了噪声的算法反而更好,这简直就像说"让马路上的司机多喝点酒,交通能够更顺畅"一样让人难以接受.&/p&&p&但事实就是如此.实践中,人们发现,除了算得快,SGD有非常多的优良性质.它能够自动逃离鞍点,自动逃离比较差的局部最优点,而且,最后找到的答案还具有很强的一般性(generalization),即能够在自己之前没有见过但是服从同样分布的数据集上表现非常好!&/p&&p&这是为什么呢?今天我们就简单谈谈为什么它可以逃离鞍点.之后有机会我会再详细介绍SGD的别的优良性质--这些性质也是目前优化和机器学习领域研究的热点问题.&/p&&p&那么我们先理解一下,鞍点的数学表达是什么.&/p&&p&首先,我们考虑的情况是导数为0的点.这些点被称为Stationary points,即稳定点.稳定点的话,可以是(局部)最小值,(局部)最大值,也可以是鞍点.如何判断呢?我们可以计算它的Hessian矩阵H.&/p&&ul&&li&如果H是负定的,说明所有的特征值都是负的.这个时候,你无论往什么方向走,导数都会变负,也就是说函数值会下降.所以,这是(局部)最大值.&/li&&li&如果H是正定的,说明所有的特征值都是正的.这个时候,你无论往什么方向走,导数都会变正,也就是说函数值会上升.所以,这是(局部)最小值.&/li&&li&如果H既包含正的特征值,又包含负的特征值,那么这个稳定点就是一个鞍点.具体参照之前的图片.也就是说有些方向函数值会上升,有些方向函数值会下降.&/li&&li&虽然看起来上面已经包含了所有的情况,但是其实不是的!还有一个非常重要的情况就是H可能包含特征值为0的情况.这种情况下面,我们无法判断稳定点到底属于哪一类,往往需要参照更高维的导数才行.想想看,如果特征值是0,就说明有些方向一马平川一望无际,函数值一直不变,那我们当然不知道是怎么回事了:)&/li&&/ul&&p&我们今天讨论的情况只包含前三种,不包含第四种.第四种被称为退化了的情况,所以我们考虑的情况就叫做非退化情况.&/p&&p&在这种非退化的情况下面,我们考虑一个重要的类别,即strict saddle函数.这种函数有这样的特点:对于每个点x&/p&&ul&&li&要么x的导数比较大&/li&&li&要么x的Hessian矩阵包含一个负的特征值&/li&&li&要么x已经离某一个(局部)最小值很近了&/li&&/ul&&p&为什么我们要x满足这三个情况的至少一个呢?因为&/p&&ul&&li&如果x的导数大,那么沿着这个导数一定可以大大降低函数值(我们对函数有光滑性假设)&/li&&li&如果x的Hessian矩阵有一个负的特征值,那么我们通过加噪声随机扰动,跑跑就能够跑到这个方向上,沿着这个方向就能够像滑滑梯一样一路滑下去,大大降低函数值&/li&&li&如果x已经离某一个(局部)最小值很近了,那么我们就完成任务了,毕竟这个世界上没有十全十美的事情,离得近和精确跑到这个点也没什么区别.&/li&&/ul&&p&所以说,如果我们考虑的函数满足这个strict saddle性质,那么SGD算法其实是不会被困在鞍点的.那么strict saddle性质是不是一个合理的性质呢?&/p&&p&实际上,有大量的机器学习的问题使用的函数都满足这样的性质.比如Orthogonal tensor decomposition,dictionary learning, matrix completion等等.而且,其实并不用担心最后得到的点只是一个局部最优,而不是全局最优.因为实际上人们发现大量的机器学习问题,几乎所有的局部最优是几乎一样好的,也就是说,只要找到一个局部最优点,其实就已经找到了全局最优,比如Orthogonal tensor decomposition就满足这样的性质,还有小马哥NIPS16的best student paper证明了matrix completion也满足这样的性质.我觉得神经网络从某些角度来看,也是(几乎)满足的,只是不知道怎么证..&/p&&p&&br&&/p&&p&下面讨论一下证明,主要讨论一下第二篇.第一篇论文其实就是用数学的语言在说"在鞍点加扰动,能够顺着负的特征值方向滑下去".第二篇非常有意思,我觉得值得介绍一下想法.&/p&&p&首先,算法上有了一些改动.算法不再是SGD,而是跑若干步GD,然后跑一步SGD.当然实际上大家是不会这么用的,但是理论分析么,这么考虑没问题.什么时候跑SGD呢?只有当导数比较小,而且已经很长时间没有跑过SGD的时候,才会跑一次.也就是说,只有确实陷在鞍点上了,才会随机扰动一下下.&/p&&p&因为鞍点有负的特征值,所以只要扰动之后在这个方向上有那么一点点分量,就能够一马平川地滑下去.除非分量非常非常小的情况下才可能会继续陷在鞍点附近.换句话说,如果加了一个随机扰动,其实大概率情况下是能够逃离鞍点的!&/p&&p&虽然这个想法也很直观,但是要严格地证明很不容易,因为具体函数可能是很复杂的,Hessian矩阵也在不断地变化,所以要说明"扰动之后会陷在鞍点附近的概率是小概率"这件事情并不容易.&/p&&p&&br&&/p&&p&作者们采取了一个很巧妙的方法:对于负特征值的那个方向,任何两个点在这两个方向上的投影的距离只要大于u/2, 那么它们中间至少有一个点能够通过多跑几步GD逃离鞍点.也就是说,会持续陷在鞍点附近的点所在的区间至多只有u那么宽!通过计算宽度,我们也就可以计算出概率的上届,说明大概率下这个SGD+GD算法能够逃离鞍点了.&/p&&p&[原文Figure 1画得很漂亮,推荐一下]&/p&&p&&/p&
[本文主要介绍SGD算法,和两篇分析它逃离鞍点的论文: 我与鬲融,金驰,黄芙蓉写的Escaping From Saddle Points – Online Stochastic Gradient for Tensor Decomposition, 以及由金驰,鬲融等人写的最新力作:How to Escape Saddle Points Efficiently] 假…
&p&李毅吧的重点是内容,知乎的重点是大v。&/p&&p&&br&&/p&&p&在李毅吧你先是知道了&b&我的护球像亨利、要骂你下来骂、天亮了;&/b&&/p&&p&后来知道了&b&毅丝、屌丝、高富帅、七分女、黑木耳;&/b&&/p&&p&再后来知道了&b&喜当爹、长岛的雪、妙可还是个孩子啊。&/b&&/p&&p&&b&至于这些内涵的作者是谁,你一概不知。&/b&&/p&&p&&br&&/p&&p&而在知乎呢你先是知道了&b&张佳玮、梁边妖、朱炫、葛巾;&/b&&/p&&p&后来知道了&b&芈十四、倪一宁、徐沪生、罗文益;&/b&&/p&&p&再后来知道了&b&梁悦、惊蛰、luvdddd、陈兰香。&/b&&/p&&p&&b&至于这些作者有什么代表作,你也几乎是一无所知。&/b&&/p&&p&&br&&/p&&p&这是有原因的。贴吧是无权重的发布体系,最新被回复的帖子回被顶到最上面。虽然这是一个非常蠢的机制,但是保证了大v没有基于粉丝量的指数型的话语权。&/p&&p&而知乎因为点赞即分享和关注就推送的发布体系,使得粉丝量远远比内容重要得多。&/p&&p&&br&&/p&&p&所以,在知乎,你的人设的真假是一个非常非常重要的问题。如果一个人的人设有假,那么他就得到了本不应该得到的粉丝数,那么他就获得了本不应该有的话语权和变现机会。&/p&&p&而在李毅吧呢,这根本不重要。&/p&&p&&br&&/p&&p&既然人设重要,所以在知乎最重要的是阶层性和鄙视链,尽管大家都尽量不承认这一点。学历鄙视链和收入鄙视链是最明显的两个链。当然还有一个链也很重要,就是用不用知乎牟利。所以在知乎流量最大的问题是,如何看待xxx,如何评价xxx。这类问题就是希望代表某个阶级的大v,能够把他对于某件事的评论说出来,让用户来找到某种共鸣,从而产生精神上阶级提升的快感。&/p&&p&而在贴吧,你千万不能用阶级性给自己背书。&/p&&p&&br&&/p&&p&知乎,我觉得本质上是一个追星论坛。当然,这种追星的程度和追tfboys,exo那种差很远,不是追颜值、身材,也不是追才艺、作品,而是追阶层、阶层的细节。比如,曾博的最新id永远比失败的普遍性重要;曾博有没有女朋友,在fb年薪多少,有没有30wbaba股票,永远比向死而生的内涵重要。大v的利益被粉丝自来水一般的呵护着,有人会主动告诉你,你的答案被别人抄了,有人积极和你一起战队,参与撕逼。&/p&&p&而在帝吧,一切以内容的内涵性作为评价标准。&/p&&p&&br&&/p&&p&但这一切又和种子用户有关。&/p&&p&知乎一开始的种子用户是周源、黄继新、张亮的朋友,创新工场的人脉,概括起来大概是30-35岁的职场精英、专业人士。&/p&&p&他们从一开始就是半实名带人设入驻的。种子用户的实名制带来的是知乎整体实名化的比例非常高(账号的名字可能是昵称,但是填的资料,在回答中透露的背景是求真的)。&/p&&p&此外,知乎接收了大量人人用户,人人用户又大多是学生。他们看到种子用户在职场的成}

我要回帖

更多关于 为什么肚子越来越大 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信