MIT大牛LinDahua博文精选转载.docx

上传人:b****3 文档编号:1698796 上传时间:2022-10-23 格式:DOCX 页数:13 大小:36.54KB
下载 相关 举报
MIT大牛LinDahua博文精选转载.docx_第1页
第1页 / 共13页
MIT大牛LinDahua博文精选转载.docx_第2页
第2页 / 共13页
MIT大牛LinDahua博文精选转载.docx_第3页
第3页 / 共13页
MIT大牛LinDahua博文精选转载.docx_第4页
第4页 / 共13页
MIT大牛LinDahua博文精选转载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

MIT大牛LinDahua博文精选转载.docx

《MIT大牛LinDahua博文精选转载.docx》由会员分享,可在线阅读,更多相关《MIT大牛LinDahua博文精选转载.docx(13页珍藏版)》请在冰豆网上搜索。

MIT大牛LinDahua博文精选转载.docx

MIT大牛LinDahua博文精选转载

MIT大牛LinDahua博文精选转载

林达华的博文,值得花点时间来读,这里精选几篇。

April10Howtogetasolution?

我们所做的topic,一般有几个阶段:

Analysis:

分析问题,找到问题的关键Modeling/Formulation:

对问题进展数学抽象,建立模型,或者formulate目的函数Solving:

设计出求解的算法Experiments:

实验最近的工作都集中在Solving这部分,就说说这个吧。

求解的方法求解问题有很多不同的方法,就我知道的来说,大概有这么几个大家族。

Heuristics。

就是根据对问题的观察而设计的一些简单的方法,不一定遵循什么标准,或者有什么深化的数学根据。

这类方法往往比较简单易懂,intuition比较明显,很多时候performance也挺不错的,不见得比高深的方法差,因此在实际工程中很受欢送,几乎应用在全部的学科。

不过,好似很多朋友对这类方法颇为不屑,认为"没有技术含量",或者叫做"没有理论深度"。

确实,有相当部分的Heuristics纯粹粗制滥造,投机取巧。

不过,还有很多Heuristics虽然简单,但是切中问题要害,在长期的复杂的实际应用中经受住了考验。

这些方法,外表看来可能只是再简单不过的几条四那么运算公式,说不上多少理论,但是并不代表它没有深化的理论根底。

一个典型的例子是GooglePageRank中使用的传导公式〔简单版本〕,道理和公式都很简单,可是,做过类似工作的朋友可能都知道,它和代数图论以及马尔可夫随机过程有着很深的联络。

又比方,FourierTransform在刚出来的时候,仅仅是工程师的一些heuristics,后来关于它的理论已经成为了泛函分析的一个核心组成部分,也是信号处理的理论根底之一。

真正好的heuristics,它的好处肯定不是瞎懵出来,而是有内在原因的。

对它们的原理的探究,不断带动理论方面的开展,甚至创造了新的理论方向。

说到这里,有人可能会argue,这是"理论家们在故弄玄虚混饭吃"。

Hmm,这种说法我不能认同,但是,确实存在"把工程方法胡乱进展理论化"的事实。

什么才叫有价值的理论化,而不是故弄玄虚,确实值得考虑,这里先不展开了。

AnalyticalSolution。

当你把问题formulate出来后,有些情况是直接可以从问题推导出解析解的。

这种情况通常存在于objectivefunction是Linear或者Quadratic的情况。

大家都很喜欢这种情况的出现,理论漂亮,实现简洁。

但是,据我的观察,很多情况下,这种elegance是通过减化模型换取的。

把cost写成quadraticterm,把distribution假设为Gauss,很多时候都能得到这样的结果。

我不反对进展简化,也欣赏漂亮的analyticalsolution,假设它把问题解决得很好。

但是,这里面有个问题,很多能获得简单解析解的问题已经被做过了,剩下的很多难点,未必是一个简化模型能有效解决的。

简化是一种很好的方法,但是,使用起来,尤其是在实际中的应用必须慎重,要清楚理解它们可能带来的问题。

比方说,很多模型喜欢使用差的平方来衡量误差大小。

