强化学习可视化解释:让数字生物“spark”自己学会追光
A visual explanation of reinforcement learning
一篇交互式可视化文章用只有四个神经元、三个可调参数(同侧连接、交叉连接、drive)的数字生物 spark 演示强化学习:每次试验前随机微调脑内连接,变好则奖励并沿该方向调整,变差则反向调整。经过 50、250、500、2000 次尝试,spark 从原地打转逐步变为追光专家,其学习轨迹被可视化为“可能大脑空间”中的路径。
你的大脑如何帮助你学习一项新技能?
为了尝试回答这个问题,我们将构建一个拥有简单大脑的数字生物,并观察它学习一种新行为。
在我们之前的文章中,我们创造了一种名为 spark 的生物,它可以朝着光的方向转向。我们还看到了它的神经回路发生微小变化如何产生截然不同的行为。
神经
回路
当时,我们手动将这些回路接入 spark 的大脑。但现在,我们希望它自己学会相同的行为。
毕竟,你来到这个世界时并不会走路、说话或阅读。虽然你的一些能力,比如呼吸或吞咽,是由进化预先接线的,但你通过艰苦的试错过程获得了其他能力。
我们希望我们的 spark 也能做到同样的事。为了让你对这种学习过程有直观感受,我们将把控制权交给你。我们希望你来为 spark 的大脑接线。
你来为它的大脑接线
但首先,我们需要告诉你你要接的是什么。spark 的大脑只有四个神经元——两个神经元充当它的眼睛,两个神经元摆动它的鳍。
身体同一侧的神经元之间有直连,身体对侧的神经元之间有交叉连接,还有驱动,它控制 spark 在没有光时的速度。
直连
交叉
驱动
所以它的大脑接线归结为三个数字——每种连接的强度,以及驱动。
现在让我们把这个 spark 放出去。在它移动时,用下面的滑块为它的大脑接线。我们会记录分数。
你的目标:通过获得高于 0.5 的分数让 spark 爱上光。
你能让 spark 待在光里吗?
神经
回路
分数
目标
0.11
尝试次数
直连
交叉
驱动
找到正确的配置需要大量试错。(如果你卡住了,点击上方的提示按钮获取正确方向的提示。)
让我们可视化你刚才所做的。为了引导 spark 走向光,你调整了三个数字。我们可以将这些数字表示为立方体的三个轴。
这幅图的意义在于,我们可以将 spark 的学习轨迹可视化为这个立方体内的一条路径。
为了引导 spark,你可能是朝一个方向微调了滑块,观察这使情况变好还是变坏,然后利用这个反馈来决定下一步。
让我们将其提炼为一个学习算法——一个让 spark 通过练习重新接线大脑的逐步过程。
它的工作原理如下:spark 有很多次尝试来朝光转向。在每次试验之前,它的大脑接线会随机发生一点变化,就像你来回微调滑块一样。
如果这次试验比之前的更好,那么 spark 会得到奖励,它的接线会朝这个随机变化的方向移动。如果试验变得更差,spark 会得到惩罚,它的接线会朝相反方向移动。
这与学习走路或骑自行车的过程并没有太大不同。摔倒就是你的惩罚,而平衡的快感就是你的奖励。
这个简单的算法能帮助 spark 找到光吗?
一个自我学习的 spark
起初,火花是一个新手,大脑的连接是随机拼凑的。不出所料,它走不了多远。
学习前:卡住
火花宝宝能在原地打转,但还无法四处移动。不过它马上就要进步了……
50 次尝试后:漫无目的
经过 50 次这种学习算法的尝试,我们的火花宝宝迈出了第一步。虽然它不会打破任何速度纪录,但它现在动起来了……
250 次尝试后:躲避
经过 250 次尝试,我们的火花少年加快了速度。但它在最后一刻偏离了光源。
500 次尝试后:冲刺
经过 500 次尝试,我们的火花青少年大胆地冲向光源。但它还没学会如何减速或停下。
2,000 次尝试后:专家
经过 2,000 次尝试,我们的火花现在成年了——一位寻找和追随光源的专家。它紧贴光源,并能瞬间转向。(试着移动光源,看火花跟随它。)
和之前一样,我们可以把这个学习过程可视化为一条路径。
火花在0 次尝试...后的学习路径
这不是穿越物理空间的路径。相反,它是穿越可能大脑空间的路径。它展示了火花的大脑在学习过程中如何改变。
其他新手火花会从不同的点出发,它们各自会描绘出自己的学习轨迹。
许多火花在0 次尝试...后的学习路径
这张纠缠的网展示了数百个新手火花的学习路径,每个火花一开始的大脑连接都各不相同。仿佛魔法一般,所有这些线都汇聚到标有♥︎的点。
这些路径不是直线:学习不是线性的。沿途会有挫折、弯路和错误。而且它不一定很快。有些学习者花了数千次尝试才达到目标。
你会注意到这些路径都抖动不已。这是因为每一步都涉及随机性。我们可以通过对每个点上的许多轨迹取平均来平滑这种抖动,从而揭示出一张学习流动的地图。
火花学会去爱
值得花点时间体会这有多么令人惊讶——只要有足够的尝试,同样的学习过程就把每个新手变成了寻找光源的专家。
在这个火花大脑的无数种可能排列中,只有极小一部分能产生我们想要的行为。失败的方式远比成功的方式多得多。
然而,你刚刚见证了一个小小的奇迹。火花在这座死胡同的迷宫中穿行,重新连接它的大脑来找到光源,而指引它的只有奖励和惩罚。
学习新技能
一旦成年,学习并不会停止。我们一生都在学习,并适应不断变化的环境。
我们的火花也能做到这一点。例如,如果光源代表的不是食物来源,而是有害化学物质或危险的捕食者呢?
现在火花因躲避光源而获得奖励,而不是因寻找光源,这导致了新的行为:
火花学会逃跑或僵住
如果光是危险的,那么爱就成了最糟糕的策略,火花会学会逃离(尽快逃跑)或僵住(装死)。
反之,如果火花因高速接近光而获得奖励,它就会学会冲向光,也就是战斗。
火花学会战斗
就像孩子从环境中学习一样,火花可以学到截然不同的行为——逃离、僵住、战斗或追随光——取决于它如何获得奖励。
火花由其所处的环境塑造
神经
回路
· 火花以三分之二的速度移动。
现在你已经看到,一个初生的火花如何通过一种称为强化学习的过程重塑自己的大脑并学习新行为。
生物大脑也通过强化来学习。例如,幼年鸣禽通过咿呀学唱来学会歌唱。它们会随机尝试自己歌声的各种变化。如果某个变化更接近它们记忆中成年鸟的歌声,它们就会获得一阵多巴胺释放(如果偏离更远,多巴胺就会下降)。在这些奖励与惩罚的引导下,它们能够凭记忆重现歌声,甚至在没有老师在场的情况下也能做到!
现在,我们必须坦白一件事。这个火花的大脑只有四个神经元和三个决定这些神经元如何连接的数字。这种简单的结构让我们能够以三维方式观察它的大脑学习。
你的大脑大约有860亿个神经元和超过一百万亿个连接。因此,它可能的连接方式的空间是难以想象的广阔。
但尽管细节要复杂得多,其基本思想是相同的:学习就是你在这片广阔内部空间中导航的方式。而反馈则是指明方向的指南针。
了解更多
感谢阅读Myriad的第二章,这是一个探索心智如何从物质中涌现的系列。Myriad 是研究行为的神经科学家Arkarup Banerjee与转型为科学记者的物理学家Aatish Bhatia的合作项目。
火花如何移动
本文中的火花灵感来自神经科学家Valentino Braitenberg的工作。我们按如下方式实现了它们的神经回路:
vL=σ(ws bL+wc bR+d)vR=σ(wc bL+ws bR+d)
其中vL和vR是左右鳍的速度,bL和bR是左右眼处的亮度水平,ws和wc是眼睛与鳍之间的直连和交叉连接强度,d是驱动,用于设定无光时火花的速度。σ(x)是ReLU 函数。火花的前进速度是两个鳍速度的平均值,其转向速度与两者之差成正比。
火花如何学习
我们的简化设置中有三个参数:ws, wc和d.火花使用 Ronald Williams 于1992年发表的REINFORCE 算法的一个版本来学习这些参数的值。
每次试验中,参数都会被随机微调一个小量,火花从场地边缘的随机点出发,移动 500 个时间步。它的奖励是其路径上的平均亮度。
然后将该奖励与近期奖励的滑动平均值进行比较。如果火花的表现在平均水平之上,其参数就朝这个随机变化的方向微调。如果表现更差,其参数就朝相反方向微调。微调的幅度与它表现好(或差)的程度成正比:
ΔW(R‾)变化=α(R‾)步长 ε(R‾)微调(R−R‾)(R‾)提升
这里 ΔW 是三个参数的变化量,α 是学习率,ε 是随机微调量,R−R‾ 是火花表现比平常好或差的程度。我们重复了数千次。
Williams 的原始方法为每个神经元的输出添加随机性。我们则将其添加到权重和偏置上,这种方法被称为权重扰动。OpenAI 在 2017 年使用了一种类似的想法,称为进化策略,来教 AI 模型玩 Atari 电子游戏。
请在下方注册,以获取更多经过严谨研究的神经科学可视化解释,并将这篇文章分享给可能喜欢它的其他人。
来源:Hacker News · aatishb.com