Posts published during May, 2008

11 comments

贴照片 II

实在太忙, 贴照片充数. 每周末都做一定的户外运动, 故而又黑了,耶!

(明星狗 Brian Griffin 是本照片的主角)

img_0271.JPG

(淘了很多平均不超过10美元的好书)

img_0268.JPG

(最近老编程, 尝试了一下 Dovark 布局的苹果键盘, 据说打字很快)

img_0248.JPG

TopLanguage 论坛上有人问为啥信息论要使用 H = -K \sum_{x \in X} p(x)\log p(x) 的形式. 或者说, 为啥要用不直观的对数.

古典的解释很简单, 对于一个有  N 种状态的事件, p 进制编码的时候, 需要的位数是  \log_p N . 也就是  - \log_p (1/N) .

这种古典方法有很多局限. 最显著的就是  N, p 必须是整数. 熵的概念既不能推广到一般概率, 也不能推广到一般的对数为底.

下面我介绍两个公理化的定义. 一个是 Shannon 的原始定义, 一个是我偶然想到的模仿 Kolmogroov 概率公理化定义一样, 关于自信息量的定义.

Shannon 在 A mathematical theory of communication 的公理化定义被很多人忽略了. 我简单的归纳一下.

0. 信源可以看成是一个 Markov 过程. 现在相信大家都知道这一点了, 比如抛硬币, 就是这样的图:

m.png

这里, 信源的熵(不确定度量)只和均衡状态下各态的到达概率有关. 而和其他量无关. 也就是说, 迥然不一样的Markov过程只要稳定状态下各态概率一样, 不确定度量也一样. 这样, 信源就抽象成了和具体工作机理无关的 Markov 信号发生器. 这个是信息论的关键前提.

1. 假设离散事件发生的概率为  p_1, p_2, \ldots, p_k . 其所含的”不确定度量”  H 是关于 p_i 的一个连续函数.

2. 假设 p_i = \frac{1}{n}. 则  H 关于  n 是增函数. 因为  n 变大, 表示可选择的更加多, 也表示“不确定度量”在增加.

3. 如果随机变量  X 的概率分布依赖于 随机变量  Y 的分布, 那么 X 的熵  H(X) 可以表示为  H(X) = \sum_{y \in Y} p(y) H(X|y)

从这三个公理出发, Shannon 证明, H = -K \sum_{x \in X} p(x)  \log p(x) 是唯一可能的信息熵的表示. 具体的证明也不难. 从因为从 3 出发可以简单推出.

假设  H(\frac{1}{n}, \ldots, \frac{1}{n}) = A(n)
则有,  A(t^{n}) = n A(t) . 按照连续函数的性质, 解一下函数方程, 可以得到  A(t) = K \log t.

我想到的公理化定义说起来也比较简单, 是依赖于自信息量的公理化定义. 基于和香农同样的假设, 一个事件的自信息量 S(X) 定义为该事件概率分布的一个连续函数.类比于 Kolmogorov 建立的概率公理体系, 自信息量是概率度量空间上的一个实度量, 满足一下几条公理:

1. 非负性. 对于任何事件 X,  S(X) \ge 0

2. 信息量的可列可加性. 即在条件概率的意义下, 以两项为例, 有,
S(X, Y) = S(X) +  S(Y|X)  = S(Y) + S(X|Y)

直观的解释是, 事件  X 与事件  Y 联合提供的信息量, 等于知道  X 的信息量加上知道  X  Y 提供的信息量.

根据公理2, 很简单可以得出独立同分布事件  X ,  Y 联合信息量  S(X, Y) = S(Y) + S(X) . 根据这个可以推导出两个结论, 一是概率为 1 的事件的信息量必然为 0. 二是因为独立分布事件的概率是两个概率相乘. 令  t_x = p(X), t_Y = p(Y) , 则有  f(t_x * t_y) = f(t_x) + f(t_y), 此函数方程的解为  k \log t . 其中 t 是概率,  \alpha 是任意常数. 根据1 可知,  \alpha 必须取负数. 因此, 令  k = - \alpha , 得自信息量公式  - K \log p . 与古典结果一致.

