Blog

机器学习与人工智能学习资源导引

我经常在 TopLanguage 讨论组上推荐一些书籍,也经常问里面的牛人们搜罗一些有关的资料,人工智能、机器学习、自然语言处理、知识发现(特别地,数据挖掘)、信息检索 这些无疑是 CS 领域最好玩的分支了(也是互相紧密联系的),这里将最近有关机器学习和人工智能相关的一些学习资源归一个类

一直以来伴随我的一些学习习惯(二):时间管理

1. 退订RSS:RSS Reader是个时间黑洞。就算mark all as read,在有大量feed的情况下,也会无形中消耗掉大量的时间。我们一旦订阅了某个RSS之后就会倾向于不肯退订它,心想也许某天有个重要的信息会从那里得到。这其实是源于人不肯"关上一扇门(即便门内的收益概率极小)"的心理(参见《Predictably Irrational》);而实际上,关上一扇门,有时能够增大收益期望。仔细观察一下reader里面的feeds,有哪些是真正有价值的,把那些没价值的或者价值很小乃至于不值得每天被它骚扰的,全都退订掉。不要舍不得,那些一个星期都没出现让你眼睛一亮的内容的feed,很大的可能是永远也不会出现。就算可能,也别担心你会漏掉什么宝贵信息,真正宝贵的信息,在其他来源你也会接触到的。一开始我的Greader里面每天都有大量的新内容,每天都是1000+,但一段时间之后发现除了信息焦虑,实际上有价值的内容不多,现在,我很高兴地发现自己摆脱了这种状况,我持续不断地退订feeds,留下的内容越来越少,也越来越精,带来的阅读焦虑也越来越少。(顺便推荐一个东西,aideRSS,初步使用,感觉对订阅reddit这样的每天更新大量内容的feed很有用)。

一直以来伴随我的一些学习习惯(一):学习与思考

