解名缰 鸟倦飞

为什么统计学家也应该学学TensorFlow

2017 年 08 月 22 日 | 分类于 学习中

(先啰嗦一句:本文的标题和内容牵涉到 TensorFlow,只是因为它是可用的工具之一,我相信很多其他的框架都可以做到文中我想要实现的功能。我自己并没有工具上的偏好,所以就当是拿 TensorFlow 举一个例子。)

对于学统计做统计的人来说,这可能是最好的时代,也可能是最坏的时代。好的地方我就不多说了,基本上关键词包括“大数据”、“数据科学”等,自行搜索可以列举出无数多激动人心的字眼。为什么会坏呢?因为统计的很多传统优势正在逐渐被众多机器学习算法取代,因此许多统计的核心元素,要么因为适应不了新形式的数据而被边缘化,要么因为在机器学习中有广泛应用而被有意无意地同化到了机器学习当中。

面对机器学习,或者进一步缩小范围,面对当前火热的深度学习,我陆陆续续找了一些做统计的老师和朋友聊过这个话题,发现有两类观点比较明显。第一类是深度学习“威胁论”,主要的意思是统计学被蚕食得非常严重,很多原来统计的阵地,不管是方法论上的还是现实案例中的,都被深度学习取代了。另一类是“否定论”,认为深度学习大部分是在炒作,在一些特定的行业(例如制药),传统统计依然处于核心地位,因此无需过于担心。

每次聊完之后我都会觉得“哇,对啊对啊,好有道理”,但转念一想总觉得哪里不对劲——为什么没有一种“学习论”呢?我觉得在很多情况下,人们对于新生的事物都有一种天然的抵触感,但如今面对深度学习的火热趋势,你可以支持它,也可以批判它,但惟一做不到的就是去忽视它。相反,当你试着去了解这些新的事物,你会发现它给你带来的好处可能要远远高于其坏处。

当然,这篇文章并不想过多讨论这类高层次的问题。之所以写这一篇,是想以一些自己的经历和体验来说明为什么我们应该去尝试了解和学习一些新生的事物。

阅读全文→

清白之年

2017 年 05 月 01 日 | 分类于 生活

朴树出新歌了。我并不属于那种“等了14年”的歌迷,只是遇到有才情的歌曲就会喜欢上。这次的新专辑主打的是《清白之年》,简单的歌词和旋律,但是有才情。

专辑在网易云上首发,只要15元,非常良心了。结果 APP 准备好后告诉我海外无法支付,真是想花也花不掉。Youtube 上听了试听版,下次回去一定把欠下的补上。

清白之年,每个人都有自己的解读。或许是清澈的面庞,与飘飘的白衣,又或许是江上之清风,与山间之白月。但无论如何,清白总是一张刚铺开的画布,留下无数种可能。

时间给一个人留下的可怕痕迹,就是从前他会想“我将得到什么”,而未来他会想“我还拥有什么”。进大学之前常常会幻想,将来的几年里会遇到哪些有趣的人,有趣的事,而现在十年过去,操心的事怎么就成了如何精打细算,把简历上的每一项指标兑换成找工作的筹码。清白之年里的一缕缕期许,不知如今往后可还找寻得到?

今年的主要目标就两个字,毕业。但是越接近这个目标,就会越发感到一种无力感。并不是说担心毕不了业,而是觉得自己有愧于从前的自己。害怕有一天,我渐渐停止各种不切实际的幻想,开始计算自己的极限所在,慢慢变得精明而无趣。我向来自认为是一个悲观的乐观主义者,记录下类似的这种文字,就是想时不时提醒自己,路可能越走越窄,但无论如何也要在画布中留下几处清白。

人随风飘荡

天各自一方

在风尘中遗忘的清白脸庞

此生多勉强

此身越重洋

轻描时光漫长

低唱语焉不详

阅读全文→

李斯与 GitHub

2017 年 04 月 26 日 | 分类于 生活

抱歉,我又标题党了。

