モク バージョン 3.3 新しい ニューラルネットワーク 楽器に Moku:Pro これにより、ユーザーは人工ニューラル ネットワークを実装して、高速で柔軟な信号分析、ノイズ除去、センサー調整、閉ループ フィードバックなどを行うことができます。ニューラル ネットワークの基礎に詳しくない方や、研究開発の目標にニューラル ネットワークがどのように役立つかを知りたい方は、実際のアプリケーションとチュートリアルを読んでください。

まず、これらのシステムは生物学的ニューロンではなくソフトウェアベースであるため、「人工ニューラル ネットワーク」(ANN) という用語の方が正確であることに留意することが重要です。この説明を念頭に置き、ANN を指すのに「ニューラル ネットワーク」という用語を使用します。この導入では、畳み込み、再帰、トランスフォーマー アーキテクチャなどの複雑な設定ではなく、完全に接続されたニューラル ネットワークのみを検討します。

ニューラルネットワークは、層状に配置された相互接続されたノード(ニューロン)のシステムです。最初の層は外部データを入力として受け取ります。後続の各ニューロンは、前の層からの入力の重み付け和を計算し、バイアスと呼ばれる値を加算します。この値は活性化関数に渡され、非線形性が導入されることで、ネットワークは複雑なパターンを学習できるようになります。最終層はネットワークの出力を生成し、その間にあるすべての層は隠れ層と呼ばれます。学習を通じて、ネットワークは重みとバイアスを調整し、時間の経過とともに精度を向上させます。

数学的に言えば、入力層を 1 ✕ XNUMX 行列、ここで N は入力層のノード数であり、行列の各要素は図 1 に示すように活性化値に対応します。

図 1: 入力層、隠し層、出力層を示すニューラル ネットワーク アーキテクチャ。

次は隠し層です。隠し層の数と隠し層内のノードの数は、モデルの複雑さと利用可能な計算能力によって異なります。隠し層のアクティベーションは、前の層のアクティベーションの組み合わせを使用して計算され、各ノードは入力層の値に異なる重みとバイアスを適用します。これは、図 2 に線形代数で示されています。 

図 2: 隠れ層のアクティベーションは、前の層のアクティベーションの組み合わせを使用して計算されます。

入力層が 1 ✕ XNUMX 行列 (\(n_1\), \(n_2\))の場合、次の活性化はこれに ま✕N 行列、ここで M は隠れ層のノード数である。行列の各要素は\(w_{mn}\)で表される重みである。これは、 MN 各レイヤーにはパラメータが必要です。結果は ま ✕ 1 行列はバイアス値(\(b_1\), \(b_2\)…)。新しいアクティベーションを計算した後、それらは「アクティベーション関数」に渡されます。アクティベーション関数は、クリッピングや正規化などの非線形動作を提供できるため、ネットワークは、単なる一連の行列乗算の場合よりもはるかに強力になります。

各活性化関数にはそれぞれ異なる特性があり、「正しい」選択はアプリケーションに大きく依存します。一般的な選択肢としてはReLU(Rectified Linear Unit)が挙げられます。これは計算効率に優れていますが、負の値を切り捨てるため、特定のトレーニングシナリオでは問題が生じる可能性があります。Tanh関数やシグモイド関数などは、分類には有用な滑らかで有界な出力を生成しますが、入力値が大きいと曲線が平坦になるため、深層ネットワークでは学習効果が弱まる可能性があります。最後に、線形関数は回帰タスクには適していますが、複雑で非線形なパターンをモデル化するネットワークの能力を制限します。レイヤーごとに異なる活性化関数を使用することができ、その選択は具体的なアプリケーション要件とネットワークアーキテクチャによって異なります。

データは、いくつかの隠れ層を通過した後、最終的に出力層に到達します。出力ノードでは、アクティベーションの値は、関心のあるパラメータに対応します。たとえば、オシロスコープから収集された時系列データが入力に供給され、ネットワークの目標が信号を正弦波、方形波、のこぎり波、または DC 信号として分類することであるとします。出力層では、各ノードがこれらのオプションのいずれかに対応し、最も高い値のアクティベーションは、信号の形式に関するネットワークの最善の推測を表します。1 つのアクティベーションが 0 に近く、その他が XNUMX に近い場合、ネットワークの推測の信頼性は高くなります。アクティベーションの値が似ている場合、回答の信頼性が低いことを示します。

ニューラルネットワークはどのように機能するのでしょうか?

隠れ層の重みとバイアスを調整しないと、ニューラル ネットワークは複雑な乱数生成器に過ぎなくなります。モデルの精度を向上させるには、ユーザーは入力データセットと予想される答えの両方がわかっているトレーニング データを提供する必要があります。その後、モデルはトレーニング セットに対する独自の答えを計算し、それを真の値と比較できます。計算された差はコスト関数と呼ばれ、モデルのパフォーマンスを定量的に評価します。

