当前位置:网站首页>B站大佬用我的世界搞出卷積神經網絡,LeCun轉發!爆肝6個月,播放破百萬

B站大佬用我的世界搞出卷積神經網絡,LeCun轉發!爆肝6個月,播放破百萬

2022-07-06 23:10:00 QbitAl

豐色 發自 凹非寺
量子比特 | 公眾號 QbitAI

非計算機專業、神經網絡小白,爆肝六個月——

在《我的世界》裏搭建一個卷積神經網絡,這是什麼神操作?

7aecf00675fbde8a8b89f006ea8744b2.gif

最近,來自B站up主@辰占鼇頭的作品著實火了一把。

他和朋友們合作完成的這個號稱“世界首個純紅石神經網絡”,神經元、卷積層、全連接層、激活函數、乘法器、輸入、輸出……樣樣俱全、蔚為壯觀,而且可以真的實現手寫數字識別,准確率還達到了80%

b5391eadfdcf4c031b016b5093ae3cfc.gif

這波,妥妥就是如網友所說:

簡直是實力與耐心做出來的超凡成果。

ef44fa62744049b271e23b1b8ea79506.png

目前,這個視頻的播放量已經上了一百萬,在外網,它甚至還引起了LeCun的注意:不僅轉發了他們的作品,還給出了“Very meta”的評價。

e908f5275e1b991a2745a91ba9cf8278.png

耗時6個月,用紅石搭建卷積神經網絡

紅石是我的世界裏一種可以傳遞信號的礦石資源,可以用來制作紅石電路,進而完成小到如自動門、光開關、頻閃電源的簡單機械,大到電梯、自動農場、盾構機、小遊戲平臺甚至計算機的複雜工具。

本次作者們搭建的這個神經網絡的架構,基於LeCun於1998年提出的經典卷積結構LeNet-5,它就是用來實現手寫數字識別的。

相比傳統的全精度計算(乘法器和加法器),作者經過一番思考和估算,决定采用隨機計算的方式來實現這個神經網絡,這樣可以讓設計和布局都簡單一些。

畢竟對於用隨機計算實現乘法來說,只需一個與門就可以錶示單極,一個同或就能錶示雙極。

由於在我的世界中進行反向傳播不太可能,網絡的權重都是先在Pytorch中訓練好,然後直接搬進去。

為了生成由隨機串組成的權重,作者利用“投擲器投擲物品是隨機的”這一原理造了一個隨機數生成器。

總的來說,他們采用的是一個壓縮的LeNet-5,先使用一個帶權重的窗口(卷積核)逐次掃描圖像並提取筆畫特征,然後將這些筆畫特征饋入到深度神經網絡(全連接層)進行分類識別。

f07f5a7d096811ba30244d33e02f3edd.png

具體來說:

首先由輸入設備:一個單脈沖式壓力板手寫板和15×15坐標屏,產生坐標信號,並在屏幕上繪制出筆迹。

e389e0dd89bda1098fd970bb524b31bd.gif

然後手寫數字進入卷積層,累加卷積核被遮蓋的部分,並將結果輸出到下一層。

其中:

(1)在卷積層,作者沒有使用隨機計算,而是使用我的世界中的模擬信號進行加法運算;

(2)為了保證輸入數據可以非線性地映射到高維度特征空間然後進行線性分類,輸出經過了激活函數ReLU;

(3)由於卷積無法隨意移動,所以采用直接堆疊的方式,再通過硬連線連接到手寫板輸入上。

90a475e9fd633bbb966f760feec7ebee.png

隨後,是全連接層。每層由若幹神經網絡構成,每個神經元都連接多個輸入,並產生一個輸出。神經元將每個輸入加權累加,然後帶入一個激活函數輸出。

全連接層使用的是隨機計算,

激活函數用的是非線性的tanh。

實際的神經元電路如下:

d3250b58fbd6feb2ce449e01f7e29690.png

最後一層的輸出使用一個模電計數器,用來統計5Hz串中“1”的數量,容量則為1024。

最終,輸出部分,計數器的高4比特被連接到計數板上,然後電路選取最大的值並在面板上顯示結果。

cefb179ca2b99fd661a1b4aeb85217ad.gif

結構總覽:

3b208745ff904a0fa24e3fe0af572841.png

網絡架構總覽:

794ef537a3ba0ec37c17d3b6621ed643.png

作者介紹,該神經網絡在MNIST數據集上約實現了80%的准確率,作為對比,同權重的全精度網絡的准確率為88%

另外,它的單次理論識別時間約為5分鐘,但沒想到Minecraft的運算能力實在有限——在實際測試中,可能要40分鐘以上。

由此作者得出,Minecraft隨機計算神經網絡在時間開銷上未必優於全精度網絡。不過全精度網絡目前還沒有人做出來。

“工作量和難度都很大”

在這個作品的評論區,都是一水兒的稱贊有加與膜拜(連大V籽岷都冒泡了)——

3fb14f1e1eebe4da5dba2667a7918090.png

7e5c973d45e5c0fddee04907774cce47.png

看完大佬的巨作,有網友甚至開始懷疑自己和up主們玩的不是一個遊戲。(手動狗頭)

9f78499e51f87c33d36dd318c43d8e64.png

還有人指出,別看最終實現的功能只是相當於機器學習中的“hello world”,但用遊戲中提供的紅石元件複現出來,可以說是“工作量和難度都很大”。

因為“這要求作者對算法的底層實現或者硬件執行原理(類似cuda編程)有深刻的理解,還能使用遊戲機制來優化執行過程以及完成並行計算”。

雖然最終識別速度比較慢,但“在這裏探討效率的意義不大”。

言外之意,它本身就很有價值,“我們不能拿cpu的兩個線程經過無數層模擬器嵌套後的識別效率去跟顯卡識別效率比較”。

d5ce75f435369f0c25ad59c3c23ec625.png

最後,還有人感歎:好了,現在紅石神經網絡有了,硬盤、CPU、顯示器也早就有了,紅石超級電腦是不是也不遠了?

9d67117137681c95f81a9122bca570f2.png

“說不定到時我們就能在MC裏玩MC了~”

6964ccc95136ed02d14a199efaa8855b.png

關於作者

這個紅石卷積神經網絡一共有5比特作者,up主@辰占鼇頭是主要貢獻者,負責電路的總體設計、搭建和調試。

他和另外一比特作者@學雜不善([email protected])都是香港科技大學的學生,現在分別攻讀理論物理學博士和電子工程學博士

其他3比特合作者中,有一比特高中剛畢業(@NKID00),另外兩比特(@enadixxoOxoxO和@愛紅石的小章魚)沒有透露自己的身份。

@辰占鼇頭在2014年的時候就開始接觸《我的世界》這款遊戲了,曾做過一個編碼漢字的顯示器和一個8比特的CPU。

0ab20f30d1bfa05c0acc9a0b2f375093.gif

問及為什麼一個非計算機專業的學生想要搭建一個神經網絡時,他告訴我們,其實自己參加過信息競賽,由於之前接觸過隨機計算(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日周四,參與直播,為你解答~

702f5d0e64b1cd8fc24b0cbed899a939.png

點這裏關注我,記得標星哦~

原网站

版权声明
本文为[QbitAl]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207061540302375.html