Microsoftが「ML.NET 1.5.2」を公開、.NET開発者向け機械学習フレームワークONNXエクスポートなどの機能も強化

Microsoftは、.NET開発者向けのオープンソース機械学習(ML)フレームワークの最新版「ML.NET 1.5.2」を公開した。Model Builderツールで「Azure ML」を使ってオブジェクト検出モデルをトレーニングできるようになった他、ML.NET CLIで画像分類モデルをローカルでトレーニングすることも可能になった。

» 2020年10月08日 17時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 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ワークスペースをセットアップする
オブジェクト検出シナリオの選択画面(出典:Microsoft
  • トレーニング用の入力データを用意する

 現在のModel Builderには画像に注釈を付ける方法がない。入力データを用意する過程で、トレーニング画像内のオブジェクトを囲む境界ボックスを描く必要がある場合は外部ツールを使う。

 画像にラベルを付ける必要がある場合はオープンソースのラベル付けツール「VoTT」を試すことをMicrosoftは勧めている。VoTTを使う場合の手順は次の通り。

(1)VoTTでトレーニング用画像データセットを選択する

(2)VoTTで画像にラベルを付ける

画像へラベルを付けているところ(出典:Microsoft

(3)ラベル付けの結果を「VoTT JSON」としてエクスポートする

VoTT JSONの設定画面(出典:Microsoft
VoTT JSONのサンプル(出典:Microsoft

(4)Model Builderの「Data」ステップで、VoTT JSONを入力データセットとして指定する

 Model Builderは現在、VoTTで生成されたJSONフォーマットだけを処理できる。Microsoftはサポートフォーマットを今後増やす予定だ。

入力データセットの指定画面(出典:Microsoft

(5)Model Builderの「Train」ステップでトレーニングを開始する

 入力データセットがAzureにアップロードされてAzure MLでトレーニングが始まる。トレーニングが完了すると、トレーニング済みML.NETモデルがダウンロードされる。

(6)Model Builderの「Evaluate」ステップでモデルの精度を評価する

 テスト画像を使って、モデルをローカルで予測することもできる。次の画面では左側のオブジェクトが77%の信頼度でネコであることを示している。画面に右にある「しきい値スライダー」ではスコアのしきい値を変更できる。しきい値を0.51に設定すると、信頼度が0.51以上のオブジェクトのみを画面に表示する。しきい値を上げると検出されるオブジェクトが少なくなり、しきい値を下げると、検出されるオブジェクトが多くなる。

トレーニング済みML.NETモデルの評価画面(出典:Microsoft

(7)モデルのパフォーマンスに問題がなければ、Model Builderの「Code」ステップでモデルと利用コードを生成し、エンドユーザーアプリケーションにモデルを統合する

ML.NET CLIを使った画像分類モデルのトレーニング

 クロスプラットフォームのML.NET CLIを使うと、カスタム画像分類モデルをローカルでトレーニングできる。

 加増分類モデルをトレーニングしたい場合、使いたい画像データセットを用意するだけでよい。例えば天候の画像を「雨」(rainy)、「曇」(cloudy)、「晴」(sunny)に分類したいとする。

 まず、画像を正しいフォーマットで用意する必要がある。次のように、別々にラベル付けされたフォルダに写真を整理する。この例では各フォルダに、該当する天候の画像ファイルを30個ずつ入れた。

フォルダに写真を整理したところ(出典:Microsoft

 データセットを用意したら、ML.NET CLIで次のコマンドを使い、トレーニングを開始する。

mlnet image-classification --dataset “Weather-Small”

 トレーニングが完了すると、CLIはモデルの精度を出力し、モデルの利用や再トレーニングに必要なプロジェクトを生成する。

プロジェクトが生成されたところ(出典:Microsoft

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。