Minecraftにおいて、レッドストーンは非常に重要なアイテムです。これはゲーム内でユニークなマテリアルであり、スイッチ、レッドストーン トーチ、レッドストーン ブロックは、ワイヤーやオブジェクトに電気のようなエネルギーを供給できます。
レッドストーン回路は、他の機械を制御したり起動したりするための構造を構築するために使用できます。回路自体は、プレイヤーによる手動起動に応答するように設計したり、繰り返したりすることができます信号を出力したり、生き物の動き、アイテムのドロップ、植物の成長、昼夜の変化など、プレイヤーが誘発しない変化に応答したりします。
したがって、私の世界では、レッドストーンは、自動ドア、照明スイッチ、ストロボ電源などの単純な機械から、巨大なエレベーター、自動農場、ミニゲームプラットフォームに至るまで、非常に多くの種類の機械を制御できます。ゲームに組み込まれたコンピューターさえも。
最近、Bilibili UP のオーナーである @chenzhanaotou らは、Minecraft で本物の「レッド ストーン人工知能」を実現し、15×15 の手書き数字を認識する任務を負った世界初の純粋なレッド ストーン ニューラル ネットワークを 6 か月かけて構築しました。
著者らは、ニューラル ネットワークを実装するために非伝統的な計算方法、つまりランダム計算を使用したと述べています。設計とレイアウトは従来の完全精度計算よりもはるかに単純で、単一の理論的認識時間はわずか 5 です。分。
この純粋なレッドストーン ニューラル ネットワークは、機械学習の分野における一般的な画像認識タスクである手書きの数字認識を完了し、精度は 80% に達しました ( MNIST ではデータセット上でシミュレートされます)。
実装プロセスでは、作成者が使用するさまざまな要素には次のものが含まれます。 #単一のニューロンが複数のニューロンを受け取ります。入力して 1 つの出力を生成します。 乱数と単一の論理ゲートのみを使用して 10 進乗算を実行するには、「乗算器」を追加します。#ニューロンアレイは認識結果を出力したり、次の層に渡したりします。
各数値の信頼度。
#畳み込み層は、ストロークの特徴を抽出するために使用されます。 完全接続の最初の層: 情報を圧縮して分類します。 アクティベーション関数配列: データを高次元特徴空間に非線形にマッピングします。 完全に接続された 2 番目と 3 番目の層: 認識結果をさらに分類して出力します。 著者は、ネットワークで使用されているアーキテクチャは圧縮された LeNet-5 であり、精度は 80% であると述べています。 ただし、Minecraft の計算能力により、実際の認識時間は 20 分を超えます。それにもかかわらず、これは依然としてレッドストーン デジタル エレクトロニクスの分野における大きな進歩であり、現実のハードウェア ニューラル ネットワークにも影響を与える可能性があります。 現在、この動画は80万回以上再生され、ビリビリランキング最高39位にランクインし、各界のネチズンを驚かせている。チューリング賞受賞者のヤン・ルカン氏でさえ、このビデオを Facebook に再投稿し、「非常に忍耐強く粘り強い人がレッドストーンを使用して私の世界に LeNet-5 を実装してくれました。」ルカン氏は LeNet アーキテクチャの提案者です。【Minecraft】世界初の純粋なレッドストーンニューラルネットワーク!本物のレッドストーン人工知能 (中国語/英語) [Minecraft] Redstone Convolutional Neural Network - Principle
の背後にある原理は、別のビデオ「[Minecraft] Redstone Convolution In "Neural Network - Principle"」にあります。では、著者がレッドストーン畳み込みニューラルネットワークの原理を詳しく解説しています。一般に、圧縮された LeNet-5 畳み込みニューラル ネットワークが使用されます。畳み込みはネットワーク計算の最初のステップです。重み付きウィンドウ (畳み込みカーネル) を使用して画像を 1 つずつスキャンし、ストロークの特徴を抽出します。
その後、これらのストロークの特徴は、分類と認識のためにディープ ニューラル ネットワーク (完全に接続された層) に入力されます。
Minecraft でのレッドストーン ニューラル ネットワークの実装
著者は最初に、シングル パルス、圧力プレート書き込みタブレットなどの入力デバイスをリストします。 15×15座標画面。手書きパッドは毎回 2 ティックの座標信号を生成し、画面上に描画します。
#入力された手書き数字はコンボリューション層に入り、コンボリューションカーネルのカバーされた部分を累積して次の層に出力する計算方法です。さらに、非線形性を確保するために、出力は ReLU 関数も通過します。#畳み込みカーネルは 3x3 しかないため、作者は電気モデル演算を直接使用し、出力端で ReLU を自動的に実行します。 。
また、コンボリューションはアニメーションのように動かすことができないため、ダイレクトスタッキング方式を採用し、ハード配線で手書きパッド入力に接続しています。 。
#全結合層では、各層は複数のニューラル ネットワークで構成されます。各ニューロンは複数の入力を接続し、出力を生成します。ニューロンは各入力に重みを付けて蓄積し、それを活性化関数の出力に送り込みます。重み付けされた合計は「線形除算」であり、次元を増やすには活性化関数が非線形でなければならないことに注意してください。著者は活性化関数としてtanh(双曲線正接)を使用しました。は、次の図に示すように、実際のニューロン回路に反映されます。
同時に、重量がスローワーに保存されます (アイテムの比率を調整して、さまざまな周波数のランダムな文字列を生成するために使用されます)。入力は次のとおりです。重量を掛けてモジュールを通過し、合計します。
最終的な回路実装
回路実装としては、まずアナログ電気計算で加算を計算し、デジタル電気信号に変換します。アキュムレータは、オーバーフローしないように、別の Up マスターによって提供される 2tick パイプライン加算器から変更されています。
ニューロンは積層されて、完全に接続された層を形成します。
#最後の層の出力と層間バッファは、「1」の数をカウントできる次のアナログ カウンタを使用します。 5Hz ストリングの場合、容量は 1024 です。 最後に出力層で、カウンタの上位 4 ビットが計数ボードに接続され、回路が最大値を選択して表示します。出力パネル。 ビデオの最後で、著者は次の図に示すように、最終的なネットワーク構造を示しています。このうち、重みの範囲は [-1, 1]、ランダム文字列の長さは 1024、MNIST データセット上の精度は約 80% です。ただし、文字列の長さが 256 の場合、精度は 62% にすぎません。# #####################################
以上が「Bilibili UP のオーナーは世界初のレッドストーン ベースのニューラル ネットワークの作成に成功しました。これはソーシャル メディアでセンセーションを巻き起こし、Yann LeCun によって賞賛されました。」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。