第二天一早。
江寒起床后,来到窗前一看,入目都是晶莹的纯白。
昨晚竟然下了一场不小的雪,大地、房屋、树木全都银装素裹。
三个女孩子正在院子里堆雪人,虽然都穿着厚厚的冬衣,但不用怎么细看,就能区分出谁是谁。
高挑婀娜的是夏雨菲,娇小玲珑的是苏婉莹,格外瘦削的那个,自然就是小鱼儿了。
三个女生玩得十分欢快,嬉笑吵闹间,给冷清的雪景增添了一抹春色。
江寒迅速穿戴整齐,出门,路过方源门外时,随手敲了敲门。
不多时,方源打开了房门:“老板早。”
“早啊。”
江寒看了眼方源,这小子穿着得十分整齐,想来早就起来工作了。
“什么事?”方源问。
江寒爽朗一笑:“出去一起玩玩雪?”
方源摇了摇头,兴趣缺缺地拒绝了。
什么堆雪人、打雪仗,在他看来,远不如在家自己敲键盘好玩。
江寒只好挥了挥手:“那我自己去了。”
随后独自下楼,来到院子里。
看到他出现,三个女生纷纷出声招呼。
“呦,大家早!”江寒笑得灿烂。
随后弯下腰去,捧起一团雪,攥成了一个不太实诚的小雪球,“咻”的一下,扔到了夏雨菲胸口上。
雪球“噗”的爆成一团冷雾,其中一部分,钻到了她的领子里,搞得她一阵颤栗。
夏雨菲呆了一呆,大叫了一声:“臭流氓!”
随后舀起一大捧雪,悍然反击。
苏婉莹和小鱼儿对望了一眼,纷纷加入战团。
江寒双拳难敌六手,不一会儿已经全身是雪。
四个人正玩得乐呵,大门外忽然响起汽车鸣笛声。
江寒和苏婉莹等一起回头望去,却见靳雪雯推开车门,跳了下来。
小丫头今天穿着火红的羽绒服,看起来胖乎乎的,十分好笑。
她下车之后,先从后备箱里拿出东西,然后蹦蹦跳跳地进了院子。
“雨菲姐姐、婉莹姐姐,小鱼儿,大家早!还有江寒哥哥……”
小丫头一进门,就笑嘻嘻地挨个打招呼。
“来来来,一起玩!”苏婉莹发出邀请。
“好啊!”靳雪雯跃跃欲试。
江寒走过去,将她手中拎着的东西接了过来。
这是一大堆崭新的战车机器人,与“战神一号”一个系列。
江寒先将这些东西,都送回了自己的房间,随后再次出来,和大家一起玩雪。
半个多小时后,大家都玩累了,于是回屋洗漱一番,然后一起去餐厅吃早餐。
靳雪雯来苏家之前已经吃过了,于是没动筷子,只喝了半杯牛奶,陪大家说笑。
吃完饭,江寒将众人带到自己房间,大家围坐在一起,开了一个小会。
主要是安排一下参加CARC的事宜。
按照比赛的程序,现在就该将队伍确定下来,然后尽快呈报上去。
一个队伍最多五名队员,目前确定参加的一共四人:江寒、靳雪雯、方源、小鱼儿。
还剩下一个名额,江寒让靳雪雯决定。
靳雪雯本打算邀请苏婉莹,但苏婉莹大摇其头:“我什么也不懂,就不跟着当混子了。”
于是靳雪雯又将皮球踢给了江寒。
江寒询问夏雨菲:“你有没有兴趣跟着玩玩?”
夏雨菲想了想,说:“我和莹莹差不多,对机器人也基本上一窍不通,还是你们四个上吧,我和莹莹给你们做后勤。”
江寒和靳雪雯对视了一眼,一齐摊手。
这样“新寒江雪”战队便只有四名队员了。
接下来,江寒和方源开始研究AI算法。
能采用的算法很多,但要考虑到算法的强度,以及机器人本身的计算能力。
好在时间还算充裕,可以慢慢尝试。
江寒打算试一试机器学习中的“强化学习”。
这是一种非常独特的算法,可以让机器人“自学成才”,无需编写复杂的逻辑。
方源对此表示期待和喜闻乐见,但也有一些担忧。
关键问题是,在比赛之前,没法拿到场地的准确数据。
这样一来,事先训练好的机器人,也不知道到了赛场上,会不会适应不良?
江寒洒然一笑:“所以咱们要做两手准备。”
“哦?”方源眼神亮了起来。
江寒的想法很简单。
他和方源分别打造一套AI算法。
江寒尝试“强化学习”路线,方源则按照传统方式编程。
比赛之前,队伍内部先来次PK,谁的AI战斗力强,就派谁上场。
“这个办法好。”方源马上表示赞同。
接下来,两人就分头行动,各行其是。
另一边,靳雪雯等女孩子,将几个战车机器人的包装,全都拆了开来。
“哇,好漂亮!”小鱼儿惊叹了一声,随后拿起一台战车机器人,爱不释手地摆弄着。
“花了不少钱吧?”小鱼儿问。
靳雪雯嘻嘻一笑:“一共8万多,险些花光我的压岁钱。”
小鱼儿:“……”
意思是还没花光呗?
这天开始,靳雪雯每天都来苏家。
大家聚在一起玩玩闹闹、其乐融融,顺便训练、训练机器人,不亦乐乎?
江寒让靳雪雯又买了五台机器人,和方源每人选择五台,分头训练。
两人的程序很快都编好了。
由于方源采用了传统算法,程序调试完成后,直接烧录到机器人的ROM中,就可以运行了。
而江寒这边的“强化学习”,实现起来就没那么简单了。
程序本身就很不好弄,训练起来更加麻烦,需要相当多的时间。
“强化学习”在这个世界早就出现了,其中最重要的概念,就是智能体(Agent)。
在这个案例中,一台战车机器人,就是一个智能体。
训练的过程中,智能体可以得到所处环境的状态信息,并采取试探行动。
当环境对某个动作给与了正向反馈时,智能体将来就会更加倾向于这种举动。
反之,如果得到的是负面反馈,那么就减弱这种倾向。
这样,智能体就能在不断地试错中,一点一点地优化行动策略……
例如着名的Q-learning算法,江寒之前就有过一些研究。
在Q-learning中,用一个表格来保存状态和动作的Q值,称为Q-Table。
通过修改Q-Table的值,就能生成一个指引智能体行动的“纲领”。
然而,这种办法虽然简单、直观,易于实现,但也有着致命的缺陷,那就是只适合状态和动作空间是离散的,而且维数不太高的情况。
当状态和动作空间是连续的,或者维度很高时,再用Q-Table来表达,就有点力不从心了。
为了解决这个问题,江寒很自然地想到了DQN算法。
所谓DQN,全称是DeepQNetwork,实际上就是将深度学习和强化学习结合到一起的产物。
DQN的原理相当简单,只要将Q-Table换成人工神经网络就行,但如果想取得理想的效果,那就得讲究一点细节了。
首先要克服的,就是噪声、延迟和不稳定等问题。
江寒在虚拟空间里忙碌了三百多个小时,才终于弄出了一个比较完善的DQN算法。
接下来,就是漫长的训练过程。
好在这种算法最大的优点,就是不怎么需要人工干预,只要给“智能体”适当的环境,它就能自主学习、慢慢进步。
苏婉莹特地将阁楼清理出来,给大家做训练场地。
江寒让方源的五台机器人,给自己麾下的战车做陪练。
一开始,江寒的机器人看起来笨头笨脑的,和无头苍蝇差不多。
别说作战了,连路都跑不明白,经常卡在莫名其妙的地方,原地转圈圈。
看到这种情况,大家不免心里有点没底。
靳雪雯藏不住事儿:“江寒哥哥,这种办法真的行吗?”
苏婉莹直接吐槽:“江寒,你这几台战车,看起来不怎么聪明呀?”
夏雨菲也有点担忧,问江寒:“它们好像一直在乱转,这都半个下午了,是不是哪里出问题了?”
江寒淡淡一笑:“现在下结论还太早了点,过两天再看效果吧。”
这些战车机器人都是标准套装,性能还算不错,续航就比较马虎了。
通常能连续运作三个小时,就差不多到极限了。
为了解决这个问题,江寒不得不设计了一个磁吸式充电接口,让这些机器人电量消耗得差不多时,自己滚去充电……
江寒的五台战车机器人,每天都在缓慢地进步着。
从一开始什么也不懂,慢慢学会了走路、射击、躲闪……
三天后,训练效果渐渐体现了出来,至少与方源PK时,不再一面倒的被屠杀。
虽然处于下风的时候多,占据优势的时候少,取得胜利的次数,更是约等于0。
但这种其妙的现象,仍然引得苏婉莹、夏雨菲等人啧啧称奇。
她们之前的确没想到,这些“死”的机械,居然也能在实战中,不停地成长!
渐渐的,江寒的机器人学会了简单的战术配合,这样一来,再和方源PK,胜率就提高了不少。
又过了两天,方源的机器人,就彻底不是对手了。
没办法,方源的程序,是传统的逻辑推理型AI,成长性约等于没有,写成什么样,就是什么样。
而江寒这边,却是一个拥有学习能力的AI,只要有充足的时间,就可以愈练愈强!
这天,江寒和方源又进行了一场友谊赛。
开战不到3分钟,江寒这边就摧枯拉朽一般,将方源的队伍虐了个体无完肤。
“不玩了,不玩了。”方源用力摇头。
“老板,你的机器人进步太快了,我估计,等到下周比赛时,差不多能和遥控战车一较高下了。”
江寒却笑着摇了摇头:“只怕还不够。”
“你是说时间吗?”方源问。
江寒解释说:“不仅仅是时间的问题,我这个算法的上限,取决于陪练的战斗力,现在这种情况,只怕后面很难有大的进步了。”
方源若有所思,忽然问:“老板,就凭你这几台机器人的强度,差不多也够用了吧?”
他对自己的编程能力,还是相当自信的,正式比赛中的对手,不可能个顶个都比自己强……
江寒摇了摇头,平静的说:“其他队伍的情况,目前还不清楚,我们拿冠军的可能性,不能说没有,但还不够大。”
方源默默点头,忽然说:“可惜我的能力有限,弄不出战斗力更强的机器人,否则就能给你做陪练了……”
江寒心中一动,忽然想到了一个办法。
不如在方源的这几台机器人里,也写入训练好的DQN网络?
然后,让两个DQN网络对战,你成长一点,我成长一点……
江寒越想越觉得可行。