微軟釋出ML.NET 0.7,這個版本的更新重點在於更好的支援推薦機器學習應用,實現異常偵測,並強化機器學習工作管線客製化的程度,另外,除了x64架構,ML.NET在Windows上開始支援x86應用程式。

ML.NET先前在10月的時候就進行了一次大更新,棄用LearningPipeline API,使用全新的學習API,讓整體預測效能提稱超過100倍。11月推出的新版ML.NET 0.7則更加強了對特定任務的支援,開始使用矩陣分解(Matrix Factorization)強化推薦任務的能力。推薦系統可對目錄、歌曲和電影等內容產生推薦列表,而微軟為ML.NET增加了矩陣分解,改進創建推薦系統的支援,矩陣分解比在ML.NET 0.3時增加的Field-Aware Factorization Machines(FFM)執行效率更好也更靈活,支援連續數字等級,而不僅是布林值的喜歡與不喜歡選項而已。

而在異常偵測方面,ML.NET 0.7支援了偵測兩種類型的異常行為,分別為尖峰偵測以及改變點偵測。尖峰偵測用於偵測輸入資料值突然爆發,造成原因可能是中斷、網路攻擊、病毒式網路內容等異常值。而改變點偵測則會標記出資料行為中較長的變異起始,像是在銷售行為上,銷售額突然倍增的變化點。

這兩種異常偵測可以用來識別異常值和事件,像是可疑信用卡交易的詐欺偵測,或是對伺服器進行監控等使用案例。開發者可以使用不同的ML.NET元件,對兩種資料類型進行檢測,IidSpikeDetector和IidChangePointDetector可用於固定分佈的資料,每個資料點獨立於先前的資料,像是推特推文的轉發量,而SsaSpikeDetector和SsaChangePointDetector則能用於具季節或是趨勢元件的資料,像是按時間排序的產品銷售資料。

微軟在ML.NET 0.7還改進了工作管線的可客製化程度,雖然ML.NET提供像是文字處理、圖像和分類特徵各種資料轉換,但是部分使用案例比如計算兩個文字欄位的餘弦相似度,還是需要特定應用程式轉換,但ML.NET 0.7中,開發者已經可以增加客製化轉換,如此便能夠容易的在應用中加入商業邏輯。CustomMappingEstimator讓開發者可以編寫自己的方法來處理資料,並將資料送入ML.NET工作管線中。

為擴大對硬體的支援,現在ML.NET 0.7除了x64之外還支援x86,開發者可以同時在這兩個架構的裝置訓練和使用機器學習模型,不過目前還僅限於Windows上,Linux和MacOS仍限制使用x64,不過,值得注意的是,相依於外部函式庫像是TensorFlow的元件,在x86的Windows中還是不可用。

作為實驗性功能,NimbusML為ML.NET 0.7提供了Python綁定。微軟提到,他們從不少社群和內部團隊中觀察到,多種程式語言開發的好處,他們希望有更多人可以使用ML.NET,同時也幫助團隊可以更容易的協同工作。現在ML.NET不僅讓資料科學家可以用Python訓練和使用機器學習模型,還可以透過ML.NET在.NET應用程式使用儲存的模型。


Advertisement

更多 iThome相關內容