序
神经网络和遗传算法的大概原理,在上大学的时候,我的同学和我饶有兴致的讲过,生动形象,通俗易懂。多年后的今天,我把遗传算法之父的作品看完了,讲述的就是关于遗传算法的构思以及哲学理念。可以说,著名的算法背后一定有深深的哲学理念,并非只是一堆简单的公式和代码。
隐藏的秩序–《隐秩序,适应性造就复杂性》
遗传算法之父霍兰,也是圣塔菲学院的一员,从事复杂动力学网络系统的研究。书的第一章写得引人入胜:
我们观察大城市千变万化的本性时,就会陷入更深的困惑。买者、卖者、管理机构、街道、桥梁和建筑物都在不停的变化着。一个城市的协调运作,似乎是与人们永不停止的流动和他们形成的种种结构分不开的。正如急流中一块礁石前的驻波,城市是一种动态模式。没有哪个部门能够独立保存不变,但城市本身却延续下来了。是什么使得城市能够在灾害不断而缺乏中央规划的情况下还能协调运行的呢?
城市的运行时一个复杂系统,而人类的免疫系统更是一个复杂系统,它由大量快速活动着的被称为抗体的单位组成,这些抗体不断的抵抗活摧毁不断变化的被称为抗原的入侵者,可能是生物化学物质、细菌或病毒。形态各异,变化多端,免疫系统没有可能通过简单列举所有可能的入侵者的方式来抵御攻击。随着新的入侵者的出现,免疫系统必须使抗体自身发生改变从而去适应新的入侵者,从不固定成某种特定的形态。
圣塔菲研究所针对这类在变化中表现出适应协调性的复杂系统提出了复杂适应系统(CAS)的概念,城市的辉煌与衰败、人体的免疫系统、传染病的传染模型等等都是这种系统。然而CAS系统是非线性的,非线性意味着我们通常使用的从一般观察归纳出理论的工具,如趋势分析、均衡测定、样本均值等方法都不适用。
看完这本书,我继续在网上查询遗传算法的资料,发现莫凡的Python教程(https://morvanzhou.github.io)的确很不错,用精简的python语句,做了一个简单的遗传算法模型,即便完全不懂遗传算法的人,也能从示例中了解个5-6成。看完霍兰的书,再看这个精简的代码,忽然有种醍醐灌顶的感觉。我猜大部分的书,只会简单的介绍这个算法的实现方法,以及一些背景,不会像霍兰自己这样建立一个理论体系,然后讲述他的落地方法,从地基到高楼。
理论是道,算法是术。但凡一个普通人,都能针对道和术发表自己深入浅出的见解,然而遇到事情的时候,他并非会先寻道,直接先做了再说。精于术疏于道,是我对当下大部分计算机人的评价,毕竟术可以很快变现,道不可以。因此很多时候,理论都是舶来品,然后实现中国智造。在某个意义上说,我们这里是大试验场,好坏不说,只是我不认同这样的做法,然而并没有什么卵用。
结语
最近,有朋友委托我给他热爱编程的小朋友一点建议和引导。我的确花了不少心思,对自己能通过代码控制计算机,小朋友很有成就感。
一心想钻入计算机的比赛,这莫不是一种舍本逐末的做法,这就是我和大部分做STEM教育以及青少年计算机培训的人的最大分歧。我是热爱计算机的,并希望在传递正道的时候有一定的回报;而外界的培训机构,是热爱名利的,计算机只是他们实现获得名利的一种途径,所谓情怀只是看中了家长的荷包。