我们继续谈论我们的学生与JetBrains Research之间的联合研究项目。 在本文中,我们将讨论用于模拟人体电机设备的强化深度学习算法。
模拟所有可能的人类动作并描述行为的所有情况是一项相当困难的任务。 如果我们学会理解一个人如何运动,并且可以“以图像和相似方式”再现他的运动,这将极大地促进机器人在许多领域的应用。 这样机器人就可以学习重复并分析运动本身,并应用了机器学习。

关于我自己
我的名字叫Alexandra Malysheva,我毕业于圣彼得堡学术大学的应用数学和计算机科学学士学位,从今年秋天开始,我是圣彼得堡HSE编程和数据分析的一年级研究生。 此外,我在JetBrains Research的Agent系统和强化学习实验室工作,并在圣彼得堡HSE的本科课程中进行课程(讲座和实践)。
目前,我正在加强深度学习领域中的几个项目(我们在上一篇文章中开始谈论这是什么)。 今天我想展示我的第一个项目,该项目顺利地从我的论文中流出。
任务说明

为了模拟人类电机设备,创建了特殊的环境,这些环境试图尽可能精确地模拟物理世界以解决特定问题。 例如,
NIPS 2017竞赛的重点是创建模仿人类行走的类人机器人。
为了解决这个问题,通常使用具有增强功能的深度学习方法,这会带来好的但不是最优的策略。 另外,在大多数情况下,培训时间过长。
正如
上一篇文章中正确指出的
那样 ,从虚构任务/简单任务过渡到实际任务/实际任务的主要问题是,这种问题的回报通常非常罕见。 例如,仅当代理到达终点线时,我们才能评估长距离的通过。 为此,他需要执行复杂且正确的操作序列,但情况并非总是如此。 可以通过在开始时为坐席提供如何“玩耍”的示例(所谓的专家演示)来解决此问题。
我用这种方法解决了这个问题。 事实证明,这可以显着提高训练质量,我们可以使用视频演示跑步时一个人的动作。 特别是,您可以尝试使用从YouTube上的视频中获取的身体特定部位(例如脚)的运动坐标。
环境
在强化学习任务中,要考虑主体与环境的相互作用。 用于模拟人体电机设备的现代环境之一是使用Simbody物理引擎的OpenSim仿真环境。

在这种环境下,“环境”是一个有障碍的三维世界,“代理”是一个具有六个关节(两条腿的脚踝,膝盖和臀部)和模拟人类肌肉行为的肌肉的人形机器人,“代理动作”是从0到1的实际值,用于指定现有肌肉的张力。
奖励计算为骨盆沿x轴的位置变化减去使用韧带的罚款。 因此,一方面,您需要在一定时间内尽可能地走远,另一方面,则要使您的肌肉尽可能少地工作。 如果进行了1000次迭代,或者骨盆高度低于0.65米,则训练阶段结束。这表示该人的模型跌落了。
基本实施
强化训练的主要目的是教机器人在环境中快速有效地移动。
为了检验关于演示训练是否有帮助的假设,有必要实现一种基本算法,该算法将学会快速运行,但次优,就像许多现有示例一样。
为此,我们应用了一些技巧:
- 首先,必须适应OpenSim环境,以便能够有效地使用强化学习算法。 特别是在环境描述中,我们添加了身体各个部位相对于骨盆的位置的二维坐标。
- 由于介质的对称性,通过距离的示例数量增加。 在初始位置,代理相对于身体的左侧和右侧绝对对称地站立。 因此,在一距离之后,您可以一次添加两个示例:一个发生了,并且镜子相对于特工身体的左侧或右侧对称。
- 为了提高算法的速度,跳过了一些帧:仅在第三次迭代时才启动用于选择下一个代理动作的算法,在其他情况下,将重复最后选择的动作。 因此,代理动作选择算法启动的迭代次数从1000减少到333,从而减少了所需的计算次数。
- 先前的修改明显加快了学习速度,但是学习过程仍然很慢。 因此,额外实施了一种加速方法,同时降低了计算的准确性:座席状态向量中使用的值的类型从double更改为float。

该图显示了上述每个优化之后的改进,它显示了从训练开始的某个时代收到的奖励。
那么YouTube与它有什么关系呢?
开发基本模型后,我们基于潜在功能添加了奖励生成。 为了向机器人提供有关我们周围环境的有用信息,我们引入了一种潜在功能:我们说,视频中跑步角色所采取的某些身体姿势比其他姿势更“有利可图”(也就是说,他为此获得了更大的回报)。
我们基于从YouTube视频中获取的视频数据构建了该功能,该视频描述了卡通人物和计算机游戏中真实人物的行为以及人类角色。 总潜在功能定义为身体各部分:骨盆,两个膝盖和两个脚的潜在功能之和。 在采用基于势能的薪酬形成方法之后,在算法的每次迭代中,都为代理程序提供与先前状态和当前状态的电位变化相对应的额外薪酬。 人体各个部位的潜在功能是利用视频生成的数据中人体部位的相应坐标与类人机器人之间的反距离来构造的。
我们检查了三个数据源:
贝克尔·艾伦。 动画步行周期-2010
ProcrastinatorPro。 QWOP Speedrun-2010年
ShvetsovLeonid.HumanSpeedrun-2015年...以及三种不同的距离功能:
此处,dx(dy)是从视频数据获取的相应身体部位的x(y)坐标与代理的x(y)坐标之间的绝对差。
以下是通过比较基于PF2的潜在函数的各种数据源获得的结果:

结果
基本水平和薪酬形成方法之间的生产率比较:

事实证明,薪酬的形成极大地促进了学习,在12小时的培训中达到了两倍的速度。 24小时后的最终结果仍然显示出使用潜在功能方法的显着优势。

另外,我想指出以下重要结果:我们能够从理论上证明基于潜在功能的薪酬不会使最优政策恶化。 为了在这种情况下证明这种优势,我们使用了经过12小时训练的基础制剂生成的次优制剂。 生成的原型代理用作潜在功能的数据源。 显然,用这种方法获得的代理不能最佳地工作,并且在大多数情况下脚和膝盖的位置也不会处于最佳位置。 然后,在DDPG算法中使用势函数对代理进行训练。 接下来,将具有潜在功能的代理商与原型代理商的学习结果进行比较。 代理培训计划表明RL代理能够克服数据源的次优性能。
科学的第一步
我很早就完成了毕业设计。 我想指出,我们有一种负责任的态度来保护文凭。 自9月以来,学生知道主题,评估标准,做什么和何时做。 当一切都变得如此清晰时,工作非常方便,没有感觉“我整整一年,下周/月/六个月就可以开始工作”。 结果,如果您高效地工作,则可以在新年之前获得论文的最终结果,并花费剩余的时间来建立模型,收集具有统计意义的结果并撰写文凭文本。 那正是我发生的事情。
在获得文凭辩护的前两个月,我已经准备好工作文本,我的科学顾问Aleksey Aleksandrovich Shpilman建议在ICML-AAMAS
上撰写
有关适应性和学习代理研讨会(ALA)的文章。 我唯一需要做的就是翻译并重新包装我的论文。 结果,我们向会议发送了一篇文章,...被接受了! 这是我的第一本出版物,当我在邮件中看到一封带有“已接受”字样的信件时,我感到非常高兴。 不幸的是,与此同时,我在韩国接受了培训,无法亲自参加会议。
除了
发表和认可所做的工作外,第一次会议还给我带来了另一个令人愉快的结果。 阿列克谢·亚历山德罗维奇(Alexey Alexandrovich)开始吸引我为他人的工作撰写评论。 在我看来,这对于获得评估新创意的经验非常有用:通过这种方式,您可以学习分析现有工作,检查创意的独创性和相关性。
在研讨会上写一篇文章是好的,但在主要方面写一篇更好
在韩国之后,我在JetBrains Research实习,并继续从事该项目。 正是在这一点上,我们测试了三个不同公式的潜在函数,并进行了比较。 我们确实想分享我们的工作成果,因此我们决定在新加坡的
ICARCV主干道会议上写全文。
在研讨会上写文章是好的,但在主要方面写得更好。 当然,当我发现文章被接受时,我感到非常高兴! 此外,我们的同事和JetBrains的赞助商也同意为我参加会议支付费用。 结识新加坡是一个巨大的收获。
当门票已经买完,酒店被预订了,我只能拿到签证,我收到了一封邮件:

尽管我有文件可以确认我在会议上的讲话,但我并未获得签证! 事实证明,新加坡大使馆不接受35岁以下未婚和失业女孩的申请。 即使女孩工作,但未结婚,拒绝的机会仍然很大。
幸运的是,我了解到,过境旅行的俄罗斯联邦公民最多可以在新加坡停留96个小时。 结果,我通过新加坡飞往马来西亚,总共花了将近八天的时间。 会议本身持续了六天。 由于种种限制,我参加了前四场比赛,然后我不得不离开以结束比赛。 会议结束后,我决定像个游客一样,在城市里走了两天,参观了博物馆。
我提前在圣彼得堡的ICARCV上准备了演讲。 在强化培训研讨会上进行了演练。 因此,在会议上发言是令人兴奋的,但并不可怕。 演讲本身持续了15分钟,但是之后有一部分问题,对我来说似乎很有用。
有人问我一些有趣的问题,这些问题促使人们产生了新的想法。 例如,关于我们如何标记数据。 在我们的工作中,我们手动标记了数据,并提供了使用一个可自动了解人体部位的库。 现在我们才刚刚开始实现这个想法。 您可以在
这里阅读整个作品。
在ICARCV,我喜欢与科学家交流,并学到了许多新想法。 这几天我遇到的有趣文章的数量比前四年要多。 现在,世界上出现了一种有关机器学习的“炒作”,每天都有数十篇新文章出现在Internet上,其中很难找到有价值的东西。 在我看来,为此,值得去参加会议:寻找讨论新的有趣话题的社区,了解新想法并分享自己的想法。 交个朋友!