メインコンテンツまでスキップ

前処理と変換

前処理を、混沌とした実世界とニューラルネットワークの精密なロジックの間に位置する「翻訳者」と考えてください。クラウド環境では、生データを大型GPUに投入して「解決させる」贅沢があるかもしれません。エッジ、特にマイクロワットスケールでは、これは不可能です。

eFabric™ ワークフローでは、生データがニューラルネットワークに直接投入されることはありません。生の時間領域信号(音波やアクセロメーターストリームなど)は、超低電力シリコンが効率的に処理するには密度が高く「ノイジー」すぎます。

前処理は、生信号を特徴と呼ばれる圧縮された構造化形式に変換する重要なエンジニアリング段階です。TML120 モジュールでは、この変換は専用のデジタル信号処理(DSP)ブロックによって処理され、「インテリジェンス」がエネルギーを無駄にすることなくニューラルゲートに届けられます。

これがeFabric™ 効率の「秘密の素」である理由を深く見ていきましょう。


「なぜ」:効率性のギャップ

生データは本質的に「消防ホース」です。16,000サンプル/秒で音声をサンプリングしている場合、ニューラルネットワークは毎秒16,000個の個別データポイントを処理する必要があります。

  • 問題: 生のサンプルを処理するには大量のメモリと何兆もの演算(MAC)が必要であり、コイン電池を数分で消耗させてしまいます。

  • eFabric™ の解決策: **DSP(デジタル信号処理)**を使用して、16,000ポイントを「特徴」というひとまとまりに圧縮します—インテリジェンスを保持しながら不要なデータの99%を削除する数学的な要約です。


「どのように」:特徴への変換

eFabric™ ワークフローでは、時間領域から周波数領域へのシフトが行われます。

1. 次元削減

DSPブロックは音波の「揺らぎ」(時間領域)を見るのではなく、音の「成分」(周波数領域)を見ます。

  • 類比: ケーキをすべての分子でリスト化する(生データ)のではなく、成分(小麦粉、砂糖、卵)でリスト化する違いです(特徴)。ニューラルネットワークは成分だけを見れば「ケーキ」をはるかに速く認識できます。

2. 特徴抽出パイプライン

これはNDPシリコンの特殊ハードウェアによって処理されます:

  • フィルタリング: 電子機器の「ハム」や重力の「低音」を除去します。
  • スペクトル解析: 信号を周波数帯域に分解します。音声には、人間の耳が行うように周波数をグループ化するメルスケールを使用します。
  • 正規化: ユーザーがささやいても叫んでも、ニューラルネットワークに対して「特徴」が同じように見えるようにします。

ハードウェアエッジ:シリコンネイティブDSP

エネルギーを全く無駄にしない」と言う理由は、この計算がどこで行われるかにあります。ほとんどのシステムでは、メインCPUがこの計算をするために起動する必要があります。eFabric™では:

  • **NDP(ニューラル決定プロセッサ)**は専用のハードワイヤードDSPエンジンを持っています。
  • このエンジンはFFT、ログスケーリングなどの計算を汎用プロセッサよりも何千倍も効率的な専用回路を使用して実行します。
  • これにより、「インテリジェンス」(特徴)はシステムの残りの部分を「起動」させることなくニューラルゲートに届けられます。
DSP-ニューラル協調設計

「eFabric™では、DSP設定とニューラルネットワークアーキテクチャは連動しています。前処理で「ウィンドウサイズ」を変更すると、モデルが見るデータの「解像度」を実質的に変更していることになります。DSPパラメータを調整した後は必ずモデルを再検証してください。」

開発者にとってのメリット:

  • 低レイテンシ: 特徴が小さいほど、ニューラルネットワークの意思決定が速くなります。
  • 小さなモデル: データが「クリーン」なため、高精度に達するためのニューラルレイヤーが少なくて済みます。
  • 究極のバッテリー寿命: これが単一のバッテリーで何年も持続するAlways-On機能を実現する方法です。

特徴抽出の数学

マイクロワットスケールでシリコンネイティブ実行を達成するには、「ノイジー」な時間領域信号を超える必要があります。このセクションでは、生センサー発振を高精度でニューラルネットワークが解釈できる2次元「画像」の特徴に変換するために使用される数学的シーケンスを詳述します。


A. フレーミングとウィンドウ処理(時間的セグメンテーション)

生信号は振幅の連続ストリームです。その統計特性が時間とともに変化するため(非定常)、小さな離散した「フレーム」で分析する必要があります。

  • フレーム(セグメンテーション): 通常、信号を20msから40msのフレームにスライスします。この時間は「スイートスポット」です—意味のある周波数パターンを捉えるのに十分な長さですが、「定常」と見なすのに十分なほど短いです。

  • ハミング窓: 単純に信号を切り取ると、スペクトル漏洩と呼ばれる数学的アーティファクトをもたらす「シャープなエッジ」が生じます。これを防ぐために、eFabric™は各フレームにハミング窓関数を適用します:

    w[n]=0.540.46cos(2πnN1)w[n] = 0.54 - 0.46 \cos\left(\frac{2\pi n}{N-1}\right)

    この関数は各フレームの端で信号を「テーパー」し、各フレームの始まりと終わりがゼロに滑らかに移行することを確保します。