1. Google&Wiki(遇到问题做的第一件事情,也是学习某个东西做功课(homework)最先用到的东西。 2. 看书挑剔,只看经典。如何选择经典,可以到网上做做功课,看看评价,综合分析一下。 3. 做读书笔记。一是将自己阅读的时候的思考(包括闪念)总结下来,二是将书中的好例子摘抄下来。(这个习惯是一年前才养成的,发现受益极大。)有了google note,笔记可以加上tag,非常便于回顾,加深理解。我觉得,人与人学习的差距不在资质上,而在花在思考的时间和思考的深度上(后两者常常也是相关的)。 4. 提到思考,我有一个小习惯。利用走路和吃饭的时候思考,还有睡觉前必然要弄一个问题放在脑子里面,在思考中迷糊入睡。发现这样一来往往在不知不觉中多出来大量的思考时间。

知其所以然(以算法学习为例)

其实下文的绝大部分内容对所有学习都是同理的。只不过最近在正儿巴经地学算法,而后者又不是好啃的骨头,所以平时思考总结得就自然要比学其它东西要多一些。 问题:目前几乎所有的算法书的讲解方式都是欧几里德式的、瀑布式的、自上而下的、每一个推导步骤都是精准制导直接面向目标的。由因到果,定义、引理、定理、证明一样不少,井井有条一丝不乱毫无赘肉。而实际上,这完全把人类大脑创造发明的步骤给反过来了。看起来是阳关大道,实际上车马不通。

数学之美番外篇:快排为什么那样快

知道这个理论是在TopLanguage上的一次讨论,先是g9转了David MacKay的一篇文章,然后引发了牛人们的一场关于信息论的讨论。Anyway,正如g9很久以前在Blog里面所说的: 有时无知是福。俺看到一点新鲜的科普也能觉得造化神奇。刚才读Gerald Jay Sussman(SICP作者)的文章,Building Robust Systems – an essay,竟然心如小鹿乱撞,手心湿润,仿佛第一次握住初恋情人温柔的手。 而看到MacKay的这篇文章我也有这种感觉——以前模糊的东西忽然有了深刻的解释,一切顿时变得明白无比。原来看问题的角度或层面能够带来这么大的变化。再一次印证了越是深刻的原理往往越是简单和强大。所以说,土鳖也有土鳖的幸福:P 这篇文章相当于MacKay原文的白话文版。MacKay在原文中用到了信息论的知识,后者在我看来并不是必须的,尽管计算的时候方便,但与本质无关。所以我用大白话解释了一通。

学习与记忆

我李敖看的书很少会忘掉,什么原因呢?方法好。什么方法?心狠手辣。剪刀美工刀全部下来,把书给分尸掉了,就是切开了。这一页我需要,这一段我需要,我把它分类分出来了。那背面有怎么办呢?把它影印出来,或者一开始就买两本书,把两本书都切开以后排出来,把要看的部分切开。结果一本书看完了,这本书也被分尸掉了。这就是我的看书方法。 那分类怎么分呢?我有很多自己做的夹子,夹子我写上字,把资料全部分类。一本书看完以后,全部进入我的夹子里面了。我可以分出几千个类来,分的很细。好比说按照图书馆的分类,哲学类,宗教类;宗教类再分佛教类、道教类、天主教类。我李敖分的更细了,天主教还可以分,神父算一类。神父还可以细分,神父同性恋就是一类,神父还俗又是一类。修女同性恋是一类,修女还俗这又是一类。 任何书里有关的内容都进入我的资料里来。进入干什么呢?当我要写小说的时候,需要这个资料,打开资料,只是写一下就好了。或者发生了一个什么事件,跟修女同性恋有关系,我要发表对新闻的感想,把新闻拿过来,我的资料打开,两个一合并,文章立刻就写出来了。 换句话说,我这本书看完之后,被我大卸八块,五马分尸。可是被我勾住了,这些资料我不凭记忆来记它,我凭用细部的很耐心的功夫把它勾紧,放在资料夹子里。我的记忆力只要记这些标题就好了。标题是按照我的习惯来分,基本上都翻译成英文字,用英文字母排出来,偶尔也有些中文的。 今天我把看家的本领告诉大家,李敖知道的那么多,博闻强记,记忆力那么好。我告诉大家,记忆力是可以训练的。记忆力一开始就是你不要偷懒,不要说躺在那里看书,看完了这本书还是干干净净的,整整齐齐的,这不对。看完了这本书,这本书就大卸八块,书进了资料夹,才算看完这本书。 今天我为大家特别亮一手,把如何看书的招告诉大家。不要以为这本书看完了,干干净净的新的算看过。那个不算看过,因为当时是看过,可是浪费了。你不能够有系统的扣住这些资料,跟资料挂钩。可是找我这个方法,可以把你看过的书,都把它的精华抓出来,扣在一起。这就是我的这种土法炼钢的治学方法。

跟波利亚学解题(rev#3)

波利亚在他著名的《How To Solve It》中讲了这么一个有趣的心理学实验: 用一个缺了一条边的正方形围栏围住一只动物(狗、黑猩猩、母鸡、人类婴儿),在围栏的另一侧放上一个被试很想要的物体(对动物来说是食物,对人类婴儿来说是有趣的玩具),然后观察他们各自的行为。发现,狗在扒着围栏吠了几声发现无法通过的时候,不久便学会了从围栏的缺口的那一边绕出去,母鸡则朝着围栏一个劲的扑腾,不会想到绕弯子。此外,人类婴儿很快就学会了绕过障碍;而黑猩猩也学得很快(黑猩猩是和人类最近的灵长类亲属)。这个实验有力的证明了,动物解决问题的能力是进化而来的、天生的、硬编码在大脑的神经元网络里面的。

阅读与思考

阅读的方法 读的时候有轻有重,有的地方快,有的地方慢,具体哪些地方快哪些慢我一时也整理不出来什么法则(可以参考《如何阅读一本书》)。 举一个例子:以前我读书是流水帐式的,现在我一定会先把目录很仔细的看一看,目录往往包含了最高层的知识结构,然后我会挑选看上去最有趣的部分阅读,如果发现需要用到前面的内容就跳到前面补充一下。一般来说,最有趣的部分读完之后,其余部分也就不那么紧急了,大可以轻松地看一看。 此外边读边思考的习惯有助于加深印象;看到觉得重要的地方,要随手做笔记,就算以后不看自己的笔记,单单是记下来就能极大加深思考。 有的书整个就可以略读,因为其中有意义的地方并不很多(但又不能绝对不读,因为毕竟还有一些重要的东西),譬如《专注力》我花了不到两个小时读完了,主要是看里面的一些例子,作者的解释我发现不需要细看,有了例子自己就可以分析,没有作者的解释先入为主反而可以分析得更彻底些。另一方面,《社会性动物》就花了好几天,因为里面的思辨密度很高,值得仔细分析甚至参与作者的思考。

Failing To See the Big Picture – Mistakes we make when learning programming

Let’s start with an obvious fact: The Inconvenient Human Nature, #1 People are inherently more easily attracted by “interesting” (as opposed to “mundane”) things. (We will define “interesting” in the later parts) What can we derive from this simple axiom? A lot of things. But since we’re talking about learning programming,...

数学之美番外篇:进化论中的概率论

偶然性在进化中确实存在(例如,偶然性的突变可以产生新的特征),但是进化并不依赖偶然性来产生新的器官、蛋白质或其他实体。截然相反的是,自然选择,作为进化中已知的最主要机制,却会明确保留“需要的”(能适应的)特性,消除“不需要的”(无法适应的)特性。只要选择的影响力存在,自然选择就能把进化向一个方向推进,在出乎意料的短时间内产生复杂的结构。举个例子,现有由13个字母构成的序列“TOBEORNOTTOBE”,假设有几百万只猴子,每只猴子每秒钟挑一条短语,需要78,800年才能从26^13种可能中选出这样的排列。不过,Glendale College的Richard Hardison在20世纪80年代写过一个程序,它能够在随机产生序列的同时,保证那些已经出现在正确位置上的字母不会变化(这样做倒有点《汉姆雷特》 的味道。译注:这个句子看了大半天才明白,嘿嘿)。这个程序平均只需要336次迭代就能生成上文提到的短语,时间少于90秒。更神奇的是,把莎士比亚的整个剧本重新生成一遍也只需要四天半时间。