• 对于围棋AI作弊的一些思考


    最近看到些关于围棋AI作弊的报道有了一些思考。

    相关视频链接:

    https://www.bilibili.com/video/BV1np411f73b/?spm_id_from=autoNext

    https://www.bilibili.com/video/BV1ah411o77g/?spm_id_from=333.788.recommend_more_video.-1

    虽然我也是学AI的,但是可能还是水平有限对于很多原理性的东西并不是很了解,网上新闻中使用AI进行围棋作弊的事情也是很常见了,而且使用AI作弊进行下围棋也是继阿拉法狗事件后大家都可以预想到的事情,那么AI下围棋真的可以很好的防止吗,我这里也是自己胡乱想一些事情。

    首先我们知道阿拉法狗的代码和网络权重并没有公开,虽然大家可以按照其公开的论文进行复现但是也难以保证达到原始水平。现在网络上也出现了很多按照阿拉法狗的论文复现的程序,现在作弊的可以看做就是使用那些复现代码运行的程序。由于围棋AI训练起来比较耗时,而且网上公开的版本也是很有限的,所以我们可以认为现在公开找到的AI围棋都是可以数得过来的,使用围棋AI鹰眼来识别这些已经公开的围棋AI的下棋步骤是容易实现的,这个其实就是一个下棋序列模式的识别问题,但是围棋AI鹰眼真的就没有自身的bug吗,我想还是有的。

    首先围棋AI的数量较少,不同AI的可使用的权重也是较少,我们现有的鹰眼技术就是拿比赛时候的下棋数据与各个AI下棋数据进行比对,通过这种比对来看相似度从而识别出是否有人在使用AI进行作弊,那么问题来了,如果我使用现有的AI算法重新训练出一个网络权重,而这个网络权重是我们自己重新训练的而且是不公开的,那么使用这个AI的新权重的算法是否又会被AI鹰眼识别出来呢???这个答案我这里现在也是没有答案的,但是我们可以大胆的假想一下。

    给出下面的问题:

    相同AI算法(相同的神经网络结构和训练方法,只有初始数据不同或随机种子不同)不同的训练方法获得不同的神经网络权重,这些不同神经网络权重的网络都可以获得性能相差不多的表现,那么这些不同的权重进行对弈后所进行的下棋是否会存在共性的模式呢?如果不存在共性模式,或者说相同模式占比较小,那么我们是不是可以使用该种方式重新训练一个网络来避开鹰眼呢?

    如果上面问题的答案是不同神经网络权重的算法其表现出的模式也是相同或相似的,那么如果一个人经过长时间的和AI算法对弈会不会同样学会AI算法下棋的模式呢?如果人能够学习到AI算法的下棋模式那么长时间训练后一个真实的人类下棋会不会同样被AI鹰眼识别为AI作弊呢?

    还有一个问题,那就是AI下棋算法所下的棋是否有逻辑性,又或者说逻辑性的占比如何,或者所AI下棋的步骤是否具有一定的可解释性???

    这个问题详细的说就是人类下的一步棋可能是依靠人类的脑力可以推演之后的一定步数的棋局,如5步或10步,也可能是人类下的棋是通过积累知道的某种下棋的模式下或者某种棋面的布局下某种下法赢的机会更大,人类的这种下棋方法我认为是人类下棋的逻辑性也或者说下棋的可解释性。由于AI算法可能不仅仅会记忆住某种棋面下如何下棋赢率更大同时也可能会依据强大的算力将棋局向后推演20步、30步、甚至是50步,那么这种情况下AI算法所选择的下法可能就是无法用人类思想来解释的。可能AI算法在某种棋面下所选择的某种下法可能不会被人类的认识所理解(1.对某种棋局潜在模式的记忆,2.对棋局推演的大步数),这种情况下AI算法往往看似无道理的在某个位置下了一步,而这一步可能是经过计算好的,该步就会导致更大概率的胜利。超出人类理解的棋局的潜在模式或超出人类脑力的推演棋局都可以在这里理解为没有逻辑性的下法,而这种没有逻辑性的下法是否存在,又或者存在的比例有多大。如果该种无逻辑的下法不存在,那么我想使用AI鹰眼也是难以奏效的,如果AI算法下棋每一步都可以用人类思维来直观解释那么AI鹰眼又怎么能识别出二者的区别呢,因为这种情况下二者就是没有区别的。而AI这种无逻辑性的下法如果存在,但是占比较小,那么AI鹰眼识别起来我想也是很难奏效的。

    从现有资料来看AI下棋所进行的下棋模式很大概率还是在较大程度上是属于无逻辑性的,而该种情况使用AI鹰眼是可以在一定程度上识别出AI下棋的。如果现有的AI下棋算法都是会存在很大比例的下棋步骤中存在无法解释的情况那么即使使用不同的神经网络参数、不同AI算法之间下棋模式不存在过多的相似性,我们使用AI鹰眼也是可以识别出来的。与之相反,如果AI下棋都是有逻辑性的或者较大程度上是有逻辑性的那么使用相同的神经网络参数(已知的公开网络参数)AI算法都是会被AI鹰眼识别出来的,而此时使用不同神经网络权重的AI算法就可以在一定程度上躲避AI鹰眼的识别,这时候我们只需要自己重新训练一遍AI算法就可以了。

    不过根据现有的资料我推定现有的AI算法都是会进行一定程度的无逻辑下棋的,而该种情况是难以躲避AI下棋的,这时候只需要用人类的下棋数据训练AI鹰眼即可。现有的AI鹰眼原理个人猜测都是根据网上公开的AI算法及网络参数来识别棋局中是否有AI算法的存在,而该种情况下使用新的网络权重或许可以躲避AI鹰眼。又或者我们可以设计全新的AI算法,对于那种依靠算力来推演棋局的操作尽量减少,该种方法虽然难度很大,但是躲避AI鹰眼的识别还是很有可能的。 

  • 相关阅读:
    85个国外Ajax例子
    如何捕获方向键
    C#版对对碰[强荐]
    如何关闭移动盘的自动播放
    常用算法大全-回溯算法
    string转换成color
    常用算法大全-分而治之算法
    常用算法大全-分枝定界
    C#游戏——极品蜜蜂V1.0
    WebService传多个参数和返回多个参数的方法
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/15413218.html
Copyright © 2020-2023  润新知