今天是3.14,所谓的Pi Day,借机发一下一直思考着的几个相关问题吧。

我的高中数学老师给出了一个有趣的问题, 咋一看是如此的简单以至于可以作为小学生的填空题: 1和0.9循环哪个大?很多人会不假思索的认为1要大那么一点点, 而事实上这两个值是严格的相等。可以这么证明:
1/3=0.3333….. 三分之一等与0.3循环,这个是我们都认为正确的结果,然后等号两边都乘以3
3 * 1/3 = 3 * 0.333333…… 就得出
1 = 0.999999……
这是一个让人惊讶的事实,跟我们的直觉不相符,但我们很容易接受推导过程。
推导过程中有一个小陷阱,就是把乘法自然而然的推广到了无穷项并且不认为有什么不妥。
为什么无穷项的表现总是让人觉得匪夷所思?

我们对数字以及相应的操作法则,必定源于大脑的思维模型,绝不仅仅是后天得到的知识那么简单,应该牵涉到了大脑的某种本质的先天性的结构相关的东西,数学是对这些基础法则的抽象表达和推导。

如果有一系列的个体,挨个排开,我们对每一个不同的个体用一个标记来代表它,比如第一个就是符号1,第二个符号就是2,这样我们就得到一个序列
1 2 3 4 5 6 7 ……..
我们说自然数序列是什么呢,就是无穷个体的一系列标签,我们对这个群体的若干操作,就是对物理世界若干个体的不同操作,被抽象出来加减乘除等法则。比如,大街上站着一个人,我们看到并认为如此,一些动物,比如狗可能也能察觉到,这时候又来了一个人,这时候我们认为,这跟刚才肯定不同,可能狗也这么认为。同时,树上有一只鸟,又飞过来一只,我们开始总结两者的共同之处并说:这两者在数量上是相同的。狗会怎么认为?可能我们并不知道,也许它有这种抽象能力只是无法表述出来。但大部分人会觉得从中抽象出来个体和计数跟人类的智能是绑定在一起的。

我们一开始教小学生数学,书上画着三个苹果下面写着3,画着三棵树下面写着3,画着三只蝴蝶下面写着3,然后老师告诉学生3,这是3,比来比去。小孩子很容易就接受理解了,并自发的产生并获得3这个概念。某些本质的东西,是没有办法解释的,就像我们教育小孩子一样,通过一系列的共同引发他们自己的抽象。人类大脑构建了某些基础性的东西,而我们后天向其中诱导灌输知识文明。

数字是一种抽象,自然中的个数在大脑中的某种表示。但对计算机来说,数字与自然界并没有任何关联,只不过是一组寄存器的状态,加减乘除也是硬编码的随着时钟周期变化状态的某些法则。所以我们认为通用图灵机随着外界输入改变并产生输出,只是状态变迁,跟钟表,复杂的齿轮结构,没有太多两样。智慧的本质也许并不仅仅是物质那么简单,可能会引入某些比如灵魂之类的更深刻的问题,先不跑题了。

整数的无穷序列,就是1,2,3…..跟我们所能感知到的物理世界,在大脑模型中似乎是对应的,无数个数目组成树林,无数的树叶,草,生物,都能通过这个序列一一对应上,就是数出来,光、烟雾之类的虽然不能数,但必定有另一类机制处理,我们说一朵云,一柱烟,抽象之后还是归类的这个序列上。

这个整数序列专业术语来讲就是可数集,我们认知上的物理世界是可数的。
通过人类对世界的认知思考,引入了新的问题,在一个二维平面内,到一个点距离相等的所有点的集合,我们称作圆,丈量这个闭合曲线的长度,引入一个我们无法表达的数字,就是pi,我们无法用数字形式表示出来它,因为它的后面有无穷个位数,3.141592653589793238462643383279502884197169399375105820974944592307…一直写下去,从耗费时间的维度上是无限的,这跟图灵停机问题有些类似。
但是我们同样可以思维感知它,通过一个符号pi,我们就能思考处理它,并引入各种各样的算术操作表达式当中,大脑解决问题的模式似乎就是,概念的概念,任何问题都可以通过添加一层更高的抽象来解决,这可能跟神经元的连接模式有关。

