転移学習を使って音声データ集合を分類する
時に,ネットワークの訓練に使用できるデータ量が当面のタスクには不十分なことがある.転移学習は,このような問題の解決策となり得る.ネットワークを一から訓練する代りに,もとのタスクとは異なる,けれど類似したタスクのためにすでに訓練されたネットを出発点として使うことは可能である.
ESC-50 datasetをダウンロードする.
完全なWolfram言語入力を表示する
メタデータをインポートする.このデータ集合は2000本の環境音声録音のラベル付きの集合である.各ファイルは5秒間の録音で,50種類の意味クラスにまとめられている.
完全なWolfram言語入力を表示する
メタデータからのサンプルを調べる.
データを訓練と検証の部分集合に分ける.
利用できるクラスを見る.
AudioIdentifyネットワークの分類子層を削って特徴抽出ネットを構築する.
特徴抽出器に加える単純な線形分類子ネットワークを構築する.
ネット全体を訓練し直し,NetTrainのLearningRateMultipliersオプションを指定して分類層だけを訓練する代りに,特徴抽出器層の結果を事前に計算して分類子を訓練することができる.こうすることで,不必要なネット全体の評価を避けることができる.
NetTrainを使って分類子ネットワークを訓練する.
NetJoinを使って,特徴検出器のネットワークと訓練された分類子を結合する.
ClassifierMeasurementsを使って,検証データの正解率を計算し,4つの最低のクラスの混同行列をプロットする.