围棋之神隐退江湖

随着 AlphaGo 大胜柯洁,我想围棋这个曾经被认为是 AI 短板的智力游戏已经不再成为一个问题。不过似乎从哲学上来看,这个问题远远没有被解决。通常的棋类博弈都可以看成一个 graph 上的搜索问题,棋盘的状态对应图的顶点,而棋手选择的 move 作为连接两个顶点的边。对于象棋之类的,合法的移动较少(每个类型的子都会有不同的约束),棋盘也比较小,在往常博弈的过程中简单的评价方式已经比较准确的反应了每种子的重要程度,因此可以比较容易根据己方对方剩余棋子的价值来评估每一个 move 之后的损失或者收益。而常见的搜索方法也就是在图上进行“有限”深度的遍历,寻求一条“理性”博弈后己方收益最大的路径。

这种人类理性思维的延拓以及程序实现成为了早期 AI 的基本原理。但是很显然面对围棋这种棋子无差异,棋盘巨大,最终也并不是按照某颗子是否存活断定输赢的游戏,它导致了两个传统算法的核心问题:

  • 搜索空间过于巨大,如果不进行有效的剪枝,是不可能在有限的比赛时间里完成有意义的搜索工作的
  • 评估本身的困难,如果看职业棋手的评估,往往也只出现在某些局部逐步的明朗后,根据规则计数才成为可能,而对于早期的评估基本上没有太大的意义

本质上 AlphaGo 的成功也正是寻找到了对于这两个问题的解决方案。然而实际上这种方案的出现仍然植根于职业棋手的思维方式。与一般的棋类活动不同的是,围棋选手通常用比较“虚”的东西来描述棋局的优劣,这些东西往往来自他们过去的经验,有的可以定量化,更多的似乎是“直觉”。AlphaGo 比较有意思的做法大概也就在于使用 deep learning 这套“玄学”来复制人类的“玄学”吧。

比较有意思的大概是人类棋手对于 AlphaGo 的认知。他们经常会用情感色彩的东西来描述这个高深莫测的对手,从“棋力”的角度来看,人类在短短几小时里能够推演出来的 variations 与计算机相比还是少了太多太多,因此输棋几乎已经是必然。人类的唯一希望只是在于对于“价值”的评估上,李世石唯一赢得的那局也是因为这个;但是现在的 AlphaGo 通过自我博弈探索自己的弱点修正了“评估”上的“瑕疵”(或者还有别的瑕疵,这大概也是 DeepMind 为何年初 60 大胜之后还要再来寻找柯洁比试一次)。其实如果说 DeepMind 真希望做一次更为合理的比试的话,应该给棋手看到 AlphaGo 的评估网络的输出,这才是人类真正能够发挥自己优势的地方。至于那 50 局的棋谱怕是杯水车薪反而误导职业选手了吧。

最后说一点关于围棋本身的哲学。评判输赢在于最终占有目数多少却不在于多多少目,这与 SVM 当年给人的感觉何曾相似,与常见的最大似然不同,要的仅仅是两类的 margin。目标函数的选择往往是哲学上的区别,而哲学的区别表现为行为方式的不同,造成理解上的隔阂。不少人抱怨 AlphaGo 在收官的阶段通常下一些不那么犀利的行棋方式,特别 pair match 时落后一方古力配对的 AlphaGo 甚至被认为在自杀,其实理解了哲学上的区别就很容易理解。收官阶段很多棋尽管仍然有一定的活动空间,但是前期的差距基本已经定型,如果 AlphaGo 已经计算出来无论怎么折腾它有应对的策略,即便损失一定的优势,但是避免了更加激进策略下可能翻盘的可能性,那么选择更为稳妥的落子当然是不违背本身的哲学的;在已经知道必输无疑的情况下,避免使用激进的策略无非也是出于同一哲学思想。

人在与人的博弈策略的转换是一个额外的因素。不是每一个人在针对不同对手的时候都会使用相同的策略的。哲学决定了目标函数,策略只是实现哲学的手段。人类能够透过策略看到哲学,进而把握对方根基上的弱点而调整自己的哲学与其相抗衡。对于简单的棋局,也许只有唯一合适的哲学。有没有一个问题本身是不存在最优哲学而要求参与者必须转换自己的策略来增强自己的胜算的呢?石头剪刀布?还是说任何问题都一定存在一个最优的目标函数,只是我们无法 formulate 出来。

