Arduino Unoなどのマイクロプロセッサに単純なニューラルネットワークを実装して、機械学習で使用できますか?
Arduino Unoなどのマイクロプロセッサに単純なニューラルネットワークを実装して、機械学習で使用できますか?
回答:
マイクロコントローラーでニューラルネットワークをトレーニングできますか?たぶん、でも試さないでください。マイクロコントローラの分類などにNNを使用できますか?確かに、ノードとエッジの値の伝播の結果を計算し、乗算を処理できる限り。
Arduinoでこれを実装することは確かに可能です。以下に、ニューラルネットワークを実装する3つのArduinoライブラリを示します。
Arduinoが処理できるネットワークの複雑さは、特にトレーニングに関しては別の問題です-トレーニングデータでの数万回の反復。高速なマシンでトレーニングし、ニューロンの重みをArduinoにコピーすることは、実装を開発する賢い方法です。
はい。フィードフォワードモードでのみ実行し、他の場所でオフラインでトレーニングを行う場合:
Arduino UNOで3層(5-5-2)フィードフォワードANNをプログラムしました。移動ロボットで走りました。ロボットが何かにぶつかると、ネットワークを再訓練します。ネットのフィードフォワード部分はリアルタイムで実行されました。一方、バックプロパゲーショントレーニングは約5〜20秒かかりました。ネットワークのサイズを調整するだけでなく、パラメーターを使用して少し高速化することもできますが、Arduinoで逆伝搬を行う予定がある場合は遅すぎると思います。
物事をスピードアップするためのいくつかの考えが含まれます:
ここでは簡単だ、ライトアップ、私はネットワークのでしたが。
はい、確かに、マイクロコントローラーにニューラルネットワークを組み込むことは可能です。科学文献にはこのような例が数多くありますが、賢明であれば、非常に単純なMCUで何ができるかという印象的な例を挙げることができます。で進化Bits'n'Spikes、著者は、ニューラルネットワークと差動ホイールロボットを制御するために、それを訓練するために、遺伝的アルゴリズムをスパイクリアルタイムの実装を記述します。コード全体は、1立方インチのアリスロボットに組み込まれた小さなPIC16F628 4MHz MCUで実行されます。