第4章 TinyMLの「ハロー・ワールド」:モデルの構築とトレーニング
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
章では、機械学習の基本概念と、機械学習プロジェクトがたどる一般化ワークフローを学んだ。この章と次の章では、学んだ知識を実践に移していく。ゼロからモデルを構築してトレーニングし、それをシンプルなマイクロコントローラー・プログラムに統合する。
その過程で、最先端の機械学習実践者が毎日使用している強力な開発者ツールを実際に使ってみることになる。また、機械学習モデルをC++プログラムに統合し、それをマイクロコントローラーにデプロイして回路に流れる電流を制御する方法も学ぶ。これは、ハードウェアとMLをミックスした初めての体験かもしれない!
これらの章で書いたコードは、Mac、Linux、Windowsマシンでテストすることができるが、完全な体験をするには、「必要なハードウェア」で述べた組み込みデバイスのいずれかが必要だ:
機械学習モデルの作成には、Python、TensorFlow、そしてGoogleのColaboratoryを使用する。Colaboratoryは、Pythonコードを実験するためのクラウドベースの対話型ノートブックだ。これらは、実際の機械学習エンジニアにとって最も重要なツールであり、すべて無料で使用できる。
注
この章のタイトルが気になるだろうか?プログラミングの伝統として、新技術は非常に単純なことを行う方法を示すサンプルコードとともに紹介される。多くの場合、その単純な作業とは、"Hello, world "という言葉をプログラミングに出力させることである。MLには明確な等価性はないが、エンド・ツー・エンドのTinyMLアプリケーションの単純で読みやすい例を指すために、我々は "hello world "という言葉を使っている。
この章では、以下のことを行う:
-
簡単なデータセットを入手する。
-
ディープラーニングモデルをトレーニングする。
-
モデルのパフォーマンスを評価する。
-
オンデバイスで動作するようにモデルを変換する。
-
デバイス上で推論を行うコードを書く。
-
コードをバイナリにビルドする。
-
バイナリをマイクロコントローラにデプロイする。
使用するコードはすべて、TensorFlowのGitHubリポジトリで公開されている。
この章の各パートを一通り読んでから、コードを実行してみることをお勧めする。その方法については、この章の途中に説明がある。しかしその前に、これから何を作ろうとしているのかを説明しよう。
何を作っているのか
第3章では、ディープラーニング・ネットワークがどのように学習データのパターンをモデル化し、予測を行えるようになるかを説明した。ここでは、非常に単純なデータをモデル化するためにネットワークを訓練する。おそらく正弦関数について聞いたことがあるだろう。三角法で直角三角形の性質を表すのに使われる。これから学習するデータは正弦波で、正弦関数の結果を時間と共にプロットしたグラフである(図4-1参照)。
我々の目標は、ある値、x 、その正弦、y を予測できるモデルを訓練することである。実際のアプリケーションでは、x の正弦が必要であれば、それを直接計算すればよい。しかし、結果を近似するモデルを訓練することで、マシン学習の基本を示すことができる。 ...
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