Slide 1

Slide 1 text

1 ML.NETで始める機械学習 ML.NETで機械学習を始めたい

Slide 2

Slide 2 text

ML.NETで機械学習を始めたい 2

Slide 3

Slide 3 text

今日話すこと ● 自己紹介 ● AIと機械学習(ML)は違うものか ● MLでできること ● なぜMLはPythonなのか ● ML.NETとは ● ML.NETでMLを始めるモチベーション ● ハンズオン ● Azureとの連携について ● まとめ 3

Slide 4

Slide 4 text

山田顕人(Kento.Yamada) @ymd65536 自己紹介 4 仕事:MSP向け内製システムの開発、マルチクラウドエンジニア/デベロッパー 活動:.NETラボ勉強会運営、Azure PoC部 Google Cloud Partner Top Engineer 2025 DataAnalytics(2024年〜) Google Cloud Partner Tech Blog Challenge 2023 Cloud AI/ML 部門 LINE API Expert(2024年〜) Microsoft MVP for Developer Technologies(2024年〜) LAPRAS OUTPUT AWARD 2024 01 最近のトピック ● パスポート申請した。初海外、初ベガス ● 新宿は欲望と暴力の街!!って誰から聞いた

Slide 5

Slide 5 text

AIと機械学習(ML)は違うものか 5

Slide 6

Slide 6 text

6 引用:What is AI and ML? [Pt 2] | Generative AI with .NET for Beginners

Slide 7

Slide 7 text

余談:DeepLearningが広まったのは猫のおかげ? YouTube動画から無作為に選択して機械学習モデルを作成 👉猫を認識できるようになった😻😻😻😻😻😻😻😻 猫という存在を教えてもいないのに 猫と認識できるようになったところがすごいところ 参考:Using large-scale brain simulations for machine learning and A.I. 参考:Building High-level Features Using Large Scale Unsupervised Learning 7

Slide 8

Slide 8 text

MLでできること 8

Slide 9

Slide 9 text

MLを覚えると何ができてどう嬉しいのか ● 分類(数値や画像) ● 予測 ● グループ化 ● 検出(被写体検出) ※教師あり、教師なしで分かれます。 データ分析では統計が使われる。(データの説明) 👉 MLは統計的思考に基づいて次のデータを予測する人工知能のアプローチである。 👉 MLはデータを予測する分野 キーワード:「分けることはわかること。そして、予測できること」 9

Slide 10

Slide 10 text

なぜMLはPythonなのか 10

Slide 11

Slide 11 text

TensorFlowの普及が大きいのではないか(諸説あり) 個人の見解 ● Googleが開発した機械学習フレームワークがPythonである ● Google Colabによる入門資料は多い(星の数ほどある) 関連して自然言語(NLP)の分野でもPythonがよく使われる。 👉簡単に言うと巨大で多様なPythonのエコシステムと相性がよかった ※Conda,Anaconda,Minicondaがみんな好き? 11

Slide 12

Slide 12 text

ML.NETとは 12

Slide 13

Slide 13 text

ML.NETとは Microsoftによって提供されている.NETの機械学習フレームワーク ● モデルの作成・評価 ● 自動機械学習(AutoML) 13 引用: ML.NET とは何ですか?

Slide 14

Slide 14 text

ML.NETでMLを始めるメリット 14 ● .NET/C#で始められること ● 型のある言語でMLができること ● .NETの巨大なエコシステムにMLを導入できること Pythonにはない大きな特徴としては実行時エラーを減らせること ※もちろん、C#による実行時エラーはゼロではない

Slide 15

Slide 15 text

ML.NETを実際に見てみよう 15 ML.NET チュートリアルをベースに見ていくYo

Slide 16

Slide 16 text

ML.NET チュートリアル 16 引用: https://dotnet.microsoft.com/ja-jp/learn/ml-dotnet/get-started-tutorial/intro

Slide 17

Slide 17 text

動作要件 ● 2025年2月現在においては.NET8に対応 ● dotnet toolsでインストールが必要 ● Windowsを利用されている人ならVisual Studioで利用するのがイイ 17

Slide 18

Slide 18 text

モデルの作成、始め方は簡単3Step ● dotnet toolsでmlnetをインストール ● 学習データを用意 ● 学習データを使ってmlnetを実行 18

Slide 19

Slide 19 text

例題: あるレストランにおけるデータ 19 肯定的なレビューなら1 否定的なレビューなら0

Slide 20

Slide 20 text

モデルを作成する(トレーニングする) mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --name SentimentModel --train-time 60 --dataset: モデルのデータソース --label-col: 列 --has-header: ヘッダの有無 --name: モデル名 --train-time: モデルの学習時間 20

Slide 21

Slide 21 text

モデルを評価する 21

Slide 22

Slide 22 text

ハンズオン レストランのレビューモデル 22

Slide 23

Slide 23 text

例題:あるレストランにおける結果(classification) 23 肯定的なレビュー 0.8784 否定的なレビュー 0.1215 これで分類が実行できる機械学習モデルが構築できました。

Slide 24

Slide 24 text

ここまでは準備体操 今日は2月22日ということで 24

Slide 25

Slide 25 text

物体検出で 猫(にゃんにゃん)を見つける 25

Slide 26

Slide 26 text

実現方法概略 ● Microsoft.ML を使用 ● 事前トレーニング済みモデルである ONNX形式のTiny Yolo2 を使用 ○ 20 種類のクラスを検出するオブジェクト検出用のリアルタイム ニューラル ネットワーク ○ 9 つの畳み込み層と 6 つの最大プーリング層で構成 ○ YOLOv2ネットワークの小型バージョン ※Open Neural Network Exchange ( ONNX) ディープラーニング モデルを表現するオープン フォーマット 参照したサンプルプログラム: https://github.com/dotnet/machinelearning-samples/tree/main/samples/csha rp/getting-started/DeepLearning_ObjectDetection_Onnx 26

Slide 27

Slide 27 text

ハンズオン 27

Slide 28

Slide 28 text

スキャンされた画像をチェック ※かわいい猫注意 28

Slide 29

Slide 29 text

29 認識できる例

Slide 30

Slide 30 text

30 認識できなかった例 (間違えた例) 犬がcat判定

Slide 31

Slide 31 text

31 これは?

Slide 32

Slide 32 text

32 右の猫が犬として認識

Slide 33

Slide 33 text

33 そもそも認識しない

Slide 34

Slide 34 text

Azureとの連携:Azure Functions 参考: Deploy an ML.NET machine learning model to Azure Functions - Code Samples | Microsoft Learn 34

Slide 35

Slide 35 text

まとめ ● 昨今のAIとMLの違いを見たYo ● ML.NETを使えば、.NETで簡単にMLができるYo ● 実際にハンズオンしたYo ● Azureとの連携方法を確認したYo 35

Slide 36

Slide 36 text

参考資料 36

Slide 37

Slide 37 text

37 補足:動作要件に関する記述