近日,世界围棋第一人柯洁对阵人工智能AlphaGo的对战吸引了人们的关注。作为业余爱好围棋的金融工作者,我也十分关注这一场“人类棋手最强力量”和“代表未来AI使者”的巅峰对决。
众所周知,AlphaGo不是用穷尽法暴力破解了围棋的所有可能,但为什么能以绝对优势击败人类顶尖棋手呢?除了强大的计算能力,还有其他的原因吗?AlphaGo 的胜利,对我们做股票投资又有什么启发呢?
有关AlphaGo和人工智能AI的分析文章有很多(后附一些AlphaGo简明原理介绍),综合各方观点,我认为AlhpaGo在比赛中表现出如下特点:
1. 下出了打破常规的招法,说明人类棋手历史经验总结的一些常用下法是不全面、有遗漏的。
2. 没有人类棋手的固定风格,在实地、外势等不同风格之间无缝切换。
3. 没有情绪波动带来的水平波动。
4. 选择胜率最大的招法,而不是人类经验认为最强的招法。在判断处于优势时,体现为会不断退让。
5. 尽量简化局面。不像人类棋手刻意保留变化,但也不害怕变化和打劫。
6. 每一步都会计算胜率。
7. 人类组成的团队与AlphaGo的比赛,表现反而没有单人优秀。
从对股票投资的启示角度,我对AlphaGo这些特点进行了以下解读:
1. 打破常规的下法。
AlphaGo一些下法超越了人类棋手的认识水平。因为人类也是不能穷尽所有可能,只是根据经验总结了一些简化思考的原则,例如布局阶段不下在三三、小飞守角等。这些捷径类似数学中由公理推论出的定理,有适用条件。但棋手往往从小学棋时就作为绝对真理来接受,不再思考这些原则的适用范围、在具体环境中的正确性,于是很容易形成盲区,教条化。AlphaGo现在的算法是从最根本的围棋规则出发,不辞辛苦地每一步都全面评估价值、计算死活,得到的最优招法自然与走捷径的思考方法得出的招法不同。
对投资的启示:投资研究中要尽量从最基础的原理、最原始的数据出发进行思考、推理,才能发现表面打破常规、实则合乎逻辑的投资机会。不能依赖走捷径。
2. 不拘泥于某种风格,在不同的风格之间无缝切换。
棋的风格是棋手个人主观偏好的表现,实地与外势、战斗与均衡等。AlphaGo没有主观偏好,每一步都是根据相同的算法找最有价值的招法,可以说是道法自然、顺势而为。该取实地取实地,该取外势取外势,在人类看来是在不同风格中切换。
对投资的启示:不要先入为主地设定主观偏好,而是耐心做全面分析、量化分析,得到什么结论就是什么结论。不要简化、贴标签,例如大与小、周期与非周期、传统与新兴。
3. 没有情绪波动带来的水平波动。
AlphaGo的方法是和人类棋手一样的,大局判断和局部死活的计算。柯洁第二盘在前一百手左右是与AlphaGo势均力敌的。但当柯洁认为机会来临,有可能击败AlphaGo时,情绪波动了,导致注意力不能集中、没能持续想到最优招法,最后一着不慎满盘皆输,中盘认输。
对投资的启示:投资决策需要始终保持冷静,投资者对自己的情绪状态要有感知,避免在情绪化的状态下做决策。
4. 选择胜率最大的招法,而不是最强的招法。
AlphaGo选择招法的衡量标准是赢棋,赢多赢少没有区别。每一步棋赢的概率很重要。很多走法表面看不是赢最多的最强招法,但实际上是赢棋概率最大的招法。
对投资的启示:不能只追求最大的市值上涨空间,而是要追求可能性最大的市值上涨空间。既要考虑空间大小,也要考虑实现的概率大小。
5. 尽量简化局面,不保留变化。
因为围棋的变化太多,AlphaGo无法用穷尽法来下棋,所以AlphaGo有减少计算量的剪枝环节。在围棋比赛中体现为不保留变化、尽量简化局面。
但是,AlphaGo并不像一些早期观点说的不会打劫,在与柯洁第二盘对局中展现了比人类更强的打劫能力、控制复杂局面的能力。
对投资的启示:追求确定性、减少研究量。在研究过程中尽量消除每一个遇到的疑问,不要积累问题。在选择标的时,尽量选择主业突出、涉及行业少的公司。
6. 每一步做胜率的评估
围棋是博弈,每一步都会对局面产生影响。尤其在激烈复杂的对杀局面下,类似悬崖边的搏斗,情况瞬息万变,稍有不慎就会满盘皆输。
围棋的量化计算是必须的,只是有模糊的方向性判断是不够的。死活需要计算,差一气也是不行的。大部分情况量化计算是方向判断的基础,例如有做活的可能,才去破空;不能做活就不这么下了。
对投资的启示:需要量化计算、持续跟踪、不断评估价值。只做定性的判断是不够的,不做持续的跟踪也是不行的。
7. 人类组成的团队与AlphaGo的比赛,表现反而没有单人优秀
五人组成的围棋团队反而没有柯洁一个人比赛表现的好。理论上多人团队的整体水平应该比单人水平高,因为可以多角度分析、减少盲区。但是在时间不足的情况下,沟通不充分、不能达成共识找到最优招法,多人多角度分析也就从优点变为缺点。反而相互干扰,每个人都无法发挥最好水平。
对投资的启示:投研团队要在研究过程中充分沟通,要保证时间充足、沟通方式有效,用数据和逻辑来帮助达成共识。沟通充分才能发挥出团队减少盲区的作用。
附:AlphaGo的简明原理介绍
围棋借助人工智能在2016 年实现的突破
(摘自夏飞的文章。夏飞,清华大学与卡内基梅隆大学毕业,现于谷歌工作)
原文链接:http://mt.sohu.com/it/d20170523/142860386_651893.shtml
围棋是一个完全信息博弈问题。而完全信息博弈,通常能被简化为寻找最优值的树搜索问题。它含有 b 的 d 次方个可能分支,在国际象棋中 b≈35,d≈80;而在围棋中b≈250,d≈150。很显然,对于围棋,用穷举法或简单的寻路算法(heuristics)是行不通的。但有效的方法是存在的:
1. 从策略(policy) P(a|s) 中取样action,降低搜索广度
2. 通过位置评估降低搜索深度
3. 把策略和值用蒙特卡洛树搜索(MCTS)结合起来。
一张图了解AlphaGo的原理
(摘自郑宇的文章。郑宇,博士,ACM数据挖掘中国分会秘书长)
原文链接:http://www.kddchina.org/#/Content/alphago

