扬渊님의 프로필再见流星사진블로그리스트기타 ![]() | 도움말 |
|
2009-03-04 算法是怎样炼成的算法是怎样炼成的
常言道,“罗马不是一天建成的”,这句话用在学术研究上正恰如其分:知识的日积月累是一切成果的必经之路。这句话还有另一个涵义:罗马不是一代人建成的,而是不断在前人最卓越的思想和成就之上,进一步有所建树,逐步建成的。 许多人习惯把从业时间和水平划上等价关系,这可大失偏颇。在熟能生巧的方面,固然可以“唯手熟尔”;但在学术研究上,差异往往不在时间,而在起点和目的:在“已有”之上做“将有”,还是在“最好”之上做“更好”?作为工程师,自然可以立足于前者,但作为研究员,在学术文献开放的今天,若不是新的和更好的,还是不要号称学术研究为妙。不了解前沿,不热衷于创新,闭门造车的人,耗费数年精力,其实还不如读几篇文献来的实在。吾生也有涯,而知也无涯。在平地上张望一生,还是站在巨人的肩膀上远眺片刻,两者的差距,不止是事倍功半。 说到算法,不妨想想Knuth的名言:算法是艺术,不是科学。算法是构造性的,不是推理性的,尽管必须依靠数学推理来完成其中各式各样的最优化问题和界的证明,但算法的本质始终是构造。这就好比同一盘油彩和同一张画布,既可以画出名画,也可以抹出垃圾。这中间有笔触的差异,调色的差异,构图的差异,意境的差异,从低到高,从高到低,人各不同。只有全面臻于完美,才能成为名画。倘一个画师花十年时间在同一幅画布上涂抹,往往是次品;而另一个画师,凭借十年的苦功,在笔触、色调、构图、意境上皆有所成,当灵感所至,一夕而就,往往是上品。 常人学画,先描线,然后学绘彩,构图。算法同样有三重境界:第一重名曰“程序语言”,将运算或处理过程描述为计算机程序;第二重名曰“流程结构”,基于计算机的储存计算原理,规划程序流程,熟练使用各种数据结构和编程技巧;第三重名曰“模型方法”,为待处理问题建立数学模型,在数学模型层面推理出最优化计算方法,然后程序化之。但正如名画贵在意境一样,算法在三重境界之上尚有更高一重,名曰“构造艺术”,在系统目标的层面构造统一模型,在数学等价的意义上,将系统目标转换到该模型上,以使运算结果获得该模型特有的性质,例如数值稳定性,容错性,更高的精度。 “你将如何解决一个问题,取决于你如何理解它”。若没有对计算机所定义的离散的和数值的世界的精深理解,若没有对各种数学模型在运算中体现出的不同精度性质和复杂度性质的了解,若没有游刃有余的对数学等价性的把握,断无可能炼成一个“构造的”和“艺术的”算法。例如用220行.m代码描述一个精确的和高容错的指纹图像特征提取计算过程。在5年前我曾佩服某计算流体力学前辈用13页的论文来解释二维计算流体仿真的100行Fortran代码,以及他得意的宣布读者们不必试图编写更短小的代码可好好思考如何用好这段程序;在5年后我超越了这位maya首席计算流体力学研究员当年的水平。 用复信号的方法分析图像,必然面对二维Hilbert变换多义性的难题。既然我要解决的东西仅仅是窄带图像,就不妨定义一个一维Hilbert变换的二维扩展,来将整整一个维度的多义性退化为符号二义性。再定义出相位连续,以及相位复共轭和相位连续的有条件等价,造出一个连续性来,并基于该二维复信号连续性,给指纹细节点一个鲁棒的信号上的等价描述。在一层叠一层的构造之上,用唯一的运算环节,相位转换和平滑,实现了从指纹采集图像到细节点显现的全过程。 这就是抽象思维的力量。真正的画家,就应该想象着意境来做画,什么是笔什么是颜料什么是画布都被忘却。要描绘“惊涛骇浪”,筑一面墙,弹出经纬线,用一个连的画匠逐块填写,固然是种方法。但更直接的做法,是一笔血色,让恰好前来的那个习惯于平淡的观赏者,感到敬畏和惊叹。艺术的目标是传达意念,不是按照形式传达意念,所以可以只描绘“惊骇”而无关“浪涛”。同样,算法的目标是解决问题,不是遵守规矩解决问题,所以可以构造再构造,等价再等价。 只看结果,与过程的逻辑严密性无关,只要数学上是严密的,就足够了。因为计算不是工程,不必非沿着工程进化的路子前进。在计算机发展之初,就一直基于数学家的奇思妙想在进步。然后如Knuth所言,使计算机成为科学的努力,在提出“计算机科学”这个新颖名词后终止——离开对“科学”名义定性的疑惑,科学精神在这个领域就成了或可缺的东西,而作为科学之本的数学,甚至被许多人束之高阁。在指纹自动识别算法领域,一千篇文献里往往找不到一篇试图做数模上的开拓。而在更深广的信号处理和计算机视觉领域,虽仍然罕有,但有如J.P. Havlicek和M. Felsberg这样的巨人。对于他们的肩膀,我一直深怀敬意。 虽然在大多数时候容易听到的声音,是那些“脚踏实地”的人发出的:“计算就是程序”。但有时也有必要发出点不同的声音:“计算就是数学”。不为别的,只为这个领域的菁华部分,永远需要,后继有人。
李 2009年3月3日 于成都 |
|
|