第12章. 魔法の杖モデルをトレーニングする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
第11章では、加速度センサーの生データを解釈するために20KBの事前学習済みモデルを使い、それを使って一連のジェスチャーのどれが行われたかを識別した。この章では、このモデルがどのように訓練されたかを紹介し、次に実際にどのように機能するかについて説明する。
ウェイクワードと人物検出モデルは、どちらも学習に大量のデータを必要とした。これは、解決しようとする問題が複雑であったためである。人の「はい」「いいえ」の言い方には膨大なバリエーションがあり、アクセント、イントネーション、ピッチなど、人の声をユニークなものにしているあらゆるバリエーションを思い浮かべてほしい。同じように、画像に写る人の姿も無限である。顔や全身、あるいは片手かもしれないし、どんなポーズで立っているかもしれない。
このように多様な入力検証を正確に分類するためには、モデルも同様に多様な訓練データセットで訓練する必要がある。これが、ウェイクワードと人物検出のトレーニングのデータセットが大規模であり、トレーニングに時間がかかる理由である。
魔法の杖のジェスチャー認識問題は、もっと単純だ。この場合、膨大な種類の自然な声や人間の外見やポーズを分類しようとするのではなく、3つの特定の意図的に選ばれたジェスチャーの違いを理解しようとしている。それぞれのジェスチャーのやり方には人によって多少の違いがあるだろうが、ユーザができるだけ正確で均一なジェスチャーを行うよう努力してくれることを期待している。
つまり、予想される検証入力のばらつきが少なくなるため、膨大なデータを必要とせず、正確なモデルを訓練するのが非常に簡単になる。実際、モデルのトレーニングに使用するデータセットには、各ジェスチャーの例が150ほどしか含まれておらず、サイズも1.5MBしかない。十分なデータを得ることは、機械学習プロジェクトで最も困難な部分であることが多いからだ。
この章の最初のパートでは、魔法の杖のアプリケーションで使われているオリジナルのモデルをトレーニングする方法を学ぶ。第2部では、このモデルが実際にどのように機能するかについて説明する。そして最後に、あなた自身のデータをキャプチャして、異なるジェスチャーを認識する新しいモデルをトレーニングする方法を見る。
モデルをトレーニングする
モデルをトレーニングするために、TensorFlowリポジトリにあるトレーニングスクリプトを使用する。magic_wand/trainで発見できる。
スクリプトは以下のタスクを実行する:
-
トレーニング用の生データを準備する。
-
合成データを生成する。1
-
トレーニング、検証、テストのためにデータを分割する。
-
データ補強を行う。
-
モデルアーキテクチャを定義する。
-
トレーニングプロセスを実行する。
-
モデルをTensorFlow Lite形式に変換する。
スクリプトには、その使い方を示すJupyterノートブックが付属している。このノートブックは、GPUランタイム上のColaboratory(Colab)で実行できる。我々の小さなデータセットでは、トレーニングは数分しかかからない。
まずはじめに、Colabでのトレーニングの流れを説明しよう。
Colabでのトレーニング
図8-1に示すように、magic_wand/train/train_magic_wand_model.ipynbの ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access