图1、AlphaGo的原理图
AlphaGo总体上包含离线学习(图1上半部分)和在线对弈(图1下半部分)两个过程。
离线学习过程分为三个训练阶段。
第一阶段:利用3万多幅专业棋手对局的棋谱来训练两个网络。一个是基于全局特征和深度卷积网络(CNN)训练出来的策略网络(Policy Network)。其主要作用是给定当前盘面状态作为输入,输出下一步棋在棋盘其它空地上的落子概率。另一个是利用局部特征和线性模型训练出来的快速走棋策略(Rollout Policy)。策略网络速度较慢,但精度较高;快速走棋策略反之。
第二阶段:利用第t轮的策略网络与先前训练好的策略网络互相对弈,利用增强式学习来修正第t轮的策略网络的参数,最终得到增强的策略网络。这部分被很多“砖”家极大的鼓吹,但实际上应该存在理论上的瓶颈(提升能力有限)。这就好比2个6岁的小孩不断对弈,其水平就会达到职业9段?
第三阶段:先利用普通的策略网络来生成棋局的前U-1步(U是一个属于[1, 450]的随机变量),然后利用随机采样来决定第U步的位置(这是为了增加棋的多样性,防止过拟合)。随后,利用增强的策略网络来完成后面的自我对弈过程,直至棋局结束分出胜负。此后,第U步的盘面作为特征输入,胜负作为label,学习一个价值网络(Value Network),用于判断结果的输赢概率。价值网络其实是AlphaGo的一大创新,围棋最为困难的地方在于很难根据当前的局势来判断最后的结果,这点职业棋手也很难掌握。通过大量的自我对弈,AlphaGo产生了3000万盘棋局,用来训练价值网络。但由于围棋的搜索空间太大,3000万盘棋局也不能帮AlphaGo完全攻克这个问题。
在线对弈过程包括以下5个关键步骤:其核心思想实在蒙特卡罗搜索树(MCTS)中嵌入了深度神经网络来减少搜索空间。AlphaGo并没有具备真正的思维能力。
1. 根据当前盘面已经落子的情况提取相应特征;
2. 利用策略网络估计出棋盘其他空地的落子概率;
3. 根据落子概率来计算此处往下发展的权重,初始值为落子概率本身(如0.18)。实际情况可能是一个以概率值为输入的函数,此处为了理解简便。
4. 利用价值网络和快速走棋网络分别判断局势,两个局势得分相加为此处最后走棋获胜的得分。这里使用快速走棋策略是一个用速度来换取量的方法,从被判断的位置出发,快速行棋至最后,每一次行棋结束后都会有个输赢结果,然后综合统计这个节点对应的胜率。而价值网络只要根据当前的状态便可直接评估出最后的结果。两者各有优缺点、互补。
5. 利用第四步计算的得分来更新之前那个走棋位置的权重(如从0.18变成了0.12);此后,从权重最大的0.15那条边开始继续搜索和更新。这些权重的更新过程应该是可以并行的。当某个节点的被访问次数超过了一定的门限值,则在蒙特卡罗树上进一步展开下一级别的搜索(如图2所示)。

