欢迎来到 Free Mind ,这是由 pluskid 所维护的 blog ,主要记录一些机器学习、程序设计以及各种技术和非技术的相关内容。如非特别指明,本站的文章遵循 Attribution-ShareAlike Creative Commons 协议。更多文章索引请浏览 Archive, Categories, 和 Tags。 部分文章前后有一定的关联,也可在 Series 中找到索引。早期的博客文章请参见 Free Mind 2009~2012Free Mind 2007~2009

Could a neuroscientist understand a microprocessor?

最近看到一篇有趣的文章叫做 Could a neuroscientist understand a microprocessor? (DOI: 10.1101/055624)。讲的是用神经科学的分析方法来把计算机微处理器当做一个黑盒子来研究。这让我想起之前听过的一个 talk,里面有提到这篇叫做 A search for life on Earth from the Galileo spacecraft 的文章。

Disable OS X System Integrity Protection

大学时代曾经一度在 Linux 和 Windows 之间挣扎徘徊,直到后来开始用 Mac,几乎是瞬间就觉得各种满意。好用的命令行加上好用的 UI,基本上不能奢求更多了。不过近年来感觉 Mac OS X 好像在某些奇怪的路上越走越远,特别是在命令行的兼容性方面经常出各种各样的事情。比如之前某次由于一个奇怪的原因需要手工恢复一部分 dotfile 配置文件,于是直接用 cp 命令从 Time Machine 的备份里把一堆文件复制过来,结果系统各种 run 不起来,后来发现好像是奇怪的权限问题,总而言之似乎是 OS X 在 shell 的基础权限之外又做了其他的权限,而 cp 不知道这些东西,所以拷贝过来的东西也用不了。由于我也不是 sys admin,对这些东西也不感兴趣,最后就用 Finder 比较麻烦地重新拷贝了一遍才好了。

不过今天要 fix 的是这个叫做 System Integrity Protection (SIP) 的东西,又叫 rootless,总之就是保护系统了。听上去感觉很有用的样子,似乎确实也很有用,不过刚出来的时候好像导致 homebrew 出了很多问题,然后最近由于 DYLD_LIBRARY_PATH 的问题终于忍无可忍决定要把它 disable 掉。

Optimization and Assumptions

因为想要熬夜看 Alpha Go 和 Lee Sedol 的围棋比赛,自己的围棋知识又没有达到能全盘 follow 看懂的地步,所以决定一边看一边写点东西。跟 AI 没有什么关系,当然非要扯上一点关系的话,可以这样来 motivate 一个话题。我们都知道人和电脑各自有一些各自擅长的东西,比如电脑擅长计算,而人脑擅长……呃,这里先留白,等我想到了再补上。总之我在最初接触 optimization 这个问题的时候其实也是这样的概念:计算机算法在这里似乎相当笨拙,比如我们经常看到类似图中的例子被用来说明当计算机面临 non-convex 问题的时候会如何陷入 local minimum 出不来。

相反对于这个例子,人“一眼”就能找到 global minimum 的位置。但是其实仔细想一想大概只是自我感觉良好而已。

The Volume of High-dimensional Unit Ball

高维度数据是现代机器学习的一个重要特点,而人脑无法直观地对超过三维的东西进行 visualize (至少我自己做不到)一直是我觉得作为一个人类最痛苦的事情之一,如果什么时候有机会做一回超人或者宇宙人什么的,能够选择技能树的话,我大概会优先选择这一项吧。正因为如此在高维空间中的许多现象看起来非常“反直觉”。比如今天我们要讲的结论是:高维空间的单位球(半径为 1 的球)的体积随着维度的增大趋向于 0。我跟一个朋友提起这件事情的时候她说这是她在听说了“奇数和整数一样多”这件事以来让她最为震惊的事情。

2015 就是这样

今年是老歌《就是这样》。

不穿鞋子 体会真的感觉 环游世界 不在乎明天天气 我的世纪 梦与我没有距离 说去就去 发出讯息 接收我的频率 冒险前进 顺从心里的好奇

Denoising Lena

在之前讲 Projected Gradient Method 的文章中,我们举了一个对加了白噪声的 Lena 的照片进行 denoising 的例子,文中提到了两种方法,一种是直接对 DWT 的系数进行 hard thresholding,将数值较小的值设为零,再用逆向离散小波变换得到 denoising 之后的图片。另一种方法是解一个 正则化的线性回归,我们选了后者因为刚好那个优化问题经过变化之后可以用 Projected Gradient Method 来解,这也是当时选这个问题作为那篇文章的原因。但是当时并没有解释为什么这些算法可以实现降噪,而这就是今天的话题。

