当前位置:网站首页>B站大佬用我的世界搞出卷积神经网络,LeCun转发!爆肝6个月,播放破百万
B站大佬用我的世界搞出卷积神经网络,LeCun转发!爆肝6个月,播放破百万
2022-07-06 15:40:00 【QbitAl】
丰色 发自 凹非寺
量子位 | 公众号 QbitAI
非计算机专业、神经网络小白,爆肝六个月——
在《我的世界》里搭建一个卷积神经网络,这是什么神操作?
最近,来自B站up主@辰占鳌头的作品着实火了一把。
他和朋友们合作完成的这个号称“世界首个纯红石神经网络”,神经元、卷积层、全连接层、激活函数、乘法器、输入、输出……样样俱全、蔚为壮观,而且可以真的实现手写数字识别,准确率还达到了80%。
这波,妥妥就是如网友所说:
简直是实力与耐心做出来的超凡成果。
目前,这个视频的播放量已经上了一百万,在外网,它甚至还引起了LeCun的注意:不仅转发了他们的作品,还给出了“Very meta”的评价。
耗时6个月,用红石搭建卷积神经网络
红石是我的世界里一种可以传递信号的矿石资源,可以用来制作红石电路,进而完成小到如自动门、光开关、频闪电源的简单机械,大到电梯、自动农场、盾构机、小游戏平台甚至计算机的复杂工具。
本次作者们搭建的这个神经网络的架构,基于LeCun于1998年提出的经典卷积结构LeNet-5,它就是用来实现手写数字识别的。
相比传统的全精度计算(乘法器和加法器),作者经过一番思考和估算,决定采用随机计算的方式来实现这个神经网络,这样可以让设计和布局都简单一些。
毕竟对于用随机计算实现乘法来说,只需一个与门就可以表示单极,一个同或就能表示双极。
由于在我的世界中进行反向传播不太可能,网络的权重都是先在Pytorch中训练好,然后直接搬进去。
为了生成由随机串组成的权重,作者利用“投掷器投掷物品是随机的”这一原理造了一个随机数生成器。
总的来说,他们采用的是一个压缩的LeNet-5,先使用一个带权重的窗口(卷积核)逐次扫描图像并提取笔画特征,然后将这些笔画特征馈入到深度神经网络(全连接层)进行分类识别。
具体来说:
首先由输入设备:一个单脉冲式压力板手写板和15×15坐标屏,产生坐标信号,并在屏幕上绘制出笔迹。
然后手写数字进入卷积层,累加卷积核被遮盖的部分,并将结果输出到下一层。
其中:
(1)在卷积层,作者没有使用随机计算,而是使用我的世界中的模拟信号进行加法运算;
(2)为了保证输入数据可以非线性地映射到高维度特征空间然后进行线性分类,输出经过了激活函数ReLU;
(3)由于卷积无法随意移动,所以采用直接堆叠的方式,再通过硬连线连接到手写板输入上。
随后,是全连接层。每层由若干神经网络构成,每个神经元都连接多个输入,并产生一个输出。神经元将每个输入加权累加,然后带入一个激活函数输出。
全连接层使用的是随机计算,
激活函数用的是非线性的tanh。
实际的神经元电路如下:
最后一层的输出使用一个模电计数器,用来统计5Hz串中“1”的数量,容量则为1024。
最终,输出部分,计数器的高4位被连接到计数板上,然后电路选取最大的值并在面板上显示结果。
结构总览:
网络架构总览:
作者介绍,该神经网络在MNIST数据集上约实现了80%的准确率,作为对比,同权重的全精度网络的准确率为88%。
另外,它的单次理论识别时间约为5分钟,但没想到Minecraft的运算能力实在有限——在实际测试中,可能要40分钟以上。
由此作者得出,Minecraft随机计算神经网络在时间开销上未必优于全精度网络。不过全精度网络目前还没有人做出来。
“工作量和难度都很大”
在这个作品的评论区,都是一水儿的称赞有加与膜拜(连大V籽岷都冒泡了)——
看完大佬的巨作,有网友甚至开始怀疑自己和up主们玩的不是一个游戏。(手动狗头)
还有人指出,别看最终实现的功能只是相当于机器学习中的“hello world”,但用游戏中提供的红石元件复现出来,可以说是“工作量和难度都很大”。
因为“这要求作者对算法的底层实现或者硬件执行原理(类似cuda编程)有深刻的理解,还能使用游戏机制来优化执行过程以及完成并行计算”。
虽然最终识别速度比较慢,但“在这里探讨效率的意义不大”。
言外之意,它本身就很有价值,“我们不能拿cpu的两个线程经过无数层模拟器嵌套后的识别效率去跟显卡识别效率比较”。
最后,还有人感叹:好了,现在红石神经网络有了,硬盘、CPU、显示器也早就有了,红石超级电脑是不是也不远了?
“说不定到时我们就能在MC里玩MC了~”
关于作者
这个红石卷积神经网络一共有5位作者,up主@辰占鳌头是主要贡献者,负责电路的总体设计、搭建和调试。
他和另外一位作者@学杂不善([email protected])都是香港科技大学的学生,现在分别攻读理论物理学博士和电子工程学博士。
其他3位合作者中,有一位高中刚毕业(@NKID00),另外两位(@enadixxoOxoxO和@爱红石的小章鱼)没有透露自己的身份。
@辰占鳌头在2014年的时候就开始接触《我的世界》这款游戏了,曾做过一个编码汉字的显示器和一个8位的CPU。
问及为什么一个非计算机专业的学生想要搭建一个神经网络时,他告诉我们,其实自己参加过信息竞赛,由于之前接触过随机计算(stochastic computing),最初是想展示一下随机计算在特定任务下的优越性所以开始了这个项目。
最终为了搭建完整的神经网络,他看了50+页英文文献,写了1000多行代码。
要说最难/耗时最久的部分,他回答:是全连接层调试,因为运行速度很慢而且使用随机计算很难找到问题所在。
对于未来,up主表示,他正在考虑搭建一台支持RISC-V指令集的红石CPU。
查了一下,目前似乎还没人做出来,值得期待~
B站视频:
https://www.bilibili.com/video/BV1yv4y1u7ZX?vd_source=6eb6d925760348954531a2288dcd74be
原理介绍:
https://www.bilibili.com/video/BV1wF411F7PU/?spm_id_from=333.788&vd_source=6eb6d925760348954531a2288dcd74be
— 完 —
「量子位·视点」直播报名
什么是“智能决策”?智能决策的关键技术是什么?它又将如何打造引领企业二次增长的“智能抓手”?
7月7日周四,参与直播,为你解答~
点这里关注我,记得标星哦~
边栏推荐
- DockerMySQL无法被宿主机访问的问题解决
- How to confirm the storage mode of the current system by program?
- Use ECs to set up an agent
- Redis 持久化机制
- 浅谈网络安全之文件上传
- Is "applet container technology" a gimmick or a new outlet?
- Puppeter connects to the existing Chrome browser
- docker mysql5.7如何设置不区分大小写
- QT signal and slot
- Designed for decision tree, the National University of Singapore and Tsinghua University jointly proposed a fast and safe federal learning system
猜你喜欢
Dayu200 experience officer runs the intelligent drying system page based on arkui ETS on dayu200
Aardio - does not declare the method of directly passing float values
为了交通安全,可以做些什么?
Slide the uniapp to a certain height and fix an element to the top effect demo (organize)
(1)长安链学习笔记-启动长安链
Matlab tips (27) grey prediction
docker中mysql开启日志的实现步骤
Enterprises do not want to replace the old system that has been used for ten years
Unified Focal loss: Generalising Dice and cross entropy-based losses to handle class imbalanced medi
The problem that dockermysql cannot be accessed by the host machine is solved
随机推荐
机器人材料整理中的套-假-大-空话
dockermysql修改root账号密码并赋予权限
Unified Focal loss: Generalising Dice and cross entropy-based losses to handle class imbalanced medi
使用MitmProxy离线缓存360度全景网页
ACL 2022 | small sample ner of sequence annotation: dual tower Bert model integrating tag semantics
Custom swap function
2014阿里巴巴web前实习生项目分析(1)
Enterprises do not want to replace the old system that has been used for ten years
【Unity】升级版·Excel数据解析,自动创建对应C#类,自动创建ScriptableObject生成类,自动序列化Asset文件
Les entreprises ne veulent pas remplacer un système vieux de dix ans
Puppeter connects to the existing Chrome browser
How to choose the server system
Thinkphp5 multi table associative query method join queries two database tables, and the query results are spliced and returned
浅谈网络安全之文件上传
npm无法安装sharp
Redis persistence mechanism
Interview question: AOF rewriting mechanism, redis interview must ask!!!
企业不想换掉用了十年的老系统
Pytest unit test series [v1.0.0] [pytest execute unittest test case]
Cocoscreator+typescripts write an object pool by themselves