Microsoftは、.NET開発者向けのオープンソース機械学習(ML)フレームワークの最新版「ML.NET 1.5.2」を公開した。Model Builderツールで「Azure ML」を使ってオブジェクト検出モデルをトレーニングできるようになった他、ML.NET CLIで画像分類モデルをローカルでトレーニングすることも可能になった。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2020年9月25日(米国時間)、オープンソースの.NET開発者向けクロスプラットフォーム機械学習(ML)フレームワークの最新版「ML.NET 1.5.2」を公開した。
ML.NETでは、.NETエコシステムから離れることなく、MLやデータサイエンスの経験が乏しい開発者でも、.NETアプリケーションにMLモデルを統合できる。ML.NETはWindowsやLinux、macOSに対応し、Visual Studio用のシンプルなUIツール「Model Builder」と、クロスプラットフォームのコマンドラインインタフェース「ML.NET CLI」を利用できる。これらのツールを使うと開発者が用意したシナリオとデータを基にしてカスタムMLモデルを自動的にトレーニングできる。
ML.NET 1.5.2では多くのバグが修正された他、「Open Neural Network Exchange」(ONNX)エクスポートのサポート対象拡大などの機能強化が施されている。
ONNXはディープラーニングモデルのオープン標準フォーマット。ML.NETツールについてはModel Builderで「Azure ML」を使ってオブジェクト検出モデルをトレーニングできるようになった他、ML.NET CLIで画像分類モデルをローカルでトレーニングすることも可能になった。
ML.NETではこれまで、「ML.NET API」を介してオブジェクト検出用にトレーニング済みのTensorFlowモデルやONNXモデルを利用できた。ML.NET 1.5.2では、Visual StudioとModel Builderを使って、AzureとAutoMLの機能を生かしてカスタムオブジェクト検出モデルをトレーニングできるようになった。トレーニングの手順は次の通り。
現在のModel Builderには画像に注釈を付ける方法がない。入力データを用意する過程で、トレーニング画像内のオブジェクトを囲む境界ボックスを描く必要がある場合は外部ツールを使う。
画像にラベルを付ける必要がある場合はオープンソースのラベル付けツール「VoTT」を試すことをMicrosoftは勧めている。VoTTを使う場合の手順は次の通り。
(1)VoTTでトレーニング用画像データセットを選択する
(2)VoTTで画像にラベルを付ける
(3)ラベル付けの結果を「VoTT JSON」としてエクスポートする
(4)Model Builderの「Data」ステップで、VoTT JSONを入力データセットとして指定する
Model Builderは現在、VoTTで生成されたJSONフォーマットだけを処理できる。Microsoftはサポートフォーマットを今後増やす予定だ。
(5)Model Builderの「Train」ステップでトレーニングを開始する
入力データセットがAzureにアップロードされてAzure MLでトレーニングが始まる。トレーニングが完了すると、トレーニング済みML.NETモデルがダウンロードされる。
(6)Model Builderの「Evaluate」ステップでモデルの精度を評価する
テスト画像を使って、モデルをローカルで予測することもできる。次の画面では左側のオブジェクトが77%の信頼度でネコであることを示している。画面に右にある「しきい値スライダー」ではスコアのしきい値を変更できる。しきい値を0.51に設定すると、信頼度が0.51以上のオブジェクトのみを画面に表示する。しきい値を上げると検出されるオブジェクトが少なくなり、しきい値を下げると、検出されるオブジェクトが多くなる。
(7)モデルのパフォーマンスに問題がなければ、Model Builderの「Code」ステップでモデルと利用コードを生成し、エンドユーザーアプリケーションにモデルを統合する
クロスプラットフォームのML.NET CLIを使うと、カスタム画像分類モデルをローカルでトレーニングできる。
加増分類モデルをトレーニングしたい場合、使いたい画像データセットを用意するだけでよい。例えば天候の画像を「雨」(rainy)、「曇」(cloudy)、「晴」(sunny)に分類したいとする。
まず、画像を正しいフォーマットで用意する必要がある。次のように、別々にラベル付けされたフォルダに写真を整理する。この例では各フォルダに、該当する天候の画像ファイルを30個ずつ入れた。
データセットを用意したら、ML.NET CLIで次のコマンドを使い、トレーニングを開始する。
mlnet image-classification --dataset “Weather-Small”
トレーニングが完了すると、CLIはモデルの精度を出力し、モデルの利用や再トレーニングに必要なプロジェクトを生成する。
Copyright © ITmedia, Inc. All Rights Reserved.