图2、MCTS拓展下一级节点
AlphaGo 2.0技术重大提升:和1.0原理大不同 更接近于人
(摘自王小川的文章。王小川,搜狗CEO)
原文链接:http://www.sohu.com/a/143627309_635113
在中国乌镇对弈中国围棋职业九段棋手柯洁的是AlphaGo 2.0。
AlphaGo 1.0 是巧妙地混合了三种算法:蒙特卡洛树搜索+监督学习+增强学习。其中蒙特卡洛树搜索是一种优化过的暴力计算,比1997年深蓝的暴力计算更聪明。而这里的监督学习,是通过学习3000万步人类棋谱,对六段以上职业棋手走棋规律进行模仿,也是AlphaGo获得突破性进展的关键算法。而增强学习作为辅助,是两台AlphaGo从自我对战众中学习如何下棋,据悉对棋力提升有限。
根据公开资料推测,此次AlphaGo2.0的技术原理与之前有着巨大不同:
1. 放弃了监督学习,没有再用人的3000万局棋谱进行训练。这本是AlphaGo最亮眼的算法,也是今天主流机器学习不可避免的核心条件:依赖于优质的数据,在这个特定问题下就这么被再次突破了。
2. 放弃了蒙特卡洛树搜索,不再进行暴力计算。理论上,算法越笨,就越需要暴力计算做补充。算法越聪明,就可以大大减少暴力计算。从AlphaGo 2.0的“马甲”Master的历史行为看,走棋非常迅速,约在每10秒钟就走棋一步,如此速度很可能是放弃了暴力的计算。
3. 极大地强化了增强学习的作用,之前敲边鼓的算法,正式成为扛把子主力。想想看有多励志:两台白痴机器,遵守走棋和获胜规则,从随机走棋开始日夜切磋,总结经验,不断批评和自我批评,一周后终成大器。
在这样的算法下,AlphaGo 2.0对计算资源开销极小,把当前棋局输入神经网络,电流流过,输出就是最佳的走棋方案。我猜测如此算法下,有可能仅仅依靠一个GPU工作,每一步棋消耗的能源接近人的大脑。

