はじめに:

  1. コードをダウンロードします
  2. MATLAB でコードを開きます。
  3. 下記の手順に沿って進めます。

アクセス権をお持ちでない場合:

所要時間:
15 ~ 30 分
レベル:
初心者/中級

復習が必要な場合: 対話形式の無料のチュートリアルをお試しください。

手順 1

データの読み込みと前処理

ディープラーニングでは大きなデータセットを使うことができるため、適切なデータ管理が重要ですが、この例のデータセットはデモ用に小さくしてあります。

  • imageDatastore を使用してデータをインポートします。関数 imageDatastore によって、フォルダー名に基づき画像に自動でラベル付けします。
  • モデルの学習を行うには、データをモデルの学習を行うための “学習” と、新しいデータでモデルがどのように機能するかをテストするための “テストデータ” (手順 4「ネットワークのテスト」で使用) の 2 つのカテゴリに分けます。
  • データセットからランダムな画像を可視化して、データがどのように表示されるかを確認します。
  • [セクションの実行] をクリックしてコードを実行します。

覚えておくべき重要な点:

  • imageDatastore は、これらの手順や、画像を使用した将来のディープラーニング プロジェクト全体を通してデータの格納場所となります。
  • 画像ベースのアプリケーションを使用すると、画像のトリミング、ラベル付け、登録などの一般的な前処理タスクを大幅に高速化できます。

手順 2

ネットワークのインポート

この手順の例では、GoogLeNet を使用してディープラーニング モデルをインポートし、転移学習用に変更していますが、TensorFlow、PyTorch、および ONNX からモデルやアーキテクチャをインポートすることもできます。

  • モデルをインポートし、データの準備ができたことを確認します。
  • ディープ ネットワーク デザイナー アプリを使用して、新しいタスク用のモデルを対話的に変更します。前処理では、画像がディープラーニング モデルで想定されている適切なサイズであることを確認してください。
  • サンプルの画像を試して、モデルの予測内容を確認します。
    モデルでデータを認識するための学習を行っていない場合、誤った予測が生じる場合があります (手順 3「転移学習」参照)。
  • [セクションの実行] をクリックしてコードを実行します。

覚えておくべき重要な点:

  • 転移学習の開始点として、さまざまな事前学習済みモデルを使用します。
  • データのサイズが適切でないと、モデルでエラーが発生します。

手順 3

転移学習

この手順では、特定のデータでモデルが機能するようにモデルを変更していきます。ハードウェアやデータセットのサイズによっては、モデルの学習に時間がかかる場合があります。

  • 最終的な全結合層を、カテゴリ数に基づく新しい全結合層に置き換えて、モデルを準備します。こちらの例では 4 つのカテゴリを使用しています。
  • 最終分類層を置き換えて実行するタスク向けにリセットします。
  • モデルの学習を行うには、[セクションの実行] をクリックします。手順 1 および手順 2 のコードを既に実行していることを確認してください。学習時間は、およそ 60 秒です。

覚えておくべき重要な点:

手順 4

ネットワークのテスト

最後の手順では、新しいデータでモデルが機能することを検証していきます。テストデータ (手順 1「データの読み込みと前処理」で用意したもの) を分類し、分類精度を算出する必要があります。

  • classify コマンドを実行し、テストセットのすべての画像をテストして精度を表示します (この場合 90%)。
  • テストセット内の画像を選択し、対応するラベルを付けて可視化します。

覚えておくべき重要な点:

  • 学習に使用したデータだけでなく、新しいデータや状況にも対応する柔軟なモデルを使用します。
  • より高度な AI ソリューションの場合、説明可能な AI 技術を使用して、モデルが特定のカテゴリを予測する理由を明らかにします。

以下のビデオの手順に沿って進めることもできます。

ビデオの長さ 4:13

以下のリンクから、その他の画像認識タスクや、関連アプリケーションを使用したディープラーニングについて詳しくご覧いただけます。

Johanna Pingel

MathWorks のディープラーニング エキスパート、Johanna とつながる