AI83 .NET 開発者のための 機械学習フレームワーク...

Post on 20-May-2020

3 views 0 download

Transcript of AI83 .NET 開発者のための 機械学習フレームワーク...

de:code 2019 AI83

.NET 開発者のための

機械学習フレームワークML.NET 入門

富士ソフト株式会社 MS 事業部 フェロー

増田裕正

https://www.fsi.co.jp/blog/teclist/masuda/

自己紹介

富士ソフト株式会社 MS 事業部 フェロー

増田裕正 (Masuda Hiromasa)

ML.NET概要

ML.NET とは?

ML.NET の実績

他の機械学習モデル開発環境との比較

•Azure Machine Learning Studio

/Azure Machine Learning Service Visual Interface

•TensorFlow / CNTK

•ML.NET

•Chainer / Keras

•PowerBI

•Sony Neural Network Console

•Azure Machine Learning Service Automated ML

•Azure Cognitive Services

ML.NET機械学習モデル開発方法

今回の実装テーマ

ML.NET のインストール

データセットの定義

public class WineQualityData{[LoadColumn(0)]public float FixedAcidity;

[LoadColumn(1)]public float VolatileAcidity;

[LoadColumn(2)]public float CitricAcid;

データセットの定義

… [LoadColumn(9)]public float Sulphates;

[LoadColumn(10)]public float Alcohol;

[LoadColumn(11)]public float Quality;

}

データのロード

//コンテキストの生成MLContext mlContext = new MLContext(seed: 0);//データのロードIDataView data =mlContext.Data.LoadFromTextFile<WineQualityData>(@".¥Data¥winequality-red.csv", hasHeader: true, separatorChar: ';');

データのロード

//学習用データと評価用データに分割var split = mlContext.Data.TrainTestSplit(data, testFraction: 0.2, seed: 0);

学習データの定義

//学習パイプラインの定義//学習データの定義var dataProcessPipeline = mlContext.Transforms.Concatenate(outputColumnName: "Features",nameof(WineQualityData.FixedAcidity),nameof(WineQualityData.VolatileAcidity), nameof(WineQualityData.CitricAcid), nameof(WineQualityData.ResidualSugar), nameof(WineQualityData.Chlorides),

学習データの定義

nameof(WineQualityData.FreeSulfurDioxide),nameof(WineQualityData.TotalSulfurDioxide), nameof(WineQualityData.Ph),nameof(WineQualityData.Sulphates), nameof(WineQualityData.Alcohol));

学習アルゴリズムの選択と学習

//学習アルゴリズムの定義var trainer = mlContext.Regression.Trainers.Sdca(labelColumnName: nameof(WineQualityData.Quality), featureColumnName: "Features");

//学習アルゴリズムをパイプラインに設定var trainingPipeline = dataProcessPipeline.Append(trainer);

学習アルゴリズムの選択と学習

//学習データを用いて学習モデルを生成var trainedModel =trainingPipeline.Fit(split.TrainSet);

サポートしている機械学習タスクの種類

学習アルゴリズム評価

//テストデータによるモデルの評価//生成した学習モデルで評価用データを使って推論IDataView predictions =trainedModel.Transform(split.TestSet);

//学習モデルの評価var metrics = mlContext.Regression.Evaluate(predictions, labelColumnName: nameof(WineQualityData.Quality),scoreColumnName: "Score");

Demo: ML.NET 実装の流れ

ML.NET の今後

プレビュー リリースされた機能

ML.NET Model Builder (Visual Studio)

ML.NET Model Builder (Visual Studio)

ML.NET Model Builder (Visual Studio)

ML.NET Model Builder (Visual Studio)

まとめ

ML.NET 入門まとめ

EOF.

© 2018 Microsoft Corporation. All rights reserved.

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

© 2019 FUJISOFT INCORPORATED All rights reserved.

本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。

本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。