但是,这很早就被指出是unrobust的,一个很大的deviation会dominate整个optimization,使得solution严重偏离方向。

假设这种robustness在带解决的问题中是一个必须考虑的要素,那么用平方误差就要仔细考虑了。

NumericalOptimization。

假设formulation没有解析解,那么自然的想法就是使用数值方法求解。

目前大家常用的是基于Gradient/Hessian之类的localoptimization的方法,有时会加上randominitialization。

假设objectivefunction是convex的,那么这种方法保证收敛到globaloptimal,这是大家很希望的。

convexproblem无论在formulation还是在solution的阶段,都是很有学问的。

很多问题可以formulate成convex的,但是未必都那么直接,这需要有这方面的根底。

Solving一个convexproblem有现成的方法,但是,假设能对问题的构造有insightful的观察,可能能利用问题本身的特点大幅度降低求解的复杂度--这往往比直接把问题扔进solver里面等答案更有意义。

除了convexoptimization,还有一种数值方法应用非常广泛,叫做coordinateascend或者alternateoptimization。

大概的思路是,几个有关的变量,轮流选择某个去优化,暂时固定其它的。

在MachineLearning里面非常重要的Expectation-Maximization〔EM算法〕就属于这个大家族。

另外,很多复杂的graphicalmodel采用的variationalinference也是属于此类。

使用这类方法,有两个问题:

一个是假设几个variable之间互相影响,变一个,其他跟着变的话,那么直接使用这种方法可能是错误的,并不能保证收敛。

另外一个问题是,假设problem不是convex的话,可能没有任何保证你得到的solution和globalsolution有联络。

很可能,你得到的解和真正的全局最优解相差十万八千里。

这个没有什么通用有效的途径来解决。

不过,针对详细问题的构造特点,在求解过程中施加一定的引导是有可能的。

DynamicProgramming。

这个方法更多见于经典计算机算法中,不过如今越来越多在Vision和Learning见到它的影子。

主要思路是把大问题分解为小问题,总结小问题的solution为大问题的solution。

至于如何设计分解和综合的过程,依赖于对问题的观察和分析,并无通用的法那么可循。

用DP解决问题的洞察力需要逐步的积累。

不少经典算法就源自于DP,比方shotestpath。

一个可能有用的观察是,假设问题或者模型呈现链状,树状,或者有向无环图构造的,可能很有希望能通过DP高效解决。

LocalExchange。

很多建立在图上的问题,都可以通过某种部分交换来到达全局的平衡。

像Beliefpropagation,Junctiontree等等在graphicalmodel的重要inference方法,还有tranductionmodel,都用到了类似的策略。

这在理论中被证明为非常有效。

但是,并不是随意设计的部分交换过程都是收敛的。

这里面需要关注两个问题:

〔1〕交换过程是不是能保证某些重要的invariance不被破坏;〔2〕交换过程中,是不是有一个objective,比方间隔全局平衡的deviation,它在每一步都保持单调。

有很多交换过程,在有向无环图中保证收敛,但是,在带环图中由于信息的重复传递可能引起不稳定,或者不能收敛到正确的解。

MonteCarloSampling。

蒙特卡罗采样的原理非常简单,就是用样本平均,来逼近期望〔这个可能需要用intractable的积分完成,没法直接算〕。

求平均很简单,关键在于采样过程。

我们求解问题,通常是在后验分布中采样,这种分布在大部分问题中,不要说直接采样了,可能连解析形式都没法给出。

假设采样问题有效解决了,根本上我们研究的大部分问题其实都可以通过采样完成。

由于直接采样往往非常困难,于是就产生了其它的方法,间接做这个事情。

一种想法就是,既然p〔x〕不好直接采,我找一个比较容易采样的q〔x〕来逼近p〔x〕,然后给从q〔x〕采出的每个样本加一个weight,p〔x〕/q〔x〕。

这在理论上被严格证明是对的--这种方法叫做ImportanceSampling。

这里的问题在于,假设q〔x〕和p〔x〕不太接近,那么采样效率非常低下,假设在一个高维空间,可能采1000年都达不到要求。

