有了这套东西,我们就能自己尝试从零开始训练一个AI司机。
具体怎么做呢?重点来了:
假设这是模拟器里的一条完全笔直的赛道,以及虚拟环境里的Amazon DeepRacer赛车。
我们的目标是让赛车以最短的时间冲刺到终点——那么对于这条赛道而言,最好的选择就是让车尽量沿着中线跑,避免因绕路或出界而导致增加时长。
为此,我们可以把赛道切分成多个网格,然后给这些网格赋予不同的分数:
靠近中间的,给更高的分;在两侧的,稍微意思一下;超出赛道范围的部分属于无效区域,如果碰到,就要从头再来。
开跑之后,一开始,赛车并不知道哪一条是最佳路线,只是在像无头苍蝇一样四处乱撞,很多时候还会冲出赛道。
但后面,随着试错的次数越来越多,在奖励函数的“指挥”下,赛车会逐渐探索出一条能够获得最高累积分数的路线。
理想状况下,一段时间的训练、迭代之后,算法就会学会“直线”最快这条真理。