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

35
de:code 2019 AI83 .NET 開発者のための 機械学習フレームワーク ML.NET 入門 富士ソフト株式会社 MS 事業部 フェロー 増田 裕正

Upload: others

Post on 20-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

de:code 2019 AI83

.NET 開発者のための

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

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

増田裕正

Page 2: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

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

自己紹介

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

増田裕正 (Masuda Hiromasa)

Page 3: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET概要

Page 4: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET とは?

Page 5: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET の実績

Page 6: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

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

•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

Page 7: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

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

Page 8: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning
Page 9: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

今回の実装テーマ

Page 10: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET のインストール

Page 11: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning
Page 12: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

データセットの定義

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

[LoadColumn(1)]public float VolatileAcidity;

[LoadColumn(2)]public float CitricAcid;

Page 13: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

データセットの定義

… [LoadColumn(9)]public float Sulphates;

[LoadColumn(10)]public float Alcohol;

[LoadColumn(11)]public float Quality;

}

Page 14: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

データのロード

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

Page 15: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

データのロード

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

Page 16: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

学習データの定義

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

Page 17: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

学習データの定義

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

Page 18: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning
Page 19: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

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

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

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

Page 20: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

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

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

Page 21: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

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

Page 22: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning
Page 23: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

学習アルゴリズム評価

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

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

Page 24: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning
Page 25: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

Demo: ML.NET 実装の流れ

Page 26: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET の今後

Page 27: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

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

Page 28: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET Model Builder (Visual Studio)

Page 29: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET Model Builder (Visual Studio)

Page 30: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET Model Builder (Visual Studio)

Page 31: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET Model Builder (Visual Studio)

Page 32: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

まとめ

Page 33: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

ML.NET 入門まとめ

Page 34: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

EOF.

Page 35: AI83 .NET 開発者のための 機械学習フレームワーク …...他の機械学習モデル開発環境との比較 •Azure Machine Learning Studio /Azure Machine Learning

© 2018 Microsoft Corporation. All rights reserved.

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

© 2019 FUJISOFT INCORPORATED All rights reserved.

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

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