<tt id="84k2u"></tt>
公司新聞
公司新聞

公司新聞

在我的世界中,B站UP主搭建世界首個純紅石神經網絡,圖靈獎得主Yann LeCun轉贊

2022-09-30 289

文章來源:機器之心

編輯:杜偉

 

神奇的紅石,神奇的我的世界,不可思議的 UP 主。

 

在我的世界(Minecraft)中,紅石是一種非常重要的物品。它是游戲中的一種獨特材料,開關、紅石火把和紅石塊等能對導線或物體提供類似電流的能量。

 

 

紅石電路可以為你建造用于控制或激活其他機械的結構,其本身既可以被設計為用于響應玩家的手動激活,也可以反復輸出信號或者響應非玩家引發的變化,如生物移動、物品掉落、植物生長、日夜更替等等。

 

因此,在我的世界中,紅石能夠控制的機械類別極其多,小到簡單機械如自動門、光開關和頻閃電源,大到占地巨大的電梯、自動農場、小游戲平臺甚至游戲內建的計算機。

 

近日,B 站 UP 主 @辰占鰲頭等人在我的世界中實現了真正的「紅石人工智能」,他們耗時六個月,構建了世界上首個純紅石神經網絡,任務是識別 15×15 手寫數字。

 

作者表示,他們使用非傳統的計算方式——隨機計算來實現神經網絡,在設計和布局上比傳統全精度計算簡單許多,并且單次理論識別時間僅為 5 分鐘。

 

 

這個純紅石神經網絡完成了機器學習領域常見的圖像識別任務——手寫數字識別,并且準確率達到了 80%(在 MNIST 數據集上模擬)。

 

 

在實現的過程中,作者使用到的各種元素包括如下:

 

單個神經元接受多個輸入并產生一個輸出。

 

加入「乘法器」,僅使用隨機數和單個邏輯門運算小數乘法。

 

 

神經元陣列輸出識別結果或傳遞到下一層。

 

各數字的置信度。

 

 

卷積層用來提取筆畫特征。

 

全連接第一層:壓縮信息并分類。

 

激活函數陣列:將數據非線性地映射到高維特征空間。

 

全連接第二、三層:進一步分類并輸出識別結果。

 

作者表示,該網絡使用的架構是壓縮的 LeNet-5,準確率達到 80%。

 

不過,受限于 Minecraft 的運算能力,實際識別時間超過 20 分鐘。盡管如此,這仍是紅石數電領域的重大突破,也可能啟發現實中的硬件神經網絡。

 

目前,視頻的播放量已經超過 80 萬,全 B 站排行榜最高第 39 名,讓各路網友嘆為觀止。就連圖靈獎得主 Yann LeCun 也在 Facebook 上轉發了該視頻,表示「一位非常有耐心且堅持不懈的人使用紅石在我的世界中實現了 LeNet-5?!筁eCun 是 LeNet 架構提出者。

 

 

【Minecraft】世界首個純紅石神經網絡!真正的紅石人工智能(中文/English)

 

【Minecraft】紅石卷積神經網絡——原理

 

 

背后的原理

 

在另外一個視頻《【Minecraft】紅石卷積神經網絡——原理》中,作者詳細解釋了紅石卷積神經網絡的原理。

 

總的來說,他們使用的是壓縮的 LeNet-5 卷積神經網絡,卷積是網絡的第一步計算,使用一個帶權重的窗口(卷積核)逐次掃描圖像并提取筆畫特征。

 

 

然后將這些筆畫特征饋入到深度神經網絡(全連接層)進行分類識別。

 

 

在我的世界中實現紅石神經網絡

 

作者首先列出了輸入設備,包括一個單脈沖式壓力板手寫板和 15×15 坐標屏。其中手寫板每次產生 2tick 的坐標信號,接著由屏幕繪制。

 

 

隨后輸入的手寫數字進入卷積層,計算方法是累加卷積核被遮蓋的部分,并將結果輸出到下一層。并且,為了保證非線性,輸出還經過了 ReLU 函數。

 

 

由于卷積核只有 3×3,因而作者直接使用了電模運算,并在輸出端自動進行 ReLU。

 

 

另外,又由于卷積無法像動畫里那樣移動,所以采用了直接堆疊的方式,再通過硬連線連接到手寫板輸入上。


 

到了全連接層,它的每層由若干神經網絡構成。每個神經元都連接多個輸入,并產生一個輸出。神經元將每個輸入加權累加,然后帶入一個激活函數輸出。

 

需要注意的是,加權求和是「線性分割」,而激活函數一定是非線性的,用于提升維度。作者使用了 tanh(雙曲正切)作為了激活函數。

 

 

反映到實際的神經元電路中,如下圖所示。

 

 

同時,權重被儲存在投擲器(用來調整物品配比生成不同頻率的隨機串)中,輸入乘以權重后通過模電累加。

 


 

最終電路實現

 

關于電路實現,首先通過模電計算加法,然后轉為數電信號。

 

 

累加器則是改裝了另一位 Up 主提供的 2tick 流水線加法器,使之不會溢出。

 

 

接著堆疊神經元,構成一個全連接層。

 

 

最后一層的輸出以及層間緩存使用如下模電計數器,它可以統計 5Hz 串中「1」的數量,容量則為 1024。

 

 

最后在輸出層,計數器的高 4 位被連接到計數板上,然后電路選取最大的值并在輸出面板上顯示。

 


 


視頻最后,作者展示了最終的網絡結構,如下圖所示。其中,權重范圍為 [-1, 1],隨機串長度為 1024,MNIST 數據集上的準確率約為 80%。不過當串長為 256 時,準確率僅為 62%。