深度强化学习极简入门(X)——一次强化学习比赛参赛记录

【引言】是骡子是马,拉出来遛遛。
报名参加了中国科学院自动化研究所举办的“奥林匹克 综合”的人工智能比赛。这是一个侧重于强化学习智能体开发的比赛。相比于机器学习比赛,强化学习智能体开发赛最近一两年才出现。上个月参加了一次,拿了前五。现在再次参加一个更有挑战的RL比赛,练练手,本文就作为参赛记录吧。——2022.05.16

  • 点击查看科目排名

文章目录

  • 1 赛题
    • 1.1 比赛背景
    • 1.2 比赛科目
    • 1.3 参赛方式
    • 1.4 参赛步骤
    • 1.5 奖项设置
    • 1.6 赛程安排
    • 1.7 具体赛程
    • 1.8 参赛资料
  • 2 比赛记录
    • 2.1 热身赛1(5月5日)
    • 2.2 热身赛2(5月17日)
      • 2022.05.17结果(排名第X名)


1 赛题

详情请参考比赛官网。

1.1 比赛背景

开发能参与不同奥林匹克项目的智能体是一项有趣而具有挑战的工作。本次比赛将在2022年世界人工智能大会(WAIC)举行。在本次比赛中,参赛者将可以使用各种人工智能方法开发参与奥林匹克运动的智能体。奥林匹克项目包括足球、跑步、桌面曲棍球、相扑等。智能体通过从环境接受观测和向环境发送动作从而完成与环境的交互。强化学习的方法可以被用来解决这个问题。

本次比赛采用结合不同奥运项目的综合奥运环境作为比赛环境。比赛的评测将使用这个环境中的不同项目来测试提交的智能体。因此,提交的智能体需要具有一定的泛化性从而在不同的项目中表现良好。

1.2 比赛科目

本次比赛采用 “奥林匹克 综合” 作为比赛科目

“奥林匹克 综合”规则(可参考 科目-奥林匹克 综合 ):
深度强化学习极简入门(X)——一次强化学习比赛参赛记录_第1张图片

本游戏共有两方,对战双方各控制一个有相同质量和半径的弹性小球智能体。
智能体可以互相碰撞,也可以碰撞墙壁,但可能会损失一定的速度。智能体自身有能量,每步消耗的能量与施加的驱动力和位移成正比。
智能体能量同时以固定速率恢复,如果能量衰减到零,智能体出现疲劳,导致不能加力。
整个游戏包含以下几个子游戏。在跑步中,智能体的目标是在随机选择的地图上尽快到达终点。在桌面曲棍球中,智能体的目标是通过碰撞将球打入对手的球门且防止自家球门被攻破,智能体只能在己方的场地中移动。在足球中,智能体的目标与桌面曲棍球项目相同,但是智能体能够在球场上任意活动。 在相扑中,智能体的目标是避免摔下擂台并且争取将对方装撞下擂台。游戏将依次运行以上子游戏。
当所有子游戏结束后,游戏结束。
奖励:每方在赢得一场子游戏后获得+1的奖励,输掉一场子游戏获得0奖励。

1.3 参赛方式

各参赛队伍由1-3名成员组成,其中一名成员为队长。

1.4 参赛步骤

所有参赛成员均需使用注册及第账号,报名竞赛并提供真实姓名、邮箱、手机、组织机构等信息(报名信息仅限主办方与赞助商知悉);
参赛队伍队长登录自己的及第账号,在擂台的“立即报名”中填写队名、组织机构、队员邮箱/手机号,提交成功后即完成报名;
在本地编写并训练好智能体,可在科目-奥林匹克 综合提交参与金榜排名(不影响擂台排名,仅用于日常测试智能体水平);
在每场热身赛和正赛提交截止时间前,登录队长的及第账号,在“智能体提交”中提交智能体代码、相关参数文件等,并在“个人页-提交列表”查看智能体是否通过验证(可多次提交,但需在上一次验证完成后再进行新的提交,否则可能产生错误的验证结果);
各阶段结束后,在“赛果”中查看成绩排名、对局等比赛结果。
每位参赛选手只可加入一支队伍,不可使用小号提交,也不可将代码分享给他人提交,一经发现将取消参赛资格。

平台验证和评测时,在单核CPU上运行用户代码(暂不支持GPU),限制用户每一步返回动作的时间不超过1s,内存不超过500M。

1.5 奖项设置