关于知识整理、积累与记忆

去年的年度总结中有提到过一个关于知识积累方面的困惑,最近被问起今年的年度总结中怎么没有再提及去年提出的那些问题,实际的原因是忘记了……这也正说明了对于像我这种忘性巨大的人来说知识积累真是一件迫在眉睫的事情,实际上在过去的一年中其实也做过各种尝试,虽然并没有算解决了这个问题,但是也不妨趁此机会分享一下我的一些尝试和想法吧。

2014 明天的记忆

从 2009 年开始不知不觉养成以孙燕姿的一首歌作为年度总结贴的标题的习惯:

今年是“新”歌《明天的记忆》。

回忆的泥土 让生命有厚度

2014 年,猛然一念间,好像发生了很多很多的事情,至少周围的人都发生了各种各样的改变,比如好多人结婚哈哈,确实是在这样一个时间点上吧。但是关于自己,好像有很多事情但是又不知道从何回忆起。拿了驾照(虽然 license 还没寄到);考了日语 N2(虽然过不过还要再等几个月才知道);跑了意大利日本新加坡(虽然还没有完全明白旅行的意义);放下了以前的心结谈了一场异国恋(虽然总共持续不到一年并且最后是 bad ending);一口气戒掉了人人微博朋友圈脸书 Twitter 之类各种社交网络(虽然因此变得喜欢刷 Hacker News 了并且似乎看动漫的数量明显增加);终于动手学了一点 CUDA 编程和搞了一点 Deep Learning 相关的东西(虽然学术方面进展似乎更加缓慢了)……一晃一眨眼间,不过既然平时从来不管我的 advisor 都突然问你有没有想好 PhD Thesis 的 topic 了没,我才突然意识到过去了的,是一瞬,同时也是一整年。

Softmax vs. Softmax-Loss: Numerical Stability

一切起源于我在 caffe 的网站上看到的关于 SoftmaxLossLayer描述

The softmax loss layer computes the multinomial logistic loss of the softmax of its inputs. It’s conceptually identical to a softmax layer followed by a multinomial logistic loss layer, but provides a more numerically stable gradient.

caffe 是当下一个很常用的 C++/CUDA 的 Deep Convolutional Neural Networks (CNNs) 的库,由于清晰的代码结构和设计,并且速度也很快,所以不论是学术界还是工业界,要做一些扩展工作的时候经常会选用它。当然现在随着 Deep Learning 的流行,相关的计算库也繁荣起来,许多知名的库大都有各自的特色,具体要选用哪一个的话还得看自己的需求而定。

不过今天我们主要是要围绕上面引用的那一段话来闲聊一下。中心思想是:在数值计算(或者任何其他工程领域)里,知道一个东西的基本算法和写出一个能在实际中工作得很好的程序之间还是有一段不小的距离的。有很多可能看似无关紧要的小细节小 trick,可能会对结果带来很大的不同。当然这样的现象其实也很合理:因为理论上的工作之所以漂亮正是因为抓住了事物的主要矛盾,忽略“无关”的细节进行了简化和抽象,从而对比较“干净”的对象进行操作,在一系列的“assumption”下建立起理论体系。但是当要将理论应用到实践中的时候,又得将这些之前被忽略掉了的细节全部加回去,得到一团乱糟糟,在一系列的“assumption”都不再严格满足的条件下找出会出现哪些问题并通过一些所谓的“engineering trick”来让原来的理论能“大致地”继续有效,这些东西大概就主要是 Engineer 们所需要处理的事情了吧?这样说来 Engineer 其实也相当不容易。这样的话其实 Engineer 和 Scientist 的界线就又模糊了,就是工作在不同的抽象程度下的区别的样子。

DRM vs. DRM-free e-Books

电子书时代的逐渐到来一直是一件让我觉得兴奋不已的事情,当然目前离电子书取代传统书的时代还有很长的一段距离了。从目前的情况来说,电子书和纸质书的阅读可以说是各有优缺点,就好像传统的绘画和通过 Wacom 之类的设备直接在电脑上作画一样,虽然不排除随着技术的逐渐发展后者可能最终将会取代前者,但是就目前的状况来看,只能说是各有千秋了。

特别是电子书的市场本身也还正在发展中,总体来说也就是近几年新出的畅销大众化类的书比较多会有电子版,但是比较专业一点的书籍就没有那么好的支持。比如我虽然给我妈妈买了 Kindle PW,但是似乎用处也不是很大,她经常要读的那些比较正统的文学类书籍大都没有电子版出售,而且比较冷门的话就连网上的自制电子书也是没有的。