lilin的共享空间windows live.docx
- 文档编号:16255356
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:10
- 大小:22.82KB
lilin的共享空间windows live.docx
《lilin的共享空间windows live.docx》由会员分享,可在线阅读,更多相关《lilin的共享空间windows live.docx(10页珍藏版)》请在冰点文库上搜索。
lilin的共享空间windowslive
lilin的共享空间—WindowsLive
计算机图像图形学相关好书推荐[转]
一.数字图像处理相关书籍英文版:
1.《DigitalImageProcessing》
RafaelC.Gonzalez
RichardE.Woods
电子工业出版社,PrenticeHall
(此书有中文版)2.Gonzalez&Woods:
DigitalImageProcessing电子工业出版社
讲得比较全面,而且比较细致,入门的绝对好书。
3.DigitalImageProcessing(UsingMatlab)电子工业出版社
和上一本内容相近,但增加了Matlab实现代码。
强烈推荐。
中文版:
1.阮秋琦译,Gonzalez&Woods:
《数字图像处理》电子工业出版社
2.章毓晋:
《图像工程(上)》清华大学出版社
上册是中文版入门书中公认比较好的一本3.章毓晋:
《图像分割》科学出版社(科海有售23元)
4.《图像工程上册图像处理和分析》章..清华大学出版社
5.《数字图像处理》高等教育出版社东南大学编的
6.《图像分割》章..科学出版社二.计算机图形学相关书籍英文版:
DonaldHearn:
ComputerGraphics清华大学出版社中文版:
1.《计算机图形学的算法基础》第二版D.F.Rogers原著,石教英、彭群生翻译,计算机图形学经典名著
此书非常适于自学,以前不少人正是看此书初版的中译本而进入图形学领域研究的。
2.蔡士杰等译,DonaldHearn:
《计算机图形学》电子工业出版社3.潘云鹤:
《计算机图形学--原理、方法和应用》三.计算机视觉相关书籍英文版:
1.Horn:
RobotVision
相关章节非常清楚紧密,虽然内容少了一点,因为主要和robot有关。
不过值得入门看2.Marr:
Vision
他首先提出把Vision的system,algorithm,theory分开,还提除了诸如2.5Dimension等概念。
只要想想ICCV的bestpaper叫做Marr'sPrice就知道他牛了。
经典书,老了一点,不过值得看看。
3.DavidA.Forsyth,JeanPonce:
ComputerVision:
AModernApproach
介绍的topics比较多,可以看看当作vision的overview。
另外作者是想描述modernvision,所以可以看看。
(draft公开可下载)
4.RameshJain,RangacharKasturi,BrainG.Schunck:
MachineVision机械工业出版社
中文版:
1.章毓晋:
《图像工程(下)》清华大学出版社2.政南宁:
《计算机视觉与模式识别》国防工业出版社
很好,但是对于数学的要求也比较高。
3.张正友(好歹是咱浙大校友啊~~)、马颂德:
《计算机视觉》浙江大学出版社太难了,对于入门级的读者不是十分合适。
4.贾云德:
《机器视觉》科学出版社四.模式识别相关书籍英文版:
RichardO.Duda,PeterE.Hart,DavidG.Stork:
PatternClassification中文版:
边肇祺,张学工:
《模式识别》,清华大学出版社
15:
12|固定链接|学问研究1月15日
深入问题本身(转载)
很多做research的朋友喜欢top-downapproach,包括我自己。
就是说,在开始一个topic的时候,在第一时间就设定了大体的formulation,model又或者methodology。
至于选择哪种设定,往往取决于研究者本身的偏好,知识背景,或者对问题的第一反应。
接下来的事情就顺理成章了,推导数学模型和相关公式以及算法步骤,然后设计程序进行实验。
当然少不了再拉上几个相关工作,比较一番。
如果自己的设计很幸运地有明显的improvement,于是非常满意,开始写paper(在不少情况下,paper的理论部分甚至提前写好了)。
可是,如果不work呢?
通常大家会采取下面一些方法中的一种或者几种:
观察实验结果,猜想几个不work的原因,然后回头局部调整模型和算法;
换一下数据集,看看能不能work
祭起“终极法宝”——调参数,人工修改或者写脚本遍历,直到找到一组work的参数为止。
不过,那些作为“绿叶”用的参照算法,通常是没有这种待遇了。
无论如何,你总算把实验搞定了。
但是,为什么work呢?
除了几条曲线,你总得找一些“让人信服”的理由。
在我所在的领域,有一些理由几乎是万能的,因而普遍出现在paper里面:
以前的算法,不考虑某某因素,而这个因素是很重要的,我的算法考虑了,所以效果更好
以前的算法,把某些因素分开考虑,但是它们实际上是相关联了,我的算法把它们结合在一起,体现了这种关联关系,所以更好
以前的算法是线性的,但是这个问题本身明显是非线性的,我这里用了非线性的方法,所以更符合实际。
为了进一步解释清楚,还画出一些二维或者三维的toysamples,显示出线性和非线性有“多么巨大的差别”
以前的方法用的是参数化模型(比如高斯分布),而现实世界明显不是这样子,我这里采用非参数化模型,能更准确地逼近实际分布
主流方法大都采用某某算法完成某个步骤,或者某某特征来描述某个方面,其实这个算法或者特征在这里不太适合,我换了一个更适合的或者更“先进”的。
还有很多,不一而足。
总体来说,就是增加了某方面的复杂性,推广了模型,或者把某些部分变得更加时髦,数学更深。
正因为多了东西可以调节,只要花上足够时间去设定参数,还是有很大机会能找到一组能得到improvement的参数的。
可是,这种improvement是不是真正有意义呢?
是不是足够significant,以至于所增加的复杂性是值得的呢?
我们的世界总是无限复杂的,和无数的因素相关,这些因素又总是有某种联系。
我们的前辈们留给我们的最好的方法,就是从问题中分离出最关键的要素,和最重要的关系,而非不断地增加价值不大的因素,建立意义不大的联系。
我并不是一个完全拒绝复杂,但是我个人觉得对复杂性的增长应该慎重。
每增加一个要素,都应该是基于对问题的深入分析,而不是先入为主的设想和冠冕堂皇的理由。
这不完全是知识能力的问题,更多的是一种治学态度——是不是愿意安心下来对问题本身进行深入细致的解剖,找出问题本身的关键所在,而不是脱离问题预先构想某种“漂亮”模型或者“巧妙”方法,并且通过上面所述的种种方法推销出去。
研究是一种创新的过程,广拓思路是必须的。
但是真正有价值的novelty应该是建立在对问题本身的深入理解,确实发现了别人忽略的关键因素,或者主流算法的真正不足,并且创造性地提出解决方法。
这需要持之以恒的努力。
真正经得起考验的学术价值,源于解决还没有被解决的问题,而不是使用了某种所谓别人没用过的“新颖”方法来解决本来已经解决的问题,又或者给模型加入某个要素来取得非实质性的性能改进。
上面所说的这些问题,几乎都发生在我的身上。
而汤老师的很多建议,其实正是指出了这些问题,却没有被我认真思考,反而总是以为只要理论做得高深,模型设计得精巧,就是好的工作。
来了MIT之后,更多地阅读一些有历史价值的文章(现在看CVPR反而比较少了),接触一些更加solid的工作。
许多有重要贡献的工作,往往未必有很炫的方法和模型,但是,其对于问题本身的深入发掘和洞察却令我惭愧。
要做真正的学问,首先要戒除浮躁。
8:
33|固定链接|学问研究Howtogetasolution?
(转载)
我们所做的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在内的很多学生团体开始组织起来支持自己的祖国。
我没有具体帮上什么,但是,我对所有在用自己的行动捍卫国家荣誉的同胞怀有最深的敬意。
我也希望,我的努力,能让外国的朋友明白中国人是值得尊敬的。
8:
31|固定链接|学问研究和机器学习和计算机视觉相关的数学(转载)
(以下转自一位MIT牛人的空间文章,写得很实际:
)
作者:
Dahua
感觉数学似乎总是不够的。
这些日子为了解决research中的一些问题,又在图书馆捧起了数学的教科书。
从大学到现在,课堂上学的和自学的数学其实不算少了,可是在研究的过程中总是发现需要补充新的数学知识。
Learning和Vision都是很多种数学的交汇场。
看着不同的理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lilin的共享空间 windows live lilin 共享 空间