在自信息量的定义之上, 熵就是很显然的了. 事实上, 熵就是系统各状态自信息量的数学期望, 即:

H = -K \sum_{x \in X} p(x) \log p(x)

公理化定义的好处是, 整个信息论建立在了现代数学的磐石之上, 并且能与其他数学领域相结合. 信息论诞生以后, 到最近, 都一直受到数学家的重视. 在关于下一代移动通讯网络 (4G)* 的研究中, 非常纯数学非常抽象的代数数论和代数几何, 居然和信息论相结合, 产生了令人惊讶的代数几何码, MIMO 空时码等先进的编码技术. 编码理论和代数结构相结合, 不光在实际上产生了效果好的应用, 而且在理论上也出人意料, 建立了不同学科之间的深刻联系. 信息论早就已经超出了一个工程分支的范畴, 成了非常新, 非常有活力的一个数学练兵场. 有兴趣致力这方面研究的可以阅读几篇 IEEE Transaction on IT 上面的一些经典文章.

延伸材料:

1. A Mathematical Theory of Communication by Claude E. Shannon (http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html)

2. Wikipedia Article: “Entropy in thermodynamics and information theory” (http://en.wikipedia.org/wiki/Entropy_in_thermodynamics_and_information_theory)

* 3G (第三代移动通信) 的编码, 据我有限的知识, 一般是基于 Turbo 码这样一个随机的编码方式. 关于这个编码有一段非常有趣且有启示的故事: http://jcst.ict.ac.cn/downloads/xsqy/qy1503.pdf

改了一下CSS.

screenshot-4g-spaces-and-web-23-mozilla-firefox.png

这也是我有生第一次看到国旗为此而降.  我相信, 民间的力量, 舆论的力量, 使得这个国家变得越来越注意自己的人民, 使得这个国家的人民越来越有尊严.

上篇文章发表后,有朋友说我骂得太狠了。我还是坚持, 毫无建设性的批评只会破坏所有批评者的整体形象 。我依然坚持给胡搅蛮缠的某人人道主义中指。

下面转两篇防火墙之外的文章。 刘晓波和王希哲 都是和19年前春夏之交某件事情很有关系的著名人物。

大地震中的民间之光

刘晓波

http://tinyurl.com/5hqn7q

中国2008,被称为”奥运年”,但突然的大地震来了,迄今已有一万四千多个生命死去,其中包括许多压在校舍废墟下的孩子。不管中共当局是否情愿,在此国 难当头之时,大地震和救灾重于一切,事实上已经取代奥运而成为08中国的头等大事。也不管中共当局情愿与否,中国的主流民意已经作出判定:”08奥运年” 改为”08汶川大地震年”。

08年刚刚进入五月,中国就发生一系列大灾难,胡温政权也遭到国内外舆论前所未有的批评。此次胡温当局在救灾上的进步,显然与年初大雪灾时遭受海内 外的广泛批评有关,也与缅甸军政府的救灾态度招致全球性谴责有关。温家宝应该感谢年初大雪灾时遭到的激烈批评,否则的话,在此次大灾中,这位爱哭的总理也 决不会得到如此多的赞扬。

大灾难固然可以凝聚国人,但对中国政府和中国人而言,大灾难更应该带来直面劣根的深刻自省,带来对制度顽疾的痛下狠手,否则的话,凝聚力只能一时而 无法长久。灾难不足畏,谣言也没什么,错误的言论也不可怕,甚至荒谬的观点也应该有发表的权利。可怕的是不尊重生命的制度和文化,是畏惧民间自治和新闻自 由的政府,是胡温政权的救灾声音变成压倒一切的主旋律,是温家宝霸着媒体直播的大部分时段,是大灾难过后官权的庆功盛宴和自我表扬。

08年,中共把奥运当作最大政治,进行空前的社会动员,大雪灾,大车祸,口足疫,西藏危机。统统要给奥运让路。现在,四川大地震,多少家园顷刻废 墟,多少家庭瞬间破碎,多少孩子葬身瓦砾,又有多少孩子无家可归。如此举国同悲、举世关注的大灾难,难道还不能让奥运的喧闹安静下来,让劳民伤财的火炬传 递停下来吗?

从古至今的中国,只有统治者的”龙体”金贵,就连生前都不惜劳民伤财,恨不得登基的第一天,离死还大老远,就忙着兴师动众地修坟。死了,僵硬的龙体要住进豪华的地下宫殿,不仅要制作千军万马的泥人陪葬,甚至还残忍地要让活人陪葬。

1949年以来,帝制时代的死亡规矩废掉了,但骨子里仍然以百姓为草芥。自称把”为人民服务”作为最高宗旨的中共政权,只让中国的国旗为最有权势者 的死而降,无论天灾人祸吞噬多少无辜国人的生命,却从来没有为无辜的死者下半旗。近年来,中国民间敬重每一个生命而反对特权等级的意识逐渐觉醒,所以,每 逢死伤惨重的灾难发生,民间都会大声呼吁国家应该降半旗致哀,以表示生命的平等和对生命的敬重。此次大地震中的死者,他们不是大人物,但他们是人,是与大 人物一样的生命,难道国旗还不能为这些亡灵而降吗?

值得庆幸的是,在此次大地震中,不仅民间自发动员的救灾行动远远超过以往历次大灾,而且中国民间并没有因胡温当局在救灾上的进步而闭嘴。民间人士在 肯定当局有所进步的同时,也提出了众多质疑和批评。不要说网络舆论了,就是纸媒也发出响亮的声音。《南方都市报》等优秀报刊,已经发表多位知识分子呼吁开 放新闻和开放民间组织,呼吁公开的决策和透明的捐款,呼吁停止火炬传递和为死者下半旗,呼吁尽快让具有丰富救灾经验和能力的国际援手进入灾区。

当四川作家冉云飞发出”中国民间组织参与汶川地震救灾邀请函”时,当北京的数个NGO发起”北京民间公益组织联合行动”时,当爱滋公益人士万延海宣 布以”爱知行研究所”的名义捐款五万元时,当”牛博网”网友发起民间募捐并得到著名的环保组织”自然之友”的响应时,当韩寒这样的年轻作家也作为”牛博网 “善举的发起人、并开着自己越野车与牛博网网主罗永浩等人前往灾区时,当无数网友愿意通过这些民间组织捐款捐物时,当”南都公益基金会”发出”民间组织参 与救灾行动是我们义不容辞的责任!”并开始行动时,当广州网友自发组织起来商讨并制定出具体的救灾方案时……

我更加坚信:”未来的自由中国在民间”。

——————-
左派尽职救人,右派尽职骂人

王希哲

http://tinyurl.com/56laty

川北大灾难。中国的左派在尽职救人。这“救人”是广义的,有加入解放军救援大军在第一线拼死拼活救的,有在全国全世界各地发动和带头捐款捐血,奔走呼号,凭借网络现代手段鼓舞救灾的全民士气,来“救”的,形成了在爱国爱民旗帜下的新兴的广泛的左翼民间组织民间社会总动员,它的意义,很多人看到了,甚至西方社会都不少敏感的人看到了。不多说。

右派呢?右派也很尽职。右派的职责就是骂。他们站在灾难的旁边拼命地骂,恶毒地骂,挑拨矛盾,制作谣言,转播谣言不遗余力地骂。他们在海外骂,不少还化了马甲潜入国内网站去骂,然后转贴出来,说“你看,国内网友比我们骂得凶呢!”但他们忘了,这恰恰可以表明了中共治下国内舆论的开放已经达到的程度,当局甚至已经能够容忍网上的这样稳定群居的敌对势力的长期存在和对他们的挑战进攻了。

极右派们幸灾乐祸恨不得天塌下来,根本不希望救人。反共才是一切。而大力救人在国内国际的形象改良可能对共产党统治合法性有利。他们必须破坏。他们为自己的破坏救灾制造合法性,就是传说所谓“天谴”:川北地震让中国人成千成万人死了,是因“人神共怒”的“天谴”。中国人该死,“死得还太少”(右派原话),为什么该死?因为天要灭中共,可恨中国的老百姓却没有响应“天”的号召起来灭中共,甘当“顺民”,就该遭“天谴”了,就该统统去死了。也有右派感到此说露骨,出来辩解说,他们不是幸灾乐祸,不是反对救人。不是幸灾乐祸?不是反对救人?既然中国人去死是“天谴”,是“天”意所在,此灾何其有幸!此祸如何不乐?你还救什么?去救,就是违背“天”意,就是逆“天”!就是你们天天骂的1958年口号“人定胜天”,本身就该死了。

可喜还有一种右派,开明型的右派。他们不像极右派那样由于对中共的仇恨而对中国人民也心怀刻毒怨恨。他们希望中国国内外的右派能成为建设性的反对派。建设性的反对派可以坚决批判中共的制度和政策,要求改革,但在中国人民的大灾难面前,要对人民有最深的爱心,可以暂时搁置政治意见的争执,一致努力救灾。现在就要全力鼓励、支持和鞭策中共政府及解放军救灾的一切积极有效行动,
政府行动不当不力当然可以批评,但不要去攻击、造谣、反对,更不可对人民的痛苦幸灾乐祸,视为“天”对中国人民的惩罚,要中国人“死得越多越好”。这一派,现在有刘晓波、刘路、张成觉等代表。于是,他们立即在极右派的攻击下,成了“投共”分子和“拥共”分子。

但我是赞赏和支持刘晓波们在这件大是大非立场上表述的意见的。右翼民运现在必须分化也一定要分化。一定要有真正站在中国人民中间与他们良性互动的建设性反对派出来。刘晓波们的意见显示了这种分化已经在发生。国内民间社会组织力量以汶川救灾为标志正在大规模崛起,空间正在扩大,地位正在提高。贝苏尼说对了,“什么是革命?这才是真正革命性的变化。中国的NGO成长壮大,形成与政府的互动关系,是民主转型的开始。 ” NGO们未必都是左翼力量。他们今天积极参与救灾相对破坏性的极右派他们是左翼,明天他们很可能
还是体制内批判共产党制度的右翼。但反华反中国人民的极右派不可能领导他们,他们也不可能接受极右派,只有右翼建设性的反对派才可能结合他们,影响他们。让极右派们去继续尽职扮演他们不但对中共,也对中国对中国人民仇恨型的、敌对型的、破坏型的角色去好了,中国是需要他们的角色的,他们毫无理性,肆无忌惮的攻击,对弊病万端的中共官僚政府总还有刺痛警醒的作用,光有温和的反
对派还真不行。但他们与全中国如此大多数人民一次又一次地为敌,格格不入,注定了他们在中国的未来不会有任何的地位和前途,真心为国为民的建设性反对派现在不与他们明白划清是非界线,就实际要为他们背书,最后只能为他们政治殉葬。这些极右派虽然已经形成网上势力,但除了一两个头面人物,大多不过是匿名鬼影,他们极端得很,又精明得很,他们垄断了“民运”,却又无需对自己言论负责任。建设性反对派公开人物不与他们划清界线,便要向他们的言行负上责任而为之陪葬,何必?他们是什么人?太不值得!

辟谣

目前关于地震有不少谣言. 比如之前有预测啊, 解放军不尽力啊, 等等. 都是谣言. 大家可以看小百合上这个帖子澄清一下. 希望所有的人都冷静, 不要以讹传讹.http://lilybbs.net/bbscon?board=NJUExpress&file=M.1210722311.A&num=21246 

长平又写文章了, 理不糙, 可标题起的不好, 说<请不要以地震谣言抓人>. 我觉得对于恶意的谣言, 抓是必要的. 这时候谁还不说人话制造恐慌或者瞒报灾情, 都是反人类的. 

至于提前预测, 和解放军不尽力, 任何会使用搜索引擎的人都会发现消息来源是大妓院.  大妓院, 人民报以及博讯, 反党反到反人类, 也真是叹为观止了. 

捐款

海外请参考 MITBBS

http://www.unknownspace.org/article_t/Donation/27177988.html 

和纽约大使馆网页 

http://www.nyconsulate.prchina.org/chn/ttxw/t434163.htm  

祝福所有为抗击这场灾害做出贡献的人. 请所有的人放下争议, 全力以赴, 贡献自己的力量.

平时我批评党和政府也不少; 这时, 个人都是无助的, 政府, 解放军和热心的团体都是可以依靠的, 请给与所有的人爱心和信任.

4月份看 CNN , 结果看到了著名的说中国人全是  goons and thugs 的句子. 到FCC投诉这些人发布种族歧视言论, 今天终于得到了 FCC 的回信.投诉这东西, 就是表个态的事情. 不过既然FCC回信了, 当事情处理了, 那我还真想看看FCC怎么处理这个问题.

img_0265.JPG

另外, 这几天好像一篇文章很流行, 说支持达赖的是一起骂布什的左派,是友邦人士.  要我说, 这篇文章很不客观.  你来美国亲自看看, 搞西藏独立的就是运独轮(这个独是台湾的那个独)的人, 加上极端保守的从来不读历史书的要输出美国价值的保守派. 美国的左派除了骂美国, 说说政治正确, 极少说过要干涉其他国家事务. 左派大多拿着社会主义的旗帜, 反专制的政权, 像大喇嘛这样的摇滚明星, 在左派这里压根就不是什么新新人类偶像, 反而是一个令人发中指的活神仙 – 给伊拉克战争张目, 造成伊斯兰很不满.  况且这个喇嘛, 言行很不一致,  连 CIA 都扯进来了, 左派才不会给 CIA 当夜壶呢, 如果这点政治正确不知道, 还怎么混左派.  人家左派要反, 都是从苏丹问题入手. 这一波球中国接得比较好, 所以, 左派早就转移到怎么让小布什下台和伊拉克撤退的论辩中了.

此外, 奉劝那些天天靠在家里想象西方友邦全是左派的出来看看. 别土鳖一样天天叫着美国左派是友邦. 在美国, 只有原教旨主义才把自由民主如上帝一样捧上天, 和国内自由派知识分子暂时在一个战线(自由派的另一支重要力量, 即国内年轻学生和留学生, 几乎一边倒的支持奥运打火机).  左派, 特别是大学里面的左派, 还在和小布什死磕, 力推奥巴马呢, 哪有功夫关心一只打火机?

昨天在家,女友看电视,看到缅甸的救灾情况,大骂一声: motherfucker. 我很惊讶, 问原因.  她说缅甸军政府似乎在拖延美国的救灾援助. (我没有告诉她美国一直制裁缅甸,所以缅甸人很穷, 没法抗灾. 要不然她又要骂共和党和小布什 motherfucker 了). 我说, 军政府是操蛋, 但是操蛋的原因可能是对西方不信任. 你看印度和中国的救援不是很快到位了么? CNN 的报道则是: 缅甸政府把救援物资打上将军的标签后发放 (Debbie Stothard … said her organization has received reports of aid packages being distributed with the names of military leaders on the labels.). 西方民众听媒体这么一说, 肯定要骂军政府操蛋了. 果然, 今天一到系里面就有同学说这个事情, 说缅甸政府简直是 Son of Bitch. 连援助都不让顺利入境.

对于救灾, 我想缅甸军政府和我党一样,都是信奉不干涉内政主义. 对于敌人的“嗟来之食”, 怕是不怎么感兴趣. 而且国家被西方封锁后, 政府各级自然都会有怨气, 就算西方援助到了门口, 怕是还是要按照自己的方式来管理物资发放. 在亚洲的价值观中, 人权不是第一位的, 西方运援助来,让救灾专家自主发放,在亚洲的政权看来,不是为了效率,而是收买人心. 女友眼看着美国没办法送达救援物资, 又不能用打伊拉克的办法派美国大兵直接救灾, 最后只好说, 要中国和印度赶快派救灾专家, “强行”进入缅甸救灾. 我说,呵呵,中国没美国那么牛,能“强行”的话, 缅甸就是中国一部分了. 她说, 这个是灾难, 你们中国就见死不救么? 或者, 让你们中国政府再多给点援助, 补上西方不能入境的那部分?我说, 好吧, 我写篇文章, 号召大家关注关注这个问题吧. 于是, 也就顺着她的意思,动动嘴皮子, 希望大家关注一下这个事情.

说到操蛋政府的救灾, 就会回到一个永恒的问题: A 组织可以帮助 B 群体, 你也想要帮助 B 群体, 但是你不喜欢 A 组织. 怎么办? 比如很多人不给希望工程捐款的原因是相信有人贪污捐款. 不合作, 这是解法1,  也就是说, 索性不帮了; 美国人喜欢”强行”, 他们是解法2, 就是直接绕过或者灭掉 A,自己成立一个高效的 A’. 这个思维方式在伊拉克,南斯拉夫等地方表现都很明显. 女友也是主张中国直接强行救灾. 我们中国较多使用的是解法3, 号称所谓的高薪养廉法, 和A 做朋友, 允许A拿一点. 要是你操蛋过火了,就把你灭了. 操蛋不过火, 随你怎么搞. 于是, 我们养着各级大大小小的操蛋官员和北朝鲜那个胖子.  三个解法, 无高下好坏之分; 只愿大家把精力先放在帮助 B 上, 至于解法123的好坏, 可再议.

昨天四川地震了, 好像伤亡也很靠近缅甸的了. 假如各地组织捐款什么的, 呼吁各位能力所及掏一点吧, 就算救灾的时候有操蛋的行为, 灾民还是需要帮助的. 我相信国内的援助还是比较能直接到达有需要的灾民手里的.  (哪家媒体能全程关注一下救灾情况?做个专题什么的. 不能每次救灾只能看到解放军叔叔和温家宝吧. 抗灾救灾过程中总有点负面的要批评, 总有经验要吸取的吧.  还有谁能告诉我哪儿有接受地震救灾捐款的网页? )

最后说个题外话: 感觉这几年在很多事情上, 尤其在亚洲周边事务上, 和不亲西方政府打交道的事情现在好像都是靠中国出面了. 西方民众都普遍形成一个观念:朝鲜,苏丹和缅甸,以及巴基斯坦, 都得靠中国插一腿. (当然, 他们还是希望中国给压力,就像他们间接制裁一样). 我个人认为, 中国是大国, 该有大国的责任. 在这些问题上花花小钱, 多和他们政府接触接触, 做出一个开明的大国的风范, 修补修补国际形象, 要比和达赖死磕赚分多了.

Ipopt is a leading nonlinear optimization tool. There are a bunch of interfaces, e.g. C/C++ standard interfaces, Java and MATLAB interface, FORTRAN interface for programmers.  However, no existing interface to python was presented. I started to connect ipopt with python two months ago inspired by OpenOpt. After lots of extensive development and nasty testing,  today, I proudly announce that the python interface of ipopt, aka, pyipopt, version alpha, is ready to go.

With the help of this module, in python, you can just use

import pyipopt
nlp = pyipopt.create(n, xl, xu, m, gl, gu, nnzj, nnzh, f, gradf, g, gradg, h, apply_new)
solution = nlp.solve(x0)

to get your NLP problem which n variables (xl, xu are boundaries for variables), m constraints (gl, gu are boundaries for constraints), and objective function f (gradf is the gradient, h is the Hessian matrix) with constraints g (gradg is the Jacobian value) optimized by IPOPT.

The package is available via google code: http://code.google.com/p/pyipopt/   An OpenOpt hooker is under development.

The code has BSD license. you can use this module whatever you want. For bug report and other related things, reach me at youxu AT wustl.edu.

To write a  package is not rocket science, but it might save you some time in your research.

[Special thanks to Dmitrey Kroshko from OpenOpt and Scipy community; Dominique Orban from Nlpy community]