第14章. 独自のTinyMLアプリケーションをデザインする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
これまで、音声、画像、ジェスチャー認識といった重要な分野について、既存のリファレンス・アプリケーションを探ってきた。しかし、もしあなたの問題がこれらの例の1つに似ているなら、あなたは学習とデプロイのプロセスを適応させることができるはずだ。この章と次の章では、簡単な出発点がない問題に対する組込み機械学習ソリューションの構築プロセスをカバーする。例題での経験は、あなた自身のシステムを作成するための良い基礎となるだろうが、新しいモデルの設計、トレーニング、デプロイについても学ぶ必要がある。我々のプラットフォームは制約が厳しいので、精度の目標を外さずに、ストレージや計算機の予算内に収まるような適切な最適化をどのように行うかについても、多くの時間を割いて議論している。なぜうまくいかないのかを理解するために多くの時間を費やすことになるのは間違いないので、さまざまなデバッグテクニックを取り上げる。最後に、ユーザのプライバシーとセキュリティのためのセーフガードをどのように構築できるかを探る。
デザイン・プロセス
モデルのトレーニングには数日から数週間かかることがあり、新しい組込みハードウェアプラットフォームの立ち上げにも非常に時間がかかる。そのため、組込み機械学習プロジェクトにおける最大のリスクの1つは、何かを動作させる前に時間切れになってしまうことだ。このリスクを減らす最も効果的な方法は、計画、調査、実験を通じて、プロセスのできるだけ早い段階で、未解決の疑問点のできるだけ多くに答えることだ。トレーニングデータやアーキテクチャを変更するたびに、コーディングと再トレーニングに1週間を費やすことになりかねない。また、デプロイメント・ハードウェアの変更は、ソフトウェアスタック全体に波及し、以前動作していたコードの書き換えを大量に伴う。開発プロセスの後半で必要な変更の回数を減らすために、最初にできることは何でもしておくと、それらの変更に費やす時間を節約できる。この章では、最終的なアプリケーションのコーディングを開始する前に、重要な質問に答えるた めに推奨するテクニックのいくつかに焦点を当てる。
マイクロコントローラーが必要なのか、それとももっと大きなデバイスが必要なのか?
あなたが本当に答えなければならない最初の質問は、組み込みシステムの利点が必要なのか、少なくとも初期プロトタイプの場合は、バッテリー寿命、コスト、サイズなどの要件を緩和できるのか、ということだ。Linuxのような完全なモダンOSを搭載したシステムでのプログラミングは、組み込みの世界で開発するよりもずっと簡単だ(そして速い)。Raspberry Piのような完全なデスクトップレベルのシステムは、カメラやその他のセンサーなど多くの周辺機器とともに25ドル以下で手に入る。計算量の多いニューラルネットワークを実行する必要がある場合、NVIDIAのJetsonシリーズのボードは99ドルからで、小さなフォームファクターに強力なソフトウェア・スタックをもたらす。これらのデバイスの最大の欠点は、数ワットを消費するため、エネルギー貯蔵の物理的サイズにもよるが、バッテリー駆動の寿命がせいぜい数時間から数日程度になることだ。遅延が困難な制約でない限り、ニューラルネットワークのワークロードを処理するために必要なだけの強力なクラウドサーバを起動し、クライアントデバイスにインタフェースとネットワーク通信を任せることもできる。 ...
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