任何整数的加减乘除表达式都可以写成小数的形式,比如前面说的1可以写成0.9循环,1/3可以写为0.3循环,等等,但是这些小数都有循环的规律。如果小数点后的不同位是任意的数字,我们就得到了一个更为诡异的大的数字系统,比如说0和1之间的所有小数,构成所谓的连续统,通常我们认为这个集合是不可数的,这个可以通过康托对角线法则来证明。
连续统以及相关的问题是个复杂的课题,牵涉到公理化集合论,连续统假设等。
单从一个无限不循环的小数后的数字序列来看,可以认为是一个可数集,而这些实数似乎有无穷个,无穷的无穷。我隐约的感觉这些似乎跟图灵停机问题、可计算性,甚至更深刻的智能的本原等有着异曲同工之处。

假如我们能够通过一个无穷的数字序列来描述一个原子的状态,比如动量、空间位置、电子轨道等信息,那么构成整个宇宙的所有原子,就能排成一串数字的序列,如果把时间划分成细片,就像时钟最短的嘀嗒,这一串数字在时间的维度上又构成一个序列。这个序列是否能描述我们的宇宙?或者说,这个序列能用实数集来表示么?还是需要比连续统更高的势?当然我们不可能得到每个原子的精确信息,这里只是想从另一个角度来看一下。

生命就是要在复杂的序列中找出某种规律,毫无规律的东西我们也不认为具有考虑的价值。pi是一种规律性的东西,虽然我们不能用有限的整数四则运算来表示它,但是可以用无穷级数来写出,如果引入一些三角函数和微积分等高级一点的算符,就更容易了,比如

或者

推导演算,这些怪异的数字就是这么得出来的,在一种表示下是有序的事物,但是到了另一种角度,却成了毫无意义的无穷序列,如果我们看一下自然界的一些现象也是如此,而智慧生命的本来意义就在于能从这些无序之中归类整理出来某些规律,这是生命的本质还是由之产生的属性?

左下角智齿,大二的时候开始长的,当时痛的睡不着觉,脸肿了半边。后来不痛了就再也没有去管过它,前段时间左边的磨牙开始疼,是隐隐作痛那种。去了医院,医生说要把智齿拔掉才行。

上周五去了趟医院,九点多,被告知没有号了,于是折返。周日七点半就到了,总算挂上了号,等到十点半,整整三个小时,总算排到了医生。拍了张X光,医生说我有四颗智齿,左下角的最为严重,已经把第二磨牙顶出缺口来了,必须拔掉,不然磨牙也会挂掉。

但是那颗智齿长得太歪了,拔掉的过程中可能会伤到神经,甚至是终生的,让我回去仔细考虑考虑。实在是纠结,不拔,有危害,拔,可能会导致下巴神经损坏,人生中的许多事情,都是这么错综复杂,动此则伤彼。

排队等候的过程中,看着人来人往,行色匆匆,医院是人类机器的维修机构,每一个人都有所诉求。焦急的心态,凝重的气色,看多了突然觉得有趣,亲身经历更能体会到媒体整天报道的我国医疗的不足。

一个苍蝇在窗口上飞来飞去,一次次的撞击向玻璃,晕头转向,徒劳无功。但是苍蝇却不醒悟,还是一次次飞过去。难道这种生物就没有学习的能力么?我记得看到过蚂蚁,同样在圆形的花盆边缘一圈又一圈的爬行,却不知道自己在兜圈子。可以说,蚂蚁和苍蝇的大脑是简单的,比我们用程序构造的有穷状态机,比如游戏里的怪物,高明不了多少,他们都没有学习和判断的能力,只是先天的被设置好状态,然后根据相应的输入条件执行跳转。

但是蚂蚁和苍蝇却拥有我们人类至今仍未用机器构造出来的东西,那就是它们的机械运动和控制系统。我们的机器人从来没有达到过半点蚂蚁们的灵活程度。蚂蚁苍蝇,在这方面上,和动物人类,都是共用一套类似的系统,只是我们多了一个高度发达的大脑而已。

这套运动系统普遍的存在与各种动物当中,最下层的,是执行某一个具体运动的肌肉,我们可以用电动机模拟它,但是,一个简单的动作,比如行走,如果考虑到各种颠簸不平的路面,对于机器人来说却是极其艰难,对于动物们来说这是轻而易举的事。差别到底在哪里?我们可以用预先编写好的程序代码来控制机器人的行走,预先考虑各种路面情况,判断受力大小位置,以及该如何行动。