モデルは、学習を通じてこのコスト関数を削減することを目的としています。例えば、平均二乗誤差(MSE)は、予測値と実数値の差の二乗平均を求めます。オプティマイザーは、このコスト関数を効率的に最小化するために使用される手法です。KerasなどのPython用機械学習パッケージは、適切なコスト関数とオプティマイザーの選択に役立ちます。

与えられたデータセットのコスト関数を計算した後、コスト関数を最小化することを目指して、さまざまな計算操作を通じて隠れ層の重みとバイアスを調整することができます。これはベクトル計算における勾配降下法の概念に似ており、文献[1]でさらに詳しく調べることができます。バックプロパゲーションと呼ばれるこのプロセスは、, コスト関数を介して取得された情報がレイヤーを通じて逆方向に処理され、人間の入力なしにモデルが学習したり、モデル自体を調整したりできるようになります。

トレーニング データは、ニューラル ネットワークを複数回通過することがよくあります。モデルに提供されるこのデータの各インスタンスは、エポックと呼ばれます。通常、一部のトレーニング データは検証用に予約されます。検証では、トレーニングされたネットワークを使用して、この予約されたデータ セットからの出力を推測し、その予測を既知の正しい出力と比較します。これにより、モデルが結果を新しい新しい入力にどの程度一般化できるかが示されるため、コスト関数値のみよりもモデルのパフォーマンスのより正確な図が得られます。

ニューラルネットワークにはどのような種類がありますか?

ニューラル ネットワークは同様の原理で動作しますが、アプリケーションに応じてさまざまな形式を取ることができます。一般的なニューラル ネットワークの例をいくつか挙げると、次のようになります。

  • フィードフォワード ニューラル ネットワーク (FNN): これは、上記の例で説明したような標準形式です。FNN では、データはフィードバックや以前の入力のメモリなしでネットワークを介して渡されます。典型的な例は画像で、各ピクセルがニューラル ネットワークへの入力となり、出力はその画像の分類となります。
  • 畳み込みニューラル ネットワーク (CNN): これは FNN のサブタイプで、フィルターを使用して画像の特徴を検出するためによく使用されます。画像は通常サイズが大きいため、これらのフィルターは入力画像の次元をはるかに少ない重みに縮小する働きをします。その後、隠れ層の各ニューロンは入力全体にわたって同じ特徴をスキャンできるため、CNN は画像の変換に対して堅牢になります。
  • リカレント ニューラル ネットワーク (RNN): フィードフォワード ネットワークとは対照的に、RNN では隠れ層でフィードバックを使用します。フィードバック メカニズムによってシステムにメモリが与えられ、特定の層の出力は以前の入力に左右されます。このため、RNN は時系列、音声、オーディオ データなどの連続データ セットに最適です。
  • オートエンコーダー: オートエンコーダーは、ニューラル ネットワーク (通常は FNN または CNN) の特殊な構成であり、特定のデータを縮小された次元空間にエンコードし、エンコードされたデータから再構築 (デコード) します。概念的には、これは統計学やバイオインフォマティクスで役立つ主成分分析 (PCA) と非常によく似ています。

ニューラルネットワークは信号処理でどのように使用されますか? 

ニューラル ネットワークは、大規模な言語モデルの強化、画像の解読、翻訳などによく使用されますが、信号処理にも非常に役立ちます。機械学習によって測定設定を改善できる例をいくつか挙げます。

  • 制御システム: 一部のシステムでは、特定の制御状態を達成するために必要な入力を事前に知ることが困難です。言い換えると、プラント モデルを反転することが困難です。このような場合、波形発生器または関数発生器がプラントをプローブし、オシロスコープが結果の状態を監視します。次に、ニューラル ネットワークは、現在の状態と必要な制御の差から逆マッピングを学習します。PID コントローラーと組み合わせて使用​​すると、PID パラメーターの自動調整が可能になります [2]。
  • センサー調整: ニューラル ネットワークはセンサー データを取得し、ケーブルの位相歪みや遅延、光検出器のビームのずれなどの系統的エラーを補正できます。このアプローチにより、実験の次の段階に渡す前にデータを修正できます。
  • 信号ノイズ除去: この手法では、ニューラル ネットワークをオートエンコーダーとして使用して信号の主要な特徴を抽出し、これらの特徴に基づいて信号を再構築します。ランダム ノイズは主要な特徴ではないため、再構築された信号はノイズのない状態になるはずです。これは、図 3 に示すように、ニューラル ネットワークをノイズ フィルターとして使用するためです。
  • 信号分類:ニューラルネットワークは、時系列などの入力信号を既知のテンプレートまたは一連のテンプレートと比較することができます。これにより、ユーザーは信号クラスを素早く分類したり、データセット内の外れ値やエラーを識別したり、ランダムイベントを検出したり、IQ直交振幅に基づいて量子状態を識別したりすることができます[3]。

図 3: ニューラル ネットワークに送られた後に再構築され、ノイズが除去された信号。 

FPGA ベースのニューラル ネットワークの利点は何ですか?

