丰色 发自 凹非寺
量子位 | 公众号 QbitAI
非计算机专业、神经网络小白,爆肝六个月——
1、进入“我的世界”后,在地上挖出长7、宽3、高1的间隔为2的背对背的双c。2、里面铺上红石,在中央左右铺粘性活塞各两个。3、在活塞面铺任意方块,再在左右上方活塞背面铺方块。4、下方地上放红石火把,发现活塞关闭。
在《我的世界》里搭建一个卷积神经网络,这是什么神操作?
最近,来自B站up主@辰占鳌头的作品着实火了一把。
这波,妥妥就是如网友所说:
简直是实力与耐心做出来的超凡成果。
目前,我的世界3x3自动门,这个视频的播放量已经上了一百万,在外网,它甚至还引起了LeCun的注意:不仅转发了他们的作品,还给出了“Very meta”的评价。
耗时6个月,用红石搭建卷积神经网络
本次作者们搭建的这个神经网络的架构,基于LeCun于1998年提出的经典卷积结构LeNet-5,它就是用来实现手写数字识别的。
相比传统的全精度计算(乘法器和加法器),作者经过一番思考和估算,决定采用随机计算的方式来实现这个神经网络,这样可以让设计和布局都简单一些。
毕竟对于用随机计算实现乘法来说,只需一个与门就可以表示单极,一个同或就能表示双极。
由于在我的世界中进行反向传播不太可能,网络的权重都是先在Pytorch中训练好,然后直接搬进去。
为了生成由随机串组成的权重,作者利用“投掷器投掷物品是随机的”这一原理造了一个随机数生成器。
总的来说,他们采用的是一个压缩的LeNet-5,先使用一个带权重的窗口(卷积核)逐次扫描图像并提取笔画特征,然后将这些笔画特征馈入到深度神经网络(全连接层)进行分类识别。
具体来说:
首先由输入设备:一个单脉冲式压力板手写板和15×15坐标屏,产生坐标信号,并在屏幕上绘制出笔迹。
然后手写数字进入卷积层,累加卷积核被遮盖的部分,并将结果输出到下一层。
其中:
(1)在卷积层,作者没有使用随机计算,而是使用我的世界中的模拟信号进行加法运算;
1、首先我们挖一个T形坑,然后在里面铺上红石电路,然后右边的是一个石头和一个红石火把。2、在坑的下面摆上门框,中间的装置是粘性活塞。3、注意最右边的石头上,是有一份红石的。4、让两个粘性活塞都是激活的状态。5。
(2)为了保证输入数据可以非线性地映射到高维度特征空间然后进行线性分类,输出经过了激活函数ReLU;
(3)由于卷积无法随意移动,所以采用直接堆叠的方式,再通过硬连线连接到手写板输入上。
随后,是全连接层。每层由若干神经网络构成,每个神经元都连接多个输入,并产生一个输出。神经元将每个输入加权累加,然后带入一个激活函数输出。
全连接层使用的是随机计算。
激活函数用的是非线性的tanh。
实际的神经元电路如下:
最后一层的输出使用一个模电计数器,用来统计5Hz串中“1”的数量,容量则为1024。
最终,输出部分,计数器的高4位被连接到计数板上,然后电路选取最大的值并在面板上显示结果。
结构总览:
网络架构总览:
另外,它的单次理论识别时间约为5分钟,但没想到Minecraft的运算能力实在有限——在实际测试中,可能要40分钟以上。
由此作者得出,Minecraft随机计算神经网络在时间开销上未必优于全精度网络。不过全精度网络目前还没有人做出来。
“工作量和难度都很大”
在这个作品的评论区,都是一水儿的称赞有加与膜拜(连大V籽岷都冒泡了)——
看完大佬的巨作,有网友甚至开始怀疑自己和up主们玩的不是一个游戏。(手动狗头)
1、首先我们这样挖一个坑,T字型。两格深。然后在里面铺上红石电路,右边的是一个石头和一个红石火把。2、之后地面的部分就按照这个样子来摆放,中间的装置是粘性活塞。注意最右边的石头上,是有一份红石的。这样才能让两。
还有人指出,别看最终实现的功能只是相当于机器学习中的“hello world”,但用游戏中提供的红石元件复现出来,可以说是“工作量和难度都很大”。
因为“这要求作者对算法的底层实现或者硬件执行原理(类似cuda编程)有深刻的理解,还能使用游戏机制来优化执行过程以及完成并行计算”。
我的世界的红石自动门怎么做 首先我们要挖个十字形的坑,在里面铺上方块、红石线路和红石火把。在红石火把上再放上方块,铺上红石。之后在方块两边装上活塞,然后用石头做一个简单的门出来。在门口放上压力板,只要玩家走。
虽然最终识别速度比较慢,但“在这里探讨效率的意义不大”。
言外之意,它本身就很有价值,“我们不能拿cpu的两个线程经过无数层模拟器嵌套后的识别效率去跟显卡识别效率比较”。
最后,还有人感叹:好了,现在红石神经网络有了,硬盘、CPU、显示器也早就有了,红石超级电脑是不是也不远了?
“说不定到时我们就能在MC里玩MC了~”
问题七:我的世界怎么做自动门? 最简单的办法是在门前的空地放压力板,踩上去门就会开;复杂一点可以做一个红石电路,你说的可能是那种用粘液活塞的门,就是那种侧开门的,如果是的话请追问,我有链接可以给你。问题八。
关于作者
这个红石卷积神经网络一共有5位作者,up主@辰占鳌头是主要贡献者,负责电路的总体设计、搭建和调试。
他和另外一位作者@学杂不善(GitHub@leamoon)都是香港科技大学的学生,现在分别攻读理论物理学博士和电子工程学博士。
@辰占鳌头在2014年的时候就开始接触《我的世界》这款游戏了,曾做过一个编码汉字的显示器和一个8位的CPU。
最终为了搭建完整的神经网络,他看了50+页英文文献,写了1000多行代码。
要说最难/耗时最久的部分,他回答:是全连接层调试,因为运行速度很慢而且使用随机计算很难找到问题所在。
对于未来,up主表示,他正在考虑搭建一台支持RISC-V指令集的红石CPU。
查了一下,目前似乎还没人做出来,值得期待~
B站视频:
原理介绍:
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态