动物们从来不理会这套。我突然意识到重要的一点,人生下来是不会行走的,要到很长一段时间才能学会走路。这说明了,走路这项技能,并非先天写进大脑中的,而是后天习得的技能。甚至不只是行走,比如各种体育运动,篮球,足球,都是经过长期锻炼才获得复杂的动作与操控的。这说明了,我们拥有的不是走路的技能,而是一套机制,这套机制保证了应对各种复杂情况的可能。

这套机制需要包含的一些东西,比如,适度控制不同肌肉块的力度,在时间尺度上线性或者各种二次三次或者各种各样曲线式的改变控制力度,这些操作控制连贯起来形成一系列的,有如音乐曲调高低起伏一般的控制脉冲,流向肌肉系统,从而形成各种动作。

还要有某种机制进行选择,比如什么样的脉冲组合是真正正确需要的,这些一般从形成的动作产生的结果,又形成的输入反馈中获得,如果被判定为正确,那么就强化,否则抛弃。

我明显的感觉到这套系统的存在以及对我们各种行为的影响,比如从体育运动中获得乐趣极大程度上就源自于此。甚至音乐给予我们的欢乐,虽然看起来不同,深层次看来也许同样是这套机制导致的。歌声是靠控制声带相关的肌肉产生的,跟跳跃走动,本质并无大异。

也许有一天我们能够通过机器人来实现这套机制,自学习,自适应,这种特点正是智能生命所拥有的一大特性。我们仍然停留在确定性程序的泥淖里,而计算机的通用图灵机的模型的限制在于,它依赖人进行编写。跟生物错综相连的神经元更类似的是可以动态组合的门电路,可惜我们还没有找到可以动态改变并强化他们的方法。FPGA是个好的开端,如果真正构造智能系统,抛弃对通用图灵机编写程序而转向门电路级别也许是明智的。

虽然智齿跟智慧没有什么关联,但却引发了我对智慧这么多的思考,实在是始料未及,世界上发生的毫无关联的事,总是可以找到一些方法关联到一起,每一事件都会对未来的发生造成影响,甚至每一个分子的细微扰动,让我们无法预测未来。

也许正是未来的不确定性才使得我们的存在具有了意义。

这些天一直在下雨

前天晚上站在楼顶,看南面的天空,一个闪电接着一个闪电,却听不到雷声,估计距离比较远吧,闪电足足持续了一两个小时,给予我足够的时间去观察它们的形状结构,各种各样都有,实在感叹我们世界的美妙与变化多端。

为什么大块的云层会带上电?也许好多原因吧,比如太阳光线造成的电离,大气运动。当这些能量瞬间释放出来的时候,就形成了千姿百态的电闪雷鸣,给我们的文化添加许多色彩。也许正是闪电启发了人类认识电能,进而一系列的变革,我们今天的文明,没有电能以及相关的衍生,恐怕不比几千年前高明多少。

我看到一滴水凝聚在一个树枝的顶端,几乎是纯圆形,却没有因为重力落向地面。一个个水分子间的拉扯力,表现在我们的宏观世界,造成了水滴的性质。

这滴水里应该包含了足够多的分子,假定一滴水以克为数量级,那么这里包含的分子数大致在10的二十几次方左右数量级,如果用一台计算机来模拟这滴水是否可能?一块现在的显卡每秒能渲染三角形数目大致以亿为级别,cpu就更不用说了,一滴水有万亿亿的级别,就是把世界上的计算机都加起来也基本不可能。

一滴水,一片云,一次闪电,这些简单自然现象背后蕴藏的复杂程度令人咂舌。然而构成我们世界的基础是极其简单,一个个原子,加上电荷,引力,空间时间,还有其他的一些简单事物,通过几条定律方程,构成了我们如此复杂多端的世界,以及拥有自我意志可以思考的人类。

我们是被创造出来的么?我们为什么存在?

今年世界杯最有意思的事情是,未来帝和章鱼哥对球赛的预测,奇准无比。

而我们平时也搞一些类似赌球的游戏,比如猜测结果请吃饭之类。不止足球,很多事情都是类似,这似乎是人们普遍的心态。

在各个古老的文明中,求神问卜,对未来重要事情的预测,似乎都占很重要一席。每一个文明都有类似的于祭司,巫师,先知之类的概念,这些人员都部分或者全部的从事预言的工作,并以此谋生。

预测是如此的普遍且广泛的存在于各个文明之中,必定是有某种更深层次的机制使然。

