5月23日,中国棋手柯洁将代表人类,再次挑战alphago。不同于上一次李世石与alphago的比赛,在普遍的观点中,强弱分明,柯洁能否勉力取得一场胜利似乎是唯一的看点。
虽然比赛的胜负似乎已经没有什么悬念,但是除开结果之外,在人机大战之前,我想说说我的想法。
1.首先, 围棋是啥?
围棋的规则十分简单。
在一个19*19的棋盘上,黑白双方依次轮流落子,直到把总共361个交叉点瓜分完毕。最后占据交叉点较多的一方获胜。也就是说任何一方占据的交叉点数量超过361的一半--180.5,即为胜利。
不过,由于黑棋先下,更有利于抢先占据更有利的位置。因此中国围棋规则规定黑方不能仅仅占据多于一半的交叉点就可胜利,而是要占据180.5+3.75=184.25个交叉点以上才可胜利。简单说来就是要求黑棋占据185个交叉点或更多时才算胜利,同理白棋占据了361-185=176个以上的交叉点时,白棋胜利。
黑棋需要多占3.75个交叉点这一要求在围棋术语中被称作“贴子”,可以看作黑棋先下时应付出的代价或向白棋提供的补偿。(日韩围棋规则中,贴子的数量比中国规则规定的稍少,也就是黑棋所需付出的代价稍小些,黑棋占到184个交叉点就胜利了)
2.alphago是谁?
随着国际象棋和中国象棋相继被计算机攻克,围棋被认为是人类最后的堡垒,也是计算机最难战胜人类的游戏。
参照维基百科上“游戏复杂度”词条,可以通过两种方式衡量棋类游戏的复杂性,一是状态空间复杂度,二是博弈树复杂度。
状态空间复杂度:围棋是 10 的 172 次方,中国象棋、国际象棋分别是 10 的 48 次方、46 次方。
博弈树复杂度:围棋是 10 的 300 次方,中国象棋、国际象棋分别是 10 的 150 次方、10 的 123 次方。
但是没想到,在1997年深蓝战胜国际象棋大师卡斯帕罗夫仅仅19年之后,人工智能alphago就以4:1的比分战胜了人类围棋最强者之一的李世石九段。
alphago是如何跨越这巨量的复杂度,在充满无数可能性的棋局中,击败人类的直觉与思考的呢?
alphago详细的原理可以参考ACM数据挖掘中国分会的郑宇、张钧波两位博士的 这篇文章
简单说来,alphago通过训练好的两个神经网络模型--策略网络和价值网络能够快速有效的针对棋盘上的各种情况制定出对策。
以最简单的剪刀、石头、布的游戏为例。策略网络告诉计算机目前可以选择的策略:当对方出石头时,可以选择布或者石头。价值网络告诉计算机每种对策的胜率:选择布时,胜率时100%;选择石头时,平手,进入下一次,后续的胜率将是50%。
这样计算机就仅仅需要不断迭代验证胜率较高的策略,而省去验证胜率明显较低的策略。如此就降低了整体的计算量。
3. 人类还能战胜alphago吗?
在与李世石对战前的几个月内,alphago通过学习上万盘职业棋手的对局形成了初步的神经网络模型,并通过300百万次的自我对局训练不断强化神经网络模型,提高判断的精度。如此多的对局量,超过了棋手一生所能经历的棋局数量。
也就是说相比于李世石,alphago才是那个经验更丰富的棋手。
在对局中,alphago利用无数次自我训练验证过的神经网络模型,总是能做出鲜明的判断,使得每一步都走在近乎最完美的地方。
面对这样的对手,坐在棋盘对面的人类,究竟能否顶住这强大的压力,每一步都走出正确的选择呢?
我想可以从这几点入手:
1. 针对策略网络
在上一次的对抗中,虽然最终败北,但李世石在第4场取得了关键且有着重要意义的一场胜利,并且在第5场取得过局部的优势。这证明了alphago当时的版本(V18版本)其神经网络模型是有缺陷的。虽然这次与柯洁对阵的alphago已经升级到了V25版本,但是仍然不能没有理由确信其现在的模型完美无瑕的。
首先,李世石在第四盘下出的“神之一手”,就是击中了策略网络的缺陷,这一手棋并不在alphago当时考虑过的策略范围内,所以进而导致其后续一系列的失误。
因此通过打劫、大规模对杀(围棋术语)等方式,或许可以增加后续策略的复杂度,进而影响alphago策略网络考虑的全面性与准确性。
2.针对价值网络
人工智能强大之处在于其能够保持正确,从而不断的积累优势。但处于劣势时,人工智能会如何找出扳回劣势的方法呢?
根据alphago在输掉第4盘的表现以及其他人工智能围棋软件的表现,人工智能由于其价值网络是通过自我训练生成的,所以假设的都是双方完美发挥。因此,计算机在劣势时有可能更倾向于更加冒险的策略。这与一般人类的选择不同,或者说可能能被人类抓住机会。
简单说来,以跑步为例,在落后(劣势)时,可以选择两个策略。
- 第一个策略是慢慢跟住领先者,期待领先者速度降下来,从而在最后超过对方。
- 第二个策略是大声唱一首歌儿,期待领先者注意力被吸引而摔倒。
明显,对于人类来说,第一个策略威胁更大。自己不主动失误,说不定可以等待对方的失误。但是人工智能有可能基于双方完美发挥的判断,从而主动尝试一些冒险性、甚至有点自杀性的策略,从而期望一举改变局势。而人类面对这种单次的考验,往往并不容易失误。
由于通过alphago自我训练的数据判断,alphago认为在黑棋贴子为3.75时,白棋比黑棋容易赢些。因此,人类在选择白棋时,alphago从一开始会判断自己处于劣势,如果能争取保持并扩大这种局势,可能能引发alphago的冒险行为。
3. 针对规则
alphago的神经网络,本质上就是将一些计算量提前蕴含在模型之中。
也就是说,针对各种情况,都已经设计了一些能达到胜利条件的对策。
那么如果胜利条件变了呢?
比如从中国规则的黑棋占到185个交叉点胜利,变成了日韩规则的184个交叉点胜利,那么整个模型可能需要重新的计算与生成。可能又要经历新的训练过程,才能达到现在的水平。
(当然,主办方肯定不会故意这么办。不过这种事情也是真实发生过的:绝艺逆转战胜DeepZenGo 夺得第十届UEC杯冠军,日本AI围棋DeepZenGo的神经网络模型就是基于中国规则黑棋185个交叉点胜利,而比赛的规则是日韩规则,所以导致DeepZenGo在比赛中屡屡判断错误。)
4. 人与人工智能
如果说打败李世石之前,是人工智能不断取得突破,通过围棋去挑战人类;那么在此之后,就变为人类不断地突破自我,去挑战人工智能。
1)人的极限
其实,围棋一直有两层定义,一层定义是“艺术”,“琴棋书画”同为四大国粹,是文雅的象征;另一层是比赛,是追求胜负的残酷竞技场。
在围棋界也一直有两类人。一类叫做“求道派”,他们可能更强调围棋的艺术性,强调下出绝对正确的一手;另一类叫做“胜负师”,他们追求的就是胜利,招法不论如何,只要实用有效即可。
alphaGo可谓是将艺术与竞技的完美结合,它通过无数次自我训练的验证,达到了绝对强大的实力,从而能够走出正确的一手,也能够惩罚对手走出的不正确的一手。这是人工智能超过人类的一点。因为对于围棋、体操、跳水等等竞技运动来说,人类进行的只能是有限次的博弈,而人工智能却几乎可以达到无限次博弈,从而获得不同层次的理解。就好比说,人类有时候不用去追求跑的比熊快,只用追求跑的比同伴快就行了。…(⊙_⊙;)…
2)机器的作用
由于机器的特点,可以通过蒙克卡罗方法无数次模拟现实的情况,那么我觉得通过机器来制定一种绝对公平的制度或许是一个不错的尝试。就以围棋为例,规则中唯一由人类决定的就是“贴子”,当前中国规则和日韩规则贴子数量并不一致,那么究竟贴子多少比较公平呢?可能人类永远也无法对这个问题得出准确客观的答案。但是说不定根据机器自我对局的结果,可以判断出最公平的尺度。
3)人工“智能”?
虽然alphaGo很强,但是它理解围棋了吗?
人工智能,并不是一门现成的技术,甚至也不是一个统一的学科。在人工智能的大旗下,至少有三条泾渭分明的研究路线:
A,理解智能和学习的基础机制 (Strong AI Approach):强AI研究者希望实现真正的智能机器,且不在乎是不是和大脑一致。(飞机能飞,且不以鸟的方式飞)
B,理解大脑的工作机制 (Neuroscience Approach):神经科学路线希望破解大脑工作机制之谜,其中一支希望实现可工作的人造大脑(至少是某种数学模型)。
C,解决现实的困难问题 (Machine Learning Approach):机器学习工程师们则努力让机器解决那些人脑才能解决的那些代表“智能”的困难问题。
alphago等等基于神经网络模型的成功应用,更多是对海量数据的利用能力和分布式计算环境结合之后的成果,本质上仍然是在大规模计算时通过特定的方法进行调优从而解决问题。
可能距离路线A和B或者说产生人工智能的自我意识还很遥远。
但是,不论是向机器挑战超越自我,还是借助机器挑战极限,不管哪一条道路不都是人类崇高追求的证明吗?