機器之心報道
編輯:杜偉
神奇的紅石,神奇的我的世界,不可思議的 UP 主。
在我的世界(Minecraft)中,紅石是一種非常重要的物品。它是遊戲中的一種獨特材料,開關、紅石火把和紅石塊等能對導線或物體提供類似電流的能量。
紅石電路可以為你建造用于控制或激活其他機械的結構,其本身既可以被設計為用于響應玩家的手動激活,也可以反複輸出信号或者響應非玩家引發的變化,如生物移動、物品掉落、植物生長、日夜更替等等。
因此,在我的世界中,紅石能夠控制的機械類别極其多,小到簡單機械如自動門、光開關和頻閃電源,大到占地巨大的電梯、自動農場、小遊戲平台甚至遊戲内建的計算機。
近日,B 站 UP 主 @辰占鳌頭等人在我的世界中實現了真正的「紅石人工智能」,他們耗時六個月,構建了世界上首個純紅石神經網絡,任務是識别 15×15 手寫數字。
作者表示,他們使用非傳統的計算方式——随機計算來實現神經網絡,在設計和布局上比傳統全精度計算簡單許多,并且單次理論識别時間僅為 5 分鐘。
這個純紅石神經網絡完成了機器學習領域常見的圖像識别任務——手寫數字識别,并且準确率達到了 80%(在 MNIST 數據集上模拟)。
在實現的過程中,作者使用到的各種元素包括如下:
單個神經元接受多個輸入并産生一個輸出。
加入「乘法器」,僅使用随機數和單個邏輯門運算小數乘法。
神經元陣列輸出識别結果或傳遞到下一層。
各數字的置信度。
卷積層用來提取筆畫特征。
全連接第一層:壓縮信息并分類。
激活函數陣列:将數據非線性地映射到高維特征空間。
全連接第二、三層:進一步分類并輸出識别結果。
作者表示,該網絡使用的架構是壓縮的 LeNet-5,準确率達到 80%。
不過,受限于 Minecraft 的運算能力,實際識别時間超過 20 分鐘。盡管如此,這仍是紅石數電領域的重大突破,也可能啟發現實中的硬件神經網絡。
目前,視頻的播放量已經超過 80 萬,全 B 站排行榜最高第 39 名,讓各路網友歎為觀止。就連圖靈獎得主 Yann LeCun 也在 Facebook 上轉發了該視頻,表示「一位非常有耐心且堅持不懈的人使用紅石在我的世界中實現了 LeNet-5。」LeCun 是 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%。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!