在《我的世界》里搭建神经网络,这位印度小哥开发的新玩法火了
本文來自于量子位(ID:QbitAI),作者丨曉查凌晨,鈦媒體經授權發布。
可能是疫情吧,大家在現實中行動受限,就越來越多去游戲世界中釋放天性。
前有《我的世界》舉辦畢業典禮,后有《動物森友會》舉辦 AI 會議。最近《我的世界》又被大神帶來了硬核玩法:
你以為他在涂鴉?不!其實他在進行神經網絡的推理。
你如果是一個熟悉神經網絡的人,想必已經猜出來了。
圖片里這位玩家做的正是MNIST手寫數字分類網絡。
只需用劍在墻壁上畫出數字,神經網絡就能知道你寫的是幾。不僅僅如此,神經網絡在推理過程中,哪些神經元被激活,都可以在這里看得一清二楚。
這個腦洞大開的玩家是一位來自印度的小哥Ashutosh Sathe,游戲項目叫做Scarpet-nn。
Sathe 不僅放出了試玩視頻,還開源了代碼,如果你是《我的世界》玩家+神經網絡煉丹師,那么你也可以把自己的網絡放在游戲里。
Scarpet-nn 支持卷積層和完全連接層,允許在單個世界中運行多個神經網絡。而且可以展示中間張量的逐塊激活,甚至還能一次運行多個神經網絡。
Sathe 小哥到底是怎么想到用《我的世界》來搭建神經網絡的呢?
像素風和神經網絡是絕配
我的世界里那一個個像素色塊簡直就是顯示 3 維數組的神器。如果一個長方體的每個小塊都用不同顏色來展示數值,那么一個長方體就可以表示一個張量。
但是用表示的范圍有限,我的世界地圖里的資源也有限,在神經網絡中顯示 BERT 什么的顯然不切實際。
所以用兩種顏色的色塊表示二值神經網絡(BNN)最合適了。
BNN 是一種高度簡化的神經網絡,權重和激活都只能取兩個值:+1 或-1。但是計算機中二進制的位表示是不同的。因此在 BNN 中,我們將 +1 存儲為 1 為,將-1 存儲為0。
這樣在 BNN 中乘法運算就變成了邏輯門中的同或運算,而邏輯門在《我的世界》中可以用紅石電路造出。
至此,用《我的世界》搭建神經網絡的理論基礎已經完成,下面開始實際操作。
神經網絡轉像素模塊
我們需要在電腦上安裝《我的世界》Java 版,第三方 Mod 也是必不可少的。在這個項目里,我們要安裝Litematica和carpetmod兩個 Mod。
另外還需要通過Python3安裝PyTorch和nbtlib。
接下來就是“煉丹”,先在 PyTorch 里訓練好你的二值神經網絡。
Litematica 是一個幫助用戶從零開始繪制示意圖的模塊,它可以準確地構建結構,指定將塊放置在何處。
運行 modeltolitematica.py 將神經網絡的所有層轉換為不同的 Litematica 示意圖。每個示意圖僅包含一層神經網絡。
圖中以紫色表示 +1 的塊,以綠色代表-1 的塊。
在這一步后,你會獲得一組示意圖文件,后綴名為 .litematica。文件的名稱和你命名的網絡層相同,比如 conv1.weight.litematica、fc2.weight.litematica 等等。將相應文件導入即可。
把神經網絡鋪在地上
由于卷積層會出現 4 維數組,這在 3 維空間里是沒法表示的,因此這個過程中還加入了壓縮。
一般卷積層的形式是:[c2, c1, fh, fw]。其中 c2 是輸出激活的通道數量,c1 是輸入激活的通道數量,fh 和 fw 是卷積濾波器的高度和寬度。
通過 scarpet-nn 將后兩個維度乘起來,變成[c2, c1, fh× fw],這樣就解決了 3 維顯示問題。
而全連接層都是 2 維的,不存在不能顯示的狀況,因此不需要做任何調整。
然后你就可以在空地上繪制一張 16×16 的輸入圖像了。
將卷積層導入地圖后,你就可以進行神經網絡運算了。
最后,作者還給出了一個 MNIST 示意圖 MineCraft 文件包,如果只想簡單看看實際運行效果,可以在我們的公眾號中回復我的世界獲取。
不得不說,《我的世界》里大神太多,之前有復旦本科生從零計算機,現在又有印度小哥從零打造神經網絡。
(相關閱讀:在《我的世界》里從零打造一臺計算機有多難?復旦本科生大神花費了一年心血)
只是現在的模塊還不能在《我的世界》里訓練神經網絡,相信在這些大神的努力下,未來用《我的世界》煉丹也不是夢。
傳送門
博客地址:
https://ashutoshbsathe.github.io/scarpet-nn/scarpet-apps/twoclassmnist/
Litematica 下載地址:
http://minecraft.curseforge.com/projects/litematica
源代碼:
https://github.com/ashutoshbsathe/scarpet-nn
總結
以上是生活随笔為你收集整理的在《我的世界》里搭建神经网络,这位印度小哥开发的新玩法火了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 27万元硬碰硬,买小鹏P7还是特斯拉Mo
- 下一篇: 比亚迪“两肋插刀”