質問

免責事項:私は数学の天才ではなく、ニューラルネットワークの記述経験もありません。だから、ここで私が偶然言ったことを許してください。 ;)

機械学習に使用されるニューラルネットワークについては常に読んでいますが、単純な仮想マシンの作成を試している間、それらを別の方法で適用できるかどうか疑問に思い始めました。

具体的には、仮想マシンをニューラルネットワークとして作成できますか?その場合、どのように機能しますか(必要に応じてここで抽象的な説明を使用してください)。

Joycean Machineについて聞いたことがありますが、非常に曖昧な説明以外の情報は見つかりません。

編集:ここで探しているのは、ニューラルネットワークベースのVMがアセンブリを解釈する方法の正確な説明です。入力はどのように処理されますか?個々の入力はメモリアドレスになりますか?ブレインストーミングしましょう!

役に立ちましたか?

解決

あなたは本当に私の一日の相棒を作りました...

すでに訓練されたニューラルネットワークは通常のステートマシンとそれほど変わらないため、決定論的な命令セット用のニューラルネットワークVMを記述する意味はありません。

このようなVMを複数の命令セットまたは未知のセットでトレーニングすることは興味深いかもしれません。ただし、このようなトレーニングを実行することは実用的ではなく、%99の正しいインタープリターでさえ、従来のバイトコードに使用できます。

私が考えることができるニューラルネットワークVMの唯一の使用は、ファジーロジック構造またはAIアルゴリズムヒューリスティックを含むプログラムの実行です。

アイデアを示すための愚かなスタックマシンの例:

push [x1]
push [y1] ;start coord
push [x2]
push [y2] ;end coord
pushmap [map] ;some struct
stepastar ;push the next step of A* heuristics to accumulator and update the map
pop ;do sth with is and pop
stepastar ;next step again
... ;stack top is a map
reward ;we liked the coordinate. reinforce the heuristic
stepastar
... ;stack top is a map
punish ;we didn't like the next coordinate. try something different

ここには明示的なヒューリスティックはありません。ヒューリスティックアルゴリズムを含むすべての状態を* mapに保持すると仮定します。

見た目は馬鹿げており、完全に文脈依存ではありませんが、ニューラルネットワークはオンラインで学習しなければ意味がありません。

他のヒント

もちろん。かなり複雑なネットワークでは間違いありません。

バイトコード/オペコードの解析の多くは、ニューラルネットワークが優れているパターンマッチングです。

あなたは確かにニューラルネットワークでこれを行うことができます-私は簡単に特定のバイトコードの正しい状態遷移を学ぶことがわかりました。

入力は次のようになります。

  • スタックの先頭の値
  • 現在のアキュムレータの値
  • 現在の命令ポインタのバイトコード
  • 現在のデータポインターのバイト値
  • 以前のフラグ

出力は次のようになります:

  • 命令ポインタへの変更
  • データポインターへの変更
  • アキュムレーターへの変更
  • スタック操作(プッシュ、ポップ、またはなし)
  • メモリー操作(アキュムレーターへの読み取り、アキュムレーターへの書き込み、またはなし)
  • 新しいフラグ

ただし、最初にこれを行う理由はわかりません。ニューラルネットワークは、単にバイトコードを直接実行する場合と比較して、効率がはるかに低くなります(十分にトレーニングしない限り間違いを犯す可能性があります)。十分なトレーニングデータを作成するために、とにかく正確なバイトコードエバリュエーターを記述する必要があります。...

また、私の経験では、ニューラルネットワークはパターン認識が得意である傾向がありますが、特定のスケール(数ビット以上)を超えると、論理演算(バイナリ加算やXORなど)の学習が非常に得意になります。したがって、命令セットの複雑さによっては、ネットワークのトレーニングに非常に長い時間がかかる場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top