围棋之神隐退江湖

LR 黑白片的 dodge 与 burn

最早开始实践 dodge 和 burn 是这篇 blog,我们这里讨论一下 LR 里面处理黑白照片一个比较常见的手法。我经常觉得自己的黑白片没有一些职业的人显得反差巨大,一旦调高 contrast 或者把 curve 弄的更 S 一点,又觉得照片比较假。其实通过 dodge/burn 有选择的增强部分元素的反差才是正经。下面两幅图作为比较:

右图其实也是经过了简单的处理后获得的 baseline,尽管已经使用了基本的技巧增大了反差,甚至通过 brush 的 dodge 将水流轻微的增强了效果,但是整体看起来仍然非常的 flat。人们更加愿意看到一种比较 punchy 的图像,其中的重点瀑布本身能够 pop out,左图通过下面几个步骤实现了 dodge/burn:

  • 更具照片的性质,进行额外的 low/high key 处理,如果希望 low key 一般可以对获得的“正确”曝光减少 exposure/brightness,这样获得一个基础的低调氛围,当然低调的目的就跟红花还要绿叶衬一样,作为绿叶存在
  • 简单的 radial gradient filter作为 spot light 点亮画面中需要突出的元素,这里我们把水流通过的区域进行了增强,同时削弱了那些由于反光显得较为耀眼的石块
  • 最后寻找一些比较乏味的区域(明暗单调),稍微做一些润饰

老婆有时候也会觉得某些照片我是不是处理的太过了,但实际上却又觉得还可以(从观赏的角度)。比如下面一张。

风暴将至

实际情况当时阳光从云层探出,Spada Lake 湖面被照亮,颜色偏暖,远处的山峰逐步被灰色的云层所围绕,正好使用 100mm 镜头捕捉到冷暖色相对比较强烈的瞬间,近景的湖面和翠绿的植物显得格外的鲜艳,而且那个白色的树干也很有味道。可是照片出来,仅仅通过基本的处理天空并没有想象那么“冷”,尤其山上还有积雪的痕迹,不冷就没有氛围,天空还很明亮,也没有风暴将至的感觉,然而当我通过降低天空的曝光并把色温降低,阴冷的蓝色调与下面的阳光色温就形成了冲击,画面明显会更为 dramatic 一些。尽管这是一张比较简单的照片,前景要是还有一些点缀就更好了,但是我已经觉得比起很多之前的照片有了长足的进步。

摄影师不应该满足相机本身带来的效果。摄影师无论是选择时机出现在合适的位置,或者依靠自然光的时间或是依靠人造光源,那都只是为了获得前期的基本,前期不好会是硬伤;但是没有后期,摄影师希望表达的感觉,又或者为了迎合观众希望产生的效果才能充分的表现出来。

其实人就是一种非常主观的动物,他们只愿意相信自己愿意看见的东西,看别人的照片只有他们觉得不做作就真实,听别人的数据只要自己觉得合理就会相信。尽管作为一个有良心的摄影师或者数据提供者我们不应该“过分”的修改数据,但是未经修改的数据往往是会误导观众,让自己的成果显得平庸。这其中怎么说就是一个度的问题吧。

LR 黑白片的 dodge 与 burn

写在搬迁之前

几个星期前 bid 成功,到最近两周 appraisal 和贷款下来,再到昨天去“新房” final walk through,突然觉得一种很奇怪的感觉。以前不论在上海还是北京,都觉得一种缺失,因为没有长期的住所,也因为每个住处都是那么狭小,即便几年前到了这里,依然觉得一种漂泊感,时不时的让人感到无助。突然间似乎我要离开这种生活了… 站在即将成为“家”的门口,边上的卖家说进去再看看吧?我顿时觉得这一步迈的如此艰难

哦,这是真的吗?还是只是因为一天的 hiking 让我疲惫?

回想了一下周五 6:00 回“家”路上各种堵车,也许以后上下班这就是常态了?以后周末也许不会去公司干活,而是更加宅了?周末不再出门 hiking 而是打扫院子?

家,会不会又是另外一种意义上的禁锢和枷锁,还是能够提高生产力和实现新梦想的起点。突然觉得一切发生的这么快,有点让我应接不暇。也许这是最好的 one year anniversary 的礼物,尽管今年老婆可能不能赶在之前过来了

写在搬迁之前