原文在此,喜欢读原汁原味的可以自行去跟,这是一个非常经典和有学习意义的例子,在此向老爷子们致敬 -
https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html
开源文化好是好,但是"公地的悲哀"这点避不开,很多论文/教程的代码和环境配置,是存在问题的,有些源于依赖库的变迁(上梁不正,python语言自己都不承诺版本向下兼容),有些是以讹传讹,里外里浪费大家的很多时间。
当然,其实也是提醒大家多个心眼,不要只看文章如何 tree new bee,拿到代码先在环境中跑一跑,心里有数了再引用或者转载。
上图自证(图为本地,云上也验证过) -
第一个问题是,为啥要学习强化学习?(这句话,放到小学考试中应该是病句,很遗憾,这就是咱们国内论文翻译的现状)
因为 DeepMind(捎带Google Brain )牛B。
坦白的说,在2022年openAI横空出世以前10多年,人工智能一块G家才是真正的"遥遥领先"(收购DeepMind) ,你所听说的术语和工具基本只此一家,别无分号。
截至2021年,产品也是为天下先,流量感满满:
- Google Brain,第一个能识别"猫"的AI,技术栈是监督学习(大约理解为,请一大堆兼职工对海量图片进行疯狂的标记,输出用来培养AI),公开直播在Youtube上面随机视频中找猫;
这也是今天百度"萝卜快跑"的主要技术栈;
- 2016,阿尔法go用围棋祭天,法力无边,技术栈是DQN,公开直播对垒世界冠军李世石,搞得我看了好几遍的《棋魂》看不进去了;
-
2017,Tensorflow,业界CNN标杆,你可以理解为手机里的安卓,浏览器里的Chrome,也是我们本次的教程背后的库;(当然,马斯克的特斯拉不想让G家独大,选择了F家的PyTorch)
-
2019,AlphaStar联合暴雪,技术栈是DQN,公开直播AI对垒星际争霸2,看完我直接卸载游戏(大家也可以去网上找Replay,感受一下);
两位对手(下图,虽然不是韩国人,缺少点说服力) -
左)虫族选手 TLO,Liquid 战队,Aligulac 世界排名72 。要求虫族选手使用神族/星灵,有点强人所难。
- 战绩 0:5 全败!
右)星灵族选手MaNa,波兰第二,单族排名世界第 12,不分种族世界第35,实力在二线职业选手中属于顶尖。
- 战绩 1:10 唯一胜局来自ai主动削弱!
-
2019,(开始年份不确定)正式放弃Maven,也就是配合美军的项目;
-
2021,AlphaFold,AI正式应用于科研第一线;
呃,年纪大了,一不小心就喜欢掉书袋,(¬︿̫̿¬☆),其实故事里面也有一根暗线就是埃隆马斯克(怎么总是你 : How old are you),不过毕竟我们不是纯怀旧帖子,八卦略去不提。
回到技(zhuang)术(bi),这篇教程使用了gymnasium环境(注意,不是gym,gym官方已经不维护,不推荐使用)里面的自带例程,Cate Pole,倒立摆,就是通过向左或向右移动小车来保持杆子的直立。能够在更久的时间或者更多的步数中屹立不倒,是本例的目标,也是最后评估的标准。
这里是直接取得了环境参数用于训练,并不谷歌,谷歌的玩法都是要直接游戏中,标准帧率截图,然后读图取得参数并用于训练。
深度学习的基础是CNN卷积神经网络,也就是把输入参数和输出参数之间,放置一个多层的,用来转换的神经网络。比如这个例子中,就是4个参数/神经输入,转为第一层128个神经,经由第二层的128个神经,最终变换为最后的2个参数输出。
深度学习还应用了其他方法/算法,典型的本例都有涉及,我在这个系列的文章中也都会依次展开,如 -
1)梯度下降算法,
2)折扣因子-贪婪算法,
3)记忆锚(Replay Memory,基于抽帧回放),
4)策略优化。