查看原文
其他

有人在MC复刻《最伟大的作品》,有人用红石做卷积神经网络,还被LeCun转发

大数据文摘出品


周董的《最伟大的作品》MV毫无意外地火了。


B站1500万+播放,70万+弹幕,直接顶流,这也带动了很多up主的二次创作,B站甚至出现了一个杰威尔音乐发起的视频活动,叫“#周杰伦新歌二创大赛”。


 

真·自己鬼畜自己……


比如这位up主,直接在MC(Minecraft,我的世界)中还原周杰伦《最伟大的作品》!



Up主 @-六氟化氙- 解释道,视频中棕色的方块可以发出各种音符的声音,然后用一定的速度把他们连接起来就可以做出一首音乐了。


当然,这显然不是MC能做的“最伟大的作品”,MC能做的可太多了!比如最近在B站上热门的一个视频——《世界首个纯红石神经网络!真正的红石人工智能》


你敢信?


这个在MC中用红石创造的人工智能模型,是一个LeNet-5架构的手写数字识别模型,熟悉AI的同学,应该都知道这个架构,可以说是AI领域的入门经典模型了,相当于编程中“Hello World”。


但是这样的输入方式,大家大概都没见过。

 


MC中第一个LeNet-5架构神经网络


先带大家看一下MC中第一个LeNet-5架构的神经网络完成版大概的样子。


首先,你得在一块输入板上写下一个数字,这包括一个单脉冲式压力板和一个15×15的坐标屏幕(如上图)。


你在压力板上走出的轨迹就会显示在上面的坐标屏幕中。


随后,你输入的手写数字就会进入卷积层。


当然,因为卷积核没法移动,所以up主直接采取了堆叠的结构,就是搞N个卷积核,放到所有该进行卷积计算的位置,而后通过硬连接线连接到输入板上。

  

同时,为了保证非线性性,输出还要经过ReLU函数,因为卷积核只有3×3,所以可以直接使用模电运算,并在输出端直接连接ReLU。


然后就是全连接层。


全连接层每层由若干个神经元构成,每个神经元都连接多个输入,并产生一个输出,神经元会将每个输入加权累加,然后代入一个激活函数输出。


加权求和是“线性分割”,而激活函数一定是非线性的,用于提升维度。

  

该模型使用tanh作为激活函数。


权重被储存在投掷器里(调整物品配比生成不同的频率的随机串),输入乘以权重后通过模电累加。


当然,这里合作者们采用了非常多巧妙的方式在MC中实现这一过程。下面是实际的神经元电路。

  

堆叠神经元,就得到了整个全连接层。

 

 

在最后的输出层(以及层间缓存)需要使用这样一个模电计数器。

 


这个计数器可以统计模型输出的结果,并且显示到计数板上。

  

最后电路会选取可能性最大的那个,将结果显示到输出版面上,该模型在MNIST数据集上准确率可以达到80%。

  

最后再来看一下整个模型的总览,是不是很壮观?


 

进行一次预测计算需要20分钟


在MC中完成这项非凡壮举的除了up主本人,还有其他合作者。



这个项目也被上传至GitHub,有兴趣的同学可以去看看。

https://github.com/leamoon/StochasticNet


作者表示,他们使用了非传统的计算方式——随机计算来实现神经网络,使得设计和布局上比传统的全精度计算简单许多,且单次理论识别时间仅为5分钟。受限于Minecraft的运算能力,实际识别时间超过20分钟。


并且模型的权重也是训练好了输入进模型的,在MC中训练模型估计还是不太现实。


视频一经发出,也在B站引发了很多讨论。


比如:CPU表示不服~

 


还有:以后就不用TensorFlow和Pytorch了……

 


不得不说,最重磅的还得是这一位。


2018年图灵奖获得者,LeNet架构提出者Yann LeCun教授在Twitter和Facebook上转发了这个项目!

 


这一波,可以说是非常惊喜了。期待以后还能在MC看到他们更多有意思的作品!



点「在看」的人都变好看了哦!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存