ebook

第 4 章

ディープネットワークのための入力の作成


生データから直接学習することをエンドツーエンド学習と言います。最新のディープラーニング システムは、画像やコンピューター ビジョンの問題の多くでエンドツーエンドの学習を使用しています。しかし、信号データの場合、エンドツーエンドの学習は実際にはほとんど使用されていません。

ほとんどすべての実用的な信号処理アプリケーションでは、次元数とサイズを減らすために、ある種の特徴抽出手法を使用します。

ここでは、長・短期記憶 (LTSM) ネットワークと畳み込みニューラルネットワーク (CNN) の 2 つのディープラーニングネットワークについて、これらの手順を説明します。選択した手法によって、実行しなければならない入力前処理が異なりますので注意してください。

長・短期記憶 (LSTM) ネットワーク

畳み込みニューラルネットワーク (CNN)

章

異なるアプリケーションには、異なる変換手法が必要です。

信号から特徴を抽出する場合は、信号をバッファまたはフレームに整理することをお勧めします。これらは、時間分解能を向上させるためにオーバーラップする場合があります。

時間周波数変換としても知られる、大規模な特徴抽出手法グループは、高速フーリエ変換 (FFT) や同様の操作を介した周波数領域の各バッファの変換に基づいています。

このようにして得られる最も単純なタイプの出力は、短時間フーリエ変換 (STFT) やスペクトログラムと呼ばれるものです。これらは 2D 信号表現であるため、元々は画像を操作するために設計されたネットワークタイプでよく使われていることが分かります。

一般的な出力タイプには、次のようなものがあります。

基本スペクトログラム
理解や実装が簡単

基本スペクトログラムを使用して 2D 画像データに変換した信号データの視覚的表現。

知覚的に間隔を空けた (メル、バークなど) スペクトログラム
コンパクトで音声およびオーディオ アプリケーション向け

知覚的に間隔を空けたスペクトログラムを使用して 2D 画像データに変換した信号データの視覚的表現。

ウェーブレット スカログラム
時間分解能に優れ、非周期的な信号に有効

ウェーブレット スカログラムを使用して 2D 画像データに変換した信号データの視覚的表現。

定 Q 変換
低周波で、優れた分解能

定 Q 変換を使用して 2D 画像データに変換した信号データの視覚的表現。

音声や他の可聴信号を操作する場合は、人間が周波数を知覚する方法と同じようにスケーリングされた、より高度なタイプのスペクトログラムを表示する傾向があります。多くの場合、信号の時間周波数特性は、その時間波形よりもはるかに特徴的になります。人間の目で見ても、時間周波数領域の方が特徴の識別が容易です。

章

復習

特徴抽出によりデータセットへのラベル付けを行うと、最終的にそれぞれ元のラベルに関連付けられた特徴配列の集合が完成し、ネットワーク学習のために使用することができます。

データ拡張は、元のデータセットでのデータよりも多くのデータから特徴量を算出するのに役立ちます。特徴量の算出には、マルチコア コンピューターや GPU などの高速ハードウェアによるサポートが必要な場合があります。

MATLAB の特徴抽出機能の多くは GPU での実行に対応しています。関数で処理されたデータが増えるほど高速化するのが分かります。

GPU での信号処理の詳細については、MATLAB に「gpuArray」と入力します。

ラベル付けされた信号のセットを示す図。それらから矢印が伸び、「extract features」とラベル付けされている。これが対応する特徴量アレイのセットにつながり、「train」の矢印がネットワークアイコンを指している。

特徴抽出により、元のラベルを持つ特徴配列の集合が完成します。

ラベル付けされた信号のセットを示す図。それぞれに「augment」とラベル付けされた矢印があり、さらに信号が重ねられている。それらから「extract features」とラベル付けされた矢印が伸びている。これが、特徴量アレイのセットにつながり、「train」の矢印がネットワークアイコンを指している。

データ拡張は、元のラベルを保持しながら、特徴を抽出するデータを増加させます。

学習済みのネットワークは、特徴量に基づいてトリガーワードマスクを予測し、遷移して出力としてのチャイムを生成します。学習済みのネットワークは、関数 classify で使用され、特徴量セットとマスクの遷移を検出するコードに基づいてトリガーワードマスクを予測し、適切なタイミングで出力としてのチャイム音を生成します

特徴抽出

% 分析全体のバッファから MFCC を抽出
[coeffs,delta,deltaDelta] = mfcc(buf,SampleRate,...
   'WindowLength',winLength,...
   'OverLength',ovlpLength);
 
% 特徴を連結して正規化
featureMatrix = [coeffs,delta,deltaDelta];
featureMatrix = (featureMatrix - M)./S;

推論

% LSTM ネットワークを使用してキーワードを検出 (音声キーワードの周囲にマーク)
featMask = classify(net,featureMatrix.');

トリガー

% 時間領域でのデバウンスおよび再配置検出
(timeMask, chimePosition) = debounceAnalyzeDetectionMask(featMask);
 
% 検出イベント用にチャイムを生成
chime = generateChimeAtSample(chimePosition,...

理解度の確認

AI を活用した信号処理アプリケーションの開発に必要なものは何ですか?

簡単で実証されたディープラーニング モデルだけでなく、大量のデータ、一部の専門領域の知識、取り掛かっている特定のアプリケーションに適したツールが必要です。ディープラーニング システムの性能は、学習に使用されるデータによる点に留意することが重要です。

ディープラーニングや信号の操作の詳細については、以下を参照してください。