非计算机专业,神经网络小白,已经六个月了——在我的世界里构建一个卷积神经网络是怎样的神操作。
最近,由陈老师领衔的up的作品非常受欢迎。
他和朋友合作完成了这个所谓的世界上第一个纯红石神经网络,它包括神经元,卷积层,全连接层,激活函数,乘法器,输入输出...一切都很壮观,真的可以实现手写数字识别,准确率达到80%。
这一波,恰如网友所说:
这仅仅是力量和耐心的非凡成就。
目前这个视频已经播放过百万次在外网上,甚至引起了乐村的注意:不仅转发了他们的作品,还给出很meta的评价
用Redstone构建卷积神经网络花了6个月。
红石是我的世界里可以传输信号的矿石资源可以用来制作红石电路,然后完成小到自动门,电灯开关,频闪电源的简单机器,大到电梯,自动化农场,盾构机,小游戏平台甚至电脑的复杂工具
该神经网络的结构是基于LeCun在1998年提出的用于实现手写数字识别的经典卷积结构LeNet—5。
毕竟对于随机计算实现乘法,只有一个与门可以代表单极性,一个与门可以代表双极性。
由于在我的世界中无法进行反向传播,所以先在Pytorch中训练网络的权重,然后直接移入。
一般来说,他们使用压缩的LeNet—5首先使用加权窗口扫描图像,提取笔画特征,然后将这些笔画特征送入深度神经网络进行分类识别
具体来说:
首先,输入设备:单脉冲压力板和15×15坐标屏产生坐标信号并在屏幕上书写。
然后手写数字进入卷积层,累加卷积核的覆盖部分,将结果输出到下一层。
其中包括:
为了保证输入数据可以非线性映射到高维特征空间,然后进行线性分类,输出经过激活函数ReLU,
因为卷积不能自由移动,所以直接堆叠,然后通过硬线连接到平板输入。
然后,是全连接层每层由若干个神经网络组成,每个神经元连接多个输入,产生一个输出神经元的每个输入被加权和累加,然后被带入激活函数输出
整个连接层采用随机计算,激活函数采用非线性双曲正切。的实际神经元电路如下:
最后一层的输出使用模拟计数器统计5Hz字符串中1的个数,容量为1024。
最后在输出部分,计数器的高4位连接到计数板,然后电路选择最大值,将结果显示在面板上。
结构概述:
网络架构概述:
此外,它的单次理论识别时间约为5分钟,但没想到《我的世界》的计算能力真的有限——在实际测试中,可能需要40多分钟。
由此得出结论,《我的世界》随机计算神经网络在时间成本上并不一定优于全精度网络可是,还没有人制造出一个完全精确的网络
工作量和难度都很大
在这部作品的评论区,有很多赞美和崇拜——
有网友看了大佬们的大作后,甚至开始怀疑他们不是在和up主们玩一场游戏。
还有人指出,虽然最终的功能只相当于机器学习中的hello world,但用游戏中提供的红石组件来重现,可以说是费了很大的功夫和难度。
虽然最终识别速度较慢,但这里讨论效率意义不大。
言下之意是,它本身就是有价值的我们无法将cpu的两个线程嵌套在无数层模拟器后的识别效率与显卡进行比较
最后有人感叹:好了,现在有了红石神经网络,硬盘,CPU,显示器早就有了红石超级计算机不远了吗
也许到时候我们可以在MC里面玩MC ~
陈扎脑头2014年开始接触游戏《我的世界》他曾经做过编码汉字的显示器和8位CPU
当被问到为什么一个非计算机专业的学生要建神经网络时,他告诉我们他其实参加过一个信息竞赛由于之前接触过随机计算,他之所以开始这个项目,是因为他原本想展示随机计算在一个特定任务下的优越性
最后,为了建立一个完整的神经网络,他读了50+页的英文文献,写了1000多行代码。
要说最难/最耗时的部分,他回答:全连接层调试,因为运行速度慢,随机计算很难发现问题。
对于未来,up主表示正在考虑打造一款支持RISC—V指令集的红石CPU。
查了一下,好像还没有人做出来。值得期待~
哔哩哔哩视频:
原理介绍: