学生:陈昕玥(2022届)
教师:工程与计算机科学部主任Keith Ross教授
在来上海纽约大学就读之前,2022届学生陈昕玥没有任何编程或编码的基础。但在大一结束时,这个上海姑娘就修完了为高年级学生开设的计算机课程“机器学习”。这门课由上纽大工程与计算机科学部主任Keith Ross教授执教,竞争十分激烈。陈昕玥还加入了Ross教授的本科生科研基金(DURF)项目团队。过去这10个月里,她与团队的另外三名本科生和几名博士生就编程编码展开合作研究,并开展了模拟机器人实验。
寒假自学线性代数
陈昕玥:机缘巧合之下,我第一学期修读了“计算机编程入门”课。这门课我投入了很多精力,而且发现自己还挺擅长编码的,写起代码来感觉很轻松。于是,大一下学期我决定挑战一门更高阶的计算机科学课程,尝试Ross教授的“机器学习”课。虽然我的学业顾问和朋友都不建议我上这么高难度的课,但我还是决定勇敢一试。
Keith Ross:大部分学生都是大四时来上我的机器学习课,但昕玥大一就来了。她治学严谨认真,勤勉刻苦,对研究和学业充满热情。
昕玥:我知道学习这门课对我来说很有挑战,因为需要有线性代数的基础。所以我在春季学期开始前的寒假找了一本线性代数的教材开始自学。后来,“机器学习”刚刚开课几周,我就已经有很多问题想请教Ross教授,其中一个是想问他手下有没有我可以参加的研究机会。Ross教授当时非常鼓励我的学习热情,并邀请我加入了他的DURF项目小组。这对我这个大一新生来说是非常宝贵的学习机会。
在暑期DURF项目研发算法
Keith:我们目前的课题来源于去年夏天开始的DURF项目,研究人工智能的一个分支——“深度强化学习”。该领域实际上是深度学习和强化学习这两个子学科的结合。深度学习是当下的热门话题,通过实现面部识别、自然语言处理、翻译、无人驾驶汽车、物体识别(确保无人驾驶汽车不会撞树)等一系列技术突破,将人工智能推上了话题巅峰;强化学习则是人工智能的另一个领域。我们目前正在研究如何将深度强化学习应用于机器人技术,但由于没有实体机器人,我们在实验中使用的是模拟机器人。
昕玥:前半个夏天,我们学习了与研究主题相关的材料,后半期便开始开展研究、做实验、写代码。
Keith:我们的目标是训练计算机模拟机器人执行跑步等各项任务。基于深度强化学习,我们提出了不同的算法和方法,尝试解决这些基准问题,让机器人快速学习。
昕玥:我们先构思算法, 然后通过编码实现它。实验的第一阶段是测试这个想法,看代码在模拟环境中能否运行。我们根据想法写出算法,并在模拟环境中测试,结果几乎都失败了。但不论做任何实验,失败几次总是在所难免。我们认真找出失败的原因,然后对算法进行了修改。
图片来自海报:2022届陈昕玥和2020届周子鉴制作的“深度强化学习中的最佳动作模仿学习”。在MuJoCo物理模拟环境中用算法演示走路、跑步等连续式任务。
让机器人跑得更快
Keith:有几支竞争队伍也在使用和我们相同的基准,包括伯克利的一支大队伍和谷歌的几支队伍。这些队伍实力都很强,所以竞争十分激烈。他们正在尝试用不同算法,尽可能加快机器人的学习速度。我们目前也在朝这个方向努力。刚开始,机器人甚至不能正常站立,需要靠外部施力。机器人身上有许多不同的关节,你需要对不同的身体部位施加不同的力它才有可能动起来。但算法本身对此一无所知。它只知道机器人的运行速度或者机器人是否在站立,以及机器人可以执行不同的任务,而且会得到一定的奖励。
昕玥:如果机器人高速运行,我们便认为它表现不错并给予较高的奖励;如果它的运行速度慢,得到的奖励就会比较少;如果它无法正常运转或是没有在学习如何运转,得到的奖励便非常少。所以奖励的多少反映了机器人智能体处理任务的情况,这也是深度强化学习的推广应用。
Keith:这就是强化学习的理念:算法只是尝试不同的事物,随着时间的推移,它会开始学习正确的做法。
昕玥:我很幸运能在做实验时发现,由我设计的一个算法运行良好且很有潜力。Ross教授也给予了我鼓励与肯定。他说,“我觉得这个算法很有潜力,我们应该在此基础上继续研发。”于是我们在DURF项目之余又花时间研究这个算法,获得了单独的运行结果。直到现在,我们还一直在钻研。
正在单独做研究的陈昕玥
平衡个人研究与团队任务
Keith:目前我们项目团队共有六人:我、昕玥、另一名计算机科学和荣誉数学专业大四学生周子鉴、我的两名博士生和一名在纽约的荣誉数学专业本科生。因为学生们秋季学期要上课,所以我们当时的研究速度有所放缓。但春季学期我们又开始了新一轮的合作研究。
昕玥:记得夏天时,我们每周都会见面两三次,一起在学校会议室讨论算法的研究进展,以及是否要调整或继续某个具体的研究方向。
Keith:讨论结束后,学生们便会各自回去编代码、做实验。我们常常使用学校的高性能计算系统,本科生们也会用这个系统运行实验——写些程序并展示运行结果,然后我们一起讨论、修改这些算法。
昕玥:我们每次的见面讨论都很热烈。讨论时间至少有一小时,有时甚至达到三小时。比如,我们上午十点碰头,有时会一直讨论到下午一点。结束后去食堂吃午饭时,菜品几乎所剩无几了。
Keith:除了集体讨论外,学生们也会互相交流,或是来找我单独讨论。他们大概有80%的时间是在单独写代码、做实验,其他20%的时间则是在开会和讨论。我们也会用邮件交流,甚至还有一个微信群。几个学生大多是利用课余时间进行课题研究。
昕玥:Ross教授研究团队的气氛很好。有时他会要求我们做一个幻灯片展示,以此了解我们对某篇文章或某个概念的理解情况。在其他同学的鼓励下,我的展示能力有了很大的提高。我真心感谢团队的每位成员,尤其是两位计算机科学专业的博士生王澈和吴艳秋。包括我在内的几个同学并没有DURF项目经验,但他们很热心地帮助我们从头开始,一步步学习。
Keith:上纽大的师生团体小而精,使本科生们开展学术研究具备一大优势。在这里,学生更容易与教授建立关系,班级规模比纽约大学还要小,使得每位学生可以享受更多的资源。学生们也可以有更多的机会与教授交流、参与研究。
昕玥:我觉得上纽大为本科生学术研究提供了很好的平台与机会。Ross教授非常开明,他常说,如果我们有任何建议或是觉得他的某个想法有误,就要毫不犹豫地说出来。我们团队的每个人都有过“挑战”他的经历,而且每次不论我们的观点是对是错,他都很高兴我们能够主动发现问题。
Keith:除了实践我教给他们的内容,几个学生也都有自己的想法,而且愿意表达出来与大家分享;有时候与我意见相左也会毫不犹豫地提出,所以我们团队的研究氛围非常好。上纽大致力于培养学生的批判性思维,这一点在几个学生身上得到了充分的体现,也给他们的科研工作带来了积极的推动与影响。