人的大脑比较复杂,会思考很长一段时间之后的重要事情,假如把这个时间段缩短到几分几秒再来看,似乎显得再也自然不过,比如,门将一个大脚把球开出去,所有队员都知道往前跑,因为大家可以肯定的预测,球将快速飞过中场。这种明显的理所当然的事情,常常被我们忽视而不去思考,在这里,人们同样是对球的走向进行了预测,这种预测跟对球赛结果的预测,似乎有些不同,因为我们根据已知的物理定律,几乎可以百分之百的指出球下一步将出现在哪个位置。但是球赛的结果却是千头万绪,不到最后谁也无法真正断言。

产生这两种不同预测的深层机制应该是相同的,对未来进行预测是人们作为一种生物的本能行为。在遥远的过去,生物为了生存,必须对周围的环境做出相应的反应,对不同的外部环境进行不同判断预测,决定下一步该如何行动。人的大脑会储存以往的经验信息,进行分析判断整理,并对当前环境做出反应。

大致可以认为,预测未来是生物进化出来的求生本能,各自独立发展的文明产生相应的巫师之类的职业,不过是这种深层次原因驱动的一种表现罢了。

近代科学,大部分所做的工作是对这些进行预测的规律进行总结,那些物理定律,数学方程,大多都是经验性的概括推理,只不过在经验领域得到了充分的正确性验证,其实质也许不比那些女巫高明多少。科学在大部分场合,也不过是在做预言,比如航天器未来运行的轨迹,宇宙的过去未来等。

有一种观点是,如果各种初始状态和影响因子都是确定的,抛去复杂度,一切事物的未来某段时间的状态都是可以预测的,这是所谓的拉普拉斯的决定论。之所以做出这种论断,可能是拉普拉斯被数学方程所取得的巨大成功所激励。这种想法很符合我们的想当然的常识,但是后来被量子力学的概率波之类的概念所否定。未来充满几率性很难让人接受,爱因斯坦就一直反对。但如果这样是正确的话,科学就更像巫师般的模棱两可的预言了。

人脑的思考预言,似乎很大程度上建立在推理这个概念的基础上,推理更深层次看来,应该是因果律,由某种先决条件产生相应后果。

经常性的对人的思考模型进行相应的思考(这似乎是个悖论),每次最后都不可避免的归结到因果律。它似乎基本到让人惊讶的地步,从大脑结构上看,神经元的前后传递本身也可能就是为因果律提供了先天的基础。不过因果这种关系隐含了一个假设,就是它必须以时间为前提,这样因果律似乎有了更基本的东西在支撑。

康德说,时间只不过是我们内感官的一种形式罢了。也许正是因为人的思考模式的存在才有时间的概念,对过去的记忆,以及对未来的推测,是这种思考结构上的种种表现。时间和空间这些纯粹概念的存在,是人脑先天的模型。但是因果律这种推理的存在,是先天的纯粹概念,还是时间或者空间的一种表现形式呢?

如果把时间当作基本概念,也许推理作为其表现形式更为自然一些。不过其中应该不可避免的掺杂了其他的因素,很难具体澄清出来。

预言本身就隐含了以时间做为前提,不过是人们无法做出正确推理,而采用的一种安慰形式罢了,我们有个词语叫猜测,就是对这种概念的准确描述。从生物进化的角度来看它,比考虑它的实质更有意义。

早上从噩梦中惊醒,天还黑着,翻来覆去睡不着,梦中的情形清晰可见,心里却在想其他事情,一时间绝望,伤心,可惜,怜悯,各种感情纷至匝来,一两个小时的辗转反侧,后来半睡半醒的到了天亮。

我在想梦是如何产生的,大致跟人的想法心情有些关联吧,白天所想,晚上的梦多半与之有些关联。也就是古人所谓的日有所思,夜有所梦了。心情不好,做噩梦的几率也就多一些。

但是我的梦的情形却是与现实毫不相干,惊醒之后,我突然发现一个重要的信息,就是,人思考的时候,大脑是主动状态,而做梦的时候,大脑却处于一个旁观者的角度,如同看电影一般,经历梦中发生的事物。从生物学的角度,也许做梦是大脑某些部分在睡眠中活跃产生,但生物进化如此之久,难道梦没有一些对生物个体影响的进化的因素在内么?我们进化出眼睛来看东西,四肢来行走,也许做梦也有它的目的。