B. フーリエ変換(時間から周波数へ)

フレームがウィンドウ処理されると、**高速フーリエ変換(FFT)**を通じて処理されます。これがeFabric™の「発見のエンジン」です。

  • 変換: FFTは複雑な時間領域波をその構成周波数に分解します。そのフレーム内のすべての周波数(ヘルツ)にどれだけの「エネルギー」があるかを識別します。
  • パワースペクトル: パワースペクトルのピリオドグラム推定を計算します:
Pxx(f)=1Nn=0N1x[n]ej2πfn2P_{xx}(f) = \frac{1}{N} \left| \sum_{n=0}^{N-1} x[n] e^{-j 2 \pi f n} \right|^2

これは生スペクトルデータを提供しますが、小さなチップには解像度が高すぎます(データポイントが多すぎる)。

C. メルフィルターバンク処理(生体インスパイアード圧縮)

人間の聴覚と機械振動は線形スケールに従いません。私たちは15,000Hzよりも500Hzでの変化をはるかによく検出できます。eFabric™はこの原則を使用してメルスケールを介してデータを圧縮します。

  • メルフィルターバンク: FFT出力を一連の三角フィルター(通常32から64の「ビン」)に通します。これらのフィルターは低周波数で線形に、高周波数で対数的に配置されています。
  • 数式: 周波数(f)からメル(m)への変換:
m=2595log10(1+f700)m = 2595 \log_{10} \left(1 + \frac{f}{700} \right)
  • 結果: このプロセスにより、何千ものFFTポイントが「ウェイクワード」や「軸受の故障」を識別するために必要なインテリジェンスを保持しながら、小さく密なベクトルの「メルビン」に削減されます。

D. 対数スケーリング(ダイナミックレンジ正規化)

最後の数学的ステップは、各メルビンのエネルギーに対数スケールを適用することです。

  • 人間の知覚: 人間は音の強度を対数的に知覚します。エネルギーの対数を取ることで、音量に関係なく信号の「パターン」が同じままであることを確保します。
  • モデルの堅牢性: このステップにより、ニューラルネットワークは絶対振幅ではなく周波数間の相対的関係を識別します。これが、eFabric™ モデルがユーザーがデバイスから5メートル離れていても真横にいるときと同様に機能する理由です。
📊 データインサイト:ナイキスト接続

「FFT解像度はサンプリングレートに直接結びついています。eFabric™のデフォルト16kHzでは、周波数ビンは0Hzから8000Hzに及びます。ターゲットイベント(高速タービンなど)が8kHz以上のシグネチャを生成する場合、ハードウェアサンプルレートを上げない限り、このセクションのメルビンは空になります。」

センサー(IMU)の信号処理

音声前処理が周波数領域に焦点を当てる一方、IMU(慣性計測ユニット)データは時間領域と統計的フィルタリングの組み合わせを必要とします。TML120 モジュールでは、生のアクセロメーター(x、y、z)およびジャイロスコープデータを重力とセンサーノイズに対して不変の「モーションフィンガープリント」に変換することが目標です。

A. DCオフセットと重力の除去

アクセロメーターの最も重大な課題は、重力の一定1g(9.8 m/s²)加速度です。デバイスが傾くと、重力が異なる軸に「漏れ」込み、検出しようとしている微妙な振動やジェスチャーを隠す可能性のある大きなDCオフセットを生成します。

  • ハイパスフィルタリング: eFabric™は**一次ハイパスフィルター(HPF)**を使用してこの定常バイアスを除去します。これにより、モデルはデバイスの向きではなく動的な動き(動きの変化)のみを「見る」ことができます。 差分方程式:

    y[n]=α(y[n1]+x[n]x[n1])y[n] = \alpha (y[n-1] + x[n] - x[n-1])

B. 信号のスムージングとジッタ低減

生のセンサーは電気干渉や人間のジェスチャーや産業用異常とは無関係な微小振動(ジッタ)に敏感です。

  • ローパスフィルタリング(LPF): 信号をクリーニングするために、LPFを適用します。これにより波形が「スムージング」され、ニューラルネットワークが人間の動き(<20Hz)や機械的シフトに典型的な低周波成分に焦点を当てることができます。
  • 移動平均: 多くの場合、信号を安定させるために単純な移動平均が使用されます:
y[n]=1Mk=0M1x[nk]y[n] = \frac{1}{M} \sum_{k=0}^{M-1} x[n-k]

C. 特徴抽出:統計的と周波数的

