Microsoftが「ML.NET 1.5.2」を公開、.NET開発者向け機械学習フレームワーク:ONNXエクスポートなどの機能も強化
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で画像分類モデルをローカルでトレーニングすることも可能になった。
Model Builderを使ったオブジェクト検出モデルのトレーニング
ML.NETではこれまで、「ML.NET API」を介してオブジェクト検出用にトレーニング済みのTensorFlowモデルやONNXモデルを利用できた。ML.NET 1.5.2では、Visual StudioとModel Builderを使って、AzureとAutoMLの機能を生かしてカスタムオブジェクト検出モデルをトレーニングできるようになった。トレーニングの手順は次の通り。
- Model Builderでオブジェクト検出シナリオを選択して、Azure MLワークスペースをセットアップする
- トレーニング用の入力データを用意する
現在の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を使った画像分類モデルのトレーニング
クロスプラットフォームのML.NET CLIを使うと、カスタム画像分類モデルをローカルでトレーニングできる。
加増分類モデルをトレーニングしたい場合、使いたい画像データセットを用意するだけでよい。例えば天候の画像を「雨」(rainy)、「曇」(cloudy)、「晴」(sunny)に分類したいとする。
まず、画像を正しいフォーマットで用意する必要がある。次のように、別々にラベル付けされたフォルダに写真を整理する。この例では各フォルダに、該当する天候の画像ファイルを30個ずつ入れた。
データセットを用意したら、ML.NET CLIで次のコマンドを使い、トレーニングを開始する。
mlnet image-classification --dataset “Weather-Small”
トレーニングが完了すると、CLIはモデルの精度を出力し、モデルの利用や再トレーニングに必要なプロジェクトを生成する。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
Lesson 1 AI・機械学習・ディープラーニングがしたい! そもそも何ができるの?
機械学習専門家の藍博士と素人のマナブが会話形式で、AI・機械学習・ディープラーニングの基礎の基礎を分かりやすく紹介するシリーズがスタート。まずはAIとは何か、機械学習との違い、ディープラーニングで実現できることを知ろう。Microsoft、.NET開発者向け機械学習フレームワークの新版「ML.NET 1.2」を発表
Microsoftは、.NET開発者向けの機械学習(ML)フレームワークの最新版「ML.NET 1.2」を発表した。下位互換性を維持しながら、さまざまな改良を施した。予測と異常検知を担うパッケージや「TensorFlow」を使うためのパッケージが正式版になった。Microsoft、.NET開発者向けMLフレームワークの最新版「ML.NET 1.1」を発表
Microsoftは、.NET開発者向けのオープンソースのクロスプラットフォーム機械学習(ML)フレームワークの最新版「ML.NET 1.1」を発表した。ML.NET自体の改善の他、内蔵するModel Builderを改良した。