• 怎样从零开始训练一个AI车手?


    允中 发自 凹非寺
    量子位 | 公众号 QbitAI
    这篇文章我们做了一期b站视频,欢迎三连~

    如何快速理解强化学习的概念?

    驯只猫就行。

    比如下面这位爷,巨皮。

    c70af332952c78a56a6de92bba0d7abd.gif

    整天就是跑酷、尿炕、抓沙发,搞到人头皮发麻、心态爆炸。

    直到你忍不了了,决定对它进行残酷的猫德教育。方案是:

    以后在家,每当它表现出一次守猫德的行为,就奖励一根猫条;

    而每当它皮一次,你就立刻扑过去,咬它的头……

    949a5de13c5a2652223a7ca7793593cc.gif

    这样反复拉扯两个月之后,你的猫再也不敢皮了——

    这个过程里发生的事情,就是“强化学习”

    6e4a09674e4745811957a6cb89a20edd.png

    一个智能体(你的猫)在与环境(有你的你家)互动的过程中,在奖励(猫条)和惩罚(咬头)机制的刺激下,逐渐学会了一套能够最大化自身收益的行为模式(安静,躺平)。

    所以其实,养猫跟搞人工智能,道理是一样的。

    c8c3a9bfb6f26282346dc1f4babbac24.png

    强化学习最著名的代表当然是AlphaGo:几万盘棋,左右互搏,最后无师自通成了独步天下的围棋之神。

    如果把AlphaGo看作上面例子里的猫,那在训练里,决定它能否获得“猫条”的每盘棋最终的对弈结果——赢了就有好东西吃,输了就要被吃(bushi)。

    另外,DeepMind开发出过一个能在57款雅达利游戏上都超越人类玩家的智能体,背后依靠的同样是强化学习算法。

    不过这里的奖励和惩罚机制就要根据不同的游戏来具体设计了。比如玩最简单的吃豆人,就可以对每次吃到豆子的行为进行奖励,对撞到幽灵gg的状况给予惩罚。

    db378de5e4916f409ed0b4fad0df5d98.gif

    而除了在游戏领域天空海阔之外,强化学习,其实还能拿来搞自动驾驶。

    如何训练AI司机

    为了更方便地说明这件事怎么实现,这里我们借用一个道具:来自亚马逊云科技的Amazon DeepRacer。

    5c827efa9a1ebfec3edb6656fed98a24.gif

    一辆看上去很概念的小车,跟真车的比例是1比18。车上安装了处理器、摄像头,甚至还可以配置激光雷达,为的就是实现自动驾驶——

    当然,前提就是我们先在车上部署训练好的强化学习算法。

    算法的训练需要在虚拟环境中进行,为此Amazon DeepRacer配套了一个管理控制台,里面包含一个3D赛车模拟器,能让人更直观地看到模型的训练效果。

    3d8293d78d99ef4d5a9e1fc969471216.gif

    有了这套东西,我们就能自己尝试从零开始训练一个AI司机。

    具体怎么做呢?重点来了:

    假设这是模拟器里的一条完全笔直的赛道,以及虚拟环境里的Amazon DeepRacer赛车。

    533b47227568c55ffd26fa10a608e4a8.png

    我们的目标是让赛车以最短的时间冲刺到终点——那么对于这条赛道而言,最好的选择就是让车尽量沿着中线跑,避免因绕路或出界而导致增加时长。

    为此,我们可以把赛道切分成多个网格,然后给这些网格赋予不同的分数:

    bd0d623a3e90e37d4bf6f4c25e03b42c.png

    靠近中间的,给更高的分;在两侧的,稍微意思一下;超出赛道范围的部分属于无效区域,如果碰到,就要从头再来。

    开跑之后,一开始,赛车并不知道哪一条是最佳路线,只是在像无头苍蝇一样四处乱撞,很多时候还会冲出赛道。

    4f7a27bdac7dcf823baada3498913f8d.gif

    但后面,随着试错的次数越来越多,在奖励函数的“指挥”下,赛车会逐渐探索出一条能够获得最高累积分数的路线。

    理想状况下,一段时间的训练、迭代之后,算法就会学会“直线”最快这条真理。

    9aab8ac32cdfcaed89d31be4e2b5521f.gif

    而再把算法部署到车上,我们就能收获一辆会跑直线的赛车。

    当然跑直线只是一种最简单的情形,实际的赛道一般都更加复杂,很多时候沿中心线跑也并不是最快的路线,为此我们就需要调整训练的策略和奖励函数的设计。

    实际操作中,具体函数的编写同样通过Amazon DeepRacer的管理控制台完成。

    在写函数之前,我们可以在上面调整模型的超参数,然后定义它的行动空间,规定赛车行驶的速度和转向时的角度,甚至……还能选择赛车的皮肤,等等。

    321be732155c160036ac1a2ecff51ab1.gif

    Amazon DeepRacer这一整套服务,蛮像一套入门强化学习的可视化教学工具,新手跟着提示也能一步步做下来,大家如果有兴趣,不妨自己试试。

    挑战吉尼斯?

    当然,既然说了是赛车,自然要追求速度,越快越好。

    而如果你想测试一下,自己“培养”出来的AI司机到底够不够快的话……

    亚马逊云科技官方还搞了比赛,让把大家训练的AI司机全都拉出来,比一比,看看谁才是真正的秋名山车神。

    67e5fbda7af50c794ff9ff6b64213cff.gif

    这个联赛是一个全球范围内的正经比赛。18年开始办第一届,办到现在,总共有超过10万人参加。从线上模拟到线下实体比赛,都有。

    比赛在全球的机器学习开发者圈子里已颇有名气。去年,还跟F1搞过联名,喊来了当时雷诺车队的车手里卡多,跟大伙一块开车。

    a5ae1e828fc1b9790a97b269948d7e57.gif

    而中国区也为中国的开发者建立了专门的Amazon DeepRacer联赛。

    今年中国区联赛分为了两个赛季,每个赛季的月赛根据赛道的难易程度和模型训练难度的不同,分成了大众组和专业组。月赛组别排名靠前的选手,会有机会晋级到下一组别或参加线下比赛。

    45dfaafd2ed74b13782d7dad51939830.png

    当然,比赛都有奖品。耳机、键盘、音箱……什么乱七八糟的都有;

    而如果你一不小心拿了个赛季总冠军的话,那恭喜你,你可以白嫖一张去拉斯维加斯的机票(还有酒店、大会门票)。

    Amazon DeepRacer联赛的报名是免费的,也没有职业要求。只不过如果你没满16周岁就来卷,就得需要监护人允许了……

    今年的比赛还在进行中,现在在官网上注册了账号,就会自动获得亚马逊云服务上10个小时的训练时间,并且可以申请价值30美元的“点卡”。

    与之同时,亚马逊云科技官方还在搞一个“挑战吉尼斯世界纪录”的活动,目标是突破4387这个参赛人数数字,申请成为全世界“最大规模的机器学习竞赛”。

    8eca9e3f8c2a5afb88b9e1d3fcc7b650.png

    今年的每个参赛选手都会成为纪录的一部分——甚至,每人都有机会得到一张吉尼斯世界纪录的挑战证书

    至于这次挑战的最终结果,会在十月份公布。

    到时,今年的亚马逊云科技线上中国峰会将在10月开启,会上除了公布Amazon DeepRacer吉尼斯挑战结果,还会有云计算领域的众多大咖做分享,以及相关的技术成果展示。

    目前,线上峰会已经开启报名,海报和链接在此:

    0ac80dafcfcd91c813d06c50fefd36df.jpeg

    报名链接(或点击阅读原文):

    https://summit.awsevents.cn/2022/signin?source=gh/ZsR4xii4TX2Vs20QVMuBJ8myz/eb2C54wsCCG96M=&tab=1&type=2

    —  —

    点这里👇关注我,记得标星哦~

  • 相关阅读:
    【手把手带你学JavaSE系列】练习项目—图书管理系统
    Nat. Commun. | 大规模高分辨单光子成像
    【图像处理】openCV中生成掩膜区域的方式以及Points的规则
    通过 FileUploader 的初始化,了解 SAP UI5 应用的 StaticArea 初始化逻辑
    关于pool.apply_async的学习【参数问题】
    盘点近年来面试常见的spring面试真题
    Python:实现tower of hanoi河内塔算法(附完整源码)
    【图解 LeetCode 房屋染色 动态规划思想 + 代码实现】
    为什么那么多人说大数据只是写SQL?
    Vue中 computed 和 watch
  • 原文地址:https://blog.csdn.net/QbitAI/article/details/126672314