IMUデータに対して、eFabric™は2種類の「モーション特徴」を選択できます:

  1. 統計的特徴(時間領域): すべてのデータポイントではなく、ウィンドウのサマリーをモデルに投入します:
    • 平均と標準偏差: 動きの強度を捉えます。
    • ゼロ交差率(ZCR): 信号が方向を変える頻度を測定—振動周波数の主要指標。
    • 信号大きさ領域(SMA): 活動と休息の区別に有用。
  2. スペクトル特徴(周波数領域): 予知保全などのアプリケーションでは、振動データにFFT(音声でも使用)を適用します。これにより、モデルがモーターの特定の「鳴り」や故障した軸受の「震え」を検出できます。

D. ベクトル大きさの正規化

ジェスチャーモデルを「向き独立」にするために、多くの場合3軸のユークリッドノルム(大きさ)を計算します。これにより、デバイスが縦向きか横向きかに関わらず「振る」動作を検出できます。 大きさの数式:

a=x2+y2+z2\|a\| = \sqrt{x^2 + y^2 + z^2}
⚠️ 技術的注意:センサーのナイキスト限界

「音声が16kHzを使用する一方、ほとんどのセンサーアプリケーションははるかに低いサンプリングレート(例:人間の活動には50Hz、産業用振動には1600Hz)で動作します。検出したい動きの周波数の少なくとも2倍の**サンプリング周波数(fs)**を確保して、モーションシグネチャのエイリアシングを避けてください。」

TinyMLの世界では、データ拡張は小さなモデルに大きく複雑な世界を「教える」最も強力なツールです。TML120 モジュールのメモリに制限されているため、ノイズを処理するためにモデルを大きくすることができません。訓練フェーズ中に信号のあらゆる可能なバリエーションにさらすことで、モデルをよりスマートにする必要があります。

データ拡張戦略

データ拡張とは、既存のデータセットから数学的に新しいトレーニングサンプルを生成するプロセスです。eFabric™ ファクトリーでサンプルを「ストレステスト」することで、最終的なモデルがほぼゼロの偽拒否で現場で機能するのに十分な堅牢性を持つことを確保します。

A. 時間領域拡張(音声とセンサー)

これらの技術は、基本的な周波数成分を変えることなく信号のタイミングと強度を変更します。

  • タイムシフト: 処理ウィンドウ内でイベント(キーワードやジェスチャー)をランダムに前後にシフトします。これにより、モデルが「位置依存」にならないようにします—キーワードがバッファの0msで始まっても400msで始まってもトリガーします。
  • ゲインとボリュームスケーリング: 信号の振幅をランダムな係数(0.5から2.0)で乗算します。これにより、ユーザーが異なる距離から話す場合や、センサーが異なる向きに取り付けられている場合をシミュレートします。
  • タイムストレッチ: 信号を少しだけ速くまたは遅く(+/- 10%)します。これにより、興奮して早口で話されたキーワードや、穏やかな状態でゆっくりと話されたキーワードを同じようにモデルが認識できるようになります。

B. 環境インジェクション(ノイズプロファイル)

eFabric™ の堅牢性の「秘訣」は加法的ノイズインジェクションです。「クリーン」なデータで訓練するのではなく、信号(s)とノイズプロファイル(n)を数学的にブレンドします。 混合数式:

xaug(t)=(1λ)s(t)+λn(t)x_{\text{aug}}(t) = (1 - \lambda)s(t) + \lambda n(t)
  • α(混合係数): これが**信号対雑音比(SNR)**を決定します。
  • eFabric™ の優位性: 特定の「バックグラウンドプロファイル」(例:賑やかなカフェ、風の吹く通り、またはハミングするデータセンター)をアップロードできます。プラットフォームはその後、それらの環境の中に「生きる」キーワードの何千もの変形を作成します。

C. SpecAugment:周波数領域マスキング

高性能音声認識のために開発されたSpecAugmentは、ログメルスペクトログラムに直接実行される「ピクセルレベル」の拡張です。

  • 周波数マスキング: スペクトログラムのランダムな水平帯域を「ブラックアウト」します。これにより、ニューラルネットワークが音の他の周波数を学習することが強制され、特定の周波数が大きな笛やファンによってブロックされても、キーワードを識別できます。
  • タイムマスキング: ランダムな垂直帯域(時間のスライス)を「ブラックアウト」します。これにより、モデルが音声ストリームの「ドロップアウト」や突然の中断を処理できるように教えます。

D. センサー固有の拡張(IMU)

モーションデータには物理的な変換を使用します:

  • ジッタインジェクション: センサー配線の電気干渉をシミュレートするためにガウスノイズを追加します。
  • 軸交換: (動きが理論的に全方向性であれば)X、Y、Z軸をランダムに交換して、モデルを真に向き独立にします。
📊 データインサイト:拡張の「スイートスポット」

「拡張は強力ですが、過剰拡張は信号を「溺れさせ」てしまう可能性があります。α(ノイズレベル)が高すぎると、モデルは静的なパターンを見ることができなくなり、収束に失敗します。まずクリーンデータに対してモデルを検証し、コアシグネチャを実際に学習したことを確認してください。」