如何写一个游戏AI(四)如何使用卷积神经网络训练一个斗地主AI

       经过3个星期得努力,终于初步达成效果,由于训练数据少(因为我在公司使用的电脑只能使用CPU训练,所以数据不能太多,否则就要很长时间)训练出了个傻子。之后我便没有在继续这个工作了。原因有二:1.我身后的同事和我一起再搞,他的进度比我快多了,而且也拿到了AI训练的机器的使用权。2.的确我也是来了新的需求。所以AI工作先告一段落。

       下面分享训练AI的思路。至于代码,就不能分享了。因为是工程代码。

     1.准备数据

        经过前面几篇关于使用卷积神经网络的blog,已经说明了为什么要准备数据。因为我现在的公司拥有大量的牌局数据,所以对我来说这个也不是什么问题。如果没有数据的话,就难搞了。

      2.重中之重,设计输入输出

        卷积神经网络比较有名的应用,就是图像识别,也适合做图像识别。那我们拿到斗地主的牌局数据又有什么用呢?其实只要打开了思维,把牌局数据转化成矩阵,输入到设计的模型里,再规定输出即可。

        而训练出来最终的模型是这样的,给定你设计的输入,AI会告诉你输出的牌型概率。比如,你给定了你的手牌作为输入,然后AI模型会给出概率出什么牌。至于概率对应的出牌,也是你设计的输出。下面给出一张图,可以作为思路参考。至于怎么做,怎么设计,还是在于自己。

        这篇文章的地址为:https://gameinstitute.qq.com/course/detail/10132#,腾讯大牛的文章。

        至于输出,我觉得都是要枚举出所有的出牌情况,把输出对应好,最后使用模型时看概率出什么牌。

        最后,学会使用卷积神经网络去训练一个AI,按照应用来说,其实是不算难的,难点在于设计模型。

猜你喜欢

转载自blog.csdn.net/banfushen007/article/details/108201799