使用 C# 與 .NET 也能打造機器學習模型
你所不知道的 ML.NET 初體驗
Ko Ko, Microsoft AI MVP
2021/06/09 @Will 保哥的技術交流中心
自我介紹
大家可以叫我科科或是Ko Ko
Microsoft AI MVP
目前在台灣的電信業工作,致力於製造業的AI導入
國內大型技術年會講者,包含 COSCUP、MOPCON、.NET CONF 等
https://www.linkedin.com/in/ko-ko-b12a3474/
大綱
1、基本介紹
2、ML.NET 初體驗 with DEMO
3、神兵利器之AutoML with DEMO
4、部署 AI 模型
5、其他經驗分享
大綱
1、基本介紹
2、ML.NET 初體驗 with DEMO
3、神兵利器之AutoML with DEMO
4、部署 AI 模型
5、其他經驗分享
傳統寫程式
參考文獻1
規則
資料
答案
今天一個人在移動,智慧手錶的程式要從他
移動的方式,判斷他是在走路、騎 腳踏車,
還是在游泳。
Machine Learning
參考文獻1
答案
資料
規則
用資料和答案,來得到規則( AI 模型),再把
沒有答案的資料給這個規則,而得到答案。
注意,有的時候是沒有答案的
監督式學習和非監督式學習
參考文獻2
機器學習和統計學在目的上不同
統計要從樣本數量,去看全體。如選舉民調。
機器學習要從過去的樣本數,去處理新的資料,以解決問題。如從消費紀錄,預測這
個客人下次要買什麼。
兩者在方法上是可以相同的。
參考文獻3
AI 能解決什麼問題?
參考文獻4
大綱
1、基本介紹
2、ML.NET 初體驗 with DEMO
3、神兵利器之AutoML with DEMO
4、部署 AI 模型
5、其他經驗分享
什麼是ML.NET
● 微軟一套開源的、跨平台、AI開發框架。
● NET 開發者可以輕鬆使用C# 或 F# 來做AI 的開發。
● 有很多內建好的算法讓你快速做出成果。
● 支持 .net core 2.0 和 .net framework 4.6.1以上。
● MIT 授權。
ML.NET 可以做什麼
多類別分類
迴歸
二元分類
Cluster
異常偵測
建議
Forecasting
更多算法可以參考這裡
參考文獻5
也可以和 Tensorflow 模型做整合
參考文獻6
微軟目前三個 AI 服務
MLNET:可在地端或雲端訓練客製化模型,強調與.NET應用程式的開發整合。
Azure Machine Learning:是雲端服務,是一個全面性的開發環境,以Python 為主,也
支援其他的語言,可以訓練、部署、管理AI模型等。
Azure Cognitive Services:是雲端服務,提供預建立好的AI模型和 SDK,以供整合到
應用程式,也有部份 train model 功能(例如 Custom Vision 可以訓練影像的模型但是
能調整的地方有限)。
dotnet add package Microsoft.ML
可以不用GPU,不用裝 CUDA、CuDNN等
也可支援GPU,目前要用CUDA 10.1,CuDNN 7.6.4
支援 GPU 的說明(參考文獻7)
DEMO
20
ML.NET程式碼重點
MLContext()
IDataView
pipeline
append 你要的算法(trainer)
predictionEngine
大綱
1、基本介紹
2、ML.NET 初體驗 with DEMO
3、神兵利器之AutoML with DEMO
4、部署 AI 模型
5、其他經驗分享
新一代AI開發工具---Model Builder
這是一個自動化幫你產生AI 模型的工具
主要是使用 AutoML 的技術來幫你自動化產生
不用寫一行 code 就幫你產生Model,自動幫你產生code
DEMO
大綱
1、基本介紹
2、ML.NET 初體驗 with DEMO
3、神兵利器之AutoML with DEMO
4、部署 AI 模型
5、其他經驗分享
PredictionEngine 不是 Thread-safety !
Thread-safety 的作法: PredictionEnginePool
大綱
1、基本介紹
2、ML.NET 初體驗 with DEMO
3、神兵利器之AutoML with DEMO
4、部署 AI 模型
5、其他經驗分享
參考文獻8
Spurious correlation
指在兩個沒有因果關係的事件,可能基於其他未見的干擾因素,顯示出統計學上的相
關,讓人很容易猜想「兩個事件有所聯繫」,然而這種聯繫並不能通過更加精細的檢驗
,因此往往是沒有關係的兩件事。
「夏以妹喜,殷以妲己,周以褒姒,三代所由亡也。」 --- 杜預注《左傳》
參考文獻9
DATA 的標註一開始就錯了
參考文獻10
DATA 本身就有爭議性
Google Brain 在2016年做視網膜病變時發生
同一張圖,有些醫生認為是病變,有些覺得沒有病變
同一張圖,有些醫生認為是重度病變,有些認為是輕度
參考文獻11
切勿過早要求 ROI (Return on investment)
資料的收集,不是短時間可以達成。
資料的清理,往往要投入後才能評估初步的時程。
即使真的train出好模型,也需要驗證。
人員抗拒改變組織流程的心態。
關注在潛在效益比較實際。
結語
對於 AI 專案有初步的了解
認識 ML.NET
了解 model builder 的優勢
了解部署的眉角
資料本身的重要性
最後勉勵大家!
Reference
1、Book: AI and Machine Learning for Coders
2、
https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.researchgate.net%2Ffigu
re%2FExamples-of-Supervised-Learning-Linear-Regression-and-Unsupervised-Learnin
g_fig3_336642133&psig=AOvVaw0TUTBCp320XD7yyfzeW30V&ust=161845271166600
0&source=images&cd=vfe&ved=0CAIQjRxqFwoTCMj0pqrU_O8CFQAAAAAdAAAA
ABAD
3、
https://medium.com/@harish_6956/what-is-machine-learning-deep-learning-778860400
4da
Reference
4、https://books.cw.com.tw/blog/article/1285
5、
https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet?WT.mc_id=AI-MVP-5
003846
6、
https://docs.microsoft.com/en-us/dotnet/machine-learning/tutorials/image-classification
-api-transfer-learning?WT.mc_id=AI-MVP-5003846
7、
https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/install-gpu-m
odel-builder?WT.mc_id=AI-MVP-5003846
Reference
8、https://soshace.com/deep-learning-vs-machine-learning-overview-comparison/
9、
https://www.vox.com/2014/5/13/5710874/the-best-illustration-youll-see-that-correlation-
doesnt-equal
10、https://arxiv.org/pdf/2103.14749.pdf
11、https://www.aaojournal.org/action/showPdf?pii=S0161-6420%2817%2932698-2
謝謝大家!!
Q&A

用 C# 與 .NET 也能打造機器學習模型:你所不知道的 ML.NET 初體驗