尝试解释一下过去的AI和现在的AI,在“暴力”这方面本质上的差异
过去以暴力干爆人类的棋类AI中,最有名的就是深蓝
我们假设现在要请深蓝用同样的方法,尝试在围棋上干爆人类
那么所谓的“暴力求解”大概可以形容成这样:
深蓝:
我执黑,现在轮我下棋
棋盘上一之一是空的,我可以下这边(如果不能下就跳过)
如果我下在一之一,对手接下来会下任何一个他可以下的点
如果他下在A之B会得到最大的优势
棋盘上一之二是空的,我可以下这边
如果我下在一之二,对手接下来会下任何一个他可以下的点
如果他下在C之D会得到最大的优势
...
直到把整个棋盘轮完一遍,每个地方对手都有一个“获得最大优势”的选项
而正常的AI没事不会放水,也不会假设对手是白痴
他会假设对手永远都尽力表现,但是我还是要干爆他
所以最后他会选择一个“就算你表现再好,上限也最低”的着手
到这里就是赛局理论中一个最粗糙、最暴力的决策树模型
以围棋来说,可以想像这个模型相当的巨大
理论上和实作上还有很多可以简化(更传神的用语称为“修剪”)这颗决策树的方法
有些是能用数学证明很完美的,有些是牺牲准确度换取效率的
不同主题的研究者会因为游戏性质的不同,而采取各自理想的策略
另外还有一个严重的问题,AI下一颗,对手下一颗,接下来要判断对手有多少优势
可是围棋的胜负,可能是在后面一百多颗的战斗中才决定的
虽然有所谓“形势判断”的技术(仅从现在的盘面估算双方的目数差异)
但那终究只是个估算,而且要让AI具有可靠的估算能力,又会变成另一个难题
这里先偷跑一下,借用阿法狗介绍文中总是会出现的蒙地卡罗方法
如果我不知道现在这个场面到底是哪边比较好,那我就从现在这个场面开始
请两个实力都很不错的AI往后下个一千盘,看看哪边爆掉比较多次就知道了
我不确定前阿法狗时代的围棋AI有没有用这种方法来进行估算
不过在电脑与显示卡的算力爆发之前,就算真的能用,效率应该也不佳
除了计算量以外,光是去找“两个实力都很不错的AI”就是一大问题了
总之,过去的围棋AI有这些手段能用,以及一大堆竭尽所能提高效率的策略
最好的成果大概能跟业余棋手玩玩,对于中阶棋手可能还具有不少挑战性
不过面对职业棋手了不起就是被让四~六颗,然后看看在爆掉之前能撑多久
接下来要进入阿法狗了,阿法狗那绝妙的围棋算法大概是:
(我的形容还是会简化很多很多,不过重点是和过往在“暴力”上的差异)
将二十五个参数排成5x5方阵的形状
阿法狗不想解释这二十五个参数是哪来的,但主人把他推出去比赛时已经帮他填好了
把一之一~五之五的5x5区域框起来,把黑棋当作+1,白棋当作-1,空白当作0
将每个数字都乘上方阵中对应位置的参数,结果全部加起来,记在一张表格的角落
把一之二~五之六的5x5区域框起来,把黑棋当作+1,白棋当作-1,空白当作0
将每个数字都乘上方阵中对应位置的参数,结果全部加起来,记在前一个数字的旁边
...
把整个棋盘都跑过一遍后,表格上就会有一堆计算好,同样排成方阵的数字
先把这张表格放在一旁,掏出另外二十五个排成5x5方阵的参数出来
同样的,阿法狗也不知道他们是怎么来的,总之就是已经填好了
重复一次同样的流程后,因为第二组参数和第一组不同,所以会产生另外一张表格
这些表格虽然也差不多是棋盘的规模,但因为用来乘的数字可以是任意范围
所以他们的内容已经无法用任何围棋知识去理解了
现在阿法狗的脑内有一大堆数字了,接下来他要做一件很重要的事情:
对这些表格上的数字执行同一种“粗暴动作”
最简单的一种粗暴动作就是把所有负数变成0,正数保留原本的值
这个动作其实非常关键,但不适合在我这篇文章内说明关键的原因
想知道为什么的读者可以参考这个教学影片:
https://www.youtube.com/watch?v=bHcJCp2Fyxs
接下来,阿法狗会掏出更多来历不明的参数
然后把先前计算得到的数字,和这些参数依照特定的规律两两相乘
再重复相加取总和,执行粗暴动作等流程,得到更多新的表格
类似的步骤会重复很多轮,这些表格排列而成的结构就是所谓的“深度”
最后会计算出到一张和棋盘一样大的表格,每个位置各有一个数字
接下来,阿法狗照着最大的数字所在的位置下棋,然后人类就被干爆了
这些“来路不明的参数”就是阿法狗的脑袋
除去这些参数的数值变化,参数要怎么使用的规则其实是完全固定的
所以如果参数全部乱填,那这个阿法狗可能就是个白痴
实际上,如果随机产生100000000只这种阿法狗,那100000000只应该都是白痴
不过人类就是有办法找到一组参数,让这只狗赢了李世石四盘
寻找这些参数的方法其实也不是完全的暴力,因为这复杂度其实比围棋棋盘还要高
这方面的技术属于数学上最佳化的主题,还是有许多明确的方向可寻
为什么在某种特定层层相叠的使用规则下,一组好的参数就能干爆人类?
这是类神经网络上一个无解的问题,目前没有办法给出明确的原因
只有“这结构就是模拟人类大脑运作原理,所以他可以很厉害”这种解释方法
实际上这结构早在1940年代就被提出,1970年代就有人实作过
不过在显示卡能力提升,深度学习崛起之前
在计算量上的巨大门槛,往往让其沦为吃饱太闲的等级
如果将过去的AI和现在的AI进行类比,可以发现这样的相似性:
过去的AI:有天文数字种下棋的方法,找出一种最好的棋路
现在的AI:有天文数字种参数的组合,找出一种最好的参数
这两者之间当然有许多差异,但其中有一种最为明显:
过去的AI虽然在“找出最佳棋路”这件事上很辛苦
但是他所寻找的标的,是一个人类在围棋规则内完全能看得动的棋路
现在的AI所寻找的标的......如果我在十几年后被打脸就算了
不过我现在至少敢说,这他妈是什么东西人类永远都不可能看懂
然而,虽然人类看不懂参数本身,但是人类知道一件事实
就是这种模型在几乎任何竞争类的主题上,都能明确地干爆人类
(创作方面的问题还有点争议,至少干爆龙宫有点困难)
在许多的成功案例出现后,现代AI技术就开始爆炸性的加速发展了