圖片來源: 

微軟

微軟現在於GitHub上以MIT授權,開源Office、Xbox和Azure中許多微軟產品中使用的機器學習引擎Infer.NET,這是一個基於模型的機器學習框架,早在2008年就被開發來用在學術研究上,而現在則被用在加持Azure雲端服務上。

Infer.NET的發展歷史悠久,微軟在2004年開始發展這個框架,摸索可擴展和可解釋的機器學習解決方案,在2008年時,Infer.NET被發布成為學術研究的工具,而後有數百篇論文都使用該框架,進行訊息檢索以及醫療保健等領域研究上,甚至在2012年,於流行病學、疾病遺傳學和流行病學上獲得人類專利獎。而該框架後來逐漸成為Office、Xbox和Azure中許多微軟產品背後的機器學習引擎。而微軟遊戲玩家配對系統TrueSkill 2,就是以Infer.NET實作,在遊戲Halo 5和Gears of War 4中處理了數百萬場的比賽。

Infer.NET團隊的工程負責人Yordan Zaykov表示,和其他框架不同的地方是,Infer.NET是一個基於模型的機器學習方法,能夠方便開發者將領域知識合併到模型中,藉由框架就能直接為該模型量身打造出機器學習演算法,也就是說Infer.NET並非要將使用者的問題映射到已經存在的學習演算法,而是能基於使用者提供的模型建構出訂製的學習演算法。

而基於模型的機器學習其中一個優點便是具有可解釋性,當使用者設計了模型,並且由Infer.NET框架以該模型建立了學習演算法,像是在特定行為的運作邏輯或是進行某些預測時,則使用者更能理解系統運作的方式,Yordan Zaykov認為,機器學習逐漸進入人們的生活中,因此理解和解釋機器學習系統的行為變得越來越重要。另外,基於模型的機器學習,也適用於解決特殊資料特徵的問題,能被用來處理即時資料、異構資料、資料不足、未標記的資料、資料缺失或是存在已知偏差的資料。

在Infer.NET中,是以機率程式(Probabilistic Program)的方式描述模型,Yordan Zaykov表示,這是一個強大的概念,可以用於描述機器理解真實世界程序的概念。Infer.NET會將機率程式編譯成高效能程式碼,用於實現確定性近似貝葉斯推斷(Bayesian inference)的應用,而這個方法擁有高度的可擴展性, 微軟將其用在能從數十億網頁中,自動萃取知識的系統中。

英國劍橋的微軟研究院現在將Infer.NET開源,希望透過與社群合作進一步發展框架,而目前Infer.NET也開始和ML.NET進行整合,包括在.NET基金會下設置儲存庫,並將套件以及空間命名移動到Microsoft.ML.Probabilistic,Infer.NET將會幫助ML.NET進行統計建模以及線上學習方面。


Advertisement

更多 iThome相關內容