我想到了当初写过的一个马尔科夫链的程序,用来读入一大堆某个作家的文章,然后建立每个词语跟词语跟随的列表,随机的在这些词语链上游走,于是便能输出一段一段的毫无意义的句子,这些句子虽然没有全局的思想上的概念,但似乎能够通顺的读下去,每一句读起来感觉语法上跟这个作家的风格很相似。

人做梦的时候,大脑可能有一个类似于马尔科夫链的算法,用来随机生成预测一些类似现实的事情,每个点上游走的概率跟心情状态有关,这样梦中的一些东西,倒是可以用来增加人的积累经验,预测推断一些发生的事情,加深思想认知。

梦的随机不可知性,如谶语卜言,被人当作神明的指示。各种文明里都普遍把梦当作一种预示,模棱两可,含糊不清的预言。

要想深刻认识梦的原因功能,可能要先从大脑的思考结构模型入手,心理学,生物学,哲学,计算机科学,都有些许关系。在看计算理论和人工智能相关东西时,很容易就会考虑到大脑结构模型的问题,计算机界最具哲学性的一个问题就是,计算机到底能做什么?是不是人思考能达到的事情,计算机都能做?

按照Chomsky hierarchy的结构,大致可以归结出几个能力不同的计算模型,有穷自动机,下推自动机和通用图灵机,计算机的计算能力,是可编程的通用图灵机所达到的,这个计算模型是不是就能达到人的大脑的程度呢?

我一直相信,人脑的结构绝对不会太复杂,只是一个简单的先天模式加上后天的学习。抛去一切经验性的东西,大脑还剩下的是什么?康德认为这些是先天存在于大脑中的纯粹的概念。可能人一出生就被设定好这些模式,甚至,学习认知的方法,也是一种先天存在于大脑中的东西,初生的婴儿,也许有的只是学习的方法。关键在于,这些模式是否能够被计算机先天的写进存储器?然后按照认知的方法执行程序?

梦也许是生物本能模式的一种,但是,它到底是被用来做什么呢?存在的目的又是什么呢?也许前面的一些琐碎的想法,都是用来解释这两个问题的。

写着写着就扯远了,这篇本来是写梦的,改天再写大脑思维相关的东西吧

HTML设计之初,没有考虑到数学公式排版,所以要想在里面添加一些比较复杂的符号就没有标签可以使用,唯一的折衷方法是,利用图片来代替显示,但是这样实在是麻烦。

这种不足很多人都意识到了,W3C的一个recommendation,MathML,就是针对html缺乏数学公式支持提出的,刚发现的时候,我欣喜若狂,没过多久就变成失望了,缘故是,MathML需要浏览器的渲染支持,大部分用户还在使用万恶的IE6,就是现在支持的浏览器,比如最新版的firefox,渲染效果并不好,本来应该很优美的公式,看起来只是大致正确表示出来而已。

MathML最大的弊端是,一个很简单的公式,用标签写起来要浪费一大堆文本,混杂在一起,没有第三方辅助工具的话,很难编辑和阅读。

我一直想,如果能在HTML里面嵌入latex该有多好啊,从语法角度来看,成为W3C标准是没有指望了,但是就像flash一样,能够作为一个插件成为事实上的标准也行啊,这个目标看起来同样很遥远,仔细想想,有几个用户会在web页面上写科学公式呢?

唯一的做法是,把latex作为在服务器端处理的脚本,客户端浏览器请求的时候,自动执行处理,生成相应的图片,就等同于服务器端的php,asp之类的脚本一样,如此就完全不用考虑到不兼容的问题。这种想法很容易被人想到,而且早就有人实现了,这里有一个页面,可以动态生成latex的图片。

wordpress也有相应的支持,提供一个生成latex图像的服务器,把要处理的latex文本作为url里的一个参数传入,就会返回一幅图片,http://l.wordpress.com/latex.php?latex=,后面这个latex=的参数就是latex源数据,只需要加入一个img标签,然后把src写成相应的url,就可支持数学公式的显示。当然,这样毕竟还是麻烦,有时候还要转换url编码,wordpress有一个latex插件,直接支持方括号latex标签,很方便。

下面这个随便写的公式,是个试验

[latex size=”2″]frac{x+sum_{i=0}^{n}{(i^2+int_a^b{3sin^i(x)dx}})}{sqrt[3]{x^2+y^2}piepsilon}[/latex]

看起来效果很不错哦;-)