Re: [分享] 用宝可梦红版示范AI的机器学习

楼主: kirimaru73 (雾丸)   2024-04-04 15:42:24
尝试解释一下过去的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技术就开始爆炸性的加速发展了
作者: medama ( )   2024-04-04 15:44:00
看不懂
作者: wenku8com (文库8com)   2024-04-04 15:48:00
难怪龙王的工作会说人类很难理解AI的下法但只要成功学会AI的下法就能干爆所有人
作者: lightdogs   2024-04-04 15:51:00
其实跟跑模拟有点像 参数有一定经验参考性 但为什么是这个参数才能跑出吻合实验的结果 不知道
作者: killerj466v2 (肥肥)   2024-04-04 15:52:00
也就是说过去的方法 是在人类能理解的情况下用穷举法硬干
作者: peterturtle (peter_turtle2000)   2024-04-04 15:53:00
实质上仍然是一种求最大胜利期望值的方法,差别在于,这种方法代表人类放弃控制电脑的思考方式,而是把
作者: killerj466v2 (肥肥)   2024-04-04 15:53:00
但狗狗的方法,是用一套多重参数叠加下的最佳路径
作者: killerj466v2 (肥肥)   2024-04-04 15:54:00
而这多重参数无法用人类下棋的方式理解
作者: lightdogs   2024-04-04 15:56:00
其实订立奖励机制应该算最重要的一部分 很多设计模拟
作者: ZMTL (夜风/潇湘 VR板已经开板!)   2024-04-04 15:56:00
以这篇玩红版,就是想办法引导出能玩游戏的参数吧,AI会慢慢
作者: ZMTL (夜风/潇湘 VR板已经开板!)   2024-04-04 15:57:00
找到该怎么做,但推文的暴力破解感觉就跟猴子没两样只是可以很多很多
作者: Nitricacid (硝酸酸)   2024-04-04 16:00:00
作者: none049 (没有人)   2024-04-04 16:00:00
问题在“来路不明的参数”是怎么生出来的吧?
作者: Nitricacid (硝酸酸)   2024-04-04 16:01:00
恭喜各界精英理解了码农们的生活
作者: peterturtle (peter_turtle2000)   2024-04-04 16:01:00
这个方法除了让人因人脑的极限感到挫折之外其实蛮有效的,而之所以叫类神经网络是因为我们大脑里也干着差不多的事情:能用的回路强化、没用的回路消失掉,而等到我们年老大脑神经元增生速度趋缓、旧有回路也被强化过头时就很难学新东西了。
作者: lightdogs   2024-04-04 16:03:00
来路不明的参数是借由奖励机制去做变化的 但问题是我们不知道这些参数的变化到底代表什么
作者: none049 (没有人)   2024-04-04 16:03:00
如果这种可以干爆人类的参数其实也是训练出来的那也只是等于用人类办不到的实战训练以结果筛选出一个教不了人也不知道该怎么解释自己招式的我流棋士?
作者: lightdogs   2024-04-04 16:04:00
可以这么说 他就是全凭直觉去下棋还屌打棋王得人
作者: peterturtle (peter_turtle2000)   2024-04-04 16:05:00
to none 意思差不多
楼主: kirimaru73 (雾丸)   2024-04-04 16:05:00
开发现代围棋AI有一个很重要的差异 就是人类放弃去思考“围棋要怎么下”这件事情,因为数学上已经证明你就就是没有那么高的复杂度去思考,科技在强也不行所以人类就告诉模型 我不去管围棋的事了 干爆对面就好
作者: none049 (没有人)   2024-04-04 16:07:00
to以前的AI:身为你的人类老师,我要你理解这些to现在的AI:不用理解,去感觉吧!
作者: peterturtle (peter_turtle2000)   2024-04-04 16:07:00
而就在这个莫门AI统治人类的可能性诞生了 www
楼主: kirimaru73 (雾丸)   2024-04-04 16:10:00
虽然原文是宝可梦,但这方面也是一样人类压根就没有想教AI“怎么”玩宝可梦人类只是想教AI“会”玩宝可梦 然后他就会了
作者: lightdogs   2024-04-04 16:13:00
而且基本上都是从奖励机制下手 死掉一个宝可梦 bad -1分 升级了 good +1分 然后这种机制其实对扣分更敏感所以设立错误的话会发现ai卡住 因为他完全不敢去做会扣分的事
楼主: kirimaru73 (雾丸)   2024-04-04 16:13:00
很多玩游戏的强化学习都会有一个非零参数活着什么都不动每frame扣多少分
作者: lightdogs   2024-04-04 16:14:00
对 譬如说最简单的乒乓球或者flappy bird
楼主: kirimaru73 (雾丸)   2024-04-04 16:15:00
后来人类撤除了所有围棋的文化,狗就六十比零了
作者: lightdogs   2024-04-04 16:15:00
那就是alphago 跟alphago zero 的差别了
作者: staristic (ANSI lover)   2024-04-04 16:16:00
古力:原来在神乎棋技的路上我是多余的
作者: lightdogs   2024-04-04 16:18:00
加强式学习是我觉得最没效率的精神网络 但只要时间够长 运算效率够快 它又是表现最好的 但又因为前期的低效率实在难以评估奖励机制的优劣 所以很不适合自己研究
楼主: kirimaru73 (雾丸)   2024-04-04 16:21:00
加强式学习的最强王牌:不用微分也能训练但是掏出这张王牌之后就是奖惩函数的责任了不用微分的意思就是我他妈真的什么都能学,甚至连交友感情外交战争都可能学得会 但是我说那个奖惩函数呢
作者: lightdogs   2024-04-04 16:26:00
不知道 天上会掉下来吧?ww从一个玄学进到另一个玄学
楼主: kirimaru73 (雾丸)   2024-04-04 16:27:00
自驾车研究的地狱笑话:你是强化学习工程师,请问撞死一个小孩扣多少分?
作者: lightdogs   2024-04-04 16:28:00
xddd
作者: csvt32745 (圆仔)   2024-04-04 16:40:00
硬train一发.jpg
作者: abc7360393 (八卦山下智久)   2024-04-04 16:44:00
这边是有多少李宏毅老师的学生XD
作者: teps3105 (紫月)   2024-04-04 16:50:00
用猴子打莎士比亚的概念来看的话,以前的方法就是叫猴子自己打英文字母,现在的方法就是把所有莎士比亚出现过的英文单字都组合好叫猴子排列组合
作者: danielqwop (我的人生就是个冏)   2024-04-04 16:51:00
电车难题IN AI,想想就好玩,别发生在自己身上的话
作者: Ariadust (Ariadust)   2024-04-04 17:00:00
光是你这篇文我就有点看不懂了
作者: weltschmerz (威尔特斯克˙闷死)   2024-04-04 17:30:00
类神经的参数就是这样 多跑几层 你就不知道那些鬼参数是对应什么物理要素了
作者: TeamFrotress (Heavy is Dead)   2024-04-04 17:40:00
科普推
作者: j022015 ( ˊ ﹀ˋ)   2024-04-04 20:29:00
笑死 我开始理解铳梦中行星级AI的恐怖了
作者: chejps3105 (氋氃)   2024-04-04 20:47:00
“前阿法狗时代的围棋AI有没有用这种方法来进行估算”,其实蒙地卡罗法拿来下围棋最早是1993年的Brugman做的Gobble,只是当时硬件没跟上又没结合后续包含机器学习在内的算法,所以成绩极烂,烂到好几年没人理他,直到2000年Bouzy发表蒙地卡罗下围棋的论文,而且取得不错的成绩,电脑围棋界才开始有人投入改良蒙地卡罗法

Links booklink

Contact Us: admin [ a t ] ucptt.com