人工智能实战第一次作业_张绍恺

时间:2022-12-10 16:44:42

0.导航

项目 内容
这个作业属于哪个课程 人工智能实战
这个作业的要求在哪里 第一次作业 介绍自己,提出课程项目建议
我在这个课程的目标是 开拓视野,积累AI实战经验
这个作业在哪个具体方面帮助我实现目标 初步学会博客园的操作方式,探索课程目标
我的GitHub主页 IneffableSK

1.在这门课想要达到的具体目标

  • step1: 对人工智能和深度学习这一领域进行初步的探索,并有一个较为具体的了解
  • step2: 在教学进度的引导下,学习和掌握一些新的知识和技能,提高代码水平
  • step3: 熟悉项目从构想到设立再到实施和完成的一些列相关流程,并尝试通过团队合作完成一个感兴趣的课题

2.学习过的编程语言及代码行数

  • C: 1000
  • C++: 500
  • C#: 200
  • JAVA: 1000

3.项目设想

我的想法是做一个日本麻将的AI

  • N(Need): 最近一段时间,以雀魂/雀姬为首的日本麻将游戏在ACG圈子里产生了较大的影响力,玩家在匹配场打累了后,自然而然会产生和好友或者人机打一把轻松愉快的友人(尽)场,这时候如果需要加入AI来和玩家对战的话,就需要一个具有较高水平的AI来一同参战,避免沦为提款机和点铳器,降低玩家的体验。而我以前在代码学习的时候曾经和同学一起合作做过贪吃蛇和扫雷的AI,对这方面也是有一定的兴趣,加上最近娱乐时间里也沉迷日麻_(:3 所以产生了这个项目的创意
  • A(Approach): 由于日本麻将源自中国国标麻将的简化版,有一套非常成熟的体系规则,因此与地方麻将不同的是,日本麻将和国标麻将在特定的场况下有着特定的一个或者多个最优打法(类似于围棋),因此利用这一点,就可以根据“机(鸡)打”和“正确的每一打”之间造成结果的差距写出损失函数,以此为基础进行训练,便能够得到一个让AI的每一打接近最优解的模型。同时,得益于游戏在圈内的火爆,玩家数量不少,产生的牌谱数量巨大,训练集的来源是十分充足的。具体而言,游戏的牌谱是极其容易获得的(比如去贴吧逛一圈就能获得好多),而且将牌以及场况转换成具体的数字和符号也并非一件很难或者抽象的事情,事实上日麻里本身的每张牌就有对应的简写(0~9m/0~9p/0~9s/1~7z),而牌河/点数/巡目/副露/亲子家/本场等场况以及役种/符数/番数等结算信息转换成一一对应字符数字等代号显然也有很大的可行性。
  • B(Benefit): 至于好处呢,一个是可以解决包括自己在内广大玩家的需求,另一个在实现这个项目的一路上,我也能学习到非常多的知识,掌握大量和人工智能以及深度学习相关的技能(也许还能够提高我的麻将水平)
  • C(Competitors): 这几款日麻游戏本身也有自己的AI(虽然水平确实很菜),但是显然并没有在制作高水平AI上话什么心思,因此大概率没有什么竞争对手吧。(毕竟日麻始终还是个小众圈子)