我可以很负责任地说,李斯没有用过 GitHub。取这个标题,是因为昨天在 Hacker News 上看到一个歪果仁写的关于中国文字演变的系列文章(),觉得很有意思。其中第二篇里讲到秦始皇时期的统一文字,用了这样一个类比(因为暂时无法联系到作者授权,所以就不贴原文了,大意如下):

因为中国这个项目太大,所以每个诸侯国都从文字的总库进行了分流(Fork),导致文字库变得异常混乱。秦始皇下令说我们要有一个统一的主线,于是把这事交给了项目经理李斯丞相。李斯于是就开始处理各种合并请求(Pull request),负责各分支的合并(Merge)事项。

嘿,被他这么一说还挺像那么回事。

我一口气看完了这位歪果仁(很可能是一位发果仁)写的三篇文章,发现他的认识着实不简单,而且很多吐槽写得深得我心。比如第一篇写文字的诞生,一种推测是原始部族为了占卜的需要而有了甲骨文,然后他就吐槽说这个故事太不浪漫了,文字的诞生居然是基于官僚的目的。如果让他来设计一段历史,他会隐秘地希望文字的诞生是为了记录李白“水中捞月,醉酒溺亡”这个传说(当然这是野史)。

然后讲到汉字的构字法,他先列举了一些典型的形声构字(晴,清,睛),说这种造字法多么有逻辑,然后幸灾乐祸地说,呵呵,那是你们太天真了,所有的中文课本都会在第一课给你展示这些字,但随着你往后学,你会发现越来越多的特例,而学到最后你就会发现我去原来最初学的那些完美的构字才是特例啊。

最让我会心一笑的是第三篇中关于简体中文和繁体中文的对比。谈到简体使用者和繁体使用者之间的交流,他说中国大陆在学校只教简体,直到……卡拉OK被发明出来,那时中国学生可能每天要花一个小时来接受繁体中文的训练。我当时看到这段,心想我勒个去你一个歪果仁怎么这么懂这些梗啊……

阅读全文→

震惊!时隔两年八阿哥居然回来了!

2017 年 04 月 06 日 | 分类于 生活

不用看了,UC 震惊部已经不招人了。

这里也没有什么八阿哥,只有一堆 Bug。

事情是这样的,昨天收到了一封邮件,是 R Core 之一的 Martin Maechler 通过 R 的 Bug 汇报系统给我的回复。

R Bug

两年前在写一个 R 包的时候发现 R 的报警系统(R CMD check)误判了我写的几个函数,于是追根溯源发现是 R 的源代码中有个函数用错了,于是就发了一个 Bug 汇报。结果 R 开发者那边一直没有回音,拖到现在我都基本快忘掉这回事了,直到 Martin 不知道怎么就逛到了这个 Bug 然后给了一个隔空两年的对话。

阅读全文→

寂寞沙洲冷

2017 年 03 月 31 日 | 分类于 生活

前几周的时候放春假,跟几位小伙伴自驾出去玩。开车坐车的无聊时间自然是要放歌【插播一条段子,当某小伙伴对司机喊了声“放歌吧”的时候,我附和了句“但我不能放歌,悄悄是别离的笙箫”,然后全车人开始刹不住车背起诗来了……】,途中某个时候放了周传雄的《寂寞沙洲冷》。

我突然意识到,虽然我知道这句话是来自苏轼的一首词,但其实我对词的全文已经完全没印象了。之后突然又想起这事,于是就上网搜了搜。

缺月挂疏桐,漏断人初静。谁见幽人独往来,缥缈孤鸿影。

惊起却回头,有恨无人省。拣尽寒枝不肯栖,寂寞沙洲冷。

这首词的意境很容易让人想起元好问的《摸鱼儿·雁丘词》,都是以鸿雁的故事为旨,咏其心志之高。从故事的结尾来看,似乎还不如雁丘词之悲壮,然而令我感到惊奇的是,这首词相传还有一段序:

惠州有温都监女,颇有色。年十六,不肯嫁人。闻坡至,甚喜。每夜闻坡讽咏,则徘徊窗下,坡觉而推窗,则其女逾墙而去。坡从而物色之曰:“当呼王郎,与之子为姻。”未几,而坡过海,女遂卒,葬于沙滩侧。坡回惠,为赋此词。

此序的真实性尚有疑问,但如果真有这段往事,那么和这首《卜算子》合起来,顿时觉得其文字的重量多了好几分。苏轼啊苏轼,你到底是想写孤鸿,还是奇女,还是你自己呢?或许作为读者,多少都有一份私心,希望这个故事是真的吧。

但不管怎样,词人似乎都想要回答,或者可能已经回答了一个问题:雁冷沙洲,到底值是不值?温氏女郁郁而终,到底值是不值?自己不愿与世同流,到底值是不值?

有些事情可能永远无法衡量得失,只能说有选择便有代价,有些人付不起,有些人担得下,有些人赢生前事,有些人得身后名,仅此而已。

又及:写这篇博客的时候几乎立马定了这个标题,但立刻就发愁英文短链该怎么写,想着总不能直译吧。后来突然想起来在央视的一个节目《郎读者》里有一位许渊冲老先生,节目介绍说他翻译了许多唐诗宋词,于是抱着试一试的心态去网上搜了搜他的译作,其中果然有这首《卜算子》:

From a sparse plane tree hangs the waning moon

The water clock is still and hushed is man

Who sees a hermit pacing up and down alone?

Is it the shadow of a swan?

Startled, he turns his head

With a grief none behold

Looking all over, he won’t perch on branches dead

But on the lonely sandbank cold

绕了一大圈,结果回到了起点。

阅读全文→

现学现卖

2017 年 03 月 28 日 | 分类于 学习中

之前统计之都一直在酝酿一系列的网站改版,但因为种种原因中断了一些时间,直到最近才又把改版计划提上了日程。其中主站的部分由谢大牵头,目前已经召集了一支精锐部队大刀阔斧地在 Github 上开干了,而论坛的部分则是由我接盘,准备把当前有些老旧的 bbPress 系统迁移到 Flarum 上去。

俗话说得好,不写 SQL 的前端工程师不是好的 PHP 程序员。我前阵子决定接论坛的盘是因为上一次论坛搬家的时候费力研究过 bbPress 的数据库结构,所以在看过 Flarum 的后台后觉得这个可以有,然而实际开始搬的时候才发现掉进了天坑里,而这个锅主要得甩给反人类的 SQL。就这么说吧,假设所有的表都存成数据框(Data frame),在 R 里10分钟能搞定的活用 SQL 就非得耗掉你一小时,其中30分钟是在搜需要的函数,而这30分钟里面的25分钟是在确认并不存在我需要的那个函数。依我看如果科技公司要招数据库程序员,技术面试的问题都可以免了,直接给个论坛的数据带回家,一周之内成功转到另一个系统就算通过。这个考验的不是懂多少 SQL,而是考察这个人有没有足够的耐性写一千行枯燥的 SELECTUPDATE 而不至于暴走。

就在我天真地以为数据库导好后就万事大吉时,我才发现万里长征只迈出了第一脚。原因是当前的 Flarum 系统还不成熟,许多功能核心开发者还没有打算实现,比如我发现它的密码验证机制跟当前论坛的不一样,还有默认的编辑器不支持数学公式等。怎么办?没办法,只好参照官方文档的描述,给论坛写些扩展的插件了。可是论坛的后端是用最好的编程语言写的,还是基于什么高大上的 Laravel 框架,我一个平时用 R 做统计计算的,真的办不到啊。

所以最后能做的就是依葫芦画瓢,现学现卖了。找了几个官方出品的插件,模仿着它们的结构边查文档边改代码,最终也算是把程序都调通了。统计之都的 Github 上一堆 flarum 开头的项目都是这时期的产物。

阅读全文→

所有文章列表→