本次比赛设置一等奖队伍1支、二等奖队伍3支、三等奖队伍6支,每支队伍分别获得奖金25000元、15000元、5000元。
排名靠前队伍的参赛成员将获得由RLChina颁发的电子版证书及及第平台认证勋章,可作为智能体算法能力的证明。
优秀的参赛者可以获得一线科研机构、互联网公司强化学习相关岗位的内推机会。

1.6 赛程安排

赛程包括四场热身赛和一场正赛,分别是热身赛1、热身赛2、热身赛3、热身赛4、正赛。选手可通过热身赛评价自己策略和对手策略。最终总分为正赛的得分。(注:第二场热身赛调整至2022.5.17举行,正赛调整至2022.6.16举行 2022-05-07更新)
热身赛和正赛均采用 瑞士轮复式赛制,通过(4⌈logN⌉+1)轮确定各参赛队伍名次(N为参赛队伍数)。复式赛制指对于待评测的两方智能体,使用相同的环境随机种子进行两局,但这两局双方的初始状态互换。 每场比赛用户初始积分为1000,积分更新采用 ELO算法。
每一轮比赛均有一个提交截止时间,到达该时间节点后,以当前选手提交的最新测试通过的智能体参与此轮比赛的评测。若报名队伍在正赛提交截止时未提交,本轮比赛得0分。

1.7 具体赛程

开放报名:4月20日至6月16日 10:30(UTC+8)
热身赛1(提交截止:5月5日 10:30 UTC+8):采用瑞士轮复式赛制,成绩不计入总分
热身赛2(提交截止:5月17日 10:30 UTC+8):采用瑞士轮复式赛制,成绩不计入总分
热身赛3(提交截止:5月31日 10:30 UTC+8):采用瑞士轮复式赛制,成绩不计入总分
热身赛4(提交截止:6月7日 10:30 UTC+8):采用瑞士轮复式赛制,成绩不计入总分
正赛(提交截止:6月16日 10:30 UTC+8):采用瑞士轮复式赛制,结果为最终成绩
本比赛的赛程、赛制可能根据情况改变,最终解释权归主办方所有。

1.8 参赛资料

官方Repo(包含本地训练环境、智能体示例、训练和评测脚本等):
https://github.com/jidiai/Competition_Olympics-Integrated
https://gitee.com/jidiai/Competition_Olympics-Integrated
提交样例:
https://github.com/jidiai/ai_lib/blob/master/examples/algo/random/submission.py
提交文件名称需命名为submission.py,其中需包含my_controller函数。
交互接口参数说明:

  • observation:Observation:环境的观测是一个字典,其中的键为"obs"和"controlled_player_index"。其中"obs"对应的值包含一个40x40的二维矩阵和其他与游戏相关的信息。二维矩阵记录了智能体自身朝向的视野内容,在规定视野内智能体能够看见墙壁,地面指示线,其他智能体和其他游戏信息等。"controlled_player_index"对应的值为控制智能体的编号。
  • action_space:长度为n_action_dim的列表,其中n_action_dim=2,每个元素为Gym当中的Box类(Box Link),如[Box(-100.0, 200.0, (1,), float32), Box(-30.0, 30.0, (1,), float32)]。
  • is_act_continuous:布尔型变量,表示动作空间是否连续,此处为True。
  • agent_action:2*1的矩阵,其中2表示动作空间的维度数,1表示每维动作空间的值。

更多有关竞赛提交、训练等方面的说明,请参考:及第平台AI奥林匹克竞赛参赛指南。

2 比赛记录

2.1 热身赛1(5月5日)

官方临时修改了评测代码,原来的代码没通过。

2.2 热身赛2(5月17日)

在科目中提交了开发的智能体进行测试,30场对局胜率100%。已经提交到擂台赛了,出成绩了再来更新智能体的开发思路。
深度强化学习极简入门(X)——一次强化学习比赛参赛记录_第2张图片
深度强化学习极简入门(X)——一次强化学习比赛参赛记录_第3张图片
深度强化学习极简入门(X)——一次强化学习比赛参赛记录_第4张图片
深度强化学习极简入门(X)——一次强化学习比赛参赛记录_第5张图片

2022.05.17结果(排名第X名)

评测应该结束了,个人信息页面看见热身赛应该是排第一
深度强化学习极简入门(X)——一次强化学习比赛参赛记录_第6张图片
经过34场对局,智能体得分如下:
深度强化学习极简入门(X)——一次强化学习比赛参赛记录_第7张图片

你可能感兴趣的:(深度强化学习极简入门,强化学习比赛,强化学习智能体开发,机器学习比赛,深度学习)