第 4 章
転移学習の利用
完全にゼロからアーキテクチャを設計して学習させるのではなく、転移学習を利用すれば既存のアーキテクチャをベースにして構築できます。この章では、既存のアーキテクチャを修正し、再学習によって特定のタスクを実行する方法について説明します。
センサーデータからパターンを探し出すネットワークを開発しようとしている場合は、画像中の花などを認識するように学習させたネットワークは役に立たないと思いがちです。しかし、実際にはスペクトログラムやスカログラムのように、信号の時間周波数表現を使用すれば、信号を前処理して画像にすることができます。ブロブ、色、ループ、線などの基本的な特徴は、信号の時間周波数の画像も含め、ほとんどすべての画像に存在します。
転移学習を使用すると、事前学習済みのネットワークが持つ基本的な特徴を認識する機能を利用して、こうした特徴を組み合わせて最終的な分類を行うネットワークの最後の数層を置き換えるだけですみます。
一般的に、このネットワークの学習は、ゼロから始めるよりもはるかに速く、必要なデータ量も少なくなります。このネットワークでは、特徴を組み合わせて、検出対象の大きなパターンを認識する方法を学ぶだけで済むからです。
MATLAB Support Package for Arduino Hardware を使用し、MPU-9250 から Arduino を介して加速度データを読み取ります。Arduino に接続し、MPU9250 オブジェクトをインスタンス化し、加速度計を読み取るために必要なコードはわずか 3 行です。
50 Hz での加速度計の読み取りと表示
この 3 軸加速度データをカラー画像に変換すると、その画像の赤、緑、青のチャネルが x、y、z の加速度軸のスカログラムになります。
ハイタッチを認識するようにネットワークを学習させるには、ラベル付きの学習データを与える必要があります。この場合の学習データは、ハイタッチの複数の画像と、その他の腕の動作の複数の画像です。
この例では、学習用に 200 枚のラベル付き画像を収集しました。このデータは、人の腕の実際の動作を測定して収集したものです。学習データに学習を損なうおそれのある外れ値やその他の動作が含まれていないか確認し、そのような画像は削除しました。
最終層の置き換えは、ディープ ネットワーク デザイナー アプリを使って行いました。GoogLeNet ネットワークの最後の 2 層だけを交換する必要があります。基本的な特徴を特定のパターンに結合する全結合層と、ラベルを割り当てる出力層です。
学習データをインポートし、その 20% の画像を検証用に確保します。ネットワークの学習が済んだら、次は、より大きなデータセットでテストします。今回は、実際の腕の動作でハイタッチの分類器を試しています。
この例については、ハイタッチカウンターの作成に関するブログ記事でさらに詳しく説明しています。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)