可是,要得到一个approximate很好的q〔x〕本身不比直接从p〔x〕采样来得容易。

还有一种聪明一点的方法,叫sequentialimportancesampling。

在这里面q〔x〕,不是一蹴而就建立起来的,而是每个样本先采一部分,然后根据那部分,确定下一部分的proposaldistribution,继续采,也就是说q〔x〕和样本都是dynamicallybuiltup。

这个方法在vision里面一个非常著名的应用是用于tracking,相应开展出来的方法论叫做particlefiltering。

另外一大类重要的采样方法,叫MarkovChainMonteCarlo〔MCMC〕。

这个的想法是,设计一个马尔科夫链,让它的平衡分布恰好是p〔x〕,那么等它平衡时开场采。

以前我们做随机过程作业是一个markovchain,求equilibriumdistribution,设计MCMC就是反过来了。

最重要的MCMC方法莫过于Metropolis-HastingsAlgorithm和GibbsSampling,前者常被用于设计在solutionspace的随机游走〔Randomwalk〕,后者那么是conditionalsampling的根底方法。

可是Markov过程怎么转移呢。

最简单的RandomWalk结合acceptancerate之后理论上是对的。

可是,让sampler随意乱走,猴年马月才能把solutionspace走一遍阿。

于是,有人提出结合一个solutionspace的部分信息来引导它往有用的方向走。

一个重要的方法叫做HybricMonteCarlo〔HMC〕,想法就是把它模拟成一个物理场,把要sample的分布视为波尔兹曼分布后获得物理场的势能,通过哈密顿动力学模型〔其实就是牛顿力学的推广〕来驱动sampler。

可是,假设问题更为复杂呢,比方整个solutionspace有几个井,sample掉到某一个井可能出不来了。

为理解决这个问题,一种重要的方法叫Tempering,就是开场给分子充分加热,让它获得足够的动能能在各个井之间来回跳,然后逐步冷却,从而能捕捉到多个势井。

MonteCarlo方法较早的时候主要用于统计物理,目前已经广泛应用于计算机,生物,化学,地质学,经济学,社会学等等的研究。

这是目前所知道的用于求解复杂的真实模型的最有效的方法。

它的核心,就是猜--你直接解不出来,只好猜了,呵呵。

但是,怎样才能猜得准,那么是大有学问--几十年来各个领域关于MonteCarlo研究的工作汗牛充栋,有很多进展,但是还有很长的路要走。

和这里很多留学生一样,我一向潜心于自己的学习和研究。

可是最近,我们的世界并不宁静,我认识的不只一个在美国的朋友受到了不太友好的挑衅--在不知不觉中,我们可能已经身处反分裂和支持奥运的前线。

我看到包括MITCSSA在内的很多学生团体开场组织起来支持自己的祖国。

我没有详细帮上什么,但是,我对所有在用自己的行动保卫国家荣誉的同胞怀有最深的敬意。

我也希望,我的努力,能让外国的朋友明白中国人是值得尊敬的。

June22拓扑:

游走于直观与抽象之间近日来,抽空再读了一遍点集拓扑〔PointSetTopology〕,这是我第三次重新学习这个理论了。

我看电视剧和小说,极少能有兴致看第二遍,但是,对于数学,每看一次都有新的启发和收获。

代数,分析,和拓扑,被称为是现代数学的三大柱石。

最初读拓扑,是在两三年前,由于学习流形理论的需要。

可是,随着知识的积累,发现它是很多理论的根基。

可以说,没有拓扑,就没有现代意义的分析与几何。

我们在各种数学分支中接触到的最根本的概念,比方,极限,连续,间隔〔度量〕,边界,途径,在现代数学中,都源于拓扑。

拓扑学是一门非常奇妙的学科,它把最直观的现象和最抽象的概念联络在一起了。

拓扑描绘的是普遍使用的概念〔比方开集,闭集,连续〕,我们对这些概念习以为常,理所当然地使用着,可是,真要定义它,那么

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1