最初の論文によると、走行は問題ではありません。それが目的でした。最大の重みに制限があるだけです。
現在、このマイクロコントローラーに組み込まれているアーキテクチャーの制限は、必要な重みの数によってのみ制限されています。ニューラルネットワークは現在256の重みに制限されています。ただし、ほとんどの組み込みアプリケーションでは、この256の重みでシステムが制限されることはありません。
トレーニングに関しては、説明されている実装を理解している限り、PICコントローラーは外部ソースからパラメーターを受け取ります。
ニューラルネットワークの前方計算は、各ニューロンが一連のネストされたループで個別に計算されるように記述されています。各ループの計算数と各ノードの値はすべて、メモリ内の単純な配列に格納されます。
[...]
これらのアレイには、アーキテクチャとネットワークの重みが含まれています。現在、デモンストレーションの目的で、これらのアレイはチップのプログラム時にプリロードされていますが、最終バージョンではこれは必要ありません。マイクロコントローラーは、遠隔地から重量と地形のデータを受信するオンボードRS232シリアルポートを利用する単純なブートローダーを含むように簡単に変更できます。これにより、チップがフィールドにある間に、重みまたはネットワーク全体を変更することもできます。
訓練も外部で行われているのではないでしょうか。
また、PICのメモリに事前にプログラムされた値を決定するために使用されたと思われるニューラルネットワークトレーナーの参考資料も示します。
ここで、ネットワークアーキテクチャとそれらで使用するアルゴリズムを説明する最初の1つを調べました。ただし、ここで使用するニューラルネットワークトレーナーソフトウェアは、MATLABで実装されています。
現在、完全に接続されたネットワークをトレーニングする利用可能なニューラルネットワークトレーニングソフトウェアはほとんどありません。したがって、グラフィカルユーザーインターフェイスを備えたパッケージは、その目的のためにMATLABで開発されました。このソフトウェアを使用すると、ユーザーは非常に複雑なアーキテクチャだけでなく、初期の重み、トレーニングパラメーター、データセット、およびいくつかの強力なアルゴリズムの選択を簡単に入力できます。
完全に接続されたネットワークは、同じタスクに対して、レイヤーごとのアーキテクチャよりも重みの数が少ないことを述べなければなりません。それはそれをマイクロコントローラーにより適しています。
私はニューラルネットワークの専門家ではなく、かなり複雑なので間違っている可能性がありますが、これらの論文に基づいて、コットン、ウィラモウスキー、デュンダルのアプローチには、トレーニングを実行するための外部のより強力なプラットフォームが必要だと言えます。
マイクロコントローラ上のニューラルネットワークの実行について、STマイクロエレクトロニクスは、ただのツールキットを発表しましたSTM32用に最適化されたコードに変換ニューラルネットワーク:STM32Cube.AIをコンバートする前訓練を受けた彼らのSTM32マイコンのほとんどに人気のあるライブラリからのニューラルネットワーク。