ニューラル ネットワークは通常、CPU と GPU の組み合わせで構築され、実行されます。このアプローチは驚異的な計算能力をもたらしますが、リソースを大量に消費します。大規模な AI モデルは大量のエネルギーを消費し、前述の種類の信号処理アプリケーションには過剰な場合がよくあります。

比較すると、FPGAはハイエンドコンピュータほど本質的に強力ではありません。しかし、その柔軟性により、小規模ニューラルネットワークの実装には最適な選択肢となります。FPGAの並列処理能力は、ネットワークを介した情報の順方向および逆方向伝播に関わる線形代数やその他の複雑な数学処理に有効です。FPGAの空間容量とメモリ容量によってシングルサイクル処理が制限されるため、大規模なニューラルネットワークでは、フィードフォワードパスに必要なサイクル数が増加することがよくあります。

FPGAベースのニューラルネットワークは、リアルタイムデータを処理する速度により、ホストPCと通信することなく迅速な制御と意思決定が可能になるため、実験的な状況に最適です。また、FPGAは再構成可能なので、ユーザーは自分のニーズに合わせてニューラルネットワークをすばやく構成できます。最後に、FPGAに実装されたニューラルネットワークはコンパクトなため、リソースとエネルギーの消費を削減するのに役立ちます[4][5]。

Moku ニューラルネットワークとは何ですか?

再構成可能な高速で柔軟なFPGAベースのテストおよび測定機器スイートに加えて、 Moku:Pro 今ならMokuがご利用いただけます ニューラルネットワークFPGAの汎用性と高速処理速度の恩恵を受け、ニューラルネットワークは、次のような他のMoku機器と一緒に使用できます。 波形発生器, PIDコントローラー, オシロスコープ 信号解析、ノイズ除去、センサー調整、閉ループフィードバックなどのアプリケーションに使用されます。 

あなたが使用することができます Python Mokuニューラルネットワークを使用して独自のニューラルネットワークを開発およびトレーニングし、Moku:Proにアップロードします。 マルチインストゥルメントモードこれにより、最大 100 つの入力チャネル、または XNUMX つの時系列データ チャネルの分析と、実験データをリアルタイムで処理するための最大 XNUMX つの出力の分析が可能になります。これらはすべて Moku:Pro 上で実行できます。Moku ニューラル ネットワークは、最大 XNUMX 個のニューロンからなる最大 XNUMX つの高密度レイヤーと、アプリケーションに応じて XNUMX つの異なるアクティベーション関数を備えています。 

FPGAベースのMokuニューラルネットワークが研究にどのようなメリットをもたらすかに興味がある場合は、こちらをご覧ください。 ステップバイステップのチュートリアルこのガイドでは、Pythonのインストール、Mokuニューラルネットワークの構築とトレーニング、実装など、すべての基本について説明します。ニューラルネットワークの基本概念をすでに理解している場合は、高度なすぐに使用できる例を見つけることができます。 こちら.

ビデオチュートリアルをご希望ですか? オンデマンドのウェビナーを視聴する高速で柔軟な信号解析、クローズドループ フィードバックなどを実現する FPGA ベースのニューラル ネットワークを実装する方法を学習します。

引用

[1] K. Clark、講義、トピック:「ニューラルネットワーク勾配の計算」、CS224n、スタンフォード大学、米国、2019年。 https://web.stanford.edu/class/cs224n/readings/gradient-notes.pdf

[2] J. Wang、M. Li、W. Jiang、Y. Huang、R. Lin、「モーション制御システム向けFPGAベースニューラルネットワークPIDコントローラの設計」 センサ、 巻。 22、いいえ。 3、p. 889、2022 年 XNUMX 月。 https://doi.org/10.3390/s22030889 

[3] NRヴォラ ら、 「MLを活用したFPGAベースのリアルタイム量子状態識別による回路中間測定の実現」arXiv:2406.18807 [quant-ph]、2024年XNUMX月。 

https://arxiv.org/abs/2406.18807 

[4] A. El Bouazzaoui、A. Hadjoudja、O. Mouhib、「FPGA上のリアルタイム適応型ニューラルネットワーク:動的分類子選択による適応性の強化」arXiv:2311.09516v2 [cs.AR]、2023年XNUMX月。 

https://arxiv.org/html/2311.09516v2

[5] C. WangとZ. Luo、「FPGAに基づくニューラルネットワークの最適設計のレビュー」 応用科学、 第12巻第3号、p.10771、2022年XNUMX月。 https://doi.org/10.3390/app122110771 


Mokuをデモモードで試す

macOSとWindows用のMoku:アプリをダウンロードできます こちら.


よくある質問への回答

デバイスや機器に関する質問と回答は、 ナレッジベース .


Mokuユーザーとつながる

プログラムに参加する(英語) ユーザーフォーラム 新しい機能をリクエストしたり、サポートのヒントを共有したり、世界中のユーザー コミュニティとつながったりできます。